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,161 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* 判断当前焦点是否处于可输入控件内(input/textarea/contenteditable)
|
|
5
|
+
*/
|
|
6
|
+
function isEditableTarget(target) {
|
|
7
|
+
if (!(target instanceof HTMLElement))
|
|
8
|
+
return false;
|
|
9
|
+
const tag = target.tagName;
|
|
10
|
+
if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT")
|
|
11
|
+
return true;
|
|
12
|
+
if (target.isContentEditable)
|
|
13
|
+
return true;
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
function matchSpec(spec, e) {
|
|
17
|
+
const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad/i.test(navigator.platform);
|
|
18
|
+
const modKey = isMac ? e.metaKey : e.ctrlKey;
|
|
19
|
+
if (!!spec.meta !== e.metaKey)
|
|
20
|
+
return false;
|
|
21
|
+
if (!!spec.ctrl !== modKey)
|
|
22
|
+
return false;
|
|
23
|
+
if (!!spec.shift !== e.shiftKey)
|
|
24
|
+
return false;
|
|
25
|
+
if (!!spec.alt !== e.altKey)
|
|
26
|
+
return false;
|
|
27
|
+
// 主键匹配(大小写不敏感 + 支持 " "、"Escape" 等)
|
|
28
|
+
const wanted = spec.key.length === 1 ? spec.key.toLowerCase() : spec.key;
|
|
29
|
+
const actual = e.key.length === 1 ? e.key.toLowerCase() : e.key;
|
|
30
|
+
return wanted === actual;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 全局快捷键 hook。
|
|
34
|
+
* - 焦点在输入控件时默认不响应(可单独覆盖 allowInInput)
|
|
35
|
+
* - 自动 preventDefault(可关闭)
|
|
36
|
+
*/
|
|
37
|
+
export function useKeyboardShortcuts(specs, enabled = true) {
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!enabled)
|
|
40
|
+
return;
|
|
41
|
+
const onKey = (e) => {
|
|
42
|
+
const inEditable = isEditableTarget(e.target);
|
|
43
|
+
for (const spec of specs) {
|
|
44
|
+
if (!matchSpec(spec, e))
|
|
45
|
+
continue;
|
|
46
|
+
if (inEditable && !spec.allowInInput)
|
|
47
|
+
continue;
|
|
48
|
+
if (spec.preventDefault !== false)
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
spec.handler(e);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
window.addEventListener("keydown", onKey);
|
|
55
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
56
|
+
}, [specs, enabled]);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 将快捷键规格渲染为可读的键位提示(如 "⌘ + Shift + L")
|
|
60
|
+
*/
|
|
61
|
+
export function formatShortcut(spec) {
|
|
62
|
+
const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad/i.test(navigator.platform);
|
|
63
|
+
const parts = [];
|
|
64
|
+
if (spec.meta || spec.ctrl)
|
|
65
|
+
parts.push(isMac ? "⌘" : "Ctrl");
|
|
66
|
+
if (spec.alt)
|
|
67
|
+
parts.push(isMac ? "⌥" : "Alt");
|
|
68
|
+
if (spec.shift)
|
|
69
|
+
parts.push(isMac ? "⇧" : "Shift");
|
|
70
|
+
let key = spec.key;
|
|
71
|
+
if (key === " ")
|
|
72
|
+
key = "Space";
|
|
73
|
+
if (key === "ArrowLeft")
|
|
74
|
+
key = "←";
|
|
75
|
+
if (key === "ArrowRight")
|
|
76
|
+
key = "→";
|
|
77
|
+
if (key === "ArrowUp")
|
|
78
|
+
key = "↑";
|
|
79
|
+
if (key === "ArrowDown")
|
|
80
|
+
key = "↓";
|
|
81
|
+
if (key === "Escape")
|
|
82
|
+
key = "Esc";
|
|
83
|
+
if (key === "Enter")
|
|
84
|
+
key = "⏎";
|
|
85
|
+
if (key === "Backspace")
|
|
86
|
+
key = "⌫";
|
|
87
|
+
parts.push(key);
|
|
88
|
+
return parts.join(" + ");
|
|
89
|
+
}
|
|
90
|
+
// 快捷键提示组件
|
|
91
|
+
export const ShortcutBadge = ({ spec, size = "small" }) => {
|
|
92
|
+
const shortcutText = formatShortcut(spec);
|
|
93
|
+
const sizes = {
|
|
94
|
+
small: { padding: "4px 8px", fontSize: 11, borderRadius: 6 },
|
|
95
|
+
medium: { padding: "6px 10px", fontSize: 12, borderRadius: 8 },
|
|
96
|
+
large: { padding: "8px 12px", fontSize: 13, borderRadius: 10 }
|
|
97
|
+
};
|
|
98
|
+
const sizeStyle = sizes[size];
|
|
99
|
+
return (_jsx("span", { style: {
|
|
100
|
+
display: "inline-flex",
|
|
101
|
+
alignItems: "center",
|
|
102
|
+
gap: 4,
|
|
103
|
+
padding: sizeStyle.padding,
|
|
104
|
+
fontSize: sizeStyle.fontSize,
|
|
105
|
+
borderRadius: sizeStyle.borderRadius,
|
|
106
|
+
background: "linear-gradient(135deg, rgba(102,126,234,0.1) 0%, rgba(118,75,162,0.1) 100%)",
|
|
107
|
+
color: "#667eea",
|
|
108
|
+
fontWeight: 500,
|
|
109
|
+
fontFamily: "SF Mono, Monaco, Consolas, monospace",
|
|
110
|
+
border: "1px solid rgba(102,126,234,0.2)",
|
|
111
|
+
boxShadow: "0 2px 4px rgba(102,126,234,0.15)"
|
|
112
|
+
}, title: spec.description || shortcutText, children: shortcutText }));
|
|
113
|
+
};
|
|
114
|
+
// 快捷键提示面板
|
|
115
|
+
export const ShortcutPanel = ({ specs, title = "快捷键", onClose }) => {
|
|
116
|
+
return (_jsxs("div", { style: {
|
|
117
|
+
display: "flex",
|
|
118
|
+
flexDirection: "column",
|
|
119
|
+
gap: 8,
|
|
120
|
+
maxWidth: 320
|
|
121
|
+
}, children: [title && (_jsx("div", { style: {
|
|
122
|
+
fontWeight: 600,
|
|
123
|
+
fontSize: 13,
|
|
124
|
+
color: "#1a1a2e",
|
|
125
|
+
paddingBottom: 8,
|
|
126
|
+
borderBottom: "2px solid rgba(102,126,234,0.3)"
|
|
127
|
+
}, children: title })), specs.map((spec, index) => (_jsxs("div", { style: {
|
|
128
|
+
display: "flex",
|
|
129
|
+
alignItems: "center",
|
|
130
|
+
justifyContent: "space-between",
|
|
131
|
+
padding: "8px 12px",
|
|
132
|
+
borderRadius: 8,
|
|
133
|
+
background: "linear-gradient(90deg, rgba(102,126,234,0.04) 0%, rgba(118,75,162,0.04) 100%)",
|
|
134
|
+
transition: "all 0.2s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
135
|
+
}, onMouseEnter: (e) => {
|
|
136
|
+
e.currentTarget.style.background = "linear-gradient(90deg, rgba(102,126,234,0.08) 0%, rgba(118,75,162,0.08) 100%)";
|
|
137
|
+
}, onMouseLeave: (e) => {
|
|
138
|
+
e.currentTarget.style.background = "linear-gradient(90deg, rgba(102,126,234,0.04) 0%, rgba(118,75,162,0.04) 100%)";
|
|
139
|
+
}, children: [_jsx("span", { style: {
|
|
140
|
+
fontSize: 13,
|
|
141
|
+
color: "#1a1a2e",
|
|
142
|
+
fontWeight: 500,
|
|
143
|
+
flex: 1
|
|
144
|
+
}, children: spec.description || "快捷键" }), _jsx(ShortcutBadge, { spec: spec, size: "small" })] }, index))), onClose && (_jsx("button", { onClick: onClose, style: {
|
|
145
|
+
marginTop: 8,
|
|
146
|
+
padding: "8px 16px",
|
|
147
|
+
borderRadius: 8,
|
|
148
|
+
border: "none",
|
|
149
|
+
background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
|
|
150
|
+
color: "white",
|
|
151
|
+
fontSize: 12,
|
|
152
|
+
fontWeight: 500,
|
|
153
|
+
cursor: "pointer",
|
|
154
|
+
transition: "all 0.2s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
155
|
+
}, onMouseEnter: (e) => {
|
|
156
|
+
e.currentTarget.style.transform = "scale(1.05)";
|
|
157
|
+
}, onMouseLeave: (e) => {
|
|
158
|
+
e.currentTarget.style.transform = "scale(1)";
|
|
159
|
+
}, children: "\u5173\u95ED" }))] }));
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=useKeyboardShortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyboardShortcuts.js","sourceRoot":"","sources":["../../src/shared/useKeyboardShortcuts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shortcuts/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shortcuts/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ShortcutConfig } from './types';
|
|
2
|
+
declare class ShortcutConflictDetector {
|
|
3
|
+
private shortcuts;
|
|
4
|
+
register(shortcut: string, action: string): boolean;
|
|
5
|
+
unregister(shortcut: string): void;
|
|
6
|
+
getActions(shortcut: string): string[];
|
|
7
|
+
hasConflict(shortcut: string): boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const shortcutConflictDetector: ShortcutConflictDetector;
|
|
10
|
+
interface ShortcutStore {
|
|
11
|
+
shortcuts: Record<string, ShortcutConfig>;
|
|
12
|
+
registerShortcut: (key: string, config: ShortcutConfig) => boolean;
|
|
13
|
+
unregisterShortcut: (key: string) => void;
|
|
14
|
+
getShortcut: (key: string) => ShortcutConfig | undefined;
|
|
15
|
+
getAllShortcuts: () => Record<string, ShortcutConfig>;
|
|
16
|
+
}
|
|
17
|
+
export declare const useShortcutStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ShortcutStore>>;
|
|
18
|
+
export declare const shortcutManager: {
|
|
19
|
+
register: (category: string, key: string, config: Omit<ShortcutConfig, "key">) => boolean;
|
|
20
|
+
unregister: (category: string, key: string) => void;
|
|
21
|
+
get: (category: string, key: string) => ShortcutConfig | undefined;
|
|
22
|
+
getAll: () => Record<string, ShortcutConfig>;
|
|
23
|
+
buildShortcut: (modifiers: string[], key: string) => string;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=shortcutManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcutManager.d.ts","sourceRoot":"","sources":["../../src/shortcuts/shortcutManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,cAAM,wBAAwB;IAC5B,OAAO,CAAC,SAAS,CAAkC;IAEnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IASnD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAKtC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,eAAO,MAAM,wBAAwB,0BAAiC,CAAC;AAGvE,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC;IACnE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IACzD,eAAe,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,gBAAgB,4EAsC1B,CAAC;AAGJ,eAAO,MAAM,eAAe;yBAEL,MAAM,OAAO,MAAM,UAAU,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,KAAG,OAAO;2BAMhE,MAAM,OAAO,MAAM,KAAG,IAAI;oBAMjC,MAAM,OAAO,MAAM,KAAG,cAAc,GAAG,SAAS;kBAMpD,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;+BAKf,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM;CAG1D,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { create } from 'zustand';
|
|
2
|
+
// 快捷键冲突检测器
|
|
3
|
+
class ShortcutConflictDetector {
|
|
4
|
+
constructor() {
|
|
5
|
+
Object.defineProperty(this, "shortcuts", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: new Map()
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
register(shortcut, action) {
|
|
13
|
+
if (this.shortcuts.has(shortcut)) {
|
|
14
|
+
console.error(`快捷键冲突: ${shortcut} 已被 ${this.shortcuts.get(shortcut)} 使用`);
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
this.shortcuts.set(shortcut, action);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
unregister(shortcut) {
|
|
21
|
+
this.shortcuts.delete(shortcut);
|
|
22
|
+
}
|
|
23
|
+
getActions(shortcut) {
|
|
24
|
+
const action = this.shortcuts.get(shortcut);
|
|
25
|
+
return action ? [action] : [];
|
|
26
|
+
}
|
|
27
|
+
hasConflict(shortcut) {
|
|
28
|
+
return this.shortcuts.has(shortcut);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export const shortcutConflictDetector = new ShortcutConflictDetector();
|
|
32
|
+
export const useShortcutStore = create((set, get) => ({
|
|
33
|
+
shortcuts: {},
|
|
34
|
+
registerShortcut: (key, config) => {
|
|
35
|
+
// 检查冲突
|
|
36
|
+
const hasConflict = shortcutConflictDetector.hasConflict(key);
|
|
37
|
+
if (hasConflict) {
|
|
38
|
+
console.error(`快捷键冲突: ${key}`);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
shortcutConflictDetector.register(key, config.description);
|
|
42
|
+
set((state) => ({
|
|
43
|
+
shortcuts: {
|
|
44
|
+
...state.shortcuts,
|
|
45
|
+
[key]: { ...config, key }
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
return true;
|
|
49
|
+
},
|
|
50
|
+
unregisterShortcut: (key) => {
|
|
51
|
+
shortcutConflictDetector.unregister(key);
|
|
52
|
+
set((state) => {
|
|
53
|
+
const { [key]: _, ...rest } = state.shortcuts;
|
|
54
|
+
return { shortcuts: rest };
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
getShortcut: (key) => {
|
|
58
|
+
return get().shortcuts[key];
|
|
59
|
+
},
|
|
60
|
+
getAllShortcuts: () => {
|
|
61
|
+
return get().shortcuts;
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
// 统一快捷键管理
|
|
65
|
+
export const shortcutManager = {
|
|
66
|
+
// 注册快捷键
|
|
67
|
+
register: (category, key, config) => {
|
|
68
|
+
const fullKey = `${category}.${key}`;
|
|
69
|
+
return useShortcutStore.getState().registerShortcut(fullKey, { ...config, key: fullKey });
|
|
70
|
+
},
|
|
71
|
+
// 注销快捷键
|
|
72
|
+
unregister: (category, key) => {
|
|
73
|
+
const fullKey = `${category}.${key}`;
|
|
74
|
+
useShortcutStore.getState().unregisterShortcut(fullKey);
|
|
75
|
+
},
|
|
76
|
+
// 获取快捷键
|
|
77
|
+
get: (category, key) => {
|
|
78
|
+
const fullKey = `${category}.${key}`;
|
|
79
|
+
return useShortcutStore.getState().getShortcut(fullKey);
|
|
80
|
+
},
|
|
81
|
+
// 获取所有快捷键
|
|
82
|
+
getAll: () => {
|
|
83
|
+
return useShortcutStore.getState().getAllShortcuts();
|
|
84
|
+
},
|
|
85
|
+
// 构建快捷键字符串
|
|
86
|
+
buildShortcut: (modifiers, key) => {
|
|
87
|
+
return [...modifiers, key].join('+');
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=shortcutManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcutManager.js","sourceRoot":"","sources":["../../src/shortcuts/shortcutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,WAAW;AACX,MAAM,wBAAwB;IAA9B;QACU;;;;mBAAiC,IAAI,GAAG,EAAE;WAAC;IAuBrD,CAAC;IArBC,QAAQ,CAAC,QAAgB,EAAE,MAAc;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAWvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,SAAS,EAAE,EAAE;IAEb,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAChC,OAAO;QACP,MAAM,WAAW,GAAG,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wBAAwB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,SAAS,EAAE;gBACT,GAAG,KAAK,CAAC,SAAS;gBAClB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;aAC1B;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;YAC9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe,EAAE,GAAG,EAAE;QACpB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,UAAU;AACV,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,QAAQ,EAAE,CAAC,QAAgB,EAAE,GAAW,EAAE,MAAmC,EAAW,EAAE;QACxF,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,QAAQ;IACR,UAAU,EAAE,CAAC,QAAgB,EAAE,GAAW,EAAQ,EAAE;QAClD,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;IACR,GAAG,EAAE,CAAC,QAAgB,EAAE,GAAW,EAA8B,EAAE;QACjE,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;IACV,MAAM,EAAE,GAAmC,EAAE;QAC3C,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,CAAC;IACvD,CAAC;IAED,WAAW;IACX,aAAa,EAAE,CAAC,SAAmB,EAAE,GAAW,EAAU,EAAE;QAC1D,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shortcuts/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shortcuts/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设计系统规范
|
|
3
|
+
* z-biz-tool UI/UX 设计指南
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 设计原则
|
|
7
|
+
* 1. 统一 - 保持一致的视觉语言和交互模式
|
|
8
|
+
* 2. 简洁 - 清晰直观,减少认知负担
|
|
9
|
+
* 3. 反馈 - 及时的状态反馈和交互提示
|
|
10
|
+
* 4. 灵活 - 支持主题切换和自定义
|
|
11
|
+
*/
|
|
12
|
+
export declare const COLORS: {
|
|
13
|
+
primary: string;
|
|
14
|
+
primaryLight: string;
|
|
15
|
+
primaryDark: string;
|
|
16
|
+
accent: string;
|
|
17
|
+
accentLight: string;
|
|
18
|
+
accentDark: string;
|
|
19
|
+
success: string;
|
|
20
|
+
successLight: string;
|
|
21
|
+
successDark: string;
|
|
22
|
+
warning: string;
|
|
23
|
+
warningLight: string;
|
|
24
|
+
warningDark: string;
|
|
25
|
+
error: string;
|
|
26
|
+
errorLight: string;
|
|
27
|
+
errorDark: string;
|
|
28
|
+
info: string;
|
|
29
|
+
infoLight: string;
|
|
30
|
+
infoDark: string;
|
|
31
|
+
white: string;
|
|
32
|
+
black: string;
|
|
33
|
+
backgroundLight: string;
|
|
34
|
+
backgroundDark: string;
|
|
35
|
+
surfaceLight: string;
|
|
36
|
+
surfaceDark: string;
|
|
37
|
+
textLight: string;
|
|
38
|
+
textDark: string;
|
|
39
|
+
textSecondaryLight: string;
|
|
40
|
+
textSecondaryDark: string;
|
|
41
|
+
borderLight: string;
|
|
42
|
+
borderDark: string;
|
|
43
|
+
};
|
|
44
|
+
export declare const SPACING: {
|
|
45
|
+
xs: number;
|
|
46
|
+
sm: number;
|
|
47
|
+
md: number;
|
|
48
|
+
lg: number;
|
|
49
|
+
xl: number;
|
|
50
|
+
'2xl': number;
|
|
51
|
+
'3xl': number;
|
|
52
|
+
};
|
|
53
|
+
export declare const BORDER_RADIUS: {
|
|
54
|
+
sm: number;
|
|
55
|
+
md: number;
|
|
56
|
+
lg: number;
|
|
57
|
+
xl: number;
|
|
58
|
+
'2xl': number;
|
|
59
|
+
full: number;
|
|
60
|
+
};
|
|
61
|
+
export declare const FONT_FAMILY: {
|
|
62
|
+
sans: string;
|
|
63
|
+
mono: string;
|
|
64
|
+
};
|
|
65
|
+
export declare const FONT_SIZE: {
|
|
66
|
+
xs: number;
|
|
67
|
+
sm: number;
|
|
68
|
+
base: number;
|
|
69
|
+
lg: number;
|
|
70
|
+
xl: number;
|
|
71
|
+
'2xl': number;
|
|
72
|
+
'3xl': number;
|
|
73
|
+
'4xl': number;
|
|
74
|
+
};
|
|
75
|
+
export declare const FONT_WEIGHT: {
|
|
76
|
+
light: number;
|
|
77
|
+
normal: number;
|
|
78
|
+
medium: number;
|
|
79
|
+
semibold: number;
|
|
80
|
+
bold: number;
|
|
81
|
+
};
|
|
82
|
+
export declare const SHADOW: {
|
|
83
|
+
sm: string;
|
|
84
|
+
md: string;
|
|
85
|
+
lg: string;
|
|
86
|
+
xl: string;
|
|
87
|
+
'2xl': string;
|
|
88
|
+
};
|
|
89
|
+
export declare const TRANSITION: {
|
|
90
|
+
fast: string;
|
|
91
|
+
normal: string;
|
|
92
|
+
slow: string;
|
|
93
|
+
all: string;
|
|
94
|
+
};
|
|
95
|
+
export declare const BREAKPOINTS: {
|
|
96
|
+
sm: number;
|
|
97
|
+
md: number;
|
|
98
|
+
lg: number;
|
|
99
|
+
xl: number;
|
|
100
|
+
};
|
|
101
|
+
export declare const BUTTON_STYLES: {
|
|
102
|
+
primary: {
|
|
103
|
+
backgroundColor: string;
|
|
104
|
+
color: string;
|
|
105
|
+
hover: {
|
|
106
|
+
backgroundColor: string;
|
|
107
|
+
};
|
|
108
|
+
active: {
|
|
109
|
+
transform: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
secondary: {
|
|
113
|
+
backgroundColor: string;
|
|
114
|
+
color: string;
|
|
115
|
+
border: string;
|
|
116
|
+
hover: {
|
|
117
|
+
backgroundColor: string;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
ghost: {
|
|
121
|
+
backgroundColor: string;
|
|
122
|
+
color: string;
|
|
123
|
+
hover: {
|
|
124
|
+
backgroundColor: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
danger: {
|
|
128
|
+
backgroundColor: string;
|
|
129
|
+
color: string;
|
|
130
|
+
hover: {
|
|
131
|
+
backgroundColor: string;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
export declare const CARD_STYLES: {
|
|
136
|
+
base: {
|
|
137
|
+
backgroundColor: string;
|
|
138
|
+
borderRadius: number;
|
|
139
|
+
border: string;
|
|
140
|
+
};
|
|
141
|
+
padding: {
|
|
142
|
+
sm: number;
|
|
143
|
+
md: number;
|
|
144
|
+
lg: number;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
export declare const FORM_STYLES: {
|
|
148
|
+
input: {
|
|
149
|
+
backgroundColor: string;
|
|
150
|
+
color: string;
|
|
151
|
+
border: string;
|
|
152
|
+
borderRadius: number;
|
|
153
|
+
padding: {
|
|
154
|
+
sm: string;
|
|
155
|
+
md: string;
|
|
156
|
+
lg: string;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
label: {
|
|
160
|
+
color: string;
|
|
161
|
+
fontSize: number;
|
|
162
|
+
fontWeight: number;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
export declare const STATUS_INDICATOR: {
|
|
166
|
+
online: {
|
|
167
|
+
backgroundColor: string;
|
|
168
|
+
animation: string;
|
|
169
|
+
};
|
|
170
|
+
busy: {
|
|
171
|
+
backgroundColor: string;
|
|
172
|
+
animation: string;
|
|
173
|
+
};
|
|
174
|
+
error: {
|
|
175
|
+
backgroundColor: string;
|
|
176
|
+
};
|
|
177
|
+
offline: {
|
|
178
|
+
backgroundColor: string;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=designTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designTokens.d.ts","sourceRoot":"","sources":["../../src/styles/designTokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAGH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ClB,CAAC;AAGF,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AAGF,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAGF,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;CAWvB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAiBvB,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;CAe5B,CAAC"}
|