@go-wind/admin-react 0.0.0-stage → 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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -2
  3. package/dist/access/access-control.d.ts +39 -0
  4. package/dist/access/field-permission.d.ts +11 -0
  5. package/dist/access/index.d.ts +4 -0
  6. package/dist/access/use-access.d.ts +50 -0
  7. package/dist/admin-react.css +2 -0
  8. package/dist/admin-react.js +5432 -0
  9. package/dist/admin-react.js.map +1 -0
  10. package/dist/auth-gateway.d.ts +54 -0
  11. package/dist/components/Loading/index.d.ts +22 -0
  12. package/dist/env.d.ts +5 -0
  13. package/dist/hooks/useProTableScrollY.d.ts +22 -0
  14. package/dist/hooks/useTime.d.ts +6 -0
  15. package/dist/hooks/useTitle.d.ts +1 -0
  16. package/dist/hooks/useTokenRefresh.d.ts +26 -0
  17. package/dist/i18n/components/LocaleSwitcher/index.d.ts +1 -0
  18. package/dist/i18n/components/index.d.ts +1 -0
  19. package/dist/i18n/config/i18n.d.ts +18 -0
  20. package/dist/i18n/hooks/index.d.ts +2 -0
  21. package/dist/i18n/hooks/useI18n.d.ts +96 -0
  22. package/dist/i18n/hooks/useLocaleSync.d.ts +4 -0
  23. package/dist/i18n/index.d.ts +3 -0
  24. package/dist/i18n/utils/detector.d.ts +26 -0
  25. package/dist/i18n/utils/formatter.d.ts +38 -0
  26. package/dist/i18n/utils/index.d.ts +3 -0
  27. package/dist/i18n/utils/sync.d.ts +27 -0
  28. package/dist/index.d.ts +34 -0
  29. package/dist/locales/en-US/index.d.ts +2 -0
  30. package/dist/locales/index.d.ts +10 -0
  31. package/dist/locales/zh-CN/index.d.ts +2 -0
  32. package/dist/nprogress-CwfUlis6.js +159 -0
  33. package/dist/nprogress-CwfUlis6.js.map +1 -0
  34. package/dist/preferences/components/PreferencesPanel/AppearancePanel.d.ts +3 -0
  35. package/dist/preferences/components/PreferencesPanel/GeneralPanel.d.ts +3 -0
  36. package/dist/preferences/components/PreferencesPanel/LayoutPanel.d.ts +3 -0
  37. package/dist/preferences/components/PreferencesPanel/ShortcutKeyPanel.d.ts +3 -0
  38. package/dist/preferences/components/PreferencesPanel/index.d.ts +8 -0
  39. package/dist/preferences/components/ThemeProvider/index.d.ts +9 -0
  40. package/dist/preferences/components/index.d.ts +2 -0
  41. package/dist/preferences/config/constants.d.ts +24 -0
  42. package/dist/preferences/config/darkTheme.d.ts +32 -0
  43. package/dist/preferences/config/default.d.ts +3 -0
  44. package/dist/preferences/config/index.d.ts +4 -0
  45. package/dist/preferences/config/lightTheme.d.ts +33 -0
  46. package/dist/preferences/hooks/index.d.ts +3 -0
  47. package/dist/preferences/hooks/useLocale.d.ts +23 -0
  48. package/dist/preferences/hooks/usePreferences.d.ts +31 -0
  49. package/dist/preferences/hooks/useThemeConfig.d.ts +2 -0
  50. package/dist/preferences/index.d.ts +5 -0
  51. package/dist/preferences/store/index.d.ts +24 -0
  52. package/dist/preferences/theme-transition.d.ts +17 -0
  53. package/dist/preferences/types/app.d.ts +238 -0
  54. package/dist/preferences/types/index.d.ts +4 -0
  55. package/dist/preferences/types/layout.d.ts +78 -0
  56. package/dist/preferences/types/preferences-root.d.ts +48 -0
  57. package/dist/preferences/types/theme.d.ts +29 -0
  58. package/dist/preferences/utils/diff.d.ts +7 -0
  59. package/dist/preferences/utils/merge.d.ts +9 -0
  60. package/dist/query-client.d.ts +9 -0
  61. package/dist/rolldown-runtime-BbCBk-LD.js +19 -0
  62. package/dist/router/factory.d.ts +7 -0
  63. package/dist/router/generators/generate-menus.d.ts +13 -0
  64. package/dist/router/generators/generate-routes-backend.d.ts +12 -0
  65. package/dist/router/generators/generate-routes-frontend.d.ts +17 -0
  66. package/dist/router/generators/index.d.ts +3 -0
  67. package/dist/router/index.d.ts +5 -0
  68. package/dist/router/routes-context.d.ts +8 -0
  69. package/dist/router/types/index.d.ts +207 -0
  70. package/dist/router/utils/index.d.ts +8 -0
  71. package/dist/router/utils/inject-redirect.d.ts +6 -0
  72. package/dist/router/utils/lazy.d.ts +11 -0
  73. package/dist/router/utils/loader.d.ts +14 -0
  74. package/dist/router/utils/menu.d.ts +5 -0
  75. package/dist/router/utils/merge-route-modules.d.ts +23 -0
  76. package/dist/router/utils/reset-routes.d.ts +18 -0
  77. package/dist/router/utils/sort-routes.d.ts +5 -0
  78. package/dist/router/utils/transform-meta-to-handle.d.ts +11 -0
  79. package/dist/storage/index.d.ts +2 -0
  80. package/dist/storage/storage.class.d.ts +125 -0
  81. package/dist/storage/storage.types.d.ts +199 -0
  82. package/dist/stores/auth.d.ts +56 -0
  83. package/dist/stores/index.d.ts +2 -0
  84. package/dist/stores/user.d.ts +32 -0
  85. package/dist/transport/rest/captcha-headers.d.ts +2 -0
  86. package/dist/transport/rest/index.d.ts +8 -0
  87. package/dist/transport/rest/modules/downloader.d.ts +9 -0
  88. package/dist/transport/rest/modules/interceptor.d.ts +9 -0
  89. package/dist/transport/rest/modules/uploader.d.ts +10 -0
  90. package/dist/transport/rest/pagination.d.ts +73 -0
  91. package/dist/transport/rest/preset-interceptors.d.ts +25 -0
  92. package/dist/transport/rest/request-api.d.ts +6 -0
  93. package/dist/transport/rest/request-client.d.ts +87 -0
  94. package/dist/transport/rest/types.d.ts +38 -0
  95. package/dist/transport/rest/utils.d.ts +16 -0
  96. package/dist/transport/sse/event.d.ts +44 -0
  97. package/dist/transport/sse/index.d.ts +5 -0
  98. package/dist/transport/sse/sse_client.d.ts +76 -0
  99. package/dist/transport/sse/types.d.ts +27 -0
  100. package/dist/types.d.ts +44 -0
  101. package/dist/utils/color.d.ts +27 -0
  102. package/dist/utils/date.d.ts +5 -0
  103. package/dist/utils/diff.d.ts +6 -0
  104. package/dist/utils/index.d.ts +9 -0
  105. package/dist/utils/inference.d.ts +111 -0
  106. package/dist/utils/merge.d.ts +17 -0
  107. package/dist/utils/nprogress.d.ts +11 -0
  108. package/dist/utils/tree.d.ts +27 -0
  109. package/dist/utils/url.d.ts +11 -0
  110. package/dist/utils/utils.d.ts +37 -0
  111. package/package.json +70 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nprogress-CwfUlis6.js","names":["__commonJSMin","require_nprogress","factory","exports","this$1","NProgress","Settings","key","value","options","started","clamp","n","progress","bar","speed","ease","queue","css","barPositionCSS","next","work","force","amount","initial","current","$promise","perc","fromStart","toBarPerc","parent","spinner","removeElement","addClass","removeClass","bodyStyle","vendorPrefix","min","max","barCSS","pending","fn","cssPrefixes","cssProps","camelCase","string","letter","getVendorProp","style","name","i","capName","vendorName","getStyleProp","applyCss","prop","args","properties","element","hasClass","classList","oldList","newList"],"sources":["../../../node_modules/.pnpm/nprogress@0.2.0/node_modules/nprogress/nprogress.js"],"sourcesContent":["/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n"],"ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import './AppearancePanel.style.less';
