z-biz-tool-shared 0.1.0
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 +10 -0
- package/dist/agent/AgentManager.d.ts +15 -0
- package/dist/agent/AgentManager.d.ts.map +1 -0
- package/dist/agent/AgentManager.js +152 -0
- package/dist/agent/AgentManager.js.map +1 -0
- package/dist/agent/AgentPanel.d.ts +3 -0
- package/dist/agent/AgentPanel.d.ts.map +1 -0
- package/dist/agent/AgentPanel.js +98 -0
- package/dist/agent/AgentPanel.js.map +1 -0
- package/dist/agent/QueryHistoryViewer.d.ts +15 -0
- package/dist/agent/QueryHistoryViewer.d.ts.map +1 -0
- package/dist/agent/QueryHistoryViewer.js +78 -0
- package/dist/agent/QueryHistoryViewer.js.map +1 -0
- package/dist/agent/SQLEditor.d.ts +8 -0
- package/dist/agent/SQLEditor.d.ts.map +1 -0
- package/dist/agent/SQLEditor.js +40 -0
- package/dist/agent/SQLEditor.js.map +1 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +7 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/types.d.ts +35 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/ai/AIManager.d.ts +17 -0
- package/dist/ai/AIManager.d.ts.map +1 -0
- package/dist/ai/AIManager.js +191 -0
- package/dist/ai/AIManager.js.map +1 -0
- package/dist/ai/context.d.ts +17 -0
- package/dist/ai/context.d.ts.map +1 -0
- package/dist/ai/context.js +82 -0
- package/dist/ai/context.js.map +1 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/types.d.ts +43 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/components/GlobalShortcutHandler.d.ts +17 -0
- package/dist/components/GlobalShortcutHandler.d.ts.map +1 -0
- package/dist/components/GlobalShortcutHandler.js +74 -0
- package/dist/components/GlobalShortcutHandler.js.map +1 -0
- package/dist/components/Navbar.d.ts +16 -0
- package/dist/components/Navbar.d.ts.map +1 -0
- package/dist/components/Navbar.js +136 -0
- package/dist/components/Navbar.js.map +1 -0
- package/dist/components/ProgressIndicator.d.ts +12 -0
- package/dist/components/ProgressIndicator.d.ts.map +1 -0
- package/dist/components/ProgressIndicator.js +6 -0
- package/dist/components/ProgressIndicator.js.map +1 -0
- package/dist/components/ShortcutDisplay.d.ts +8 -0
- package/dist/components/ShortcutDisplay.d.ts.map +1 -0
- package/dist/components/ShortcutDisplay.js +5 -0
- package/dist/components/ShortcutDisplay.js.map +1 -0
- package/dist/components/Spotlight.d.ts +22 -0
- package/dist/components/Spotlight.d.ts.map +1 -0
- package/dist/components/Spotlight.js +208 -0
- package/dist/components/Spotlight.js.map +1 -0
- package/dist/components/SpotlightProvider.d.ts +5 -0
- package/dist/components/SpotlightProvider.d.ts.map +1 -0
- package/dist/components/SpotlightProvider.js +22 -0
- package/dist/components/SpotlightProvider.js.map +1 -0
- package/dist/components/StateIndicator.d.ts +11 -0
- package/dist/components/StateIndicator.d.ts.map +1 -0
- package/dist/components/StateIndicator.js +12 -0
- package/dist/components/StateIndicator.js.map +1 -0
- package/dist/components/UIDesignSystem.d.ts +124 -0
- package/dist/components/UIDesignSystem.d.ts.map +1 -0
- package/dist/components/UIDesignSystem.js +222 -0
- package/dist/components/UIDesignSystem.js.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/interactions/index.d.ts +2 -0
- package/dist/interactions/index.d.ts.map +1 -0
- package/dist/interactions/index.js +3 -0
- package/dist/interactions/index.js.map +1 -0
- package/dist/interactions/interactionPatterns.d.ts +155 -0
- package/dist/interactions/interactionPatterns.d.ts.map +1 -0
- package/dist/interactions/interactionPatterns.js +180 -0
- package/dist/interactions/interactionPatterns.js.map +1 -0
- package/dist/notifications/ToastContainer.d.ts +3 -0
- package/dist/notifications/ToastContainer.d.ts.map +1 -0
- package/dist/notifications/ToastContainer.js +14 -0
- package/dist/notifications/ToastContainer.js.map +1 -0
- package/dist/notifications/index.d.ts +3 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +4 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/notificationManager.d.ts +18 -0
- package/dist/notifications/notificationManager.d.ts.map +1 -0
- package/dist/notifications/notificationManager.js +68 -0
- package/dist/notifications/notificationManager.js.map +1 -0
- package/dist/notifications/types.d.ts +9 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/notifications/types.js +2 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/shared/AppShell.d.ts +14 -0
- package/dist/shared/AppShell.d.ts.map +1 -0
- package/dist/shared/AppShell.js +94 -0
- package/dist/shared/AppShell.js.map +1 -0
- package/dist/shared/CollapsiblePanel.d.ts +31 -0
- package/dist/shared/CollapsiblePanel.d.ts.map +1 -0
- package/dist/shared/CollapsiblePanel.js +140 -0
- package/dist/shared/CollapsiblePanel.js.map +1 -0
- package/dist/shared/DragHandle.d.ts +37 -0
- package/dist/shared/DragHandle.d.ts.map +1 -0
- package/dist/shared/DragHandle.js +85 -0
- package/dist/shared/DragHandle.js.map +1 -0
- package/dist/shared/Omnibar.d.ts +19 -0
- package/dist/shared/Omnibar.d.ts.map +1 -0
- package/dist/shared/Omnibar.js +258 -0
- package/dist/shared/Omnibar.js.map +1 -0
- package/dist/shared/States.d.ts +22 -0
- package/dist/shared/States.d.ts.map +1 -0
- package/dist/shared/States.js +190 -0
- package/dist/shared/States.js.map +1 -0
- package/dist/shared/TabsBar.d.ts +7 -0
- package/dist/shared/TabsBar.d.ts.map +1 -0
- package/dist/shared/TabsBar.js +186 -0
- package/dist/shared/TabsBar.js.map +1 -0
- package/dist/shared/ThemeContext.d.ts +17 -0
- package/dist/shared/ThemeContext.d.ts.map +1 -0
- package/dist/shared/ThemeContext.js +134 -0
- package/dist/shared/ThemeContext.js.map +1 -0
- package/dist/shared/designTokens.d.ts +54 -0
- package/dist/shared/designTokens.d.ts.map +1 -0
- package/dist/shared/designTokens.js +58 -0
- package/dist/shared/designTokens.js.map +1 -0
- package/dist/shared/index.d.ts +10 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +10 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/useKeyboardShortcuts.d.ts +37 -0
- package/dist/shared/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/shared/useKeyboardShortcuts.js +161 -0
- package/dist/shared/useKeyboardShortcuts.js.map +1 -0
- package/dist/shortcuts/index.d.ts +3 -0
- package/dist/shortcuts/index.d.ts.map +1 -0
- package/dist/shortcuts/index.js +4 -0
- package/dist/shortcuts/index.js.map +1 -0
- package/dist/shortcuts/shortcutManager.d.ts +26 -0
- package/dist/shortcuts/shortcutManager.d.ts.map +1 -0
- package/dist/shortcuts/shortcutManager.js +90 -0
- package/dist/shortcuts/shortcutManager.js.map +1 -0
- package/dist/shortcuts/types.d.ts +8 -0
- package/dist/shortcuts/types.d.ts.map +1 -0
- package/dist/shortcuts/types.js +2 -0
- package/dist/shortcuts/types.js.map +1 -0
- package/dist/styles/designTokens.d.ts +181 -0
- package/dist/styles/designTokens.d.ts.map +1 -0
- package/dist/styles/designTokens.js +199 -0
- package/dist/styles/designTokens.js.map +1 -0
- package/dist/styles/globalStyles.d.ts +8 -0
- package/dist/styles/globalStyles.d.ts.map +1 -0
- package/dist/styles/globalStyles.js +216 -0
- package/dist/styles/globalStyles.js.map +1 -0
- package/dist/styles/index.d.ts +3 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +4 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/theme/ThemeContext.d.ts +17 -0
- package/dist/theme/ThemeContext.d.ts.map +1 -0
- package/dist/theme/ThemeContext.js +60 -0
- package/dist/theme/ThemeContext.js.map +1 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +5 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/themeManager.d.ts +12 -0
- package/dist/theme/themeManager.d.ts.map +1 -0
- package/dist/theme/themeManager.js +160 -0
- package/dist/theme/themeManager.js.map +1 -0
- package/dist/theme/types.d.ts +16 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +3 -0
- package/dist/theme/types.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设计系统规范
|
|
3
|
+
* z-biz-tool UI/UX 设计指南
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 设计原则
|
|
7
|
+
* 1. 统一 - 保持一致的视觉语言和交互模式
|
|
8
|
+
* 2. 简洁 - 清晰直观,减少认知负担
|
|
9
|
+
* 3. 反馈 - 及时的状态反馈和交互提示
|
|
10
|
+
* 4. 灵活 - 支持主题切换和自定义
|
|
11
|
+
*/
|
|
12
|
+
// 颜色系统
|
|
13
|
+
export const COLORS = {
|
|
14
|
+
// 主色
|
|
15
|
+
primary: '#FFC131',
|
|
16
|
+
primaryLight: '#FFD54F',
|
|
17
|
+
primaryDark: '#FFA000',
|
|
18
|
+
// 辅助色
|
|
19
|
+
accent: '#61DAFB',
|
|
20
|
+
accentLight: '#88E0FC',
|
|
21
|
+
accentDark: '#3DB8E9',
|
|
22
|
+
// 状态色
|
|
23
|
+
success: '#4caf50',
|
|
24
|
+
successLight: '#81c784',
|
|
25
|
+
successDark: '#388e3c',
|
|
26
|
+
warning: '#ff9800',
|
|
27
|
+
warningLight: '#ffb74d',
|
|
28
|
+
warningDark: '#f57c00',
|
|
29
|
+
error: '#f44336',
|
|
30
|
+
errorLight: '#e57373',
|
|
31
|
+
errorDark: '#d32f2f',
|
|
32
|
+
info: '#2196f3',
|
|
33
|
+
infoLight: '#64b5f6',
|
|
34
|
+
infoDark: '#1976d2',
|
|
35
|
+
// 中性色
|
|
36
|
+
white: '#ffffff',
|
|
37
|
+
black: '#1e1e1e',
|
|
38
|
+
// 背景色
|
|
39
|
+
backgroundLight: '#ffffff',
|
|
40
|
+
backgroundDark: '#1e1e1e',
|
|
41
|
+
surfaceLight: '#f5f5f5',
|
|
42
|
+
surfaceDark: '#2d2d2d',
|
|
43
|
+
// 文本色
|
|
44
|
+
textLight: '#1e1e1e',
|
|
45
|
+
textDark: '#ffffff',
|
|
46
|
+
textSecondaryLight: '#666666',
|
|
47
|
+
textSecondaryDark: '#b0b0b0',
|
|
48
|
+
// 边框色
|
|
49
|
+
borderLight: '#e0e0e0',
|
|
50
|
+
borderDark: '#3d3d3d'
|
|
51
|
+
};
|
|
52
|
+
// 间距系统
|
|
53
|
+
export const SPACING = {
|
|
54
|
+
xs: 4,
|
|
55
|
+
sm: 8,
|
|
56
|
+
md: 16,
|
|
57
|
+
lg: 24,
|
|
58
|
+
xl: 32,
|
|
59
|
+
'2xl': 48,
|
|
60
|
+
'3xl': 64
|
|
61
|
+
};
|
|
62
|
+
// 圆角系统
|
|
63
|
+
export const BORDER_RADIUS = {
|
|
64
|
+
sm: 4,
|
|
65
|
+
md: 8,
|
|
66
|
+
lg: 12,
|
|
67
|
+
xl: 16,
|
|
68
|
+
'2xl': 24,
|
|
69
|
+
full: 9999
|
|
70
|
+
};
|
|
71
|
+
// 字体系统
|
|
72
|
+
export const FONT_FAMILY = {
|
|
73
|
+
sans: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
|
|
74
|
+
mono: 'Fira Code, "JetBrains Mono", "Consolas", "Monaco", monospace'
|
|
75
|
+
};
|
|
76
|
+
export const FONT_SIZE = {
|
|
77
|
+
xs: 12,
|
|
78
|
+
sm: 14,
|
|
79
|
+
base: 16,
|
|
80
|
+
lg: 18,
|
|
81
|
+
xl: 20,
|
|
82
|
+
'2xl': 24,
|
|
83
|
+
'3xl': 30,
|
|
84
|
+
'4xl': 36
|
|
85
|
+
};
|
|
86
|
+
export const FONT_WEIGHT = {
|
|
87
|
+
light: 300,
|
|
88
|
+
normal: 400,
|
|
89
|
+
medium: 500,
|
|
90
|
+
semibold: 600,
|
|
91
|
+
bold: 700
|
|
92
|
+
};
|
|
93
|
+
// 阴影系统
|
|
94
|
+
export const SHADOW = {
|
|
95
|
+
sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
|
|
96
|
+
md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
|
|
97
|
+
lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
|
|
98
|
+
xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
|
|
99
|
+
'2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)'
|
|
100
|
+
};
|
|
101
|
+
// 过渡系统
|
|
102
|
+
export const TRANSITION = {
|
|
103
|
+
fast: '150ms ease-in-out',
|
|
104
|
+
normal: '200ms ease-in-out',
|
|
105
|
+
slow: '300ms ease-in-out',
|
|
106
|
+
all: 'all 200ms ease-in-out'
|
|
107
|
+
};
|
|
108
|
+
// 断点系统
|
|
109
|
+
export const BREAKPOINTS = {
|
|
110
|
+
sm: 640,
|
|
111
|
+
md: 768,
|
|
112
|
+
lg: 1024,
|
|
113
|
+
xl: 1280
|
|
114
|
+
};
|
|
115
|
+
// 按钮样式
|
|
116
|
+
export const BUTTON_STYLES = {
|
|
117
|
+
primary: {
|
|
118
|
+
backgroundColor: COLORS.primary,
|
|
119
|
+
color: COLORS.black,
|
|
120
|
+
hover: {
|
|
121
|
+
backgroundColor: COLORS.primaryDark
|
|
122
|
+
},
|
|
123
|
+
active: {
|
|
124
|
+
transform: 'scale(0.98)'
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
secondary: {
|
|
128
|
+
backgroundColor: COLORS.surfaceDark,
|
|
129
|
+
color: COLORS.textDark,
|
|
130
|
+
border: `1px solid ${COLORS.borderDark}`,
|
|
131
|
+
hover: {
|
|
132
|
+
backgroundColor: '#3d3d3d'
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
ghost: {
|
|
136
|
+
backgroundColor: 'transparent',
|
|
137
|
+
color: COLORS.textDark,
|
|
138
|
+
hover: {
|
|
139
|
+
backgroundColor: COLORS.backgroundDark
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
danger: {
|
|
143
|
+
backgroundColor: COLORS.error,
|
|
144
|
+
color: COLORS.white,
|
|
145
|
+
hover: {
|
|
146
|
+
backgroundColor: COLORS.errorDark
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
// 卡片样式
|
|
151
|
+
export const CARD_STYLES = {
|
|
152
|
+
base: {
|
|
153
|
+
backgroundColor: COLORS.surfaceDark,
|
|
154
|
+
borderRadius: BORDER_RADIUS.lg,
|
|
155
|
+
border: `1px solid ${COLORS.borderDark}`
|
|
156
|
+
},
|
|
157
|
+
padding: {
|
|
158
|
+
sm: 16,
|
|
159
|
+
md: 24,
|
|
160
|
+
lg: 32
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
// 表单样式
|
|
164
|
+
export const FORM_STYLES = {
|
|
165
|
+
input: {
|
|
166
|
+
backgroundColor: COLORS.surfaceDark,
|
|
167
|
+
color: COLORS.textDark,
|
|
168
|
+
border: `1px solid ${COLORS.borderDark}`,
|
|
169
|
+
borderRadius: BORDER_RADIUS.md,
|
|
170
|
+
padding: {
|
|
171
|
+
sm: '8px 12px',
|
|
172
|
+
md: '12px 16px',
|
|
173
|
+
lg: '16px 20px'
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
label: {
|
|
177
|
+
color: COLORS.textSecondaryDark,
|
|
178
|
+
fontSize: FONT_SIZE.sm,
|
|
179
|
+
fontWeight: FONT_WEIGHT.medium
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
// 状态指示器样式
|
|
183
|
+
export const STATUS_INDICATOR = {
|
|
184
|
+
online: {
|
|
185
|
+
backgroundColor: COLORS.success,
|
|
186
|
+
animation: 'pulse'
|
|
187
|
+
},
|
|
188
|
+
busy: {
|
|
189
|
+
backgroundColor: COLORS.warning,
|
|
190
|
+
animation: 'pulse'
|
|
191
|
+
},
|
|
192
|
+
error: {
|
|
193
|
+
backgroundColor: COLORS.error
|
|
194
|
+
},
|
|
195
|
+
offline: {
|
|
196
|
+
backgroundColor: COLORS.textSecondaryDark
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=designTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designTokens.js","sourceRoot":"","sources":["../../src/styles/designTokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局样式
|
|
3
|
+
* z-biz-tool 的全局 CSS
|
|
4
|
+
*/
|
|
5
|
+
export declare const globalStyles = "\n :root {\n /* \u989C\u8272\u53D8\u91CF */\n --color-primary: #FFC131;\n --color-primary-light: #FFD54F;\n --color-primary-dark: #FFA000;\n --color-accent: #61DAFB;\n --color-success: #4caf50;\n --color-warning: #ff9800;\n --color-error: #f44336;\n --color-info: #2196f3;\n \n /* \u80CC\u666F\u53D8\u91CF */\n --color-background: #1e1e1e;\n --color-surface: #2d2d2d;\n --color-text: #ffffff;\n --color-text-secondary: #b0b0b0;\n --color-border: #3d3d3d;\n \n /* \u95F4\u8DDD\u53D8\u91CF */\n --spacing-xs: 4px;\n --spacing-sm: 8px;\n --spacing-md: 16px;\n --spacing-lg: 24px;\n --spacing-xl: 32px;\n \n /* \u5706\u89D2\u53D8\u91CF */\n --radius-sm: 4px;\n --radius-md: 8px;\n --radius-lg: 12px;\n --radius-xl: 16px;\n \n /* \u5B57\u4F53\u53D8\u91CF */\n --font-sans: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --font-mono: \"Fira Code\", \"JetBrains Mono\", Consolas, Monaco, monospace;\n \n /* \u9634\u5F71\u53D8\u91CF */\n --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\n \n /* \u8FC7\u6E21\u53D8\u91CF */\n --transition-fast: 150ms ease-in-out;\n --transition-normal: 200ms ease-in-out;\n }\n \n * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n \n body {\n font-family: var(--font-sans);\n font-size: 16px;\n line-height: 1.5;\n color: var(--color-text);\n background-color: var(--color-background);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n \n /* \u6EDA\u52A8\u6761\u6837\u5F0F */\n ::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n \n ::-webkit-scrollbar-track {\n background: var(--color-surface);\n border-radius: var(--radius-md);\n }\n \n ::-webkit-scrollbar-thumb {\n background: var(--color-border);\n border-radius: var(--radius-md);\n }\n \n ::-webkit-scrollbar-thumb:hover {\n background: #555;\n }\n \n /* \u9009\u62E9\u5668\u6837\u5F0F */\n ::selection {\n background: var(--color-primary);\n color: var(--color-text);\n }\n \n /* \u6309\u94AE\u6837\u5F0F */\n button {\n cursor: pointer;\n font-family: inherit;\n font-size: inherit;\n }\n \n button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n \n /* \u8F93\u5165\u6846\u6837\u5F0F */\n input,\n textarea,\n select {\n font-family: inherit;\n font-size: inherit;\n }\n \n input:focus,\n textarea:focus,\n select:focus {\n outline: none;\n }\n \n /* \u94FE\u63A5\u6837\u5F0F */\n a {\n color: var(--color-primary);\n text-decoration: none;\n }\n \n a:hover {\n text-decoration: underline;\n }\n \n /* \u52A8\u753B */\n @keyframes slide-in {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n \n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n \n @keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n }\n \n .animate-slide-in {\n animation: slide-in var(--transition-normal);\n }\n \n .animate-fade-in {\n animation: fade-in var(--transition-normal);\n }\n \n .animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n \n /* \u6697\u8272\u6A21\u5F0F\u9002\u914D */\n @media (prefers-color-scheme: dark) {\n :root {\n --color-background: #1e1e1e;\n --color-surface: #2d2d2d;\n --color-text: #ffffff;\n --color-text-secondary: #b0b0b0;\n --color-border: #3d3d3d;\n }\n }\n \n /* \u6D45\u8272\u6A21\u5F0F\u9002\u914D */\n @media (prefers-color-scheme: light) {\n :root {\n --color-background: #ffffff;\n --color-surface: #f5f5f5;\n --color-text: #1e1e1e;\n --color-text-secondary: #666666;\n --color-border: #e0e0e0;\n }\n }\n";
|
|
6
|
+
export declare const loadGlobalStyles: () => void;
|
|
7
|
+
export declare const unloadGlobalStyles: () => void;
|
|
8
|
+
//# sourceMappingURL=globalStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalStyles.d.ts","sourceRoot":"","sources":["../../src/styles/globalStyles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,YAAY,shIA2LxB,CAAC;AAGF,eAAO,MAAM,gBAAgB,YAW5B,CAAC;AAGF,eAAO,MAAM,kBAAkB,YAO9B,CAAC"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局样式
|
|
3
|
+
* z-biz-tool 的全局 CSS
|
|
4
|
+
*/
|
|
5
|
+
// CSS 变量注入
|
|
6
|
+
export const globalStyles = `
|
|
7
|
+
:root {
|
|
8
|
+
/* 颜色变量 */
|
|
9
|
+
--color-primary: #FFC131;
|
|
10
|
+
--color-primary-light: #FFD54F;
|
|
11
|
+
--color-primary-dark: #FFA000;
|
|
12
|
+
--color-accent: #61DAFB;
|
|
13
|
+
--color-success: #4caf50;
|
|
14
|
+
--color-warning: #ff9800;
|
|
15
|
+
--color-error: #f44336;
|
|
16
|
+
--color-info: #2196f3;
|
|
17
|
+
|
|
18
|
+
/* 背景变量 */
|
|
19
|
+
--color-background: #1e1e1e;
|
|
20
|
+
--color-surface: #2d2d2d;
|
|
21
|
+
--color-text: #ffffff;
|
|
22
|
+
--color-text-secondary: #b0b0b0;
|
|
23
|
+
--color-border: #3d3d3d;
|
|
24
|
+
|
|
25
|
+
/* 间距变量 */
|
|
26
|
+
--spacing-xs: 4px;
|
|
27
|
+
--spacing-sm: 8px;
|
|
28
|
+
--spacing-md: 16px;
|
|
29
|
+
--spacing-lg: 24px;
|
|
30
|
+
--spacing-xl: 32px;
|
|
31
|
+
|
|
32
|
+
/* 圆角变量 */
|
|
33
|
+
--radius-sm: 4px;
|
|
34
|
+
--radius-md: 8px;
|
|
35
|
+
--radius-lg: 12px;
|
|
36
|
+
--radius-xl: 16px;
|
|
37
|
+
|
|
38
|
+
/* 字体变量 */
|
|
39
|
+
--font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
40
|
+
--font-mono: "Fira Code", "JetBrains Mono", Consolas, Monaco, monospace;
|
|
41
|
+
|
|
42
|
+
/* 阴影变量 */
|
|
43
|
+
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
44
|
+
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
45
|
+
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
|
|
46
|
+
|
|
47
|
+
/* 过渡变量 */
|
|
48
|
+
--transition-fast: 150ms ease-in-out;
|
|
49
|
+
--transition-normal: 200ms ease-in-out;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
* {
|
|
53
|
+
box-sizing: border-box;
|
|
54
|
+
margin: 0;
|
|
55
|
+
padding: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
body {
|
|
59
|
+
font-family: var(--font-sans);
|
|
60
|
+
font-size: 16px;
|
|
61
|
+
line-height: 1.5;
|
|
62
|
+
color: var(--color-text);
|
|
63
|
+
background-color: var(--color-background);
|
|
64
|
+
-webkit-font-smoothing: antialiased;
|
|
65
|
+
-moz-osx-font-smoothing: grayscale;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* 滚动条样式 */
|
|
69
|
+
::-webkit-scrollbar {
|
|
70
|
+
width: 8px;
|
|
71
|
+
height: 8px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
::-webkit-scrollbar-track {
|
|
75
|
+
background: var(--color-surface);
|
|
76
|
+
border-radius: var(--radius-md);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
::-webkit-scrollbar-thumb {
|
|
80
|
+
background: var(--color-border);
|
|
81
|
+
border-radius: var(--radius-md);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
::-webkit-scrollbar-thumb:hover {
|
|
85
|
+
background: #555;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* 选择器样式 */
|
|
89
|
+
::selection {
|
|
90
|
+
background: var(--color-primary);
|
|
91
|
+
color: var(--color-text);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* 按钮样式 */
|
|
95
|
+
button {
|
|
96
|
+
cursor: pointer;
|
|
97
|
+
font-family: inherit;
|
|
98
|
+
font-size: inherit;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
button:disabled {
|
|
102
|
+
cursor: not-allowed;
|
|
103
|
+
opacity: 0.5;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* 输入框样式 */
|
|
107
|
+
input,
|
|
108
|
+
textarea,
|
|
109
|
+
select {
|
|
110
|
+
font-family: inherit;
|
|
111
|
+
font-size: inherit;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
input:focus,
|
|
115
|
+
textarea:focus,
|
|
116
|
+
select:focus {
|
|
117
|
+
outline: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* 链接样式 */
|
|
121
|
+
a {
|
|
122
|
+
color: var(--color-primary);
|
|
123
|
+
text-decoration: none;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
a:hover {
|
|
127
|
+
text-decoration: underline;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* 动画 */
|
|
131
|
+
@keyframes slide-in {
|
|
132
|
+
from {
|
|
133
|
+
opacity: 0;
|
|
134
|
+
transform: translateY(10px);
|
|
135
|
+
}
|
|
136
|
+
to {
|
|
137
|
+
opacity: 1;
|
|
138
|
+
transform: translateY(0);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@keyframes fade-in {
|
|
143
|
+
from {
|
|
144
|
+
opacity: 0;
|
|
145
|
+
}
|
|
146
|
+
to {
|
|
147
|
+
opacity: 1;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@keyframes pulse {
|
|
152
|
+
0%, 100% {
|
|
153
|
+
opacity: 1;
|
|
154
|
+
}
|
|
155
|
+
50% {
|
|
156
|
+
opacity: 0.5;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.animate-slide-in {
|
|
161
|
+
animation: slide-in var(--transition-normal);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.animate-fade-in {
|
|
165
|
+
animation: fade-in var(--transition-normal);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.animate-pulse {
|
|
169
|
+
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* 暗色模式适配 */
|
|
173
|
+
@media (prefers-color-scheme: dark) {
|
|
174
|
+
:root {
|
|
175
|
+
--color-background: #1e1e1e;
|
|
176
|
+
--color-surface: #2d2d2d;
|
|
177
|
+
--color-text: #ffffff;
|
|
178
|
+
--color-text-secondary: #b0b0b0;
|
|
179
|
+
--color-border: #3d3d3d;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* 浅色模式适配 */
|
|
184
|
+
@media (prefers-color-scheme: light) {
|
|
185
|
+
:root {
|
|
186
|
+
--color-background: #ffffff;
|
|
187
|
+
--color-surface: #f5f5f5;
|
|
188
|
+
--color-text: #1e1e1e;
|
|
189
|
+
--color-text-secondary: #666666;
|
|
190
|
+
--color-border: #e0e0e0;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`;
|
|
194
|
+
// 加载全局样式
|
|
195
|
+
export const loadGlobalStyles = () => {
|
|
196
|
+
if (typeof document === 'undefined')
|
|
197
|
+
return;
|
|
198
|
+
// 检查是否已加载
|
|
199
|
+
const styleId = 'z-biz-tool-global-styles';
|
|
200
|
+
if (document.getElementById(styleId))
|
|
201
|
+
return;
|
|
202
|
+
const styleElement = document.createElement('style');
|
|
203
|
+
styleElement.id = styleId;
|
|
204
|
+
styleElement.textContent = globalStyles;
|
|
205
|
+
document.head.appendChild(styleElement);
|
|
206
|
+
};
|
|
207
|
+
// 卸载全局样式
|
|
208
|
+
export const unloadGlobalStyles = () => {
|
|
209
|
+
if (typeof document === 'undefined')
|
|
210
|
+
return;
|
|
211
|
+
const styleElement = document.getElementById('z-biz-tool-global-styles');
|
|
212
|
+
if (styleElement) {
|
|
213
|
+
styleElement.remove();
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=globalStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalStyles.js","sourceRoot":"","sources":["../../src/styles/globalStyles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,WAAW;AACX,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2L3B,CAAC;AAEF,SAAS;AACT,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAE5C,UAAU;IACV,MAAM,OAAO,GAAG,0BAA0B,CAAC;IAC3C,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;QAAE,OAAO;IAE7C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;IAC1B,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,SAAS;AACT,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAE5C,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACzE,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 主题 Context - 提供给组件使用
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { ThemeColors, ThemeName } from './types';
|
|
6
|
+
interface ThemeContextType {
|
|
7
|
+
currentTheme: ThemeName;
|
|
8
|
+
themeColors: ThemeColors;
|
|
9
|
+
setTheme: (theme: ThemeName) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const ThemeProvider: React.FC<{
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const useTheme: () => ThemeContextType;
|
|
15
|
+
export declare const ThemeStyles: React.FC;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=ThemeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeContext.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtD,UAAU,gBAAgB;IACxB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAmBjE,CAAC;AAEF,eAAO,MAAM,QAAQ,wBAMpB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAiC/B,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* 主题 Context - 提供给组件使用
|
|
4
|
+
*/
|
|
5
|
+
import { createContext, useContext, useEffect } from 'react';
|
|
6
|
+
import { useThemeStore, initTheme } from './themeManager';
|
|
7
|
+
const ThemeContext = createContext(undefined);
|
|
8
|
+
export const ThemeProvider = ({ children }) => {
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
// 初始化主题
|
|
11
|
+
initTheme();
|
|
12
|
+
}, []);
|
|
13
|
+
const { currentTheme, themeConfig, setTheme } = useThemeStore();
|
|
14
|
+
const themeColors = themeConfig.colors;
|
|
15
|
+
return (_jsx(ThemeContext.Provider, { value: {
|
|
16
|
+
currentTheme: currentTheme,
|
|
17
|
+
themeColors,
|
|
18
|
+
setTheme
|
|
19
|
+
}, children: children }));
|
|
20
|
+
};
|
|
21
|
+
export const useTheme = () => {
|
|
22
|
+
const context = useContext(ThemeContext);
|
|
23
|
+
if (context === undefined) {
|
|
24
|
+
throw new Error('useTheme must be used within a ThemeProvider');
|
|
25
|
+
}
|
|
26
|
+
return context;
|
|
27
|
+
};
|
|
28
|
+
// 主题样式注入组件
|
|
29
|
+
export const ThemeStyles = () => {
|
|
30
|
+
const { themeColors } = useTheme();
|
|
31
|
+
return (_jsx("style", { children: `
|
|
32
|
+
:root {
|
|
33
|
+
--color-background: ${themeColors.background};
|
|
34
|
+
--color-surface: ${themeColors.surface};
|
|
35
|
+
--color-primary: ${themeColors.primary};
|
|
36
|
+
--color-text: ${themeColors.text};
|
|
37
|
+
--color-text-secondary: ${themeColors.textSecondary};
|
|
38
|
+
--color-border: ${themeColors.border};
|
|
39
|
+
--color-accent: ${themeColors.accent};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
body {
|
|
43
|
+
background-color: var(--color-background);
|
|
44
|
+
color: var(--color-text);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.bg-primary {
|
|
48
|
+
background-color: var(--color-primary);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.text-primary {
|
|
52
|
+
color: var(--color-primary);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.border-primary {
|
|
56
|
+
border-color: var(--color-primary);
|
|
57
|
+
}
|
|
58
|
+
` }));
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=ThemeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../src/theme/ThemeContext.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS1D,MAAM,YAAY,GAAG,aAAa,CAA+B,SAAS,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,aAAa,GAA4C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ;QACR,SAAS,EAAE,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAEhE,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IAEvC,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE;YAC5B,YAAY,EAAE,YAAY;YAC1B,WAAW;YACX,QAAQ;SACT,YACE,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,WAAW;AACX,MAAM,CAAC,MAAM,WAAW,GAAa,GAAG,EAAE;IACxC,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnC,OAAO,CACL,0BAAQ;;8BAEkB,WAAW,CAAC,UAAU;2BACzB,WAAW,CAAC,OAAO;2BACnB,WAAW,CAAC,OAAO;wBACtB,WAAW,CAAC,IAAI;kCACN,WAAW,CAAC,aAAa;0BACjC,WAAW,CAAC,MAAM;0BAClB,WAAW,CAAC,MAAM;;;;;;;;;;;;;;;;;;;KAmBvC,GAAS,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ThemeName, ThemeConfig, type ThemeColors } from './types';
|
|
2
|
+
interface ThemeStore {
|
|
3
|
+
currentTheme: ThemeName;
|
|
4
|
+
themeConfig: ThemeConfig;
|
|
5
|
+
setTheme: (theme: ThemeName) => void;
|
|
6
|
+
updateTheme: (theme: Partial<ThemeConfig>) => void;
|
|
7
|
+
getThemeColors: () => ThemeColors;
|
|
8
|
+
}
|
|
9
|
+
export declare const useThemeStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ThemeStore>>;
|
|
10
|
+
export declare const initTheme: () => void;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=themeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeManager.d.ts","sourceRoot":"","sources":["../../src/theme/themeManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AA+HnE,UAAU,UAAU;IAClB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,MAAM,WAAW,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,yEAyBvB,CAAC;AAGJ,eAAO,MAAM,SAAS,QAAO,IAS5B,CAAC"}
|