@lark-apaas/miaoda-core 0.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +8 -0
  3. package/lib/apis/components/AppContainer.d.ts +1 -0
  4. package/lib/apis/components/AppContainer.js +2 -0
  5. package/lib/apis/components/ErrorRender.d.ts +1 -0
  6. package/lib/apis/components/ErrorRender.js +2 -0
  7. package/lib/apis/components/NotFoundRender.d.ts +1 -0
  8. package/lib/apis/components/NotFoundRender.js +2 -0
  9. package/lib/apis/components/SidebarNav.d.ts +1 -0
  10. package/lib/apis/components/SidebarNav.js +2 -0
  11. package/lib/apis/components/User.d.ts +1 -0
  12. package/lib/apis/components/User.js +1 -0
  13. package/lib/apis/components/Welcome.d.ts +1 -0
  14. package/lib/apis/components/Welcome.js +2 -0
  15. package/lib/apis/constants/img-resources/avatar.d.ts +11 -0
  16. package/lib/apis/constants/img-resources/avatar.js +12 -0
  17. package/lib/apis/constants/img-resources/banner.d.ts +24 -0
  18. package/lib/apis/constants/img-resources/banner.js +25 -0
  19. package/lib/apis/constants/img-resources/cover.d.ts +36 -0
  20. package/lib/apis/constants/img-resources/cover.js +37 -0
  21. package/lib/apis/dataloom.d.ts +1 -0
  22. package/lib/apis/dataloom.js +2 -0
  23. package/lib/apis/hooks/useAppInfo.d.ts +1 -0
  24. package/lib/apis/hooks/useAppInfo.js +1 -0
  25. package/lib/apis/hooks/useCurrentUserProfile.d.ts +1 -0
  26. package/lib/apis/hooks/useCurrentUserProfile.js +1 -0
  27. package/lib/apis/logger.d.ts +1 -0
  28. package/lib/apis/logger.js +1 -0
  29. package/lib/apis/tools/generateImage.d.ts +1 -0
  30. package/lib/apis/tools/generateImage.js +1 -0
  31. package/lib/apis/tools/generateTextStream.d.ts +1 -0
  32. package/lib/apis/tools/generateTextStream.js +1 -0
  33. package/lib/apis/tools/getAppInfo.d.ts +1 -0
  34. package/lib/apis/tools/getAppInfo.js +1 -0
  35. package/lib/apis/tools/getCurrentUserProfile.d.ts +1 -0
  36. package/lib/apis/tools/getCurrentUserProfile.js +1 -0
  37. package/lib/apis/tools/storage.d.ts +1 -0
  38. package/lib/apis/tools/storage.js +4 -0
  39. package/lib/apis/udt-types.d.ts +16 -0
  40. package/lib/apis/udt-types.js +0 -0
  41. package/lib/apis/utils/registerChinaMap.d.ts +1 -0
  42. package/lib/apis/utils/registerChinaMap.js +103319 -0
  43. package/lib/components/AppContainer/IframeBridge.d.ts +4 -0
  44. package/lib/components/AppContainer/IframeBridge.js +92 -0
  45. package/lib/components/AppContainer/LogInterceptor.d.ts +1 -0
  46. package/lib/components/AppContainer/LogInterceptor.js +44 -0
  47. package/lib/components/AppContainer/PageHoc.d.ts +4 -0
  48. package/lib/components/AppContainer/PageHoc.js +40 -0
  49. package/lib/components/AppContainer/api-proxy/core.d.ts +188 -0
  50. package/lib/components/AppContainer/api-proxy/core.js +290 -0
  51. package/lib/components/AppContainer/dayjsPlugins.d.ts +1 -0
  52. package/lib/components/AppContainer/dayjsPlugins.js +69 -0
  53. package/lib/components/AppContainer/index.d.ts +7 -0
  54. package/lib/components/AppContainer/index.js +65 -0
  55. package/lib/components/AppContainer/sonner.css +101 -0
  56. package/lib/components/AppContainer/sonner.d.ts +8 -0
  57. package/lib/components/AppContainer/sonner.js +26 -0
  58. package/lib/components/AppContainer/utils/api-panel.d.ts +11 -0
  59. package/lib/components/AppContainer/utils/api-panel.js +21 -0
  60. package/lib/components/AppContainer/utils/childApi.d.ts +5 -0
  61. package/lib/components/AppContainer/utils/childApi.js +26 -0
  62. package/lib/components/AppContainer/utils/listenHot.d.ts +1 -0
  63. package/lib/components/AppContainer/utils/listenHot.js +43 -0
  64. package/lib/components/ErrorRender/index.d.ts +5 -0
  65. package/lib/components/ErrorRender/index.js +79 -0
  66. package/lib/components/NotFoundRender/index.d.ts +3 -0
  67. package/lib/components/NotFoundRender/index.js +59 -0
  68. package/lib/components/SidebarNav/DrawerNav.d.ts +3 -0
  69. package/lib/components/SidebarNav/DrawerNav.js +64 -0
  70. package/lib/components/SidebarNav/DropdownNav.d.ts +3 -0
  71. package/lib/components/SidebarNav/DropdownNav.js +40 -0
  72. package/lib/components/SidebarNav/Sidebar.d.ts +3 -0
  73. package/lib/components/SidebarNav/Sidebar.js +33 -0
  74. package/lib/components/SidebarNav/index.d.ts +5 -0
  75. package/lib/components/SidebarNav/index.js +61 -0
  76. package/lib/components/User/UserDisplay.d.ts +9 -0
  77. package/lib/components/User/UserDisplay.js +39 -0
  78. package/lib/components/User/UserProfile/UserProfile.css +34 -0
  79. package/lib/components/User/UserProfile/UserProfile.d.ts +6 -0
  80. package/lib/components/User/UserProfile/UserProfile.js +41 -0
  81. package/lib/components/User/UserProfile/UserProfileContainer.d.ts +4 -0
  82. package/lib/components/User/UserProfile/UserProfileContainer.js +8 -0
  83. package/lib/components/User/UserProfile/UserProfileSkeleton.d.ts +3 -0
  84. package/lib/components/User/UserProfile/UserProfileSkeleton.js +36 -0
  85. package/lib/components/User/UserProfile/UserProfileUI.d.ts +8 -0
  86. package/lib/components/User/UserProfile/UserProfileUI.js +113 -0
  87. package/lib/components/User/UserProfile/index.d.ts +1 -0
  88. package/lib/components/User/UserProfile/index.js +2 -0
  89. package/lib/components/User/UserProfile/type.d.ts +8 -0
  90. package/lib/components/User/UserProfile/type.js +0 -0
  91. package/lib/components/User/UserProfile/utils.d.ts +5 -0
  92. package/lib/components/User/UserProfile/utils.js +26 -0
  93. package/lib/components/User/UserSelect.css +11 -0
  94. package/lib/components/User/UserSelect.d.ts +11 -0
  95. package/lib/components/User/UserSelect.js +172 -0
  96. package/lib/components/User/UserWithAvatar.d.ts +3 -0
  97. package/lib/components/User/UserWithAvatar.js +41 -0
  98. package/lib/components/User/index.d.ts +7 -0
  99. package/lib/components/User/index.js +5 -0
  100. package/lib/components/User/type.d.ts +13 -0
  101. package/lib/components/User/type.js +0 -0
  102. package/lib/components/Welcome/index.d.ts +3 -0
  103. package/lib/components/Welcome/index.js +17 -0
  104. package/lib/components/common/LogoInfo.d.ts +5 -0
  105. package/lib/components/common/LogoInfo.js +30 -0
  106. package/lib/components/common/NavItem.d.ts +20 -0
  107. package/lib/components/common/NavItem.js +112 -0
  108. package/lib/components/common/NavMenu.d.ts +9 -0
  109. package/lib/components/common/NavMenu.js +50 -0
  110. package/lib/components/common/UserAvatarLayout.d.ts +4 -0
  111. package/lib/components/common/UserAvatarLayout.js +41 -0
  112. package/lib/components/common/UserAvatarMenu.d.ts +4 -0
  113. package/lib/components/common/UserAvatarMenu.js +58 -0
  114. package/lib/components/common/index.d.ts +9 -0
  115. package/lib/components/common/index.js +10 -0
  116. package/lib/components/index.d.ts +8 -0
  117. package/lib/components/index.js +6 -0
  118. package/lib/components/theme/ThemeProvider.d.ts +20 -0
  119. package/lib/components/theme/ThemeProvider.js +75 -0
  120. package/lib/components/theme/constants.d.ts +48 -0
  121. package/lib/components/theme/constants.js +557 -0
  122. package/lib/components/theme/index.d.ts +4 -0
  123. package/lib/components/theme/index.js +5 -0
  124. package/lib/components/theme/miaoDarkTheme.d.ts +2 -0
  125. package/lib/components/theme/miaoDarkTheme.js +310 -0
  126. package/lib/components/theme/miaoLightTheme.d.ts +2 -0
  127. package/lib/components/theme/miaoLightTheme.js +296 -0
  128. package/lib/components/theme/ui-config.d.ts +1 -0
  129. package/lib/components/theme/ui-config.js +2 -0
  130. package/lib/components/theme/util.d.ts +20 -0
  131. package/lib/components/theme/util.js +188 -0
  132. package/lib/font-family.css +40 -0
  133. package/lib/hooks/index.d.ts +5 -0
  134. package/lib/hooks/index.js +5 -0
  135. package/lib/hooks/useAppInfo.d.ts +6 -0
  136. package/lib/hooks/useAppInfo.js +21 -0
  137. package/lib/hooks/useCurrentUserProfile.d.ts +12 -0
  138. package/lib/hooks/useCurrentUserProfile.js +58 -0
  139. package/lib/hooks/useIsMobile.d.ts +1 -0
  140. package/lib/hooks/useIsMobile.js +20 -0
  141. package/lib/hooks/useLogout.d.ts +4 -0
  142. package/lib/hooks/useLogout.js +37 -0
  143. package/lib/hooks/useTheme.d.ts +4 -0
  144. package/lib/hooks/useTheme.js +8 -0
  145. package/lib/hooks/useUpdatingRef.d.ts +1 -0
  146. package/lib/hooks/useUpdatingRef.js +7 -0
  147. package/lib/index.css +5 -0
  148. package/lib/index.d.ts +4 -0
  149. package/lib/index.js +5 -0
  150. package/lib/inspector.dev.css +10 -0
  151. package/lib/integrations/dataloom.d.ts +2 -0
  152. package/lib/integrations/dataloom.js +32 -0
  153. package/lib/integrations/generateImage.d.ts +1 -0
  154. package/lib/integrations/generateImage.js +47 -0
  155. package/lib/integrations/generateTextStream.d.ts +21 -0
  156. package/lib/integrations/generateTextStream.js +98 -0
  157. package/lib/integrations/getAppInfo.d.ts +2 -0
  158. package/lib/integrations/getAppInfo.js +14 -0
  159. package/lib/integrations/getCurrentUserProfile.d.ts +6 -0
  160. package/lib/integrations/getCurrentUserProfile.js +5 -0
  161. package/lib/logger/index.d.ts +6 -0
  162. package/lib/logger/index.js +54 -0
  163. package/lib/override.css +29 -0
  164. package/lib/tailwind-theme.css +335 -0
  165. package/lib/theme-layer.css +3 -0
  166. package/lib/types/common.d.ts +4 -0
  167. package/lib/types/common.js +0 -0
  168. package/lib/types/iframe-events.d.ts +55 -0
  169. package/lib/types/iframe-events.js +0 -0
  170. package/lib/types/index.d.ts +43 -0
  171. package/lib/types/index.js +0 -0
  172. package/lib/utils/copyToClipboard.d.ts +6 -0
  173. package/lib/utils/copyToClipboard.js +32 -0
  174. package/lib/utils/getAppId.d.ts +6 -0
  175. package/lib/utils/getAppId.js +11 -0
  176. package/lib/utils/getCsrfToken.d.ts +5 -0
  177. package/lib/utils/getCsrfToken.js +10 -0
  178. package/lib/utils/getEnvPath.d.ts +4 -0
  179. package/lib/utils/getEnvPath.js +4 -0
  180. package/lib/utils/getInitialInfo.d.ts +20 -0
  181. package/lib/utils/getInitialInfo.js +32 -0
  182. package/lib/utils/getParentOrigin.d.ts +5 -0
  183. package/lib/utils/getParentOrigin.js +7 -0
  184. package/lib/utils/getUserProfile.d.ts +47 -0
  185. package/lib/utils/getUserProfile.js +39 -0
  186. package/lib/utils/postMessage.d.ts +8 -0
  187. package/lib/utils/postMessage.js +11 -0
  188. package/lib/utils/url.d.ts +8 -0
  189. package/lib/utils/url.js +22 -0
  190. package/lib/utils/utils.d.ts +20 -0
  191. package/lib/utils/utils.js +22 -0
  192. package/package.json +134 -0
