@hsu-react/ui 2.2.15 → 2.4.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/es/build/webpack.d.ts +40 -0
- package/es/build/webpack.js +43 -0
- package/es/layout/Menu/_components/SecondaryHeader/index.module.scss +1 -1
- package/es/layout/Theme/index.d.ts +1 -1
- package/es/layout/Theme/index.js +1 -1
- package/es/styles/tokens.d.ts +5 -3
- package/es/styles/tokens.js +4 -2
- package/es/styles/tokens.scss +0 -24
- package/lib/build/webpack.d.ts +40 -0
- package/lib/build/webpack.js +48 -0
- package/lib/layout/Menu/_components/SecondaryHeader/index.module.scss +1 -1
- package/lib/layout/Theme/index.d.ts +1 -1
- package/lib/layout/Theme/index.js +1 -1
- package/lib/package.json +3 -0
- package/lib/styles/tokens.d.ts +5 -3
- package/lib/styles/tokens.js +4 -2
- package/lib/styles/tokens.scss +0 -24
- package/package.json +3 -3
- package/src/build/webpack.ts +44 -0
- package/src/layout/Menu/_components/SecondaryHeader/index.module.scss +1 -1
- package/src/layout/Theme/index.tsx +1 -1
- package/src/styles/tokens.scss +0 -24
- package/src/styles/tokens.ts +4 -2
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 给消费方 webpack 配置用的工具。**构建期模块,不要从应用代码里引**
|
|
3
|
+
* —— 它不依赖 React,也不该进运行时产物。
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* // webpack.config.js(CJS)
|
|
7
|
+
* const { excludeNodeModulesExceptHsuUi } = require("@hsu-react/ui/lib/build/webpack");
|
|
8
|
+
*
|
|
9
|
+
* { test: /\.scss$/, exclude: excludeNodeModulesExceptHsuUi, use: [...] }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 判断一个模块路径「是否该被 loader 排除」:node_modules 一律排除,但放行本库。
|
|
14
|
+
*
|
|
15
|
+
* ## 为什么需要它
|
|
16
|
+
*
|
|
17
|
+
* 本库的 es / lib 产物里带着**未编译的 `.module.scss`** 和图片资源,要由消费方自己的
|
|
18
|
+
* loader 处理(这样 CSS Module 的类名哈希、`getLocalIdent` 等策略才由消费方说了算)。
|
|
19
|
+
* 于是每个 webpack 项目都得在 scss / 图片规则上开一个「排除 node_modules,但放行
|
|
20
|
+
* @hsu-react/ui」的例外。
|
|
21
|
+
*
|
|
22
|
+
* ## 为什么不能用正则
|
|
23
|
+
*
|
|
24
|
+
* 手写的版本几乎都是 `/node_modules\/(?!@hsu-react\/ui\/)/`。它只看**第一个**
|
|
25
|
+
* node_modules 后面跟着什么——扁平安装(yarn / npm)下确实是 `@hsu-react/ui/`,
|
|
26
|
+
* 但 pnpm 的真实路径是
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
* node_modules/.pnpm/@hsu-react+ui@<版本>/node_modules/@hsu-react/ui/es/...
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* 跟着的是 `.pnpm/`,否定前瞻立刻失败,本库的 scss 与图片会被**全部排除**,
|
|
33
|
+
* 报「no loaders are configured to process this file」。这个坑在四个下游项目里
|
|
34
|
+
* 各踩过一次,所以把判定收进库里导出,消费方引用而不是各抄一份。
|
|
35
|
+
*
|
|
36
|
+
* 改按「整条路径里有没有 @hsu-react/ui」判断,扁平与嵌套两种布局都成立;
|
|
37
|
+
* 路径分隔符同时接受 `/` 与 `\`,Windows 下同样有效。
|
|
38
|
+
*/
|
|
39
|
+
export declare const excludeNodeModulesExceptHsuUi: (modulePath: string) => boolean;
|
|
40
|
+
export default excludeNodeModulesExceptHsuUi;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 给消费方 webpack 配置用的工具。**构建期模块,不要从应用代码里引**
|
|
3
|
+
* —— 它不依赖 React,也不该进运行时产物。
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* // webpack.config.js(CJS)
|
|
7
|
+
* const { excludeNodeModulesExceptHsuUi } = require("@hsu-react/ui/lib/build/webpack");
|
|
8
|
+
*
|
|
9
|
+
* { test: /\.scss$/, exclude: excludeNodeModulesExceptHsuUi, use: [...] }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 判断一个模块路径「是否该被 loader 排除」:node_modules 一律排除,但放行本库。
|
|
15
|
+
*
|
|
16
|
+
* ## 为什么需要它
|
|
17
|
+
*
|
|
18
|
+
* 本库的 es / lib 产物里带着**未编译的 `.module.scss`** 和图片资源,要由消费方自己的
|
|
19
|
+
* loader 处理(这样 CSS Module 的类名哈希、`getLocalIdent` 等策略才由消费方说了算)。
|
|
20
|
+
* 于是每个 webpack 项目都得在 scss / 图片规则上开一个「排除 node_modules,但放行
|
|
21
|
+
* @hsu-react/ui」的例外。
|
|
22
|
+
*
|
|
23
|
+
* ## 为什么不能用正则
|
|
24
|
+
*
|
|
25
|
+
* 手写的版本几乎都是 `/node_modules\/(?!@hsu-react\/ui\/)/`。它只看**第一个**
|
|
26
|
+
* node_modules 后面跟着什么——扁平安装(yarn / npm)下确实是 `@hsu-react/ui/`,
|
|
27
|
+
* 但 pnpm 的真实路径是
|
|
28
|
+
*
|
|
29
|
+
* ```
|
|
30
|
+
* node_modules/.pnpm/@hsu-react+ui@<版本>/node_modules/@hsu-react/ui/es/...
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* 跟着的是 `.pnpm/`,否定前瞻立刻失败,本库的 scss 与图片会被**全部排除**,
|
|
34
|
+
* 报「no loaders are configured to process this file」。这个坑在四个下游项目里
|
|
35
|
+
* 各踩过一次,所以把判定收进库里导出,消费方引用而不是各抄一份。
|
|
36
|
+
*
|
|
37
|
+
* 改按「整条路径里有没有 @hsu-react/ui」判断,扁平与嵌套两种布局都成立;
|
|
38
|
+
* 路径分隔符同时接受 `/` 与 `\`,Windows 下同样有效。
|
|
39
|
+
*/
|
|
40
|
+
export var excludeNodeModulesExceptHsuUi = function excludeNodeModulesExceptHsuUi(modulePath) {
|
|
41
|
+
return /node_modules/.test(modulePath) && !/@hsu-react[\\/]ui[\\/]/.test(modulePath);
|
|
42
|
+
};
|
|
43
|
+
export default excludeNodeModulesExceptHsuUi;
|
|
@@ -24,7 +24,7 @@ export interface ThemeProps {
|
|
|
24
24
|
* - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
|
|
25
25
|
* - matchMedia 监听系统深色 -> useIsDark
|
|
26
26
|
* - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
|
|
27
|
-
* - 在包裹元素上内联重定义 --
|
|
27
|
+
* - 在包裹元素上内联重定义 --vita-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
|
|
28
28
|
*/
|
|
29
29
|
declare const Theme: React.FC<ThemeProps>;
|
|
30
30
|
export default Theme;
|
package/es/layout/Theme/index.js
CHANGED
|
@@ -23,7 +23,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
23
23
|
* - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
|
|
24
24
|
* - matchMedia 监听系统深色 -> useIsDark
|
|
25
25
|
* - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
|
|
26
|
-
* - 在包裹元素上内联重定义 --
|
|
26
|
+
* - 在包裹元素上内联重定义 --vita-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
|
|
27
27
|
*/
|
|
28
28
|
var Theme = observer(function (props) {
|
|
29
29
|
var _navDarkColors$top, _navDarkColors$bottom;
|
package/es/styles/tokens.d.ts
CHANGED
|
@@ -38,8 +38,10 @@ export interface HsuThemeTokens {
|
|
|
38
38
|
shadow3: string;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* 2.0 之前的字段名。
|
|
42
|
-
*
|
|
41
|
+
* 2.0 之前的字段名。TS 字段是直接改名的,消费方写 `lightTokens.canvas` 会拿到
|
|
42
|
+
* undefined 且没有任何提示,所以这里补上映射。
|
|
43
|
+
*
|
|
44
|
+
* (CSS 变量那侧原本也有一层 `--cf-*` 别名,2.3.0 起已移除,见 docs/guide.md。)
|
|
43
45
|
*
|
|
44
46
|
* `headerBg` 在重命名时被整个删掉了(没有对应的新名),这里指回 `surface`:2.0 之前
|
|
45
47
|
* 两者在浅色下同为 #ffffff、暗色下同为卡片底色,语义上就是「顶栏用的面」。
|
|
@@ -98,7 +100,7 @@ export declare const breakpoints: {
|
|
|
98
100
|
sm: number;
|
|
99
101
|
md: number;
|
|
100
102
|
lg: number;
|
|
101
|
-
xl: number;
|
|
103
|
+
xl: number;
|
|
102
104
|
xxl: number;
|
|
103
105
|
};
|
|
104
106
|
/**
|
package/es/styles/tokens.js
CHANGED
|
@@ -28,8 +28,10 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
28
28
|
import raw from "./tokens.json";
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
* 2.0 之前的字段名。
|
|
32
|
-
*
|
|
31
|
+
* 2.0 之前的字段名。TS 字段是直接改名的,消费方写 `lightTokens.canvas` 会拿到
|
|
32
|
+
* undefined 且没有任何提示,所以这里补上映射。
|
|
33
|
+
*
|
|
34
|
+
* (CSS 变量那侧原本也有一层 `--cf-*` 别名,2.3.0 起已移除,见 docs/guide.md。)
|
|
33
35
|
*
|
|
34
36
|
* `headerBg` 在重命名时被整个删掉了(没有对应的新名),这里指回 `surface`:2.0 之前
|
|
35
37
|
* 两者在浅色下同为 #ffffff、暗色下同为卡片底色,语义上就是「顶栏用的面」。
|
package/es/styles/tokens.scss
CHANGED
|
@@ -62,30 +62,6 @@
|
|
|
62
62
|
--vita-screen-lg: 1024px;
|
|
63
63
|
--vita-screen-xl: 1280px;
|
|
64
64
|
--vita-screen-xxl: 1536px;
|
|
65
|
-
|
|
66
|
-
// ---- 兼容别名(2.0 前的 --cf-*,单向指向新名)----
|
|
67
|
-
--cf-canvas: var(--vita-background);
|
|
68
|
-
--cf-surface: var(--vita-surface);
|
|
69
|
-
--cf-subtle: var(--vita-muted);
|
|
70
|
-
--cf-border: var(--vita-border);
|
|
71
|
-
--cf-border-weak: var(--vita-border-weak);
|
|
72
|
-
--cf-text: var(--vita-foreground);
|
|
73
|
-
--cf-text-2: var(--vita-muted-foreground);
|
|
74
|
-
--cf-text-3: var(--vita-subtle-foreground);
|
|
75
|
-
--cf-row-hover: var(--vita-hover);
|
|
76
|
-
--cf-success: var(--vita-success);
|
|
77
|
-
--cf-warning: var(--vita-warning);
|
|
78
|
-
--cf-error: var(--vita-error);
|
|
79
|
-
--cf-font-family: var(--vita-font-family);
|
|
80
|
-
--cf-font-size-sm: var(--vita-font-size-sm);
|
|
81
|
-
--cf-font-size: var(--vita-font-size);
|
|
82
|
-
--cf-font-size-lg: var(--vita-font-size-lg);
|
|
83
|
-
--cf-radius-sm: var(--vita-radius-sm);
|
|
84
|
-
--cf-radius: var(--vita-radius);
|
|
85
|
-
--cf-radius-lg: var(--vita-radius-lg);
|
|
86
|
-
--cf-shadow-1: var(--vita-shadow-1);
|
|
87
|
-
--cf-shadow-2: var(--vita-shadow-2);
|
|
88
|
-
--cf-shadow-3: var(--vita-shadow-3);
|
|
89
65
|
}
|
|
90
66
|
|
|
91
67
|
html[data-theme="dark"],
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 给消费方 webpack 配置用的工具。**构建期模块,不要从应用代码里引**
|
|
3
|
+
* —— 它不依赖 React,也不该进运行时产物。
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* // webpack.config.js(CJS)
|
|
7
|
+
* const { excludeNodeModulesExceptHsuUi } = require("@hsu-react/ui/lib/build/webpack");
|
|
8
|
+
*
|
|
9
|
+
* { test: /\.scss$/, exclude: excludeNodeModulesExceptHsuUi, use: [...] }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 判断一个模块路径「是否该被 loader 排除」:node_modules 一律排除,但放行本库。
|
|
14
|
+
*
|
|
15
|
+
* ## 为什么需要它
|
|
16
|
+
*
|
|
17
|
+
* 本库的 es / lib 产物里带着**未编译的 `.module.scss`** 和图片资源,要由消费方自己的
|
|
18
|
+
* loader 处理(这样 CSS Module 的类名哈希、`getLocalIdent` 等策略才由消费方说了算)。
|
|
19
|
+
* 于是每个 webpack 项目都得在 scss / 图片规则上开一个「排除 node_modules,但放行
|
|
20
|
+
* @hsu-react/ui」的例外。
|
|
21
|
+
*
|
|
22
|
+
* ## 为什么不能用正则
|
|
23
|
+
*
|
|
24
|
+
* 手写的版本几乎都是 `/node_modules\/(?!@hsu-react\/ui\/)/`。它只看**第一个**
|
|
25
|
+
* node_modules 后面跟着什么——扁平安装(yarn / npm)下确实是 `@hsu-react/ui/`,
|
|
26
|
+
* 但 pnpm 的真实路径是
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
* node_modules/.pnpm/@hsu-react+ui@<版本>/node_modules/@hsu-react/ui/es/...
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* 跟着的是 `.pnpm/`,否定前瞻立刻失败,本库的 scss 与图片会被**全部排除**,
|
|
33
|
+
* 报「no loaders are configured to process this file」。这个坑在四个下游项目里
|
|
34
|
+
* 各踩过一次,所以把判定收进库里导出,消费方引用而不是各抄一份。
|
|
35
|
+
*
|
|
36
|
+
* 改按「整条路径里有没有 @hsu-react/ui」判断,扁平与嵌套两种布局都成立;
|
|
37
|
+
* 路径分隔符同时接受 `/` 与 `\`,Windows 下同样有效。
|
|
38
|
+
*/
|
|
39
|
+
export declare const excludeNodeModulesExceptHsuUi: (modulePath: string) => boolean;
|
|
40
|
+
export default excludeNodeModulesExceptHsuUi;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.excludeNodeModulesExceptHsuUi = exports.default = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* 给消费方 webpack 配置用的工具。**构建期模块,不要从应用代码里引**
|
|
9
|
+
* —— 它不依赖 React,也不该进运行时产物。
|
|
10
|
+
*
|
|
11
|
+
* ```js
|
|
12
|
+
* // webpack.config.js(CJS)
|
|
13
|
+
* const { excludeNodeModulesExceptHsuUi } = require("@hsu-react/ui/lib/build/webpack");
|
|
14
|
+
*
|
|
15
|
+
* { test: /\.scss$/, exclude: excludeNodeModulesExceptHsuUi, use: [...] }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 判断一个模块路径「是否该被 loader 排除」:node_modules 一律排除,但放行本库。
|
|
21
|
+
*
|
|
22
|
+
* ## 为什么需要它
|
|
23
|
+
*
|
|
24
|
+
* 本库的 es / lib 产物里带着**未编译的 `.module.scss`** 和图片资源,要由消费方自己的
|
|
25
|
+
* loader 处理(这样 CSS Module 的类名哈希、`getLocalIdent` 等策略才由消费方说了算)。
|
|
26
|
+
* 于是每个 webpack 项目都得在 scss / 图片规则上开一个「排除 node_modules,但放行
|
|
27
|
+
* @hsu-react/ui」的例外。
|
|
28
|
+
*
|
|
29
|
+
* ## 为什么不能用正则
|
|
30
|
+
*
|
|
31
|
+
* 手写的版本几乎都是 `/node_modules\/(?!@hsu-react\/ui\/)/`。它只看**第一个**
|
|
32
|
+
* node_modules 后面跟着什么——扁平安装(yarn / npm)下确实是 `@hsu-react/ui/`,
|
|
33
|
+
* 但 pnpm 的真实路径是
|
|
34
|
+
*
|
|
35
|
+
* ```
|
|
36
|
+
* node_modules/.pnpm/@hsu-react+ui@<版本>/node_modules/@hsu-react/ui/es/...
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* 跟着的是 `.pnpm/`,否定前瞻立刻失败,本库的 scss 与图片会被**全部排除**,
|
|
40
|
+
* 报「no loaders are configured to process this file」。这个坑在四个下游项目里
|
|
41
|
+
* 各踩过一次,所以把判定收进库里导出,消费方引用而不是各抄一份。
|
|
42
|
+
*
|
|
43
|
+
* 改按「整条路径里有没有 @hsu-react/ui」判断,扁平与嵌套两种布局都成立;
|
|
44
|
+
* 路径分隔符同时接受 `/` 与 `\`,Windows 下同样有效。
|
|
45
|
+
*/
|
|
46
|
+
const excludeNodeModulesExceptHsuUi = modulePath => /node_modules/.test(modulePath) && !/@hsu-react[\\/]ui[\\/]/.test(modulePath);
|
|
47
|
+
exports.excludeNodeModulesExceptHsuUi = excludeNodeModulesExceptHsuUi;
|
|
48
|
+
var _default = exports.default = excludeNodeModulesExceptHsuUi;
|
|
@@ -24,7 +24,7 @@ export interface ThemeProps {
|
|
|
24
24
|
* - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
|
|
25
25
|
* - matchMedia 监听系统深色 -> useIsDark
|
|
26
26
|
* - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
|
|
27
|
-
* - 在包裹元素上内联重定义 --
|
|
27
|
+
* - 在包裹元素上内联重定义 --vita-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
|
|
28
28
|
*/
|
|
29
29
|
declare const Theme: React.FC<ThemeProps>;
|
|
30
30
|
export default Theme;
|
|
@@ -32,7 +32,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
32
32
|
* - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
|
|
33
33
|
* - matchMedia 监听系统深色 -> useIsDark
|
|
34
34
|
* - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
|
|
35
|
-
* - 在包裹元素上内联重定义 --
|
|
35
|
+
* - 在包裹元素上内联重定义 --vita-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
|
|
36
36
|
*/
|
|
37
37
|
const Theme = (0, _mobxReactLite.observer)(props => {
|
|
38
38
|
const {
|
package/lib/package.json
ADDED
package/lib/styles/tokens.d.ts
CHANGED
|
@@ -38,8 +38,10 @@ export interface HsuThemeTokens {
|
|
|
38
38
|
shadow3: string;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* 2.0 之前的字段名。
|
|
42
|
-
*
|
|
41
|
+
* 2.0 之前的字段名。TS 字段是直接改名的,消费方写 `lightTokens.canvas` 会拿到
|
|
42
|
+
* undefined 且没有任何提示,所以这里补上映射。
|
|
43
|
+
*
|
|
44
|
+
* (CSS 变量那侧原本也有一层 `--cf-*` 别名,2.3.0 起已移除,见 docs/guide.md。)
|
|
43
45
|
*
|
|
44
46
|
* `headerBg` 在重命名时被整个删掉了(没有对应的新名),这里指回 `surface`:2.0 之前
|
|
45
47
|
* 两者在浅色下同为 #ffffff、暗色下同为卡片底色,语义上就是「顶栏用的面」。
|
|
@@ -98,7 +100,7 @@ export declare const breakpoints: {
|
|
|
98
100
|
sm: number;
|
|
99
101
|
md: number;
|
|
100
102
|
lg: number;
|
|
101
|
-
xl: number;
|
|
103
|
+
xl: number;
|
|
102
104
|
xxl: number;
|
|
103
105
|
};
|
|
104
106
|
/**
|
package/lib/styles/tokens.js
CHANGED
|
@@ -22,8 +22,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* 2.0 之前的字段名。
|
|
26
|
-
*
|
|
25
|
+
* 2.0 之前的字段名。TS 字段是直接改名的,消费方写 `lightTokens.canvas` 会拿到
|
|
26
|
+
* undefined 且没有任何提示,所以这里补上映射。
|
|
27
|
+
*
|
|
28
|
+
* (CSS 变量那侧原本也有一层 `--cf-*` 别名,2.3.0 起已移除,见 docs/guide.md。)
|
|
27
29
|
*
|
|
28
30
|
* `headerBg` 在重命名时被整个删掉了(没有对应的新名),这里指回 `surface`:2.0 之前
|
|
29
31
|
* 两者在浅色下同为 #ffffff、暗色下同为卡片底色,语义上就是「顶栏用的面」。
|
package/lib/styles/tokens.scss
CHANGED
|
@@ -62,30 +62,6 @@
|
|
|
62
62
|
--vita-screen-lg: 1024px;
|
|
63
63
|
--vita-screen-xl: 1280px;
|
|
64
64
|
--vita-screen-xxl: 1536px;
|
|
65
|
-
|
|
66
|
-
// ---- 兼容别名(2.0 前的 --cf-*,单向指向新名)----
|
|
67
|
-
--cf-canvas: var(--vita-background);
|
|
68
|
-
--cf-surface: var(--vita-surface);
|
|
69
|
-
--cf-subtle: var(--vita-muted);
|
|
70
|
-
--cf-border: var(--vita-border);
|
|
71
|
-
--cf-border-weak: var(--vita-border-weak);
|
|
72
|
-
--cf-text: var(--vita-foreground);
|
|
73
|
-
--cf-text-2: var(--vita-muted-foreground);
|
|
74
|
-
--cf-text-3: var(--vita-subtle-foreground);
|
|
75
|
-
--cf-row-hover: var(--vita-hover);
|
|
76
|
-
--cf-success: var(--vita-success);
|
|
77
|
-
--cf-warning: var(--vita-warning);
|
|
78
|
-
--cf-error: var(--vita-error);
|
|
79
|
-
--cf-font-family: var(--vita-font-family);
|
|
80
|
-
--cf-font-size-sm: var(--vita-font-size-sm);
|
|
81
|
-
--cf-font-size: var(--vita-font-size);
|
|
82
|
-
--cf-font-size-lg: var(--vita-font-size-lg);
|
|
83
|
-
--cf-radius-sm: var(--vita-radius-sm);
|
|
84
|
-
--cf-radius: var(--vita-radius);
|
|
85
|
-
--cf-radius-lg: var(--vita-radius-lg);
|
|
86
|
-
--cf-shadow-1: var(--vita-shadow-1);
|
|
87
|
-
--cf-shadow-2: var(--vita-shadow-2);
|
|
88
|
-
--cf-shadow-3: var(--vita-shadow-3);
|
|
89
65
|
}
|
|
90
66
|
|
|
91
67
|
html[data-theme="dark"],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hsu-react/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "一套基于 React + Ant Design 的中后台业务组件库",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"dev": "dumi dev",
|
|
42
42
|
"docs:build": "dumi build",
|
|
43
43
|
"docs:preview": "dumi preview",
|
|
44
|
-
"build": "node scripts/clean-dist.cjs && node scripts/gen-tokens-scss.cjs && father build && node scripts/check-heavy-deps.cjs",
|
|
45
|
-
"prepublishOnly": "node scripts/clean-dist.cjs && node scripts/gen-tokens-scss.cjs --check && father build && node scripts/check-heavy-deps.cjs",
|
|
44
|
+
"build": "node scripts/clean-dist.cjs && node scripts/gen-tokens-scss.cjs && father build && node scripts/mark-cjs.cjs && node scripts/check-heavy-deps.cjs",
|
|
45
|
+
"prepublishOnly": "node scripts/clean-dist.cjs && node scripts/gen-tokens-scss.cjs --check && father build && node scripts/mark-cjs.cjs && node scripts/check-heavy-deps.cjs",
|
|
46
46
|
"check:deps": "node scripts/check-heavy-deps.cjs",
|
|
47
47
|
"tokens": "node scripts/gen-tokens-scss.cjs",
|
|
48
48
|
"check:tokens": "node scripts/gen-tokens-scss.cjs --check"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 给消费方 webpack 配置用的工具。**构建期模块,不要从应用代码里引**
|
|
3
|
+
* —— 它不依赖 React,也不该进运行时产物。
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* // webpack.config.js(CJS)
|
|
7
|
+
* const { excludeNodeModulesExceptHsuUi } = require("@hsu-react/ui/lib/build/webpack");
|
|
8
|
+
*
|
|
9
|
+
* { test: /\.scss$/, exclude: excludeNodeModulesExceptHsuUi, use: [...] }
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 判断一个模块路径「是否该被 loader 排除」:node_modules 一律排除,但放行本库。
|
|
15
|
+
*
|
|
16
|
+
* ## 为什么需要它
|
|
17
|
+
*
|
|
18
|
+
* 本库的 es / lib 产物里带着**未编译的 `.module.scss`** 和图片资源,要由消费方自己的
|
|
19
|
+
* loader 处理(这样 CSS Module 的类名哈希、`getLocalIdent` 等策略才由消费方说了算)。
|
|
20
|
+
* 于是每个 webpack 项目都得在 scss / 图片规则上开一个「排除 node_modules,但放行
|
|
21
|
+
* @hsu-react/ui」的例外。
|
|
22
|
+
*
|
|
23
|
+
* ## 为什么不能用正则
|
|
24
|
+
*
|
|
25
|
+
* 手写的版本几乎都是 `/node_modules\/(?!@hsu-react\/ui\/)/`。它只看**第一个**
|
|
26
|
+
* node_modules 后面跟着什么——扁平安装(yarn / npm)下确实是 `@hsu-react/ui/`,
|
|
27
|
+
* 但 pnpm 的真实路径是
|
|
28
|
+
*
|
|
29
|
+
* ```
|
|
30
|
+
* node_modules/.pnpm/@hsu-react+ui@<版本>/node_modules/@hsu-react/ui/es/...
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* 跟着的是 `.pnpm/`,否定前瞻立刻失败,本库的 scss 与图片会被**全部排除**,
|
|
34
|
+
* 报「no loaders are configured to process this file」。这个坑在四个下游项目里
|
|
35
|
+
* 各踩过一次,所以把判定收进库里导出,消费方引用而不是各抄一份。
|
|
36
|
+
*
|
|
37
|
+
* 改按「整条路径里有没有 @hsu-react/ui」判断,扁平与嵌套两种布局都成立;
|
|
38
|
+
* 路径分隔符同时接受 `/` 与 `\`,Windows 下同样有效。
|
|
39
|
+
*/
|
|
40
|
+
export const excludeNodeModulesExceptHsuUi = (modulePath: string): boolean =>
|
|
41
|
+
/node_modules/.test(modulePath) &&
|
|
42
|
+
!/@hsu-react[\\/]ui[\\/]/.test(modulePath);
|
|
43
|
+
|
|
44
|
+
export default excludeNodeModulesExceptHsuUi;
|
|
@@ -30,7 +30,7 @@ export interface ThemeProps {
|
|
|
30
30
|
* - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
|
|
31
31
|
* - matchMedia 监听系统深色 -> useIsDark
|
|
32
32
|
* - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
|
|
33
|
-
* - 在包裹元素上内联重定义 --
|
|
33
|
+
* - 在包裹元素上内联重定义 --vita-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
|
|
34
34
|
*/
|
|
35
35
|
const Theme: React.FC<ThemeProps> = observer((props) => {
|
|
36
36
|
const { children, navDarkColors } = props;
|
package/src/styles/tokens.scss
CHANGED
|
@@ -62,30 +62,6 @@
|
|
|
62
62
|
--vita-screen-lg: 1024px;
|
|
63
63
|
--vita-screen-xl: 1280px;
|
|
64
64
|
--vita-screen-xxl: 1536px;
|
|
65
|
-
|
|
66
|
-
// ---- 兼容别名(2.0 前的 --cf-*,单向指向新名)----
|
|
67
|
-
--cf-canvas: var(--vita-background);
|
|
68
|
-
--cf-surface: var(--vita-surface);
|
|
69
|
-
--cf-subtle: var(--vita-muted);
|
|
70
|
-
--cf-border: var(--vita-border);
|
|
71
|
-
--cf-border-weak: var(--vita-border-weak);
|
|
72
|
-
--cf-text: var(--vita-foreground);
|
|
73
|
-
--cf-text-2: var(--vita-muted-foreground);
|
|
74
|
-
--cf-text-3: var(--vita-subtle-foreground);
|
|
75
|
-
--cf-row-hover: var(--vita-hover);
|
|
76
|
-
--cf-success: var(--vita-success);
|
|
77
|
-
--cf-warning: var(--vita-warning);
|
|
78
|
-
--cf-error: var(--vita-error);
|
|
79
|
-
--cf-font-family: var(--vita-font-family);
|
|
80
|
-
--cf-font-size-sm: var(--vita-font-size-sm);
|
|
81
|
-
--cf-font-size: var(--vita-font-size);
|
|
82
|
-
--cf-font-size-lg: var(--vita-font-size-lg);
|
|
83
|
-
--cf-radius-sm: var(--vita-radius-sm);
|
|
84
|
-
--cf-radius: var(--vita-radius);
|
|
85
|
-
--cf-radius-lg: var(--vita-radius-lg);
|
|
86
|
-
--cf-shadow-1: var(--vita-shadow-1);
|
|
87
|
-
--cf-shadow-2: var(--vita-shadow-2);
|
|
88
|
-
--cf-shadow-3: var(--vita-shadow-3);
|
|
89
65
|
}
|
|
90
66
|
|
|
91
67
|
html[data-theme="dark"],
|
package/src/styles/tokens.ts
CHANGED
|
@@ -42,8 +42,10 @@ export interface HsuThemeTokens {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* 2.0 之前的字段名。
|
|
46
|
-
*
|
|
45
|
+
* 2.0 之前的字段名。TS 字段是直接改名的,消费方写 `lightTokens.canvas` 会拿到
|
|
46
|
+
* undefined 且没有任何提示,所以这里补上映射。
|
|
47
|
+
*
|
|
48
|
+
* (CSS 变量那侧原本也有一层 `--cf-*` 别名,2.3.0 起已移除,见 docs/guide.md。)
|
|
47
49
|
*
|
|
48
50
|
* `headerBg` 在重命名时被整个删掉了(没有对应的新名),这里指回 `surface`:2.0 之前
|
|
49
51
|
* 两者在浅色下同为 #ffffff、暗色下同为卡片底色,语义上就是「顶栏用的面」。
|