3
+ export declare const AppearancePanel: React.FC;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import './GeneralPanel.style.less';
3
+ export declare const GeneralPanel: React.FC;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import './LayoutPanel.style.less';
3
+ export declare const LayoutPanel: React.FC;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import './ShortcutKeyPanel.style.less';
3
+ export declare const ShortcutKeyPanel: React.FC;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './PreferencesPanel.style.less';
3
+ interface PreferencesPanelProps {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ }
7
+ export declare const PreferencesPanel: React.FC<PreferencesPanelProps>;
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export interface ThemeProviderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ /**
6
+ * 全局主题提供者
7
+ * 负责:AntD 主题动态切换、系统深色模式同步、CSS 滤镜、水印、国际化
8
+ */
9
+ export declare const ThemeProvider: ({ children }: ThemeProviderProps) => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from "./PreferencesPanel";
2
+ export * from "./ThemeProvider";
@@ -0,0 +1,24 @@
1
+ import type { BuiltinThemeType } from '../types';
2
+ interface BuiltinThemePreset {
3
+ color: string;
4
+ darkPrimaryColor?: string;
5
+ primaryColor?: string;
6
+ type: BuiltinThemeType;
7
+ }
8
+ declare const BUILT_IN_THEME_PRESETS: BuiltinThemePreset[];
9
+ export declare const COLOR_PRESETS: BuiltinThemePreset[];
10
+ /**
11
+ * 「次要文字」档(docs/design-language.md §2.2)。
12
+ *
13
+ * 浅色侧不直接用 gray-500 #6B7280:它是按白底量的,实测离开白底就掉下 4.5——
14
+ * 白 4.83 / 页面大底 #F5F5F5 4.43 / 卡片灰 #F0F2F5 4.31 / 标签栏 #F0F0F0 4.24。
15
+ * 沿同一色相压暗到 #676E7C 后四处全部达标:5.12 / 4.70 / 4.57 / 4.50(数值由
16
+ * `node .zcode/tmp/hue-calc.mjs` 同口径的 sRGB 相对亮度算出)。
17
+ * 三端共用这两个值(vue-element 的 --el-text-color-secondary、vue-vben 的 --gray-*),
18
+ * 改动须同步 docs/design-language.md §2.2 与三端。
19
+ */
20
+ export declare const SECONDARY_TEXT_LIGHT = "#676E7C";
21
+ /** 暗色侧的次要文字 = §2.3 的 #8B949E(L0 6.23 / L1 5.77 / L2 5.34 / L3 4.77 全达标) */
22
+ export declare const SECONDARY_TEXT_DARK = "#8B949E";
23
+ export { BUILT_IN_THEME_PRESETS };
24
+ export type { BuiltinThemePreset };
@@ -0,0 +1,32 @@
1
+ import type { ThemeConfig } from 'antd';
2
+ /**
3
+ * 暗黑模式扩展色板 —— 暗夜蓝黑大底 + gray 系一楼(2026-08-24 定稿)
4
+ *
5
+ * L0 #0B0F19 地面:全局大背景(暗夜蓝黑,最暗)
6
+ * L1 #111827 一楼:搜索卡片 + 抽屉 + 表格容器(gray-900,比大底微亮)
7
+ * L2 #161F33 二楼:输入框/下拉框(比卡片微亮,"浮起"式,避免黑洞感)
8
+ * L3 #1F2937 表头独立次级深色;#1C2128 下拉/弹窗浮层
9
+ *
10
+ * 主色 hsl(212 100% 45%)(#006BE6,见 docs/design-language.md);文字基色 #F8FAFC;placeholder #6E7681
11
+ */
12
+ export declare const DARK_PALETTE: {
13
+ readonly bgLayout: "#0B0F19";
14
+ readonly bgNav: "#111827";
15
+ readonly bgSurface: "#111827";
16
+ readonly bgElevated: "#1C2128";
17
+ readonly bgInset: "#111827";
18
+ readonly borderInput: "rgba(148, 163, 184, 0.22)";
19
+ readonly borderInputHover: "rgba(148, 163, 184, 0.4)";
20
+ readonly borderCard: "rgba(255, 255, 255, 0.08)";
21
+ readonly textPrimary: "#F8FAFC";
22
+ readonly textSecondary: "#8B949E";
23
+ readonly textTertiary: "#6E7681";
24
+ readonly placeholder: "#6E7681";
25
+ readonly accentBlue: "#006BE6";
26
+ };
27
+ /**
28
+ * 暗黑模式扩展 token —— 叠加在 theme.darkAlgorithm 之上的精调
29
+ * (用户 2026-08-24 定稿:暗夜蓝黑大底 + gray 一楼;主色 2026-09-08 起对齐设计语言规范)
30
+ */
31
+ export declare const darkThemeTokens: ThemeConfig['token'];
32
+ export declare const darkThemeComponents: ThemeConfig['components'];
@@ -0,0 +1,3 @@
1
+ import type { Preferences } from "../types";
2
+ declare const defaultPreferences: Preferences;
3
+ export { defaultPreferences };
@@ -0,0 +1,4 @@
1
+ export * from './constants';
2
+ export * from './darkTheme';
3
+ export * from './default';
4
+ export * from './lightTheme';
@@ -0,0 +1,33 @@
1
+ import type { ThemeConfig } from 'antd';
2
+ /**
3
+ * 浅色模式扩展色板 —— docs/design-language.md §2.2 的落地值
4
+ *
5
+ * canvas #F1F3F6 页面画布(卡片在其上"浮起")
6
+ * surface #FFFFFF 卡片 / 表格容器 / 顶栏 / 侧栏
7
+ * border #E4E4E7 通用边框(≈ zinc-200)
8
+ *
9
+ * 沿革:本文件 2026-10-16 之前不存在——react 端此前只有 darkTheme.ts 一套覆盖,浅色全部
10
+ * 走 antd defaultAlgorithm 派生值(实测画布 #F5F5F5、卡片边框 #F0F0F0、卡片投影 none),
11
+ * 白卡压在 #F5F5F5 上分离度只有 1.049、边框对白底 1.045,等于"没有层级系统"。
12
+ * §2.2 开头那条"react 半 ✓ … 要严格对齐需新增一套 light tokens,未做,属新工作"记录的就是这里。
13
+ */
14
+ export declare const LIGHT_PALETTE: {
15
+ readonly bgLayout: "#F1F3F6";
16
+ readonly bgSurface: "#FFFFFF";
17
+ readonly borderCard: "#E4E4E7";
18
+ };
19
+ /**
20
+ * 浅色模式扩展 token —— 叠加在 theme.defaultAlgorithm 之上
21
+ *
22
+ * 只补"层级"这一条线(画布/容器/边框/圆角),文字档不动:
23
+ * 主/常规/次要三档已由 src/styles/semantic-text.css 与 colorTextDescription
24
+ * (constants.ts 的 SECONDARY_TEXT_LIGHT)接上,再在 token 层覆盖一遍会派生出
25
+ * 第二套真相。
26
+ *
27
+ * colorTextPlaceholder 同样**故意不动**:§2.2 记的浅色档是 #9CA3AF,但 antd
28
+ * 默认的 rgba(0,0,0,.25)(合成 #BFBFBF)与已输入值 #1F2937 的分离度 6.06 倍,
29
+ * 比 #9CA3AF 的 5.78 倍更"退后"。本轮的诉求是去掉生硬、不是加重提示语,
30
+ * 钉成 #9CA3AF 会把暗色那轮刚压下去的问题在浅色侧重犯一遍。
31
+ */
32
+ export declare const lightThemeTokens: ThemeConfig['token'];
33
+ export declare const lightThemeComponents: ThemeConfig['components'];
@@ -0,0 +1,3 @@
1
+ export * from "./useLocale";
2
+ export * from "./usePreferences";
3
+ export * from "./useThemeConfig";
@@ -0,0 +1,23 @@
1
+ import type { Locale } from 'antd/es/locale';
2
+ import type { SupportedLanguagesType } from '../types/layout';
3
+ /**
4
+ * 语言切换 Hook
5
+ * 提供便捷的语言切换和管理功能,同时支持 Ant Design 国际化
6
+ */
7
+ export declare function useLocale(): {
8
+ locale: SupportedLanguagesType;
9
+ localeName: string;
10
+ antdLocale: Locale;
11
+ isZhCN: boolean;
12
+ isEnUS: boolean;
13
+ setLocale: (newLocale: SupportedLanguagesType) => void;
14
+ setZhCN: () => void;
15
+ setEnUS: () => void;
16
+ toggleLocale: () => void;
17
+ getLocaleName: (lang: SupportedLanguagesType) => string;
18
+ supportedLocales: {
19
+ value: SupportedLanguagesType;
20
+ label: string;
21
+ }[];
22
+ preferences: import("..").Preferences;
23
+ };
@@ -0,0 +1,31 @@
1
+ import type { DeepPartial, Preferences } from '../types';
2
+ /**
3
+ * 偏好设置 Hook
4
+ * 提供便捷的偏好设置访问和更新方法
5
+ */
6
+ export declare function usePreferences(): {
7
+ preferences: Preferences;
8
+ app: import("..").AppPreferences;
9
+ theme: import("..").ThemePreferences;
10
+ shortcutKeys: import("..").ShortcutKeyPreferences;
11
+ transition: import("..").TransitionPreferences;
12
+ copyright: import("..").CopyrightPreferences;
13
+ navigation: import("..").NavigationPreferences;
14
+ tabbar: import("..").TabbarPreferences;
15
+ breadcrumb: import("..").BreadcrumbPreferences;
16
+ sidebar: import("..").SidebarPreferences;
17
+ header: import("..").HeaderPreferences;
18
+ footer: import("..").FooterPreferences;
19
+ logo: import("..").LogoPreferences;
20
+ widget: import("..").WidgetPreferences;
21
+ isDark: boolean;
22
+ isMobile: boolean;
23
+ updatePreferences: (overrides: DeepPartial<Preferences>) => void;
24
+ resetPreferences: () => void;
25
+ getPreference: <K extends keyof Preferences>(key: K) => Preferences[K];
26
+ updateTheme: (themeOverrides: DeepPartial<Preferences["theme"]>) => void;
27
+ updateApp: (appOverrides: DeepPartial<Preferences["app"]>) => void;
28
+ toggleTheme: () => void;
29
+ setThemeMode: (mode: Preferences["theme"]["mode"]) => void;
30
+ setLanguage: (locale: Preferences["app"]["locale"]) => void;
31
+ };
@@ -0,0 +1,2 @@
1
+ import { type ThemeConfig } from 'antd';
2
+ export declare const useThemeConfig: () => ThemeConfig;
@@ -0,0 +1,5 @@
1
+ export * from "./types";
2
+ export * from "./config";
3
+ export * from "./hooks";
4
+ export * from "./store";
5
+ export * from "./components";
@@ -0,0 +1,24 @@
1
+ import type { DeepPartial, Preferences } from '../types';
2
+ export interface PreferencesState {
3
+ preferences: Preferences;
4
+ setPreferences: (overrides: DeepPartial<Preferences>) => void;
5
+ resetPreferences: () => void;
6
+ getPreference: <K extends keyof Preferences>(key: K) => Preferences[K];
7
+ }
8
+ export declare const usePreferencesStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<PreferencesState>, "setState" | "persist"> & {
9
+ setState(partial: PreferencesState | Partial<PreferencesState> | ((state: PreferencesState) => PreferencesState | Partial<PreferencesState>), replace?: false | undefined): unknown;
10
+ setState(state: PreferencesState | ((state: PreferencesState) => PreferencesState), replace: true): unknown;
11
+ persist: {
12
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<PreferencesState, {
13
+ preferences: Preferences;
14
+ }, unknown>>) => void;
15
+ clearStorage: () => void;
16
+ rehydrate: () => Promise<void>;
17
+ hasHydrated: () => boolean;
18
+ onHydrate: (fn: (state: PreferencesState) => void) => () => void;
19
+ onFinishHydration: (fn: (state: PreferencesState) => void) => () => void;
20
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<PreferencesState, {
21
+ preferences: Preferences;
22
+ }, unknown>>;
23
+ };
24
+ }>;
@@ -0,0 +1,17 @@
1
+ export interface ThemeTransitionOrigin {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface ThemeTransitionOptions {
6
+ /** 执行状态更新的函数,内部会以 flushSync 包裹以保证过渡快照时机 */
7
+ update: () => void;
8
+ /** 动效圆心(通常是点击点);缺省时取视口中心 */
9
+ origin?: ThemeTransitionOrigin;
10
+ }
11
+ /**
12
+ * 主题切换的 View Transitions 圆形扩散动效(ele/ThemeSwitch 风格):
13
+ * 始终让新画面自圆心扩张覆盖旧画面。切暗时暗色从点击点立即绽开,
14
+ * 不存在"旧画面收缩"方案里点击点附近久久残留亮色的问题。
15
+ * 浏览器不支持或用户偏好减少动效(prefers-reduced-motion)时退化为直接切换。
16
+ */
17
+ export declare function startThemeViewTransition({ update, origin, }: ThemeTransitionOptions): void;
@@ -0,0 +1,238 @@
1
+ import type { BuiltinThemeType, ThemeModeType } from "./theme";
2
+ import type { AccessModeType, AuthPageLayoutType, BreadcrumbStyleType, ContentCompactType, LayoutHeaderModeType, LayoutType, LoginExpiredModeType, NavigationStyleType, PageTransitionType, PreferencesButtonPositionType, SupportedLanguagesType, TabsStyleType } from "./layout";
3
+ /**
4
+ * 应用偏好设置
5
+ */
6
+ export interface AppPreferences {
7
+ /** 权限模式 */
8
+ accessMode: AccessModeType;
9
+ /** 登录注册页面布局 */
10
+ authPageLayout: AuthPageLayoutType;
11
+ /** 检查更新轮询时间 */
12
+ checkUpdatesInterval: number;
13
+ /** 是否开启灰色模式 */
14
+ colorGrayMode: boolean;
15
+ /** 是否开启色弱模式 */
16
+ colorWeakMode: boolean;
17
+ /** 是否开启紧凑模式 */
18
+ compact: boolean;
19
+ /** 是否开启内容紧凑模式 */
20
+ contentCompact: ContentCompactType;
21
+ defaultAvatar: string;
22
+ dynamicTitle: boolean;
23
+ /** 是否开启检查更新 */
24
+ enableCheckUpdates: boolean;
25
+ /** 是否显示偏好设置 */
26
+ enablePreferences: boolean;
27
+ /**
28
+ * @zh_CN 是否开启refreshToken
29
+ */
30
+ enableRefreshToken: boolean;
31
+ /** 是否启用多租户 */
32
+ enableTenant: boolean;
33
+ /** 是否移动端 */
34
+ isMobile: boolean;
35
+ /** 布局方式 */
36
+ layout: LayoutType;
37
+ /** 支持的语言 */
38
+ locale: SupportedLanguagesType;
39
+ /** 登录过期模式 */
40
+ loginExpiredMode: LoginExpiredModeType;
41
+ /** 应用名 */
42
+ name: string;
43
+ /** 应用版本 */
44
+ version: string;
45
+ /** 偏好设置按钮位置 */
46
+ preferencesButtonPosition: PreferencesButtonPositionType;
47
+ /**
48
+ * @zh_CN 是否开启水印
49
+ */
50
+ watermark: boolean;
51
+ }
52
+ /**
53
+ * 面包屑偏好设置
54
+ */
55
+ export interface BreadcrumbPreferences {
56
+ /** 面包屑是否启用 */
57
+ enable: boolean;
58
+ /** 面包屑是否只有一个时隐藏 */
59
+ hideOnlyOne: boolean;
60
+ /** 面包屑首页图标是否可见 */
61
+ showHome: boolean;
62
+ /** 面包屑图标是否可见 */
63
+ showIcon: boolean;
64
+ /** 面包屑风格 */
65
+ styleType: BreadcrumbStyleType;
66
+ }
67
+ /**
68
+ * 版权偏好设置
69
+ */
70
+ export interface CopyrightPreferences {
71
+ /** 版权公司名 */
72
+ companyName: string;
73
+ /** 版权公司名链接 */
74
+ companySiteLink: string;
75
+ /** 版权日期 */
76
+ date: string;
77
+ /** 版权是否可见 */
78
+ enable: boolean;
79
+ /** 备案号 */
80
+ icp: string;
81
+ /** 备案号链接 */
82
+ icpLink: string;
83
+ /** 设置面板是否显示*/
84
+ settingShow?: boolean;
85
+ }
86
+ /**
87
+ * 顶栏偏好设置
88
+ */
89
+ export interface HeaderPreferences {
90
+ /** 顶栏是否启用 */
91
+ enable: boolean;
92
+ /** 顶栏是否隐藏,css-隐藏 */
93
+ hidden: boolean;
94
+ /** header显示模式 */
95
+ mode: LayoutHeaderModeType;
96
+ }
97
+ /**
98
+ * 底栏偏好设置
99
+ */
100
+ export interface FooterPreferences {
101
+ /** 底栏是否可见 */
102
+ enable: boolean;
103
+ /** 底栏是否固定 */
104
+ fixed: boolean;
105
+ }
106
+ /**
107
+ * logo偏好设置
108
+ */
109
+ export interface LogoPreferences {
110
+ /** logo是否可见 */
111
+ enable: boolean;
112
+ /** logo地址 */
113
+ source: string;
114
+ }
115
+ /**
116
+ * 导航偏好设置
117
+ */
118
+ export interface NavigationPreferences {
119
+ /** 导航菜单手风琴模式 */
120
+ accordion: boolean;
121
+ /** 导航菜单是否切割,只在 layout=mixed-nav 生效 */
122
+ split: boolean;
123
+ /** 导航菜单风格 */
124
+ styleType: NavigationStyleType;
125
+ }
126
+ /**
127
+ * 侧边栏偏好设置
128
+ */
129
+ export interface SidebarPreferences {
130
+ /** 侧边栏是否折叠 */
131
+ collapsed: boolean;
132
+ /** 侧边栏折叠时,是否显示title */
133
+ collapsedShowTitle: boolean;
134
+ /** 侧边栏是否可见 */
135
+ enable: boolean;
136
+ /** 菜单自动展开状态 */
137
+ expandOnHover: boolean;
138
+ /** 侧边栏扩展区域是否折叠 */
139
+ extraCollapse: boolean;
140
+ /** 侧边栏是否隐藏 - css */
141
+ hidden: boolean;
142
+ /** 侧边栏宽度 */
143
+ width: number;
144
+ }
145
+ /**
146
+ * 快捷键偏好设置
147
+ */
148
+ export interface ShortcutKeyPreferences {
149
+ /** 是否启用快捷键-全局 */
150
+ enable: boolean;
151
+ /** 是否启用全局锁屏快捷键 */
152
+ globalLockScreen: boolean;
153
+ /** 是否启用全局注销快捷键 */
154
+ globalLogout: boolean;
155
+ /** 是否启用全局偏好设置快捷键 */
156
+ globalPreferences: boolean;
157
+ /** 是否启用全局搜索快捷键 */
158
+ globalSearch: boolean;
159
+ }
160
+ /**
161
+ * 标签栏偏好设置
162
+ */
163
+ export interface TabbarPreferences {
164
+ /** 是否开启多标签页拖拽 */
165
+ draggable: boolean;
166
+ /** 是否开启多标签页 */
167
+ enable: boolean;
168
+ /** 标签页高度 */
169
+ height: number;
170
+ /** 开启标签页缓存功能 */
171
+ keepAlive: boolean;
172
+ /** 是否持久化标签 */
173
+ persist: boolean;
174
+ /** 是否开启多标签页图标 */
175
+ showIcon: boolean;
176
+ /** 显示最大化按钮 */
177
+ showMaximize: boolean;
178
+ /** 显示更多按钮 */
179
+ showMore: boolean;
180
+ /** 标签页风格 */
181
+ styleType: TabsStyleType;
182
+ }
183
+ /**
184
+ * 主题偏好设置
185
+ */
186
+ export interface ThemePreferences {
187
+ /** 内置主题名 */
188
+ builtinType: BuiltinThemeType;
189
+ /** 错误色 */
190
+ colorDestructive: string;
191
+ /** 主题色 */
192
+ colorPrimary: string;
193
+ /** 成功色 */
194
+ colorSuccess: string;
195
+ /** 警告色 */
196
+ colorWarning: string;
197
+ /** 当前主题 */
198
+ mode: ThemeModeType;
199
+ /** 圆角 */
200
+ radius: string;
201
+ /** 是否开启半深色header(只在theme='light'时生效) */
202
+ semiDarkHeader: boolean;
203
+ /** 是否开启半深色菜单(只在theme='light'时生效) */
204
+ semiDarkSidebar: boolean;
205
+ }
206
+ /**
207
+ * 页面切换动画偏好设置
208
+ */
209
+ export interface TransitionPreferences {
210
+ /** 页面切换动画是否启用 */
211
+ enable: boolean;
212
+ loading: boolean;
213
+ /** 页面切换动画 */
214
+ name: PageTransitionType | string;
215
+ /** 是否开启页面加载进度动画 */
216
+ progress: boolean;
217
+ }
218
+ /**
219
+ * 小部件偏好设置
220
+ */
221
+ export interface WidgetPreferences {
222
+ /** 是否启用全屏部件 */
223
+ fullscreen: boolean;
224
+ /** 是否启用全局搜索部件 */
225
+ globalSearch: boolean;
226
+ /** 是否启用语言切换部件 */
227
+ languageToggle: boolean;
228
+ /** 是否开启锁屏功能 */
229
+ lockScreen: boolean;
230
+ /** 是否显示通知部件 */
231
+ notification: boolean;
232
+ /** 显示刷新按钮 */
233
+ refresh: boolean;
234
+ /** 是否显示侧边栏显示/隐藏部件 */
235
+ sidebarToggle: boolean;
236
+ /** 是否显示主题切换部件 */
237
+ themeToggle: boolean;
238
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./app";
2
+ export * from "./layout";
3
+ export * from "./theme";
4
+ export * from "./preferences-root";
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 登录过期模式
3
+ * modal 弹窗模式
4
+ * page 页面模式
5
+ */
6
+ export type LoginExpiredModeType = "modal" | "page";
7
+ /**
8
+ * 权限模式
9
+ * backend 后端权限模式
10
+ * frontend 前端权限模式
11
+ */
12
+ export type AccessModeType = "backend" | "frontend";
13
+ /**
14
+ * 支持的语言类型
15
+ * 与应用使用的语言值保持一致
16
+ */
17
+ export type SupportedLanguagesType = "zh-CN" | "en-US";
18
+ /**
19
+ * 布局方式
20
+ * sidebar-nav 侧边菜单布局
21
+ * header-nav 顶部菜单布局
22
+ * mixed-nav 侧边&顶部菜单布局
23
+ * sidebar-mixed-nav 侧边混合菜单布局
24
+ * full-content 全屏内容布局
25
+ */
26
+ export type LayoutType = "full-content" | "header-nav" | "mixed-nav" | "sidebar-mixed-nav" | "sidebar-nav";
27
+ /**
28
+ * 偏好设置按钮位置
29
+ * fixed 固定在右侧
30
+ * header 顶栏
31
+ * auto 自动
32
+ */
33
+ export type PreferencesButtonPositionType = "auto" | "fixed" | "header";
34
+ /**
35
+ * 内容区域宽度
36
+ * compact 紧凑宽度
37
+ * wide 宽屏
38
+ */
39
+ export type ContentCompactType = "compact" | "wide";
40
+ /**
41
+ * 布局头部模式
42
+ * auto 自动隐藏
43
+ * auto-scroll 滚动时自动隐藏
44
+ * fixed 固定在顶部
45
+ * static 随内容滚动
46
+ */
47
+ export type LayoutHeaderModeType = "auto" | "auto-scroll" | "fixed" | "static";
48
+ /**
49
+ * 导航风格
50
+ * plain 朴素
51
+ * rounded 圆润
52
+ */
53
+ export type NavigationStyleType = "plain" | "rounded";
54
+ /**
55
+ * 标签栏风格
56
+ * brisk 轻快
57
+ * card 卡片
58
+ * chrome 谷歌
59
+ * plain 朴素
60
+ */
61
+ export type TabsStyleType = "brisk" | "card" | "chrome" | "plain";
62
+ /**
63
+ * 页面切换动画
64
+ */
65
+ export type PageTransitionType = "fade" | "fade-down" | "fade-slide" | "fade-up";
66
+ /**
67
+ * 页面切换动画
68
+ * panel-center 居中布局
69
+ * panel-left 居左布局
70
+ * panel-right 居右布局
71
+ */
72
+ export type AuthPageLayoutType = "panel-center" | "panel-left" | "panel-right";
73
+ /**
74
+ * 面包屑样式
75
+ * background 背景
76
+ * normal 默认
77
+ */
78
+ export type BreadcrumbStyleType = 'background' | 'normal';