@@ -0,0 +1,98 @@
1
+ import { getAppId } from "../utils/getAppId.js";
2
+ import { getCsrfToken } from "../utils/getCsrfToken.js";
3
+ import { getEnvPath } from "../utils/getEnvPath.js";
4
+ import { isSparkRuntime } from "../utils/utils.js";
5
+ async function generateTextStream(options, onChunk) {
6
+ const { text, thinking_type = 'disabled', headers = {} } = options;
7
+ const appId = getAppId(window.location.pathname);
8
+ if (!appId) return {
9
+ content: '',
10
+ reasoning_content: '',
11
+ success: false,
12
+ error: 'appId is required'
13
+ };
14
+ try {
15
+ const mergedHeaders = {
16
+ 'Content-Type': 'application/json',
17
+ ...headers,
18
+ 'X-Kunlun-Token': window.token,
19
+ 'x-miaoda-token': window.MIAODA_BUILTIN_TTT,
20
+ 'x-lgw-csrf-token': window.lgw_csrf_token,
21
+ ...window.CSRF_HEADERS || {}
22
+ };
23
+ let response;
24
+ if (isSparkRuntime()) {
25
+ mergedHeaders['X-Suda-Csrf-Token'] = getCsrfToken();
26
+ response = await fetch(`${window.location.origin}/spark/b/${appId}/text/generate`, {
27
+ method: 'POST',
28
+ headers: mergedHeaders,
29
+ credentials: 'include',
30
+ body: JSON.stringify({
31
+ text,
32
+ thinking_type
33
+ })
34
+ });
35
+ } else response = await fetch(`${window.location.origin}/ai/api/${getEnvPath()}/v1/apps/${appId}/text/generate`, {
36
+ method: 'POST',
37
+ headers: mergedHeaders,
38
+ credentials: 'include',
39
+ body: JSON.stringify({
40
+ text,
41
+ thinking_type
42
+ })
43
+ });
44
+ if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
45
+ const reader = response.body?.getReader();
46
+ if (!reader) throw new Error('无法获取响应流');
47
+ let fullContent = '';
48
+ let fullReasoningContent = '';
49
+ const decoder = new TextDecoder();
50
+ while(true){
51
+ const { done, value } = await reader.read();
52
+ if (done) break;
53
+ const chunk = decoder.decode(value, {
54
+ stream: true
55
+ });
56
+ const lines = chunk.split('\n').filter((line)=>line.trim());
57
+ for (const line of lines)if (line.startsWith('data: ')) {
58
+ const jsonStr = line.slice(6);
59
+ try {
60
+ const data = JSON.parse(jsonStr);
61
+ if (0 !== data.code) return {
62
+ content: '',
63
+ reasoning_content: '',
64
+ success: false,
65
+ error: data.msg || '生成失败'
66
+ };
67
+ if (data.data.content) fullContent += data.data.content;
68
+ if (data.data.reasoning_content) fullReasoningContent += data.data.reasoning_content;
69
+ if (onChunk) onChunk({
70
+ content: data.data.content || '',
71
+ reasoning_content: data.data.reasoning_content || '',
72
+ finished: data.finished
73
+ });
74
+ if (data.finished) return {
75
+ content: fullContent,
76
+ reasoning_content: fullReasoningContent,
77
+ success: true
78
+ };
79
+ } catch (parseError) {
80
+ console.error(`解析JSON失败: ${jsonStr}`);
81
+ }
82
+ }
83
+ }
84
+ return {
85
+ content: fullContent,
86
+ reasoning_content: fullReasoningContent,
87
+ success: true
88
+ };
89
+ } catch (error) {
90
+ return {
91
+ content: '',
92
+ reasoning_content: '',
93
+ success: false,
94
+ error: error instanceof Error ? error.message : '未知错误'
95
+ };
96
+ }
97
+ }
98
+ export { generateTextStream };
@@ -0,0 +1,2 @@
1
+ import { AppInfoPayload } from '../types/common';
2
+ export declare function getAppInfo(): Promise<AppInfoPayload>;
@@ -0,0 +1,14 @@
1
+ import { getInitialInfo } from "../utils/getInitialInfo.js";
2
+ import { isSparkRuntime } from "../utils/utils.js";
3
+ async function getAppInfo() {
4
+ let appInfo = window._appInfo;
5
+ if (!appInfo && isSparkRuntime()) {
6
+ const info = (await getInitialInfo()).app_info;
7
+ appInfo = {
8
+ name: info?.app_name || '',
9
+ avatar: info?.app_avatar || ''
10
+ };
11
+ }
12
+ return appInfo ?? {};
13
+ }
14
+ export { getAppInfo };
@@ -0,0 +1,6 @@
1
+ import { IUserProfile } from '../apis/udt-types';
2
+ export declare function getCurrentUserProfile(): IUserProfile;
3
+ /**
4
+ * @deprecated 请使用 getCurrentUserProfile 代替
5
+ */
6
+ export declare const getUserInfo: typeof getCurrentUserProfile;
@@ -0,0 +1,5 @@
1
+ function getCurrentUserProfile() {
2
+ return window._userInfo || {};
3
+ }
4
+ const getUserInfo = getCurrentUserProfile;
5
+ export { getCurrentUserProfile, getUserInfo };
@@ -0,0 +1,6 @@
1
+ export declare const logger: {
2
+ debug(message: any, ...args: any[]): void;
3
+ info(message: any, ...args: any[]): void;
4
+ warn(message: any, ...args: any[]): void;
5
+ error(message: any, ...args: any[]): void;
6
+ };
@@ -0,0 +1,54 @@
1
+ const LOG_LEVELS = [
2
+ 'debug',
3
+ 'info',
4
+ 'warn',
5
+ 'error'
6
+ ];
7
+ const defaultConfig = {
8
+ showLevel: false,
9
+ showTimestamp: false,
10
+ level: 'info',
11
+ prefix: ''
12
+ };
13
+ let config = {
14
+ ...defaultConfig
15
+ };
16
+ function configureLogger(options) {
17
+ config = {
18
+ ...defaultConfig,
19
+ ...options
20
+ };
21
+ }
22
+ function getLogLevel() {
23
+ return config.level;
24
+ }
25
+ function shouldLog(level) {
26
+ return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(getLogLevel());
27
+ }
28
+ function getFormattedPrefix(level) {
29
+ const parts = [];
30
+ if (config.prefix) parts.push(`[${config.prefix}]`);
31
+ if (config.showLevel) parts.push(`[${level.toUpperCase()}]`);
32
+ return parts;
33
+ }
34
+ configureLogger({
35
+ showLevel: true,
36
+ showTimestamp: false,
37
+ level: 'development' === process.env.NODE_ENV ? 'debug' : 'error',
38
+ prefix: 'MiaoDa'
39
+ });
40
+ const logger = {
41
+ debug (message, ...args) {
42
+ if (shouldLog('debug')) console.log(...getFormattedPrefix('debug'), message, ...args);
43
+ },
44
+ info (message, ...args) {
45
+ if (shouldLog('info')) console.log(...getFormattedPrefix('info'), message, ...args);
46
+ },
47
+ warn (message, ...args) {
48
+ if (shouldLog('warn')) console.log(...getFormattedPrefix('warn'), message, ...args);
49
+ },
50
+ error (message, ...args) {
51
+ if (shouldLog('error')) console.error(...getFormattedPrefix('error'), message, ...args);
52
+ }
53
+ };
54
+ export { logger };
@@ -0,0 +1,29 @@
1
+ .miao-top-nav {
2
+ & .ant-menu-overflow.ant-menu-horizontal > .ant-menu-item:after, & .ant-menu-overflow > .ant-menu.ant-menu-horizontal > .ant-menu-item:after, & .ant-menu-overflow.ant-menu-horizontal > .ant-menu-submenu:after, & .ant-menu-overflow > .ant-menu.ant-menu-horizontal > .ant-menu-submenu:after {
3
+ bottom: 1px !important;
4
+ }
5
+ }
6
+
7
+ .miao-nav {
8
+ & .ant-drawer-content-wrapper {
9
+ width: inherit !important;
10
+ }
11
+
12
+ &.ant-btn-color-default.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover {
13
+ color: inherit;
14
+ }
15
+ }
16
+
17
+ .ant-btn .ant-btn-icon {
18
+ align-items: center;
19
+ display: inline-flex;
20
+ }
21
+
22
+ .ant-btn-icon {
23
+ vertical-align: -.125em;
24
+ }
25
+
26
+ .ant-menu .ant-menu-item, .ant-menu > .ant-menu .ant-menu-item, .ant-dropdown-menu .ant-dropdown-menu-item, .ant-dropdown-menu .ant-dropdown-submenu-title, .ant-menu .ant-menu-submenu-title, .ant-menu > .ant-menu .ant-menu-submenu-title {
27
+ color: inherit;
28
+ }
29
+
@@ -0,0 +1,335 @@
1
+ @import "@/inspector.dev.css";
2
+
3
+ @layer base {
4
+ :root {
5
+ --color-blue-50: #f0f4ff;
6
+ --color-blue-100: #e0e9ff;
7
+ --color-blue-200: #c2d4ff;
8
+ --color-blue-300: #94b4ff;
9
+ --color-blue-400: #7aa2ff;
10
+ --color-blue-500: #5083fb;
11
+ --color-blue-600: #336df4;
12
+ --color-blue-700: #1456f0;
13
+ --color-blue-800: #0442d2;
14
+ --color-blue-900: #002f9e;
15
+ --color-blue-950: #002270;
16
+ --color-pink-50: #fef0f8;
17
+ --color-pink-100: #fee2f2;
18
+ --color-pink-200: #f8c4e1;
19
+ --color-pink-300: #f598cc;
20
+ --color-pink-400: #eb78b8;
21
+ --color-pink-500: #df58a5;
22
+ --color-pink-600: #cc398c;
23
+ --color-pink-700: #b82879;
24
+ --color-pink-800: #9d1562;
25
+ --color-pink-900: #730744;
26
+ --color-pink-950: #550c35;
27
+ --color-neutral-00: #fff;
28
+ --color-neutral-50: #f5f6f7;
29
+ --color-neutral-100: #f2f3f5;
30
+ --color-neutral-200: #eff0f1;
31
+ --color-neutral-300: #dee0e3;
32
+ --color-neutral-400: #d0d3d6;
33
+ --color-neutral-500: #bbbfc4;
34
+ --color-neutral-600: #8f959e;
35
+ --color-neutral-650: #51565d;
36
+ --color-neutral-700: #646a73;
37
+ --color-neutral-800: #373c43;
38
+ --color-neutral-900: #2b2f36;
39
+ --color-neutral-950: #1f2329;
40
+ --color-neutral-1000: #000;
41
+ --color-green-50: #e4fae1;
42
+ --color-green-100: #d0f5ce;
43
+ --color-green-200: #95e599;
44
+ --color-green-300: #5cd168;
45
+ --color-green-400: #35bd4b;
46
+ --color-green-500: #32a645;
47
+ --color-green-600: #258832;
48
+ --color-green-700: #1a7526;
49
+ --color-green-800: #0b6017;
50
+ --color-green-900: #04430c;
51
+ --color-green-950: #022c07;
52
+ --color-indigo-50: #f2f3fd;
53
+ --color-indigo-100: #e9eafb;
54
+ --color-indigo-200: #cccff9;
55
+ --color-indigo-300: #abb0f2;
56
+ --color-indigo-400: #959bee;
57
+ --color-indigo-500: #757df0;
58
+ --color-indigo-600: #5b65f5;
59
+ --color-indigo-700: #4752e6;
60
+ --color-indigo-800: #333dcc;
61
+ --color-indigo-900: #1e27a4;
62
+ --color-indigo-950: #151b70;
63
+ --color-lime-50: #f2f8d3;
64
+ --color-lime-100: #e3f0a3;
65
+ --color-lime-200: #c8dd5f;
66
+ --color-lime-300: #a2c10b;
67
+ --color-lime-400: #91ad00;
68
+ --color-lime-500: #7b9207;
69
+ --color-lime-600: #6b7f06;
70
+ --color-lime-700: #5c6d08;
71
+ --color-lime-800: #4a5804;
72
+ --color-lime-900: #333d00;
73
+ --color-lime-950: #262e00;
74
+ --color-orange-50: #fff3e5;
75
+ --color-orange-100: #fee7cd;
76
+ --color-orange-200: #fec48b;
77
+ --color-orange-300: #ff9d4c;
78
+ --color-orange-400: #ff811a;
79
+ --color-orange-500: #ed6d0c;
80
+ --color-orange-600: #c25705;
81
+ --color-orange-700: #a44904;
82
+ --color-orange-800: #853a05;
83
+ --color-orange-900: #642b02;
84
+ --color-orange-950: #3b1a02;
85
+ --color-purple-50: #f5f0fe;
86
+ --color-purple-100: #efe6fe;
87
+ --color-purple-200: #dcc9fd;
88
+ --color-purple-300: #c8a9fc;
89
+ --color-purple-400: #b791fa;
90
+ --color-purple-500: #9f6ff1;
91
+ --color-purple-600: #8d55ed;
92
+ --color-purple-700: #7a35f0;
93
+ --color-purple-800: #611fd6;
94
+ --color-purple-900: #4811a6;
95
+ --color-purple-950: #2f0080;
96
+ --color-red-50: #fef0f0;
97
+ --color-red-100: #fee3e2;
98
+ --color-red-200: #fdc6c4;
99
+ --color-red-300: #f89e9b;
100
+ --color-red-400: #ff7570;
101
+ --color-red-500: #f54a45;
102
+ --color-red-600: #e22e28;
103
+ --color-red-700: #c02a26;
104
+ --color-red-800: #a11c17;
105
+ --color-red-900: #741915;
106
+ --color-red-950: #590603;
107
+ --color-amber-50: #ffffdb;
108
+ --color-amber-100: #fffca3;
109
+ --color-amber-200: #fff67a;
110
+ --color-amber-300: #fff258;
111
+ --color-amber-400: #ffe928;
112
+ --color-amber-500: #e5ce00;
113
+ --color-amber-600: #c2a800;
114
+ --color-amber-700: #8f7c00;
115
+ --color-amber-800: #5c4f00;
116
+ --color-amber-900: #423700;
117
+ --color-amber-950: #2c2502;
118
+ --color-teal-50: #e2f8f5;
119
+ --color-teal-100: #c4f2ec;
120
+ --color-teal-200: #6fe8d8;
121
+ --color-teal-300: #33d6c0;
122
+ --color-teal-400: #2dbeab;
123
+ --color-teal-500: #10a893;
124
+ --color-teal-600: #0f8575;
125
+ --color-teal-700: #067062;
126
+ --color-teal-800: #045d51;
127
+ --color-teal-900: #03443b;
128
+ --color-teal-950: #02312a;
129
+ --color-cyan-50: #e7f8fe;
130
+ --color-cyan-100: #caeffc;
131
+ --color-cyan-200: #97dcfc;
132
+ --color-cyan-300: #3ec3f7;
133
+ --color-cyan-400: #25b0e7;
134
+ --color-cyan-500: #1295ca;
135
+ --color-cyan-600: #047fb0;
136
+ --color-cyan-700: #076a94;
137
+ --color-cyan-800: #0f587a;
138
+ --color-cyan-900: #06415c;
139
+ --color-cyan-950: #072b3d;
140
+ --color-yellow-50: #fbf4df;
141
+ --color-yellow-100: #faedc2;
142
+ --color-yellow-200: #fcdf7e;
143
+ --color-yellow-300: #fad355;
144
+ --color-yellow-400: #ffc60a;
145
+ --color-yellow-500: #d99904;
146
+ --color-yellow-600: #ad7a03;
147
+ --color-yellow-700: #865b03;
148
+ --color-yellow-800: #6f4a01;
149
+ --color-yellow-900: #573601;
150
+ --color-yellow-950: #382201;
151
+ --color-violet-50: #fceefc;
152
+ --color-violet-100: #f9e2f9;
153
+ --color-violet-200: #f3c4f3;
154
+ --color-violet-300: #e59ce5;
155
+ --color-violet-400: #de81de;
156
+ --color-violet-500: #cf5ecf;
157
+ --color-violet-600: #bf3dbf;
158
+ --color-violet-700: #a630a6;
159
+ --color-violet-800: #872787;
160
+ --color-violet-900: #6a116a;
161
+ --color-violet-950: #520052;
162
+ --fontReverse: #fff;
163
+ --bgContentBase: #f8f9fa;
164
+ --bgMask: 0, 0, 0, .4;
165
+ --bgTextSelection: 20, 86, 240, .3;
166
+ --lineDividerDefault: 31, 35, 41, .15;
167
+ --lineDividerModule: 31, 35, 41, .15;
168
+ }
169
+
170
+ .dark {
171
+ --color-blue-50: #152340;
172
+ --color-blue-100: #173166;
173
+ --color-blue-200: #194294;
174
+ --color-blue-300: #2655b6;
175
+ --color-blue-400: #275fce;
176
+ --color-blue-500: #3370eb;
177
+ --color-blue-600: #4c88ff;
178
+ --color-blue-700: #75a4ff;
179
+ --color-blue-800: #8fb4ff;
180
+ --color-blue-900: #bdd2ff;
181
+ --color-blue-950: #bdd2ff;
182
+ --color-pink-50: #3a182b;
183
+ --color-pink-100: #591c3f;
184
+ --color-pink-200: #782b57;
185
+ --color-pink-300: #94386c;
186
+ --color-pink-400: #ab417d;
187
+ --color-pink-500: #c24a8e;
188
+ --color-pink-600: #db5ea4;
189
+ --color-pink-700: #ed77ba;
190
+ --color-pink-800: #fc94cf;
191
+ --color-pink-900: #ffc2e5;
192
+ --color-pink-950: #ffe0f2;
193
+ --color-neutral-00: #aaa;
194
+ --color-neutral-50: #1a1a1a;
195
+ --color-neutral-100: #292929;
196
+ --color-neutral-200: #373737;
197
+ --color-neutral-300: #434343;
198
+ --color-neutral-400: #505050;
199
+ --color-neutral-500: #5f5f5f;
200
+ --color-neutral-600: #757575;
201
+ --color-neutral-700: #a6a6a6;
202
+ --color-neutral-800: #e0e0e0;
203
+ --color-neutral-900: #e8e8e8;
204
+ --color-neutral-950: #ebebeb;
205
+ --color-neutral-1000: #fff;
206
+ --color-green-50: #022c07;
207
+ --color-green-100: #04430c;
208
+ --color-green-200: #0b6017;
209
+ --color-green-300: #1a7526;
210
+ --color-green-400: #258832;
211
+ --color-green-500: #32a645;
212
+ --color-green-600: #35bd4b;
213
+ --color-green-700: #5cd168;
214
+ --color-green-800: #95e599;
215
+ --color-green-900: #d0f5ce;
216
+ --color-green-950: #e4fae1;
217
+ --color-indigo-50: #1e204a;
218
+ --color-indigo-100: #2a2d69;
219
+ --color-indigo-200: #373d90;
220
+ --color-indigo-300: #474fb8;
221
+ --color-indigo-400: #515ad6;
222
+ --color-indigo-500: #5e68e8;
223
+ --color-indigo-600: #7b83f7;
224
+ --color-indigo-700: #9499f7;
225
+ --color-indigo-800: #aaaff8;
226
+ --color-indigo-900: #cdd0f9;
227
+ --color-indigo-950: #e7e9fe;
228
+ --color-lime-50: #212702;
229
+ --color-lime-100: #303804;
230
+ --color-lime-200: #404c06;
231
+ --color-lime-300: #53610a;
232
+ --color-lime-400: #5f700a;
233
+ --color-lime-500: #6b7f05;
234
+ --color-lime-600: #82990a;
235
+ --color-lime-700: #93af04;
236
+ --color-lime-800: #a6c313;
237
+ --color-lime-900: #c2e12d;
238
+ --color-lime-950: #e3f391;
239
+ --color-orange-50: #33210b;
240
+ --color-orange-100: #4a2b10;
241
+ --color-orange-200: #683a12;
242
+ --color-orange-300: #8a4a19;
243
+ --color-orange-400: #a15317;
244
+ --color-orange-500: #b85e1a;
245
+ --color-orange-600: #db7018;
246
+ --color-orange-700: #f3871b;
247
+ --color-orange-800: #f89e44;
248
+ --color-orange-900: #fec88b;
249
+ --color-orange-950: #fee7cd;
250
+ --color-purple-50: #2b194a;
251
+ --color-purple-100: #3f2073;
252
+ --color-purple-200: #5529a3;
253
+ --color-purple-300: #6c39c6;
254
+ --color-purple-400: #7c4ad4;
255
+ --color-purple-500: #8c55ec;
256
+ --color-purple-600: #a575fa;
257
+ --color-purple-700: #b88ffe;
258
+ --color-purple-800: #c5a3ff;
259
+ --color-purple-900: #dbc8fd;
260
+ --color-purple-950: #efe5ff;
261
+ --color-red-50: #590603;
262
+ --color-red-100: #741915;
263
+ --color-red-200: #a11c17;
264
+ --color-red-300: #c02a26;
265
+ --color-red-400: #e22e28;
266
+ --color-red-500: #f54a45;
267
+ --color-red-600: #ff7570;
268
+ --color-red-700: #f89e9b;
269
+ --color-red-800: #fdc6c4;
270
+ --color-red-900: #fee3e2;
271
+ --color-red-950: #fef0f0;
272
+ --color-amber-50: #29250a;
273
+ --color-amber-100: #38320c;
274
+ --color-amber-200: #574d01;
275
+ --color-amber-300: #7a6a01;
276
+ --color-amber-400: #9c8702;
277
+ --color-amber-500: #c9b218;
278
+ --color-amber-600: #e5cd17;
279
+ --color-amber-700: #f5df36;
280
+ --color-amber-800: #f7e663;
281
+ --color-amber-900: #faed7a;
282
+ --color-amber-950: #fff59e;
283
+ --color-teal-50: #132926;
284
+ --color-teal-100: #173b36;
285
+ --color-teal-200: #1d4e47;
286
+ --color-teal-300: #25665e;
287
+ --color-teal-400: #227369;
288
+ --color-teal-500: #198578;
289
+ --color-teal-600: #1fa18f;
290
+ --color-teal-700: #1ab7a1;
291
+ --color-teal-800: #17cfb5;
292
+ --color-teal-900: #65e7d5;
293
+ --color-teal-950: #b7f7ef;
294
+ --color-cyan-50: #152830;
295
+ --color-cyan-100: #103647;
296
+ --color-cyan-200: #164359;
297
+ --color-cyan-300: #135a78;
298
+ --color-cyan-400: #146c91;
299
+ --color-cyan-500: #1a7fab;
300
+ --color-cyan-600: #1099cc;
301
+ --color-cyan-700: #25b2e5;
302
+ --color-cyan-800: #51c3f0;
303
+ --color-cyan-900: #89dffe;
304
+ --color-cyan-950: #c7f0ff;
305
+ --color-yellow-50: #30250a;
306
+ --color-yellow-100: #473409;
307
+ --color-yellow-200: #63470f;
308
+ --color-yellow-300: #8a6419;
309
+ --color-yellow-400: #ad7d15;
310
+ --color-yellow-500: #d49b0b;
311
+ --color-yellow-600: #f0b622;
312
+ --color-yellow-700: #fbcb46;
313
+ --color-yellow-800: #fcd456;
314
+ --color-yellow-900: #ffde75;
315
+ --color-yellow-950: #ffeaa3;
316
+ --color-violet-50: #3b153b;
317
+ --color-violet-100: #541854;
318
+ --color-violet-200: #712871;
319
+ --color-violet-300: #8b378b;
320
+ --color-violet-400: #a43da4;
321
+ --color-violet-500: #b54ab5;
322
+ --color-violet-600: #d661d6;
323
+ --color-violet-700: #e17fe1;
324
+ --color-violet-800: #e99be9;
325
+ --color-violet-900: #f4c3f4;
326
+ --color-violet-950: #fcdffc;
327
+ --fontReverse: #000;
328
+ --bgContentBase: #121212;
329
+ --bgMask: 0, 0, 0, .6;
330
+ --bgTextSelection: 117, 164, 255, .3;
331
+ --lineDividerDefault: 207, 207, 207, .15;
332
+ --lineDividerModule: 0, 0, 0, 1;
333
+ }
334
+ }
335
+
@@ -0,0 +1,3 @@
1
+ @layer theme, base, antd, components, utilities;
2
+ @import "tailwindcss";
3
+
@@ -0,0 +1,4 @@
1
+ export interface AppInfoPayload {
2
+ name: string;
3
+ avatar: string;
4
+ }
File without changes
@@ -0,0 +1,55 @@
1
+ export interface IframeMessage<T = unknown> {
2
+ type: string;
3
+ data: T;
4
+ }
5
+ export interface PreviewReadyMessage extends IframeMessage<Record<string, never>> {
6
+ type: 'PreviewReady';
7
+ }
8
+ export interface ConsoleMessage extends IframeMessage<Record<string, any>> {
9
+ method: string;
10
+ type: 'Console';
11
+ }
12
+ export interface ChildLocationChangeMessage extends IframeMessage<any> {
13
+ type: 'ChildLocationChange';
14
+ }
15
+ export interface CreatePageMessage extends IframeMessage<string> {
16
+ type: 'CreatePage';
17
+ }
18
+ export interface RenderErrorMessage extends IframeMessage<any> {
19
+ type: 'RenderError';
20
+ location?: any;
21
+ }
22
+ export interface RenderErrorRepairMessage extends IframeMessage<any> {
23
+ type: 'RenderErrorRepair';
24
+ }
25
+ export interface PageScreenshotMessage extends IframeMessage<string> {
26
+ type: 'PageScreenshot';
27
+ }
28
+ export interface UpdateRoutesMessage extends IframeMessage<{
29
+ routes: any[];
30
+ }> {
31
+ type: 'UpdateRoutes';
32
+ }
33
+ /** 热更新消息 */
34
+ export interface HmrMessage extends IframeMessage<Record<string, never>> {
35
+ type: 'HmrMessage';
36
+ msg: {
37
+ type: 'hot' | 'errors';
38
+ data?: any;
39
+ };
40
+ }
41
+ export type OutgoingMessage = PreviewReadyMessage | HmrMessage | ConsoleMessage | ChildLocationChangeMessage | CreatePageMessage | RenderErrorMessage | RenderErrorRepairMessage | PageScreenshotMessage | UpdateRoutesMessage;
42
+ export interface GetRoutesMessage extends IframeMessage<Record<string, never>> {
43
+ type: 'GetRoutes';
44
+ }
45
+ export type IncomingMessage = GetRoutesMessage;
46
+ export interface ParentApi {
47
+ }
48
+ export interface ChildApi {
49
+ getRoutes: () => Promise<any[]>;
50
+ apiProxy: {
51
+ api: any;
52
+ getOpenApiJson: () => Promise<any>;
53
+ getLogJson: () => Promise<any>;
54
+ };
55
+ }
File without changes
@@ -0,0 +1,43 @@
1
+ import { type ComponentType } from 'react';
2
+ export type ITheme = 'dark' | 'light' | 'system';
3
+ export interface NavItemProps {
4
+ name: string;
5
+ to: string;
6
+ icon?: ComponentType<{
7
+ className?: string;
8
+ }>;
9
+ children?: NavItemProps[];
10
+ className?: string;
11
+ hasBadge?: boolean;
12
+ direction?: 'horizontal' | 'vertical';
13
+ onClick?: () => void;
14
+ hideActive?: boolean;
15
+ }
16
+ export interface BaseNavProps {
17
+ navList?: NavItemProps[];
18
+ className?: string;
19
+ activeClassName?: string;
20
+ }
21
+ export interface NavProps extends BaseNavProps {
22
+ /** 亮色主题下的主色 */
23
+ lightColorPrimary?: string;
24
+ /** 暗色主题下的主色 */
25
+ darkColorPrimary?: string;
26
+ /**
27
+ * 移动端导航栏 变体
28
+ */
29
+ mobileVariant?: 'normal' | 'dropdown';
30
+ }
31
+ declare global {
32
+ interface Window {
33
+ token?: string;
34
+ lgw_csrf_token: string;
35
+ CSRF_HEADERS?: Record<string, string>;
36
+ MIAODA_BUILTIN_TTT?: string;
37
+ MIAODA_APP_ID?: string;
38
+ IS_MIAODA_PREVIEW?: boolean;
39
+ _IS_Spark_RUNTIME?: boolean;
40
+ _bucket_id?: string;
41
+ csrfToken?: string;
42
+ }
43
+ }
File without changes
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 复制字符串到剪切板
3
+ * @param text 要复制的文本
4
+ * @returns Promise<boolean> 复制是否成功
5
+ */
6
+ export declare function copyToClipboard(text: string): Promise<boolean>;