@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
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
2
|
type Theme = "light" | "dark" | "system";
|
|
3
|
+
/**
|
|
4
|
+
* ThemeProvider 컴포넌트의 props / ThemeProvider component props
|
|
5
|
+
* @typedef {Object} ThemeProviderProps
|
|
6
|
+
* @property {React.ReactNode} children - 자식 컴포넌트 / Child components
|
|
7
|
+
* @property {"light" | "dark" | "system"} [defaultTheme="light"] - 기본 테마 / Default theme
|
|
8
|
+
* @property {string} [storageKey="hua-ui-theme"] - localStorage 키 / localStorage key
|
|
9
|
+
* @property {boolean} [enableSystem=true] - 시스템 테마 감지 활성화 / Enable system theme detection
|
|
10
|
+
* @property {boolean} [enableTransition=true] - 테마 전환 애니메이션 활성화 / Enable theme transition animation
|
|
11
|
+
*/
|
|
3
12
|
interface ThemeProviderProps {
|
|
4
13
|
children: React.ReactNode;
|
|
5
14
|
defaultTheme?: Theme;
|
|
@@ -7,13 +16,69 @@ interface ThemeProviderProps {
|
|
|
7
16
|
enableSystem?: boolean;
|
|
8
17
|
enableTransition?: boolean;
|
|
9
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* ThemeProvider의 상태 타입 / ThemeProvider state type
|
|
21
|
+
* @typedef {Object} ThemeProviderState
|
|
22
|
+
* @property {"light" | "dark" | "system"} theme - 현재 테마 / Current theme
|
|
23
|
+
* @property {(theme: "light" | "dark" | "system") => void} setTheme - 테마 설정 함수 / Theme setter function
|
|
24
|
+
* @property {"light" | "dark"} resolvedTheme - 실제 적용된 테마 (system일 경우 시스템 테마) / Actually applied theme (system theme when system is selected)
|
|
25
|
+
* @property {() => void} toggleTheme - 테마 토글 함수 / Theme toggle function
|
|
26
|
+
*/
|
|
10
27
|
interface ThemeProviderState {
|
|
11
28
|
theme: Theme;
|
|
12
29
|
setTheme: (theme: Theme) => void;
|
|
13
30
|
resolvedTheme: "light" | "dark";
|
|
14
31
|
toggleTheme: () => void;
|
|
15
32
|
}
|
|
16
|
-
|
|
33
|
+
/**
|
|
34
|
+
* ThemeProvider 컴포넌트 / ThemeProvider component
|
|
35
|
+
*
|
|
36
|
+
* 테마 관리를 위한 Context Provider 컴포넌트입니다.
|
|
37
|
+
* localStorage에 테마를 저장하고, 시스템 테마를 감지할 수 있습니다.
|
|
38
|
+
* useTheme 훅을 통해 테마 상태에 접근할 수 있습니다.
|
|
39
|
+
*
|
|
40
|
+
* Context Provider component for theme management.
|
|
41
|
+
* Saves theme to localStorage and can detect system theme.
|
|
42
|
+
* Access theme state through useTheme hook.
|
|
43
|
+
*
|
|
44
|
+
* @component
|
|
45
|
+
* @example
|
|
46
|
+
* // 기본 사용 / Basic usage
|
|
47
|
+
* <ThemeProvider>
|
|
48
|
+
* <App />
|
|
49
|
+
* </ThemeProvider>
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* // 커스텀 설정 / Custom settings
|
|
53
|
+
* <ThemeProvider
|
|
54
|
+
* defaultTheme="dark"
|
|
55
|
+
* storageKey="my-app-theme"
|
|
56
|
+
* enableSystem={true}
|
|
57
|
+
* enableTransition={true}
|
|
58
|
+
* >
|
|
59
|
+
* <App />
|
|
60
|
+
* </ThemeProvider>
|
|
61
|
+
*
|
|
62
|
+
* @param {ThemeProviderProps} props - ThemeProvider 컴포넌트의 props / ThemeProvider component props
|
|
63
|
+
* @returns {JSX.Element} ThemeProvider 컴포넌트 / ThemeProvider component
|
|
64
|
+
*/
|
|
65
|
+
export declare function ThemeProvider({ children, defaultTheme, // system에서 light로 변경
|
|
66
|
+
storageKey, enableSystem, enableTransition, ...props }: ThemeProviderProps): React.ReactElement;
|
|
67
|
+
/**
|
|
68
|
+
* useTheme 훅 / useTheme hook
|
|
69
|
+
*
|
|
70
|
+
* ThemeProvider의 테마 상태에 접근하는 훅입니다.
|
|
71
|
+
* ThemeProvider 내부에서만 사용할 수 있습니다.
|
|
72
|
+
*
|
|
73
|
+
* Hook to access ThemeProvider's theme state.
|
|
74
|
+
* Can only be used inside ThemeProvider.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* const { theme, setTheme, resolvedTheme, toggleTheme } = useTheme()
|
|
78
|
+
*
|
|
79
|
+
* @returns {ThemeProviderState} 테마 상태와 함수들 / Theme state and functions
|
|
80
|
+
* @throws {Error} ThemeProvider 외부에서 사용 시 에러 발생 / Error when used outside ThemeProvider
|
|
81
|
+
*/
|
|
17
82
|
export declare const useTheme: () => ThemeProviderState;
|
|
18
83
|
export {};
|
|
19
84
|
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/components/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAE7E,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAExC;;;;;;;;GAQG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAA;IAC/B,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAsB,EAAG,qBAAqB;AAC9C,UAA2B,EAC3B,YAAmB,EACnB,gBAAuB,EACvB,GAAG,KAAK,EACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAyEzC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,0BAOpB,CAAA"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThemeToggle 컴포넌트의 props / ThemeToggle component props
|
|
3
|
+
* @typedef {Object} ThemeToggleProps
|
|
4
|
+
* @property {string} [className] - 추가 CSS 클래스 / Additional CSS class
|
|
5
|
+
* @property {"sm" | "md" | "lg"} [size="md"] - Toggle 크기 / Toggle size
|
|
6
|
+
* @property {"button" | "icon" | "switch"} [variant="button"] - Toggle 스타일 변형 / Toggle style variant
|
|
7
|
+
* @property {boolean} [showLabel=false] - 라벨 표시 여부 / Show label
|
|
8
|
+
* @property {Object} [label] - 커스텀 라벨 텍스트 / Custom label text
|
|
9
|
+
* @property {string} [label.light="라이트"] - 라이트 모드 라벨 / Light mode label
|
|
10
|
+
* @property {string} [label.dark="다크"] - 다크 모드 라벨 / Dark mode label
|
|
11
|
+
* @property {string} [label.system="시스템"] - 시스템 모드 라벨 / System mode label
|
|
12
|
+
*/
|
|
1
13
|
interface ThemeToggleProps {
|
|
2
14
|
className?: string;
|
|
3
15
|
size?: "sm" | "md" | "lg";
|
|
@@ -9,6 +21,38 @@ interface ThemeToggleProps {
|
|
|
9
21
|
system?: string;
|
|
10
22
|
};
|
|
11
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* ThemeToggle 컴포넌트 / ThemeToggle component
|
|
26
|
+
*
|
|
27
|
+
* 테마를 전환하는 토글 컴포넌트입니다.
|
|
28
|
+
* ThemeProvider와 함께 사용하며, light/dark/system 테마를 지원합니다.
|
|
29
|
+
*
|
|
30
|
+
* Toggle component for switching themes.
|
|
31
|
+
* Used with ThemeProvider, supports light/dark/system themes.
|
|
32
|
+
*
|
|
33
|
+
* @component
|
|
34
|
+
* @example
|
|
35
|
+
* // 기본 사용 (버튼 스타일) / Basic usage (button style)
|
|
36
|
+
* <ThemeToggle />
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* // 아이콘만 표시 / Icon only
|
|
40
|
+
* <ThemeToggle variant="icon" size="lg" />
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // Switch 스타일 / Switch style
|
|
44
|
+
* <ThemeToggle variant="switch" />
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // 라벨과 함께 / With label
|
|
48
|
+
* <ThemeToggle
|
|
49
|
+
* showLabel
|
|
50
|
+
* label={{ light: "밝게", dark: "어둡게" }}
|
|
51
|
+
* />
|
|
52
|
+
*
|
|
53
|
+
* @param {ThemeToggleProps} props - ThemeToggle 컴포넌트의 props / ThemeToggle component props
|
|
54
|
+
* @returns {JSX.Element} ThemeToggle 컴포넌트 / ThemeToggle component
|
|
55
|
+
*/
|
|
12
56
|
export declare function ThemeToggle({ className, size, variant, showLabel, label, ...props }: ThemeToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
13
57
|
export {};
|
|
14
58
|
//# sourceMappingURL=ThemeToggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"AAOA,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,IAAW,EACX,OAAkB,EAClB,SAAiB,EACjB,KAIC,EACD,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAiHlB"}
|
|
1
|
+
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"AAOA;;;;;;;;;;;GAWG;AACH,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,IAAW,EACX,OAAkB,EAClB,SAAiB,EACjB,KAIC,EACD,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAiHlB"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Toast 메시지 타입 / Toast message type
|
|
4
|
+
* @typedef {Object} Toast
|
|
5
|
+
* @property {string} id - Toast 고유 ID / Toast unique ID
|
|
6
|
+
* @property {"success" | "error" | "warning" | "info"} type - Toast 타입 / Toast type
|
|
7
|
+
* @property {string} [title] - Toast 제목 / Toast title
|
|
8
|
+
* @property {string} message - Toast 메시지 / Toast message
|
|
9
|
+
* @property {number} [duration] - 표시 시간(ms), 0이면 자동 제거 안 함 / Display duration (ms), 0 means no auto-remove
|
|
10
|
+
* @property {Object} [action] - 액션 버튼 / Action button
|
|
11
|
+
* @property {string} action.label - 액션 버튼 레이블 / Action button label
|
|
12
|
+
* @property {() => void} action.onClick - 액션 버튼 클릭 핸들러 / Action button click handler
|
|
13
|
+
*/
|
|
2
14
|
export interface Toast {
|
|
3
15
|
id: string;
|
|
4
16
|
type: "success" | "error" | "warning" | "info";
|
|
@@ -16,12 +28,74 @@ interface ToastContextType {
|
|
|
16
28
|
removeToast: (id: string) => void;
|
|
17
29
|
clearToasts: () => void;
|
|
18
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* useToast Hook
|
|
33
|
+
*
|
|
34
|
+
* Toast를 추가, 제거, 초기화하는 훅입니다.
|
|
35
|
+
* ToastProvider 내부에서만 사용 가능합니다.
|
|
36
|
+
*
|
|
37
|
+
* Hook for adding, removing, and clearing toasts.
|
|
38
|
+
* Can only be used within ToastProvider.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* const { addToast, removeToast, clearToasts } = useToast()
|
|
42
|
+
*
|
|
43
|
+
* addToast({
|
|
44
|
+
* type: "success",
|
|
45
|
+
* message: "저장되었습니다",
|
|
46
|
+
* duration: 3000
|
|
47
|
+
* })
|
|
48
|
+
*
|
|
49
|
+
* @returns {ToastContextType} Toast 컨텍스트 값 / Toast context value
|
|
50
|
+
* @throws {Error} ToastProvider 외부에서 사용 시 에러 발생 / Error when used outside ToastProvider
|
|
51
|
+
*/
|
|
19
52
|
export declare function useToast(): ToastContextType;
|
|
53
|
+
/**
|
|
54
|
+
* ToastProvider 컴포넌트의 props / ToastProvider component props
|
|
55
|
+
* @typedef {Object} ToastProviderProps
|
|
56
|
+
* @property {React.ReactNode} children - 자식 컴포넌트 / Child components
|
|
57
|
+
* @property {number} [maxToasts=5] - 최대 Toast 개수 / Maximum number of toasts
|
|
58
|
+
* @property {"top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center" | "bottom-center"} [position="top-right"] - Toast 표시 위치 / Toast display position
|
|
59
|
+
*/
|
|
20
60
|
interface ToastProviderProps {
|
|
21
61
|
children: React.ReactNode;
|
|
22
62
|
maxToasts?: number;
|
|
23
63
|
position?: "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center" | "bottom-center";
|
|
24
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* ToastProvider 컴포넌트 / ToastProvider component
|
|
67
|
+
*
|
|
68
|
+
* Toast 시스템의 컨텍스트를 제공하는 Provider 컴포넌트입니다.
|
|
69
|
+
* 앱의 루트 레벨에서 사용하여 전역 Toast 기능을 활성화합니다.
|
|
70
|
+
*
|
|
71
|
+
* Provider component that provides context for the Toast system.
|
|
72
|
+
* Use at the root level of your app to enable global Toast functionality.
|
|
73
|
+
*
|
|
74
|
+
* @component
|
|
75
|
+
* @example
|
|
76
|
+
* // App.tsx
|
|
77
|
+
* <ToastProvider position="top-center" maxToasts={3}>
|
|
78
|
+
* <App />
|
|
79
|
+
* </ToastProvider>
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* // 컴포넌트에서 사용 / Usage in component
|
|
83
|
+
* const { addToast } = useToast()
|
|
84
|
+
*
|
|
85
|
+
* const handleSave = () => {
|
|
86
|
+
* addToast({
|
|
87
|
+
* type: "success",
|
|
88
|
+
* message: "저장되었습니다",
|
|
89
|
+
* title: "성공"
|
|
90
|
+
* })
|
|
91
|
+
* }
|
|
92
|
+
*
|
|
93
|
+
* @param {ToastProviderProps} props - ToastProvider 컴포넌트의 props / ToastProvider component props
|
|
94
|
+
* @returns {JSX.Element} ToastProvider 컴포넌트 / ToastProvider component
|
|
95
|
+
*
|
|
96
|
+
* @todo 접근성 개선: ToastItem에 role="alert" 또는 role="status" 추가 필요 / Accessibility: Add role="alert" or role="status" to ToastItem
|
|
97
|
+
* @todo 접근성 개선: aria-live="polite" 또는 aria-live="assertive" 추가 필요 / Accessibility: Add aria-live="polite" or aria-live="assertive"
|
|
98
|
+
*/
|
|
25
99
|
export declare function ToastProvider({ children, maxToasts, position }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
26
100
|
export declare const showToast: (toast: Omit<Toast, "id">) => void;
|
|
27
101
|
export declare const showSuccessToast: (message: string, title?: string, duration?: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/components/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/components/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,IAAI,CAAA;KACpB,CAAA;CACF;AAGD,UAAU,gBAAgB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAA;IAC5C,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAKD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,IAAI,gBAAgB,CAM3C;AAED;;;;;;GAMG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,eAAe,CAAA;CACtG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAa,EACb,QAAsB,EACvB,EAAE,kBAAkB,2CAkCpB;AAwKD,eAAO,MAAM,SAAS,GAAI,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAGjD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,SAElF,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,SAEhF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,SAElF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,SAE/E,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Toggle 컴포넌트의 props / Toggle component props
|
|
4
|
+
* @typedef {Object} ToggleProps
|
|
5
|
+
* @property {"default" | "outline" | "filled" | "ghost" | "glass"} [variant="default"] - Toggle 스타일 변형 / Toggle style variant
|
|
6
|
+
* @property {"sm" | "md" | "lg"} [size="md"] - Toggle 크기 / Toggle size
|
|
7
|
+
* @property {boolean} [pressed] - 제어 모드에서 눌림 상태 / Pressed state in controlled mode
|
|
8
|
+
* @property {(pressed: boolean) => void} [onPressedChange] - 상태 변경 콜백 / State change callback
|
|
9
|
+
* @property {string} [label] - Toggle 라벨 텍스트 / Toggle label text
|
|
10
|
+
* @property {string} [description] - Toggle 설명 텍스트 / Toggle description text
|
|
11
|
+
* @property {React.ReactNode} [icon] - 아이콘 / Icon
|
|
12
|
+
* @property {"left" | "right"} [iconPosition="left"] - 아이콘 위치 / Icon position
|
|
13
|
+
* @extends {Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'>}
|
|
14
|
+
*/
|
|
15
|
+
export interface ToggleProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> {
|
|
16
|
+
variant?: "default" | "outline" | "filled" | "ghost" | "glass";
|
|
17
|
+
size?: "sm" | "md" | "lg";
|
|
18
|
+
pressed?: boolean;
|
|
19
|
+
onPressedChange?: (pressed: boolean) => void;
|
|
20
|
+
label?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
icon?: React.ReactNode;
|
|
23
|
+
iconPosition?: "left" | "right";
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Toggle 컴포넌트 / Toggle component
|
|
27
|
+
*
|
|
28
|
+
* 눌림 상태를 가지는 토글 버튼 컴포넌트입니다.
|
|
29
|
+
* Switch와 달리 버튼 형태로 표시되며, 여러 개를 그룹으로 사용할 수 있습니다.
|
|
30
|
+
*
|
|
31
|
+
* Toggle button component with pressed state.
|
|
32
|
+
* Unlike Switch, displayed as a button and can be used in groups.
|
|
33
|
+
*
|
|
34
|
+
* @component
|
|
35
|
+
* @example
|
|
36
|
+
* // 기본 사용 / Basic usage
|
|
37
|
+
* <Toggle label="알림" />
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // 제어 모드 / Controlled mode
|
|
41
|
+
* const [pressed, setPressed] = useState(false)
|
|
42
|
+
* <Toggle
|
|
43
|
+
* pressed={pressed}
|
|
44
|
+
* onPressedChange={setPressed}
|
|
45
|
+
* label="다크 모드"
|
|
46
|
+
* icon={<Icon name="moon" />}
|
|
47
|
+
* />
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* // 아이콘만 / Icon only
|
|
51
|
+
* <Toggle
|
|
52
|
+
* icon={<Icon name="heart" />}
|
|
53
|
+
* variant="ghost"
|
|
54
|
+
* />
|
|
55
|
+
*
|
|
56
|
+
* @param {ToggleProps} props - Toggle 컴포넌트의 props / Toggle component props
|
|
57
|
+
* @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref
|
|
58
|
+
* @returns {JSX.Element} Toggle 컴포넌트 / Toggle component
|
|
59
|
+
*/
|
|
60
|
+
declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLButtonElement>>;
|
|
61
|
+
export { Toggle };
|
|
62
|
+
//# sourceMappingURL=Toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../../src/components/Toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC9F,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;IAC9D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,QAAA,MAAM,MAAM,uFAqFX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Tooltip 컴포넌트의 props / Tooltip component props
|
|
4
|
+
* @typedef {Object} TooltipProps
|
|
5
|
+
* @property {string} content - Tooltip 내용 / Tooltip content
|
|
6
|
+
* @property {React.ReactNode} children - Tooltip이 연결될 요소 / Element to attach tooltip to
|
|
7
|
+
* @property {"top" | "bottom" | "left" | "right"} [position="top"] - Tooltip 표시 위치 / Tooltip display position
|
|
8
|
+
* @property {"default" | "light" | "dark"} [variant="default"] - Tooltip 스타일 변형 / Tooltip style variant
|
|
9
|
+
* @property {number} [delay=300] - Tooltip 표시 지연 시간(ms) / Tooltip display delay (ms)
|
|
10
|
+
* @property {boolean} [disabled=false] - Tooltip 비활성화 여부 / Disable tooltip
|
|
11
|
+
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
12
|
+
*/
|
|
2
13
|
export interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
14
|
content: string;
|
|
4
15
|
children: React.ReactNode;
|
|
@@ -7,6 +18,42 @@ export interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
7
18
|
delay?: number;
|
|
8
19
|
disabled?: boolean;
|
|
9
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Tooltip 컴포넌트 / Tooltip component
|
|
23
|
+
*
|
|
24
|
+
* 호버 시 추가 정보를 표시하는 툴팁 컴포넌트입니다.
|
|
25
|
+
* 마우스 호버 시 지연 시간 후 표시됩니다.
|
|
26
|
+
*
|
|
27
|
+
* Tooltip component that displays additional information on hover.
|
|
28
|
+
* Appears after a delay when the mouse hovers over the element.
|
|
29
|
+
*
|
|
30
|
+
* @component
|
|
31
|
+
* @example
|
|
32
|
+
* // 기본 사용 / Basic usage
|
|
33
|
+
* <Tooltip content="이것은 도움말입니다">
|
|
34
|
+
* <Button>호버하세요</Button>
|
|
35
|
+
* </Tooltip>
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // 다양한 위치 / Different positions
|
|
39
|
+
* <Tooltip content="위치 변경" position="bottom">
|
|
40
|
+
* <Icon name="info" />
|
|
41
|
+
* </Tooltip>
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* // 커스텀 스타일 / Custom styles
|
|
45
|
+
* <Tooltip content="라이트 스타일" variant="light" delay={500}>
|
|
46
|
+
* <span>호버</span>
|
|
47
|
+
* </Tooltip>
|
|
48
|
+
*
|
|
49
|
+
* @param {TooltipProps} props - Tooltip 컴포넌트의 props / Tooltip component props
|
|
50
|
+
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
|
|
51
|
+
* @returns {JSX.Element} Tooltip 컴포넌트 / Tooltip component
|
|
52
|
+
*
|
|
53
|
+
* @todo 접근성 개선: role="tooltip" 추가 필요 / Accessibility: Add role="tooltip"
|
|
54
|
+
* @todo 접근성 개선: aria-describedby 연결 필요 / Accessibility: Connect aria-describedby
|
|
55
|
+
* @todo 접근성 개선: 키보드 포커스 시 Tooltip 표시 필요 / Accessibility: Show tooltip on keyboard focus
|
|
56
|
+
*/
|
|
10
57
|
declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
58
|
export declare const TooltipLight: React.ForwardRefExoticComponent<Omit<TooltipProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
|
|
12
59
|
export declare const TooltipDark: React.ForwardRefExoticComponent<Omit<TooltipProps, "variant"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC9C,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,QAAA,MAAM,OAAO,qFA+IZ,CAAA;AAID,eAAO,MAAM,YAAY,sGAIxB,CAAA;AAGD,eAAO,MAAM,WAAW,sGAIvB,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* 업로드된 파일 정보 인터페이스 / Uploaded file information interface
|
|
4
|
+
* @typedef {Object} UploadedFile
|
|
5
|
+
* @property {string} id - 파일 고유 ID / File unique ID
|
|
6
|
+
* @property {File} file - 파일 객체 / File object
|
|
7
|
+
* @property {string} name - 파일 이름 / File name
|
|
8
|
+
* @property {number} size - 파일 크기 (bytes) / File size in bytes
|
|
9
|
+
* @property {string} type - 파일 타입 / File type
|
|
10
|
+
* @property {number} [progress] - 업로드 진행률 (0-100) / Upload progress (0-100)
|
|
11
|
+
* @property {"pending" | "uploading" | "success" | "error"} [status] - 업로드 상태 / Upload status
|
|
12
|
+
* @property {string} [url] - 업로드된 파일 URL / Uploaded file URL
|
|
13
|
+
* @property {string} [error] - 에러 메시지 / Error message
|
|
14
|
+
*/
|
|
15
|
+
export interface UploadedFile {
|
|
16
|
+
id: string;
|
|
17
|
+
file: File;
|
|
18
|
+
name: string;
|
|
19
|
+
size: number;
|
|
20
|
+
type: string;
|
|
21
|
+
progress?: number;
|
|
22
|
+
status?: "pending" | "uploading" | "success" | "error";
|
|
23
|
+
url?: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Upload 컴포넌트의 props / Upload component props
|
|
28
|
+
* @typedef {Object} UploadProps
|
|
29
|
+
* @property {UploadedFile[]} [files] - 업로드된 파일 목록 / Uploaded files list
|
|
30
|
+
* @property {(files: File[]) => void} [onChange] - 파일 선택 핸들러 / File selection handler
|
|
31
|
+
* @property {(file: UploadedFile) => void} [onRemove] - 파일 제거 핸들러 / File removal handler
|
|
32
|
+
* @property {boolean} [multiple=false] - 다중 파일 선택 허용 / Allow multiple file selection
|
|
33
|
+
* @property {string} [accept] - 허용할 파일 타입 (예: "image/*", ".pdf") / Accepted file types
|
|
34
|
+
* @property {number} [maxSize] - 최대 파일 크기 (bytes) / Maximum file size in bytes
|
|
35
|
+
* @property {number} [maxFiles] - 최대 파일 개수 / Maximum number of files
|
|
36
|
+
* @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state
|
|
37
|
+
* @property {boolean} [dragDrop=true] - 드래그 앤 드롭 활성화 / Enable drag and drop
|
|
38
|
+
* @property {string} [placeholder="파일을 선택하거나 여기에 드래그하세요"] - 플레이스홀더 / Placeholder
|
|
39
|
+
* @property {"sm" | "md" | "lg"} [size="md"] - 크기 / Size
|
|
40
|
+
* @property {string} [className] - 추가 클래스명 / Additional class name
|
|
41
|
+
*/
|
|
42
|
+
export interface UploadProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
43
|
+
files?: UploadedFile[];
|
|
44
|
+
onChange?: (files: File[]) => void;
|
|
45
|
+
onRemove?: (file: UploadedFile) => void;
|
|
46
|
+
multiple?: boolean;
|
|
47
|
+
accept?: string;
|
|
48
|
+
maxSize?: number;
|
|
49
|
+
maxFiles?: number;
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
dragDrop?: boolean;
|
|
52
|
+
placeholder?: string;
|
|
53
|
+
size?: "sm" | "md" | "lg";
|
|
54
|
+
className?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Upload 컴포넌트 / Upload component
|
|
58
|
+
*
|
|
59
|
+
* 파일을 업로드할 수 있는 컴포넌트입니다.
|
|
60
|
+
* 드래그 앤 드롭, 다중 파일 선택, 파일 크기 제한 등을 지원합니다.
|
|
61
|
+
*
|
|
62
|
+
* Component for uploading files.
|
|
63
|
+
* Supports drag and drop, multiple file selection, file size limits, and more.
|
|
64
|
+
*
|
|
65
|
+
* @component
|
|
66
|
+
* @example
|
|
67
|
+
* // 기본 사용 / Basic usage
|
|
68
|
+
* <Upload
|
|
69
|
+
* onChange={(files) => console.log(files)}
|
|
70
|
+
* />
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // 이미지만, 다중 선택 / Images only, multiple selection
|
|
74
|
+
* <Upload
|
|
75
|
+
* accept="image/*"
|
|
76
|
+
* multiple
|
|
77
|
+
* maxSize={5 * 1024 * 1024} // 5MB
|
|
78
|
+
* maxFiles={5}
|
|
79
|
+
* files={uploadedFiles}
|
|
80
|
+
* onRemove={(file) => handleRemove(file)}
|
|
81
|
+
* />
|
|
82
|
+
*
|
|
83
|
+
* @param {UploadProps} props - Upload 컴포넌트의 props / Upload component props
|
|
84
|
+
* @returns {JSX.Element} Upload 컴포넌트 / Upload component
|
|
85
|
+
*/
|
|
86
|
+
export declare const Upload: React.ForwardRefExoticComponent<UploadProps & React.RefAttributes<HTMLDivElement>>;
|
|
87
|
+
//# sourceMappingURL=Upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Upload.d.ts","sourceRoot":"","sources":["../../src/components/Upload.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACzF,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,MAAM,oFAiNlB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TransitionType = 'fade' | 'slide' | 'scale' | 'flip' | 'morph' | 'cube' | 'zoom' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right';
|
|
3
|
+
export type TransitionEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bounce' | 'elastic' | 'smooth';
|
|
4
|
+
export interface AdvancedPageTransitionProps {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
type?: TransitionType;
|
|
8
|
+
duration?: number;
|
|
9
|
+
easing?: TransitionEasing;
|
|
10
|
+
delay?: number;
|
|
11
|
+
autoStart?: boolean;
|
|
12
|
+
onStart?: () => void;
|
|
13
|
+
onComplete?: () => void;
|
|
14
|
+
showProgress?: boolean;
|
|
15
|
+
progressClassName?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const AdvancedPageTransition: React.ForwardRefExoticComponent<AdvancedPageTransitionProps & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export declare const FadePageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export declare const SlidePageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
export declare const ScalePageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
export declare const FlipPageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
export declare const MorphPageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export declare const CubePageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
export declare const ZoomPageTransition: React.ForwardRefExoticComponent<Omit<AdvancedPageTransitionProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
//# sourceMappingURL=AdvancedPageTransition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdvancedPageTransition.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/AdvancedPageTransition.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAG1D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,CAAA;AAEjB,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,QAAQ,GACR,SAAS,GACT,QAAQ,CAAA;AAEZ,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,sBAAsB,oGAkNjC,CAAA;AAKF,eAAO,MAAM,kBAAkB,kHAE7B,CAAA;AAEF,eAAO,MAAM,mBAAmB,kHAE9B,CAAA;AAEF,eAAO,MAAM,mBAAmB,kHAE9B,CAAA;AAEF,eAAO,MAAM,kBAAkB,kHAE7B,CAAA;AAEF,eAAO,MAAM,mBAAmB,kHAE9B,CAAA;AAEF,eAAO,MAAM,kBAAkB,kHAE7B,CAAA;AAEF,eAAO,MAAM,kBAAkB,kHAE7B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type TransitionType = 'fade' | 'slide' | 'scale' | 'flip' | 'morph' | 'cube' | 'zoom' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right';
|
|
2
|
+
export type TransitionEasing = 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bounce' | 'elastic' | 'smooth';
|
|
3
|
+
export interface TransitionConfig {
|
|
4
|
+
type: TransitionType;
|
|
5
|
+
duration: number;
|
|
6
|
+
easing: TransitionEasing;
|
|
7
|
+
delay?: number;
|
|
8
|
+
stagger?: number;
|
|
9
|
+
direction?: 'forward' | 'backward';
|
|
10
|
+
onStart?: () => void;
|
|
11
|
+
onComplete?: () => void;
|
|
12
|
+
onReverse?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface PageTransitionState {
|
|
15
|
+
isTransitioning: boolean;
|
|
16
|
+
isVisible: boolean;
|
|
17
|
+
currentStep: number;
|
|
18
|
+
progress: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PageTransitionControls {
|
|
21
|
+
start: (config?: Partial<TransitionConfig>) => Promise<void>;
|
|
22
|
+
reverse: () => Promise<void>;
|
|
23
|
+
pause: () => void;
|
|
24
|
+
resume: () => void;
|
|
25
|
+
reset: () => void;
|
|
26
|
+
}
|
|
27
|
+
export declare const usePageTransition: (initialConfig?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
28
|
+
export declare const useFadeTransition: (config?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
29
|
+
export declare const useSlideTransition: (config?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
30
|
+
export declare const useScaleTransition: (config?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
31
|
+
export declare const useMorphTransition: (config?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
32
|
+
export declare const useCubeTransition: (config?: Partial<TransitionConfig>) => [PageTransitionState, PageTransitionControls];
|
|
33
|
+
//# sourceMappingURL=usePageTransition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageTransition.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/usePageTransition.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,CAAA;AAEjB,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,QAAQ,GACR,SAAS,GACT,QAAQ,CAAA;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,eAAO,MAAM,iBAAiB,GAC5B,gBAAe,OAAO,CAAC,gBAAgB,CAAM,KAC5C,CAAC,mBAAmB,EAAE,sBAAsB,CAgJ9C,CAAA;AAGD,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,CAAC,gBAAgB,CAAC,kDAEnE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,CAAC,gBAAgB,CAAC,kDAEpE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,CAAC,gBAAgB,CAAC,kDAEpE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,CAAC,gBAAgB,CAAC,kDAEpE,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,CAAC,gBAAgB,CAAC,kDAEnE,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { TransitionType, TransitionEasing, TransitionConfig } from './usePageTransition';
|
|
2
|
+
export interface PageTransitionManagerConfig {
|
|
3
|
+
defaultType?: TransitionType;
|
|
4
|
+
defaultDuration?: number;
|
|
5
|
+
defaultEasing?: TransitionEasing;
|
|
6
|
+
enableHistory?: boolean;
|
|
7
|
+
enableProgress?: boolean;
|
|
8
|
+
enableDebug?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PageTransitionEvent {
|
|
11
|
+
id: string;
|
|
12
|
+
type: TransitionType;
|
|
13
|
+
duration: number;
|
|
14
|
+
easing: TransitionEasing;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
status: 'pending' | 'active' | 'completed' | 'failed';
|
|
17
|
+
}
|
|
18
|
+
export interface PageTransitionManagerState {
|
|
19
|
+
isTransitioning: boolean;
|
|
20
|
+
currentTransition: PageTransitionEvent | null;
|
|
21
|
+
transitionHistory: PageTransitionEvent[];
|
|
22
|
+
totalTransitions: number;
|
|
23
|
+
averageDuration: number;
|
|
24
|
+
}
|
|
25
|
+
export interface PageTransitionManagerControls {
|
|
26
|
+
startTransition: (config: Partial<TransitionConfig>) => Promise<string>;
|
|
27
|
+
cancelTransition: (id: string) => void;
|
|
28
|
+
pauseAll: () => void;
|
|
29
|
+
resumeAll: () => void;
|
|
30
|
+
clearHistory: () => void;
|
|
31
|
+
getTransitionStats: () => {
|
|
32
|
+
total: number;
|
|
33
|
+
average: number;
|
|
34
|
+
byType: Record<TransitionType, number>;
|
|
35
|
+
byStatus: Record<string, number>;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export declare const usePageTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
39
|
+
export declare const useFadeTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
40
|
+
export declare const useSlideTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
41
|
+
export declare const useScaleTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
42
|
+
export declare const useMorphTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
43
|
+
export declare const useCubeTransitionManager: (config?: PageTransitionManagerConfig) => [PageTransitionManagerState, PageTransitionManagerControls];
|
|
44
|
+
//# sourceMappingURL=usePageTransitionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageTransitionManager.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/usePageTransitionManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAExF,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,gBAAgB,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,OAAO,CAAA;IACxB,iBAAiB,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAC7C,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;IACxC,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACvE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,kBAAkB,EAAE,MAAM;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACjC,CAAA;CACF;AAED,eAAO,MAAM,wBAAwB,GACnC,SAAQ,2BAAgC,KACvC,CAAC,0BAA0B,EAAE,6BAA6B,CAqL5D,CAAA;AAGD,eAAO,MAAM,wBAAwB,GAAI,SAAS,2BAA2B,gEAE5E,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,SAAS,2BAA2B,gEAE7E,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,SAAS,2BAA2B,gEAE7E,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,SAAS,2BAA2B,gEAE7E,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,SAAS,2BAA2B,gEAE5E,CAAA"}
|