niuma-ui 2.0.9 → 2.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/CHANGELOG.md +9 -0
- package/NOTICE +0 -1
- package/README.md +3 -3
- package/README.zh-CN.md +3 -3
- package/dist/components/button/src/RsButton.css +75 -72
- package/dist/components/button/src/RsButton.d.ts +1 -4
- package/dist/components/button/src/RsButton.impl.js +2 -6
- package/dist/components/button/src/RsButton.js +1 -1
- package/dist/components/config-provider/src/RsConfigProvider.css +1 -1
- package/dist/components/config-provider/src/RsConfigProvider.d.ts +2 -2
- package/dist/components/config-provider/src/RsConfigProvider.impl.js +7 -16
- package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
- package/dist/components/table/src/table-body/RsTableCell.impl.js +1 -1
- package/dist/components/table/style/rs-table.css +54 -10
- package/dist/components/toaster/src/RsToaster.d.ts +1 -1
- package/dist/styles.css +7 -13
- package/dist/theme/brand.example.css +1 -1
- package/package.json +2 -4
- package/dist/components/_shared/src/reka.d.ts +0 -2
- package/dist/components/_shared/src/reka.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [2.1.0] - 2026-09-22
|
|
10
|
+
|
|
11
|
+
### 变更
|
|
12
|
+
|
|
13
|
+
- 去掉 `reka-ui`。`RsConfigProvider` 不再包一层 Reka `ConfigProvider`。`theme` / `locale` / `dir` / `controlSize` / `controlRadius` / `themeScope` 语义不变;语言和书写方向仍由 `applyLocale` 写到 `document` 或 Provider 根节点。
|
|
14
|
+
- 文档站版本改为读取 `package.json`。推送 `v*` 标签时与 npm 发布同一提交重新部署 GitHub Pages。
|
|
15
|
+
- `RsButton` 轮廓描边改跟 `--rs-input-border`。亮色不再用 `#6e6e73`,暗色不再用 `#a3a3a3`。
|
|
16
|
+
- `RsButton`:未传 `bordered` 回到 `false`(与 2.0.3 之前一致)。要描边须显式传 `bordered`。
|
|
17
|
+
|
|
9
18
|
## [2.0.9] - 2026-09-22
|
|
10
19
|
|
|
11
20
|
### 变更
|
package/NOTICE
CHANGED
|
@@ -17,7 +17,6 @@ Versions below are typical; the lockfile is authoritative.
|
|
|
17
17
|
| Project / 项目 | Typical license / 常见许可证 | Use / 用途 |
|
|
18
18
|
|----------------|------------------------------|------------|
|
|
19
19
|
| Vue | MIT | peer framework |
|
|
20
|
-
| Reka UI | MIT | accessible primitives |
|
|
21
20
|
| Lucide (@lucide/vue) | ISC | default icons |
|
|
22
21
|
| Monaco Editor | MIT | RsMonacoEditor |
|
|
23
22
|
| CodeMirror | MIT | RsCodeEditor |
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Built for ops consoles, database workbenches, and internal admin UIs. Marketing
|
|
|
18
18
|
- **Design tokens** — light / dark / system via `data-rs-theme` and CSS variables; hosts override a brand layer
|
|
19
19
|
- **Rs\* components** — Button, Form, Dialog, Table, Tree, Tabs, Anchor, and more
|
|
20
20
|
- **Tooling** — Monaco, CodeMirror, xterm (import only on routes that need them)
|
|
21
|
-
- **Accessibility** —
|
|
21
|
+
- **Accessibility** — native controls and ARIA; apps depend only on `niuma-ui`
|
|
22
22
|
- **i18n** — omitted `locale` follows the host language (`zh*` → `zh-CN`, `en*` → `en-US`); unknown tags fall back to `zh-CN`. Extra languages: `registerRsLocale` ([guide](./docs/locales.en.md))
|
|
23
23
|
- **Vite** — `import { RsButton } from 'niuma-ui'` is enough to bundle; `niumaUiHost` is local `pnpm dev` HMR only
|
|
24
24
|
|
|
@@ -71,7 +71,7 @@ Omit `locale` to follow the host language. Chinese systems stay on `zh-CN`. Comm
|
|
|
71
71
|
|
|
72
72
|
## Usage
|
|
73
73
|
|
|
74
|
-
1. Named-import from the package root only.
|
|
74
|
+
1. Named-import from the package root only. Do not `import *`.
|
|
75
75
|
2. Import `niuma-ui/styles.css` once, then your brand CSS.
|
|
76
76
|
3. Wrap the app with `RsConfigProvider` (theme, locale, default control size).
|
|
77
77
|
4. Light sites re-export used symbols from their own `ui.ts`. Do not alias the package to this repo’s `src/index.ts`.
|
|
@@ -116,7 +116,7 @@ Stable publishes set npm dist-tag **`latest`**; prereleases use **`next`**. Ther
|
|
|
116
116
|
|
|
117
117
|
[Apache License 2.0](./LICENSE). Attribution: [NOTICE](./NOTICE).
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
Icons: [Lucide](https://lucide.dev/). Editors: [Monaco](https://microsoft.github.io/monaco-editor/), [CodeMirror](https://codemirror.net/). Terminal: [xterm.js](https://xtermjs.org/).
|
|
120
120
|
|
|
121
121
|
- Docs: https://blair-shang.github.io/niuma-ui/
|
|
122
122
|
- npm: https://www.npmjs.com/package/niuma-ui
|
package/README.zh-CN.md
CHANGED
|
@@ -18,7 +18,7 @@ Vue 3 **工作台**设计系统:一致的 `Rs*` 组件与 `--rs-*` Token,以
|
|
|
18
18
|
- **Design Token**:明暗主题走 `data-rs-theme`(`light` / `dark` / `system`)与 CSS 变量,宿主用品牌层覆盖
|
|
19
19
|
- **Rs\* 组件**:Button、Form、Dialog、Table、Tree、Tabs、Anchor 等
|
|
20
20
|
- **专业工具**:Monaco、CodeMirror、xterm(只在用到的路由引入)
|
|
21
|
-
-
|
|
21
|
+
- **无障碍**:原生控件与 ARIA,应用只依赖 `niuma-ui`
|
|
22
22
|
- **国际化**:未设 `locale` 时跟本机语言(中文系统就是 `zh-CN`);认不出回退中文。第三方语言用 `registerRsLocale`,见 [docs/locales.md](./docs/locales.md)
|
|
23
23
|
- **Vite**:`import { RsButton } from 'niuma-ui'` 即可打包;`niumaUiHost` 仅本机 `pnpm dev` 联调源码
|
|
24
24
|
|
|
@@ -71,7 +71,7 @@ import { RsConfigProvider, RsButton } from 'niuma-ui'
|
|
|
71
71
|
|
|
72
72
|
## 使用约定
|
|
73
73
|
|
|
74
|
-
1. 只从包根具名导入:`import { RsButton } from 'niuma-ui'
|
|
74
|
+
1. 只从包根具名导入:`import { RsButton } from 'niuma-ui'`。不要 `import *`。
|
|
75
75
|
2. 样式只引一次 `niuma-ui/styles.css`,再加载你的品牌 CSS。
|
|
76
76
|
3. 根节点包 `RsConfigProvider`(主题、语言、默认控件尺寸)。
|
|
77
77
|
4. 轻量站点在自己的 `ui.ts` 里再导出用到的符号。不要把包名别名到本仓库的 `src/index.ts`。
|
|
@@ -122,7 +122,7 @@ pnpm build # 库 → dist/
|
|
|
122
122
|
|
|
123
123
|
[Apache License 2.0](./LICENSE)。版权与第三方声明见 [NOTICE](./NOTICE)。
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
图标:[Lucide](https://lucide.dev/)。编辑器:[Monaco](https://microsoft.github.io/monaco-editor/)、[CodeMirror](https://codemirror.net/)。终端:[xterm.js](https://xtermjs.org/)。
|
|
126
126
|
|
|
127
127
|
- 文档站:https://blair-shang.github.io/niuma-ui/
|
|
128
128
|
- npm:https://www.npmjs.com/package/niuma-ui
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
.rs-btn[data-v-
|
|
2
|
+
.rs-btn[data-v-8974aec3] {
|
|
3
3
|
position: relative;
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
align-items: center;
|
|
@@ -23,127 +23,122 @@
|
|
|
23
23
|
padding var(--rs-transition-normal),
|
|
24
24
|
gap var(--rs-transition-normal);
|
|
25
25
|
}
|
|
26
|
-
.rs-btn--ssm[data-v-
|
|
26
|
+
.rs-btn--ssm[data-v-8974aec3] {
|
|
27
27
|
min-height: var(--rs-control-height-ssm);
|
|
28
28
|
padding: 0 var(--rs-space-xs);
|
|
29
29
|
font-size: var(--rs-font-size-xs);
|
|
30
30
|
gap: var(--rs-space-xs);
|
|
31
31
|
}
|
|
32
|
-
.rs-btn--sm[data-v-
|
|
32
|
+
.rs-btn--sm[data-v-8974aec3] {
|
|
33
33
|
min-height: var(--rs-control-height-sm);
|
|
34
34
|
padding: 0 var(--rs-space-sm);
|
|
35
35
|
font-size: var(--rs-font-size-xs);
|
|
36
36
|
gap: var(--rs-space-xs);
|
|
37
37
|
}
|
|
38
|
-
.rs-btn--lg[data-v-
|
|
38
|
+
.rs-btn--lg[data-v-8974aec3] {
|
|
39
39
|
min-height: var(--rs-control-height-lg);
|
|
40
40
|
padding: 0 var(--rs-space-xl);
|
|
41
41
|
font-size: var(--rs-font-size-base);
|
|
42
42
|
}
|
|
43
|
-
.rs-btn[data-v-
|
|
43
|
+
.rs-btn[data-v-8974aec3]:disabled {
|
|
44
44
|
opacity: 0.38;
|
|
45
45
|
cursor: not-allowed;
|
|
46
46
|
}
|
|
47
|
-
.rs-btn--loading[data-v-
|
|
47
|
+
.rs-btn--loading[data-v-8974aec3] {
|
|
48
48
|
pointer-events: none;
|
|
49
49
|
cursor: wait;
|
|
50
50
|
transition: none;
|
|
51
51
|
}
|
|
52
52
|
/* loading 时不使用 disabled,避免部分浏览器暂停子元素 CSS 动画 */
|
|
53
|
-
.rs-btn--loading[data-v-
|
|
53
|
+
.rs-btn--loading[data-v-8974aec3]:disabled {
|
|
54
54
|
opacity: 1;
|
|
55
55
|
cursor: wait;
|
|
56
56
|
}
|
|
57
|
-
.rs-btn--loading.rs-btn--default[data-v-
|
|
57
|
+
.rs-btn--loading.rs-btn--default[data-v-8974aec3] {
|
|
58
58
|
color: var(--rs-text);
|
|
59
59
|
border-color: var(--rs-border);
|
|
60
60
|
background: var(--rs-surface);
|
|
61
61
|
}
|
|
62
|
-
.rs-btn--loading.rs-btn--default[data-v-
|
|
62
|
+
.rs-btn--loading.rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
|
|
63
63
|
color: var(--rs-btn-tone-on-container);
|
|
64
64
|
border-color: color-mix(in srgb, var(--rs-btn-tone) 42%, var(--rs-border));
|
|
65
65
|
background: var(--rs-btn-tone-container);
|
|
66
66
|
}
|
|
67
|
-
.rs-btn--loading.rs-btn--ghost[data-v-
|
|
68
|
-
.rs-btn--loading.rs-btn--text[data-v-
|
|
67
|
+
.rs-btn--loading.rs-btn--ghost[data-v-8974aec3],
|
|
68
|
+
.rs-btn--loading.rs-btn--text[data-v-8974aec3] {
|
|
69
69
|
color: var(--rs-btn-tone, var(--rs-text));
|
|
70
70
|
background: var(--rs-surface-hover);
|
|
71
71
|
}
|
|
72
|
-
.rs-btn[data-v-
|
|
72
|
+
.rs-btn[data-v-8974aec3]:focus-visible {
|
|
73
73
|
outline: none;
|
|
74
74
|
box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
|
|
75
75
|
}
|
|
76
|
-
.rs-btn--icon-only[data-v-
|
|
76
|
+
.rs-btn--icon-only[data-v-8974aec3] {
|
|
77
77
|
padding: 0;
|
|
78
78
|
min-width: var(--rs-control-height-md);
|
|
79
79
|
}
|
|
80
|
-
.rs-btn--icon-only.rs-btn--ssm[data-v-
|
|
80
|
+
.rs-btn--icon-only.rs-btn--ssm[data-v-8974aec3] {
|
|
81
81
|
min-width: var(--rs-control-height-ssm);
|
|
82
82
|
}
|
|
83
|
-
.rs-btn--icon-only.rs-btn--sm[data-v-
|
|
83
|
+
.rs-btn--icon-only.rs-btn--sm[data-v-8974aec3] {
|
|
84
84
|
min-width: var(--rs-control-height-sm);
|
|
85
85
|
}
|
|
86
|
-
.rs-btn--icon-only.rs-btn--lg[data-v-
|
|
86
|
+
.rs-btn--icon-only.rs-btn--lg[data-v-8974aec3] {
|
|
87
87
|
min-width: var(--rs-control-height-lg);
|
|
88
88
|
}
|
|
89
|
-
.rs-btn--primary[data-v-
|
|
89
|
+
.rs-btn--primary[data-v-8974aec3] {
|
|
90
90
|
background: var(--rs-primary);
|
|
91
91
|
color: var(--rs-primary-foreground);
|
|
92
92
|
box-shadow: var(--rs-shadow-sm);
|
|
93
93
|
}
|
|
94
|
-
.rs-btn--primary[data-v-
|
|
94
|
+
.rs-btn--primary[data-v-8974aec3]:hover:not(:disabled) {
|
|
95
95
|
background: var(--rs-primary-hover);
|
|
96
96
|
box-shadow: var(--rs-shadow);
|
|
97
97
|
}
|
|
98
|
-
.rs-btn--primary[data-v-
|
|
98
|
+
.rs-btn--primary[data-v-8974aec3]:active:not(:disabled) {
|
|
99
99
|
box-shadow: none;
|
|
100
100
|
}
|
|
101
|
-
.rs-btn--default[data-v-
|
|
101
|
+
.rs-btn--default[data-v-8974aec3] {
|
|
102
102
|
border: 1px solid var(--rs-btn-outline-border, var(--rs-border));
|
|
103
103
|
background: var(--rs-btn-secondary-bg, var(--rs-surface-hover));
|
|
104
104
|
color: var(--rs-text);
|
|
105
105
|
box-shadow: none;
|
|
106
106
|
}
|
|
107
|
-
.rs-btn--default[data-v-
|
|
107
|
+
.rs-btn--default[data-v-8974aec3]:hover:not(:disabled) {
|
|
108
108
|
color: var(--rs-primary);
|
|
109
109
|
border-color: var(--rs-primary);
|
|
110
110
|
background: var(--rs-btn-secondary-bg-hover, var(--rs-primary-container));
|
|
111
111
|
}
|
|
112
|
-
.rs-btn--default[data-v-
|
|
112
|
+
.rs-btn--default[data-v-8974aec3]:active:not(:disabled) {
|
|
113
113
|
color: var(--rs-primary-hover);
|
|
114
114
|
border-color: var(--rs-primary-hover);
|
|
115
115
|
background: var(--rs-btn-secondary-bg-active, var(--rs-primary-container));
|
|
116
116
|
}
|
|
117
|
-
.rs-btn--ghost[data-v-
|
|
117
|
+
.rs-btn--ghost[data-v-8974aec3] {
|
|
118
118
|
background: transparent;
|
|
119
119
|
border: 1px solid var(--rs-btn-outline-border, var(--rs-border));
|
|
120
120
|
color: var(--rs-btn-tone, var(--rs-text));
|
|
121
121
|
}
|
|
122
|
-
.rs-btn--ghost[data-v-
|
|
122
|
+
.rs-btn--ghost[data-v-8974aec3]:hover:not(:disabled) {
|
|
123
123
|
background: var(--rs-surface-hover);
|
|
124
124
|
border-color: var(--rs-btn-outline-border, var(--rs-border));
|
|
125
125
|
color: var(--rs-btn-tone-hover, var(--rs-btn-tone, var(--rs-text)));
|
|
126
126
|
}
|
|
127
|
-
.rs-btn--ghost[data-v-
|
|
127
|
+
.rs-btn--ghost[data-v-8974aec3]:active:not(:disabled) {
|
|
128
128
|
background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 12%, var(--rs-surface-hover));
|
|
129
129
|
}
|
|
130
|
-
.rs-btn--
|
|
131
|
-
.rs-btn--borderless[data-v-423f0a90]:hover:not(:disabled),
|
|
132
|
-
.rs-btn--borderless[data-v-423f0a90]:active:not(:disabled) {
|
|
133
|
-
border-color: transparent;
|
|
134
|
-
}
|
|
135
|
-
.rs-btn--danger[data-v-423f0a90] {
|
|
130
|
+
.rs-btn--danger[data-v-8974aec3] {
|
|
136
131
|
background: var(--rs-danger-container);
|
|
137
132
|
border-color: color-mix(in srgb, var(--rs-danger) 30%, transparent);
|
|
138
133
|
color: var(--rs-on-danger-container);
|
|
139
134
|
}
|
|
140
|
-
.rs-btn--danger[data-v-
|
|
135
|
+
.rs-btn--danger[data-v-8974aec3]:hover:not(:disabled) {
|
|
141
136
|
border-color: var(--rs-danger);
|
|
142
137
|
background: color-mix(in srgb, var(--rs-danger) 20%, var(--rs-danger-container));
|
|
143
138
|
}
|
|
144
139
|
|
|
145
140
|
/* 行内链接:可下划线;色调由 tone 控制(默认 primary) */
|
|
146
|
-
.rs-btn--link[data-v-
|
|
141
|
+
.rs-btn--link[data-v-8974aec3] {
|
|
147
142
|
min-height: auto;
|
|
148
143
|
padding: 0;
|
|
149
144
|
border-color: transparent;
|
|
@@ -153,7 +148,7 @@
|
|
|
153
148
|
box-shadow: none;
|
|
154
149
|
font-weight: var(--rs-font-weight-medium);
|
|
155
150
|
}
|
|
156
|
-
.rs-btn--link[data-v-
|
|
151
|
+
.rs-btn--link[data-v-8974aec3]:hover:not(:disabled) {
|
|
157
152
|
color: var(--rs-btn-tone-hover, var(--rs-primary-hover));
|
|
158
153
|
text-decoration: underline;
|
|
159
154
|
}
|
|
@@ -162,7 +157,7 @@
|
|
|
162
157
|
* text:工具栏 / 表格操作 quaternary
|
|
163
158
|
* 无底无边,靠 tone 着色;hover 使用同色浅底
|
|
164
159
|
*/
|
|
165
|
-
.rs-btn--text[data-v-
|
|
160
|
+
.rs-btn--text[data-v-8974aec3] {
|
|
166
161
|
min-height: var(--rs-control-height-sm);
|
|
167
162
|
padding: 0 var(--rs-space-sm);
|
|
168
163
|
border-color: transparent;
|
|
@@ -171,61 +166,61 @@
|
|
|
171
166
|
font-weight: var(--rs-font-weight-regular);
|
|
172
167
|
color: var(--rs-btn-tone, var(--rs-text));
|
|
173
168
|
}
|
|
174
|
-
.rs-btn--text.rs-btn--ssm[data-v-
|
|
169
|
+
.rs-btn--text.rs-btn--ssm[data-v-8974aec3] {
|
|
175
170
|
min-height: var(--rs-control-height-ssm);
|
|
176
171
|
}
|
|
177
|
-
.rs-btn--text.rs-btn--md[data-v-
|
|
172
|
+
.rs-btn--text.rs-btn--md[data-v-8974aec3] {
|
|
178
173
|
min-height: var(--rs-control-height-md);
|
|
179
174
|
}
|
|
180
|
-
.rs-btn--text.rs-btn--lg[data-v-
|
|
175
|
+
.rs-btn--text.rs-btn--lg[data-v-8974aec3] {
|
|
181
176
|
min-height: var(--rs-control-height-lg);
|
|
182
177
|
}
|
|
183
|
-
.rs-btn--text[data-v-
|
|
178
|
+
.rs-btn--text[data-v-8974aec3]:hover:not(:disabled) {
|
|
184
179
|
background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 8%, transparent);
|
|
185
180
|
border-color: transparent;
|
|
186
181
|
color: var(--rs-btn-tone-hover, var(--rs-btn-tone, var(--rs-text)));
|
|
187
182
|
}
|
|
188
|
-
.rs-btn--text[data-v-
|
|
183
|
+
.rs-btn--text[data-v-8974aec3]:active:not(:disabled) {
|
|
189
184
|
background: color-mix(in srgb, var(--rs-btn-tone, var(--rs-text)) 12%, transparent);
|
|
190
185
|
}
|
|
191
186
|
|
|
192
187
|
/* tone:色相 token,供所有变体消费(形态 × 色相) */
|
|
193
|
-
.rs-btn--tone-neutral[data-v-
|
|
188
|
+
.rs-btn--tone-neutral[data-v-8974aec3] {
|
|
194
189
|
--rs-btn-tone: var(--rs-text);
|
|
195
190
|
--rs-btn-tone-hover: var(--rs-text);
|
|
196
191
|
--rs-btn-tone-fg: var(--rs-text);
|
|
197
192
|
--rs-btn-tone-container: var(--rs-btn-secondary-bg, var(--rs-surface-hover));
|
|
198
193
|
--rs-btn-tone-on-container: var(--rs-text);
|
|
199
194
|
}
|
|
200
|
-
.rs-btn--tone-primary[data-v-
|
|
195
|
+
.rs-btn--tone-primary[data-v-8974aec3] {
|
|
201
196
|
--rs-btn-tone: var(--rs-primary);
|
|
202
197
|
--rs-btn-tone-hover: var(--rs-primary-hover);
|
|
203
198
|
--rs-btn-tone-fg: var(--rs-primary-foreground);
|
|
204
199
|
--rs-btn-tone-container: var(--rs-primary-container);
|
|
205
200
|
--rs-btn-tone-on-container: var(--rs-on-primary-container);
|
|
206
201
|
}
|
|
207
|
-
.rs-btn--tone-danger[data-v-
|
|
202
|
+
.rs-btn--tone-danger[data-v-8974aec3] {
|
|
208
203
|
--rs-btn-tone: var(--rs-danger);
|
|
209
204
|
--rs-btn-tone-hover: var(--rs-danger);
|
|
210
205
|
--rs-btn-tone-fg: var(--rs-text-inverse);
|
|
211
206
|
--rs-btn-tone-container: var(--rs-danger-container);
|
|
212
207
|
--rs-btn-tone-on-container: var(--rs-on-danger-container);
|
|
213
208
|
}
|
|
214
|
-
.rs-btn--tone-success[data-v-
|
|
209
|
+
.rs-btn--tone-success[data-v-8974aec3] {
|
|
215
210
|
--rs-btn-tone: var(--rs-success, #18a058);
|
|
216
211
|
--rs-btn-tone-hover: var(--rs-success, #18a058);
|
|
217
212
|
--rs-btn-tone-fg: var(--rs-text-inverse);
|
|
218
213
|
--rs-btn-tone-container: var(--rs-success-container, color-mix(in srgb, var(--rs-success, #18a058) 14%, var(--rs-surface)));
|
|
219
214
|
--rs-btn-tone-on-container: var(--rs-on-success-container, var(--rs-success, #18a058));
|
|
220
215
|
}
|
|
221
|
-
.rs-btn--tone-warning[data-v-
|
|
216
|
+
.rs-btn--tone-warning[data-v-8974aec3] {
|
|
222
217
|
--rs-btn-tone: var(--rs-warning, #f0a020);
|
|
223
218
|
--rs-btn-tone-hover: var(--rs-warning, #f0a020);
|
|
224
219
|
--rs-btn-tone-fg: var(--rs-text-inverse);
|
|
225
220
|
--rs-btn-tone-container: var(--rs-warning-container, color-mix(in srgb, var(--rs-warning, #f0a020) 14%, var(--rs-surface)));
|
|
226
221
|
--rs-btn-tone-on-container: var(--rs-on-warning-container, var(--rs-warning, #f0a020));
|
|
227
222
|
}
|
|
228
|
-
.rs-btn--tone-info[data-v-
|
|
223
|
+
.rs-btn--tone-info[data-v-8974aec3] {
|
|
229
224
|
--rs-btn-tone: var(--rs-info, #2080f0);
|
|
230
225
|
--rs-btn-tone-hover: var(--rs-info, #2080f0);
|
|
231
226
|
--rs-btn-tone-fg: var(--rs-text-inverse);
|
|
@@ -234,42 +229,50 @@
|
|
|
234
229
|
}
|
|
235
230
|
|
|
236
231
|
/* default + 语义色:轮廓 + 浅底(Ant outlined / Element plain) */
|
|
237
|
-
.rs-btn--default[data-v-
|
|
232
|
+
.rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
|
|
238
233
|
color: var(--rs-btn-tone-on-container);
|
|
239
234
|
border-color: color-mix(in srgb, var(--rs-btn-tone) 42%, var(--rs-border));
|
|
240
235
|
background: var(--rs-btn-tone-container);
|
|
241
236
|
}
|
|
242
|
-
.rs-btn--default[data-v-
|
|
237
|
+
.rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
|
|
243
238
|
color: var(--rs-btn-tone);
|
|
244
239
|
border-color: var(--rs-btn-tone);
|
|
245
240
|
background: color-mix(in srgb, var(--rs-btn-tone) 14%, var(--rs-btn-tone-container));
|
|
246
241
|
}
|
|
247
|
-
.rs-btn--default[data-v-
|
|
242
|
+
.rs-btn--default[data-v-8974aec3]:not(.rs-btn--tone-neutral):active:not(:disabled) {
|
|
248
243
|
color: var(--rs-btn-tone-hover);
|
|
249
244
|
border-color: var(--rs-btn-tone-hover);
|
|
250
245
|
background: color-mix(in srgb, var(--rs-btn-tone) 20%, var(--rs-btn-tone-container));
|
|
251
246
|
}
|
|
252
247
|
|
|
253
248
|
/* primary + 非主色:实心语义色 */
|
|
254
|
-
.rs-btn--primary[data-v-
|
|
249
|
+
.rs-btn--primary[data-v-8974aec3]:not(.rs-btn--tone-primary) {
|
|
255
250
|
background: var(--rs-btn-tone);
|
|
256
251
|
color: var(--rs-btn-tone-fg);
|
|
257
252
|
border-color: transparent;
|
|
258
253
|
}
|
|
259
|
-
.rs-btn--primary[data-v-
|
|
254
|
+
.rs-btn--primary[data-v-8974aec3]:not(.rs-btn--tone-primary):hover:not(:disabled) {
|
|
260
255
|
background: var(--rs-btn-tone-hover);
|
|
261
256
|
}
|
|
262
257
|
|
|
263
258
|
/* ghost + 语义色:描边跟色相 */
|
|
264
|
-
.rs-btn--ghost[data-v-
|
|
259
|
+
.rs-btn--ghost[data-v-8974aec3]:not(.rs-btn--tone-neutral) {
|
|
265
260
|
border-color: color-mix(in srgb, var(--rs-btn-tone) 45%, var(--rs-border));
|
|
266
261
|
}
|
|
267
|
-
.rs-btn--ghost[data-v-
|
|
262
|
+
.rs-btn--ghost[data-v-8974aec3]:not(.rs-btn--tone-neutral):hover:not(:disabled) {
|
|
268
263
|
border-color: var(--rs-btn-tone);
|
|
269
264
|
background: color-mix(in srgb, var(--rs-btn-tone) 14%, var(--rs-surface));
|
|
270
265
|
color: var(--rs-btn-tone);
|
|
271
266
|
}
|
|
272
|
-
|
|
267
|
+
|
|
268
|
+
/* 未传 bordered 时压过上面各变体后写的 border-color */
|
|
269
|
+
.rs-btn.rs-btn--borderless[data-v-8974aec3],
|
|
270
|
+
.rs-btn.rs-btn--borderless[data-v-8974aec3]:hover:not(:disabled),
|
|
271
|
+
.rs-btn.rs-btn--borderless[data-v-8974aec3]:active:not(:disabled),
|
|
272
|
+
.rs-btn.rs-btn--borderless.rs-btn--loading[data-v-8974aec3] {
|
|
273
|
+
border-color: transparent;
|
|
274
|
+
}
|
|
275
|
+
.rs-btn__spinner[data-v-8974aec3] {
|
|
273
276
|
display: inline-flex;
|
|
274
277
|
align-items: center;
|
|
275
278
|
justify-content: center;
|
|
@@ -278,7 +281,7 @@
|
|
|
278
281
|
flex-shrink: 0;
|
|
279
282
|
pointer-events: none;
|
|
280
283
|
}
|
|
281
|
-
.rs-btn__spinner-ring[data-v-
|
|
284
|
+
.rs-btn__spinner-ring[data-v-8974aec3] {
|
|
282
285
|
display: block;
|
|
283
286
|
width: 100%;
|
|
284
287
|
height: 100%;
|
|
@@ -286,27 +289,27 @@
|
|
|
286
289
|
border-top-color: var(--rs-primary);
|
|
287
290
|
border-radius: var(--rs-radius-full);
|
|
288
291
|
transform-origin: center center;
|
|
289
|
-
animation: rs-spin-
|
|
292
|
+
animation: rs-spin-8974aec3 0.75s linear infinite;
|
|
290
293
|
}
|
|
291
|
-
.rs-btn--default .rs-btn__spinner-ring[data-v-
|
|
292
|
-
.rs-btn--ghost .rs-btn__spinner-ring[data-v-
|
|
294
|
+
.rs-btn--default .rs-btn__spinner-ring[data-v-8974aec3],
|
|
295
|
+
.rs-btn--ghost .rs-btn__spinner-ring[data-v-8974aec3] {
|
|
293
296
|
border-color: color-mix(in srgb, var(--rs-btn-tone, var(--rs-primary)) 28%, transparent);
|
|
294
297
|
border-top-color: var(--rs-btn-tone, var(--rs-primary));
|
|
295
298
|
}
|
|
296
|
-
.rs-btn--text .rs-btn__spinner-ring[data-v-
|
|
297
|
-
.rs-btn--link .rs-btn__spinner-ring[data-v-
|
|
299
|
+
.rs-btn--text .rs-btn__spinner-ring[data-v-8974aec3],
|
|
300
|
+
.rs-btn--link .rs-btn__spinner-ring[data-v-8974aec3] {
|
|
298
301
|
border-color: color-mix(in srgb, var(--rs-btn-tone, var(--rs-primary)) 28%, transparent);
|
|
299
302
|
border-top-color: var(--rs-btn-tone, var(--rs-primary));
|
|
300
303
|
}
|
|
301
|
-
.rs-btn--primary .rs-btn__spinner-ring[data-v-
|
|
304
|
+
.rs-btn--primary .rs-btn__spinner-ring[data-v-8974aec3] {
|
|
302
305
|
border-color: color-mix(in srgb, currentcolor 35%, transparent);
|
|
303
306
|
border-top-color: currentcolor;
|
|
304
307
|
}
|
|
305
|
-
.rs-btn--danger .rs-btn__spinner-ring[data-v-
|
|
308
|
+
.rs-btn--danger .rs-btn__spinner-ring[data-v-8974aec3] {
|
|
306
309
|
border-color: color-mix(in srgb, var(--rs-danger) 28%, transparent);
|
|
307
310
|
border-top-color: var(--rs-danger);
|
|
308
311
|
}
|
|
309
|
-
.rs-btn__icon[data-v-
|
|
312
|
+
.rs-btn__icon[data-v-8974aec3] {
|
|
310
313
|
display: inline-flex;
|
|
311
314
|
flex-shrink: 0;
|
|
312
315
|
align-items: center;
|
|
@@ -315,7 +318,7 @@
|
|
|
315
318
|
color: inherit;
|
|
316
319
|
}
|
|
317
320
|
/* 插槽内自定义图标+文案时也能水平对齐 */
|
|
318
|
-
.rs-btn__label[data-v-
|
|
321
|
+
.rs-btn__label[data-v-8974aec3] {
|
|
319
322
|
display: inline-flex;
|
|
320
323
|
align-items: center;
|
|
321
324
|
gap: inherit;
|
|
@@ -323,7 +326,7 @@
|
|
|
323
326
|
line-height: 1;
|
|
324
327
|
white-space: nowrap;
|
|
325
328
|
}
|
|
326
|
-
.rs-btn__label--reveal[data-v-
|
|
329
|
+
.rs-btn__label--reveal[data-v-8974aec3] {
|
|
327
330
|
display: inline-block;
|
|
328
331
|
max-width: 0;
|
|
329
332
|
opacity: 0;
|
|
@@ -334,12 +337,12 @@
|
|
|
334
337
|
max-width 0.2s ease,
|
|
335
338
|
opacity 0.15s ease;
|
|
336
339
|
}
|
|
337
|
-
.rs-btn--reveal-label:hover:not(:disabled) .rs-btn__label--reveal[data-v-
|
|
338
|
-
.rs-btn--reveal-label:focus-visible .rs-btn__label--reveal[data-v-
|
|
340
|
+
.rs-btn--reveal-label:hover:not(:disabled) .rs-btn__label--reveal[data-v-8974aec3],
|
|
341
|
+
.rs-btn--reveal-label:focus-visible .rs-btn__label--reveal[data-v-8974aec3] {
|
|
339
342
|
max-width: 12rem;
|
|
340
343
|
opacity: 1;
|
|
341
344
|
}
|
|
342
|
-
.rs-btn__tooltip[data-v-
|
|
345
|
+
.rs-btn__tooltip[data-v-8974aec3] {
|
|
343
346
|
position: fixed;
|
|
344
347
|
/* Portal 挂 body,必须高于 Dialog/Drawer(100/101),与 RsTooltip 同一档 */
|
|
345
348
|
z-index: calc(var(--rs-z-modal) + 2);
|
|
@@ -355,17 +358,17 @@
|
|
|
355
358
|
box-shadow: var(--rs-shadow-sm);
|
|
356
359
|
pointer-events: none;
|
|
357
360
|
}
|
|
358
|
-
@keyframes rs-spin-
|
|
361
|
+
@keyframes rs-spin-8974aec3 {
|
|
359
362
|
to {
|
|
360
363
|
transform: rotate(360deg);
|
|
361
364
|
}
|
|
362
365
|
}
|
|
363
366
|
@media (prefers-reduced-motion: reduce) {
|
|
364
|
-
.rs-btn[data-v-
|
|
365
|
-
.rs-btn__label--reveal[data-v-
|
|
367
|
+
.rs-btn[data-v-8974aec3],
|
|
368
|
+
.rs-btn__label--reveal[data-v-8974aec3] {
|
|
366
369
|
transition: none;
|
|
367
370
|
}
|
|
368
|
-
.rs-btn__spinner-ring[data-v-
|
|
371
|
+
.rs-btn__spinner-ring[data-v-8974aec3] {
|
|
369
372
|
animation: none;
|
|
370
373
|
border-top-color: transparent;
|
|
371
374
|
}
|
|
@@ -15,10 +15,7 @@ type __VLS_Props = {
|
|
|
15
15
|
type?: 'button' | 'submit' | 'reset';
|
|
16
16
|
disabled?: boolean;
|
|
17
17
|
loading?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* 是否显示外边框。未传时 text / link 无边,其余有边。
|
|
20
|
-
* 默认必须是 undefined:Vue 会把未传的 Boolean 收成 false。
|
|
21
|
-
*/
|
|
18
|
+
/** 是否绘制外边框。未传为 false,与 2.0.3 之前一致。 */
|
|
22
19
|
bordered?: boolean;
|
|
23
20
|
/** 前缀图标(Lucide kebab-case 名称) */
|
|
24
21
|
icon?: string;
|
|
@@ -39,7 +39,7 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
39
39
|
},
|
|
40
40
|
bordered: {
|
|
41
41
|
type: Boolean,
|
|
42
|
-
default:
|
|
42
|
+
default: false
|
|
43
43
|
},
|
|
44
44
|
icon: {},
|
|
45
45
|
iconSize: {},
|
|
@@ -64,11 +64,7 @@ var RsButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
64
64
|
const rootStyle = computed(() => ({ "--rs-btn-radius": rsRadiusCss(resolvedRadius.value) }));
|
|
65
65
|
const hasLabel = computed(() => Boolean(slots.default));
|
|
66
66
|
const resolvedVariant = computed(() => resolveRsButtonVariant(props.variant ?? "primary"));
|
|
67
|
-
|
|
68
|
-
const resolvedBordered = computed(() => {
|
|
69
|
-
if (props.bordered !== void 0) return props.bordered;
|
|
70
|
-
return resolvedVariant.value !== "text" && resolvedVariant.value !== "link";
|
|
71
|
-
});
|
|
67
|
+
const resolvedBordered = computed(() => props.bordered);
|
|
72
68
|
/** 形态 × 色相:所有变体都带 tone class,由 CSS 决定如何上色。 */
|
|
73
69
|
const resolvedTone = computed(() => resolveRsButtonTone(props.variant ?? "primary", props.tone));
|
|
74
70
|
const rootClass = computed(() => ({
|
|
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
|
|
|
3
3
|
import RsButton_vue_vue_type_script_setup_true_lang_default from "./RsButton.impl.js";
|
|
4
4
|
|
|
5
5
|
//#region src/components/button/src/RsButton.vue
|
|
6
|
-
var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
6
|
+
var RsButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsButton_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8974aec3"]]);
|
|
7
7
|
//#endregion
|
|
8
8
|
export { RsButton_default as default };
|
|
@@ -18,9 +18,9 @@ type __VLS_Props = {
|
|
|
18
18
|
*/
|
|
19
19
|
themeScope?: 'global' | 'local';
|
|
20
20
|
};
|
|
21
|
-
declare var
|
|
21
|
+
declare var __VLS_1: {};
|
|
22
22
|
type __VLS_Slots = {} & {
|
|
23
|
-
default?: (props: typeof
|
|
23
|
+
default?: (props: typeof __VLS_1) => any;
|
|
24
24
|
};
|
|
25
25
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
26
26
|
dir: RsDirMode;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { resolveHostLocale } from "../../../locale/resolve-host.js";
|
|
2
2
|
import { applyTheme, subscribePreferredColorScheme } from "../../../theme/apply.js";
|
|
3
3
|
import { createRsConfigState, provideRsConfig } from "../../../composables/useRsConfig.js";
|
|
4
|
-
import { applyLocale
|
|
5
|
-
import {
|
|
6
|
-
import { computed, createBlock, createElementVNode, defineComponent, onBeforeUnmount, openBlock, ref, renderSlot, unref, watch, withCtx } from "vue";
|
|
4
|
+
import { applyLocale } from "../../../locale/apply.js";
|
|
5
|
+
import { createElementBlock, defineComponent, onBeforeUnmount, openBlock, ref, renderSlot, watch } from "vue";
|
|
7
6
|
//#region src/components/config-provider/src/RsConfigProvider.vue?vue&type=script&setup=true&lang.ts
|
|
8
7
|
var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
9
8
|
name: "RsConfigProvider",
|
|
@@ -74,23 +73,15 @@ var RsConfigProvider_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
74
73
|
syncLocale();
|
|
75
74
|
}
|
|
76
75
|
});
|
|
77
|
-
const resolvedDir = computed(() => resolveDirMode(config.dir.value, config.locale.value));
|
|
78
|
-
const rekaLocale = computed(() => config.locale.value);
|
|
79
76
|
onBeforeUnmount(() => {
|
|
80
77
|
stopPreferred?.();
|
|
81
78
|
});
|
|
82
79
|
return (_ctx, _cache) => {
|
|
83
|
-
return openBlock(),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
ref_key: "rootEl",
|
|
89
|
-
ref: rootEl,
|
|
90
|
-
class: "rs-config-provider"
|
|
91
|
-
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512)]),
|
|
92
|
-
_: 3
|
|
93
|
-
}, 8, ["dir", "locale"]);
|
|
80
|
+
return openBlock(), createElementBlock("div", {
|
|
81
|
+
ref_key: "rootEl",
|
|
82
|
+
ref: rootEl,
|
|
83
|
+
class: "rs-config-provider"
|
|
84
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512);
|
|
94
85
|
};
|
|
95
86
|
}
|
|
96
87
|
});
|
|
@@ -3,6 +3,6 @@ import RsConfigProvider_vue_vue_type_script_setup_true_lang_default from "./RsCo
|
|
|
3
3
|
|
|
4
4
|
import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
5
|
//#region src/components/config-provider/src/RsConfigProvider.vue
|
|
6
|
-
var RsConfigProvider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsConfigProvider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
6
|
+
var RsConfigProvider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsConfigProvider_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-baff9acb"]]);
|
|
7
7
|
//#endregion
|
|
8
8
|
export { RsConfigProvider_default as default };
|
|
@@ -11,7 +11,7 @@ var _hoisted_1 = [
|
|
|
11
11
|
];
|
|
12
12
|
var _hoisted_2 = {
|
|
13
13
|
key: 2,
|
|
14
|
-
class: "rs-table-cell-editor rs-table-cell-editor--custom"
|
|
14
|
+
class: "rs-table-cell-editor rs-table-cell-editor--inline rs-table-cell-editor--custom"
|
|
15
15
|
};
|
|
16
16
|
var RsTableCell_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
17
|
__name: "RsTableCell",
|
|
@@ -846,29 +846,41 @@
|
|
|
846
846
|
touch-action: none;
|
|
847
847
|
z-index: 2;
|
|
848
848
|
}
|
|
849
|
-
/*
|
|
849
|
+
/* 平时就画出列边,让人知道这里能拖;悬停改成主色 */
|
|
850
850
|
.rs-table__resize-handle::after {
|
|
851
851
|
content: '';
|
|
852
852
|
position: absolute;
|
|
853
853
|
top: 0;
|
|
854
854
|
bottom: 0;
|
|
855
855
|
left: 50%;
|
|
856
|
-
width:
|
|
856
|
+
width: 2px;
|
|
857
857
|
transform: translateX(-50%);
|
|
858
858
|
border-radius: 0;
|
|
859
|
-
background:
|
|
860
|
-
opacity:
|
|
861
|
-
transition:
|
|
859
|
+
background: var(--rs-table-resize-handle);
|
|
860
|
+
opacity: 1;
|
|
861
|
+
transition: background 0.12s ease;
|
|
862
862
|
}
|
|
863
863
|
.rs-table__resize-handle:hover::after,
|
|
864
864
|
.rs-table__resize-handle:active::after {
|
|
865
|
-
opacity: 1;
|
|
866
865
|
background: var(--rs-table-resize-handle-hover);
|
|
867
866
|
}
|
|
868
|
-
/*
|
|
869
|
-
|
|
870
|
-
.rs-table--column-bordered .rs-table__th:
|
|
871
|
-
|
|
867
|
+
/* 已有列分隔线时不再另画 2px 拖拽线,避免表头粗线和表体细线错开。
|
|
868
|
+
悬停只把这一条分隔线改成主色。最后一列没有分隔线,悬停才画出拖拽线。 */
|
|
869
|
+
.rs-table--column-bordered .rs-table__th:not(:last-child) > .rs-table__resize-handle::after,
|
|
870
|
+
.rs-table--column-bordered .rs-table__th:not(:last-child) > .rs-table__resize-handle:hover::after,
|
|
871
|
+
.rs-table--column-bordered .rs-table__th:not(:last-child) > .rs-table__resize-handle:active::after {
|
|
872
|
+
background: transparent;
|
|
873
|
+
}
|
|
874
|
+
.rs-table--column-bordered .rs-table__th:not(:last-child):has(> .rs-table__resize-handle:hover),
|
|
875
|
+
.rs-table--column-bordered .rs-table__th:not(:last-child):has(> .rs-table__resize-handle:active) {
|
|
876
|
+
border-inline-end-color: var(--rs-table-resize-handle-hover);
|
|
877
|
+
}
|
|
878
|
+
.rs-table--column-bordered .rs-table__th:last-child > .rs-table__resize-handle::after {
|
|
879
|
+
background: transparent;
|
|
880
|
+
}
|
|
881
|
+
.rs-table--column-bordered .rs-table__th:last-child > .rs-table__resize-handle:hover::after,
|
|
882
|
+
.rs-table--column-bordered .rs-table__th:last-child > .rs-table__resize-handle:active::after {
|
|
883
|
+
background: var(--rs-table-resize-handle-hover);
|
|
872
884
|
}
|
|
873
885
|
/* 滚动条交汇角与容器底色一致 */
|
|
874
886
|
.rs-table.rs-native-scrollbar:has(.rs-table__head)::-webkit-scrollbar-corner {
|
|
@@ -1234,7 +1246,39 @@
|
|
|
1234
1246
|
pointer-events: none;
|
|
1235
1247
|
}
|
|
1236
1248
|
.rs-table-cell-editor--custom {
|
|
1249
|
+
display: flex;
|
|
1250
|
+
align-items: stretch;
|
|
1251
|
+
width: 100%;
|
|
1252
|
+
height: 100%;
|
|
1253
|
+
min-width: 0;
|
|
1254
|
+
min-height: 0;
|
|
1255
|
+
}
|
|
1256
|
+
/* 插槽里的原生输入跟内置编辑器一样贴合格子,不再另画一圈边框 */
|
|
1257
|
+
.rs-table-cell-editor--custom > :where(input, textarea, select) {
|
|
1258
|
+
flex: 1 1 auto;
|
|
1237
1259
|
width: 100%;
|
|
1238
1260
|
height: 100%;
|
|
1239
1261
|
min-width: 0;
|
|
1262
|
+
margin: 0;
|
|
1263
|
+
padding: var(--rs-space-sm) var(--rs-space-md);
|
|
1264
|
+
border: 0;
|
|
1265
|
+
border-radius: 0;
|
|
1266
|
+
outline: none;
|
|
1267
|
+
background: transparent;
|
|
1268
|
+
box-shadow: none;
|
|
1269
|
+
color: inherit;
|
|
1270
|
+
font: inherit;
|
|
1271
|
+
line-height: inherit;
|
|
1272
|
+
appearance: none;
|
|
1273
|
+
}
|
|
1274
|
+
.rs-table-cell-editor--custom > :where(input, textarea, select):focus {
|
|
1275
|
+
outline: none;
|
|
1276
|
+
box-shadow: none;
|
|
1277
|
+
}
|
|
1278
|
+
.rs-table--compact .rs-table-cell-editor--custom > :where(input, textarea, select),
|
|
1279
|
+
.rs-table--sm .rs-table-cell-editor--custom > :where(input, textarea, select) {
|
|
1280
|
+
padding: var(--rs-space-xs) var(--rs-space-sm);
|
|
1281
|
+
}
|
|
1282
|
+
.rs-table--lg .rs-table-cell-editor--custom > :where(input, textarea, select) {
|
|
1283
|
+
padding: var(--rs-space-md) var(--rs-space-lg);
|
|
1240
1284
|
}
|
|
@@ -30,10 +30,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
30
30
|
/** 供模板 ref 关闭。业务侧通常用 useRsToast().dismiss。 */
|
|
31
31
|
dismiss: (id?: string) => void;
|
|
32
32
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
33
|
-
teleportTo: string | HTMLElement;
|
|
34
33
|
gap: number;
|
|
35
34
|
expand: boolean;
|
|
36
35
|
position: RsToastPosition;
|
|
36
|
+
teleportTo: string | HTMLElement;
|
|
37
37
|
toasterId: string;
|
|
38
38
|
duration: number;
|
|
39
39
|
closeButton: boolean;
|
package/dist/styles.css
CHANGED
|
@@ -639,7 +639,7 @@ html {
|
|
|
639
639
|
--rs-table-checkbox-bg: var(--rs-surface);
|
|
640
640
|
--rs-table-sort-active-fg: var(--rs-primary);
|
|
641
641
|
--rs-table-drop-indicator: var(--rs-primary);
|
|
642
|
-
--rs-table-resize-handle: var(--rs-
|
|
642
|
+
--rs-table-resize-handle: var(--rs-table-cell-divider);
|
|
643
643
|
--rs-table-resize-handle-hover: var(--rs-primary);
|
|
644
644
|
|
|
645
645
|
/* ── Tree(导航线 / 行选中 / 焦点;业务可覆盖)── */
|
|
@@ -666,10 +666,10 @@ html {
|
|
|
666
666
|
--rs-border: #6e6e6e;
|
|
667
667
|
--rs-border-subtle: #3a3a3a;
|
|
668
668
|
/*
|
|
669
|
-
* Button secondary/default
|
|
669
|
+
* Button secondary/default:描边跟输入框,不另用更亮的实色灰。
|
|
670
670
|
* 业务可用 --rs-btn-* 覆盖(见 theme/brand.example.css)。
|
|
671
671
|
*/
|
|
672
|
-
--rs-btn-outline-border:
|
|
672
|
+
--rs-btn-outline-border: var(--rs-input-border);
|
|
673
673
|
--rs-btn-secondary-bg: var(--rs-surface-hover);
|
|
674
674
|
--rs-btn-secondary-bg-hover: color-mix(in srgb, var(--rs-primary) 16%, var(--rs-surface-hover));
|
|
675
675
|
--rs-btn-secondary-bg-active: color-mix(in srgb, var(--rs-primary) 24%, var(--rs-surface-hover));
|
|
@@ -1029,7 +1029,7 @@ html {
|
|
|
1029
1029
|
--rs-table-checkbox-bg: var(--rs-surface);
|
|
1030
1030
|
--rs-table-sort-active-fg: var(--rs-primary);
|
|
1031
1031
|
--rs-table-drop-indicator: var(--rs-primary);
|
|
1032
|
-
--rs-table-resize-handle: var(--rs-
|
|
1032
|
+
--rs-table-resize-handle: var(--rs-table-cell-divider);
|
|
1033
1033
|
--rs-table-resize-handle-hover: var(--rs-primary);
|
|
1034
1034
|
|
|
1035
1035
|
/* ── Tree(导航线 / 行选中 / 焦点;业务可覆盖)── */
|
|
@@ -1055,10 +1055,10 @@ html {
|
|
|
1055
1055
|
--rs-border: rgb(60 60 67 / 0.16);
|
|
1056
1056
|
--rs-border-subtle: rgb(60 60 67 / 0.10);
|
|
1057
1057
|
/*
|
|
1058
|
-
* Button secondary/default
|
|
1059
|
-
*
|
|
1058
|
+
* Button secondary/default:描边跟输入框(柔分隔线),焦点环负责强调。
|
|
1059
|
+
* 需要更重的轮廓时覆盖 --rs-btn-outline-border。
|
|
1060
1060
|
*/
|
|
1061
|
-
--rs-btn-outline-border:
|
|
1061
|
+
--rs-btn-outline-border: var(--rs-input-border);
|
|
1062
1062
|
--rs-btn-secondary-bg: var(--rs-surface-hover);
|
|
1063
1063
|
--rs-btn-secondary-bg-hover: color-mix(in srgb, var(--rs-primary) 12%, var(--rs-surface-hover));
|
|
1064
1064
|
--rs-btn-secondary-bg-active: color-mix(in srgb, var(--rs-primary) 18%, var(--rs-surface-hover));
|
|
@@ -1700,12 +1700,6 @@ code {
|
|
|
1700
1700
|
min-width: 0;
|
|
1701
1701
|
}
|
|
1702
1702
|
|
|
1703
|
-
/* ContextMenu:Dialog 内表格右键菜单 Portal 后须高于 modal */
|
|
1704
|
-
[data-reka-popper-content-wrapper]:has(> .rs-context-menu__content),
|
|
1705
|
-
[data-reka-popper-content-wrapper]:has(> .rs-context-menu__sub-content) {
|
|
1706
|
-
z-index: calc(var(--rs-z-modal) + 2);
|
|
1707
|
-
}
|
|
1708
|
-
|
|
1709
1703
|
/*
|
|
1710
1704
|
* TimePicker 面板 Teleport 到 body。
|
|
1711
1705
|
* 独立面板跟 DatePicker 同一档(modal+2);嵌在日期面板里再高一档。
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
--rs-primary-hover: #4f46e5;
|
|
35
35
|
--rs-primary-container: #eef2ff;
|
|
36
36
|
--rs-on-primary-container: #312e81;
|
|
37
|
-
/* secondary
|
|
37
|
+
/* secondary 轮廓:默认跟输入框;需要更重的线时再覆盖 */
|
|
38
38
|
--rs-btn-outline-border: #6b7280;
|
|
39
39
|
--rs-btn-secondary-bg: #f3f4f6;
|
|
40
40
|
--rs-btn-secondary-bg-hover: #ede9fe;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "niuma-ui",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Vue 3 workbench design system — Rs* components, --rs-* tokens, optional Monaco / CodeMirror / xterm",
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"components",
|
|
12
12
|
"design-system",
|
|
13
13
|
"workbench",
|
|
14
|
-
"reka-ui",
|
|
15
14
|
"niuma"
|
|
16
15
|
],
|
|
17
16
|
"author": "Blair-Shang",
|
|
@@ -117,8 +116,7 @@
|
|
|
117
116
|
"magic-string": "^0.30.17",
|
|
118
117
|
"marked": "^18.0.9",
|
|
119
118
|
"monaco-editor": "^0.55.1",
|
|
120
|
-
"monaco-sql-languages": "^1.2.0"
|
|
121
|
-
"reka-ui": "^2.9.10"
|
|
119
|
+
"monaco-sql-languages": "^1.2.0"
|
|
122
120
|
},
|
|
123
121
|
"devDependencies": {
|
|
124
122
|
"@playwright/test": "^1.62.1",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, Primitive, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, SwitchRoot, SwitchThumb, PaginationEllipsis, PaginationFirst, PaginationLast, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectPortal, SelectRoot, SelectTrigger, SelectValue, SelectViewport, StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, TreeItem, TreeRoot, TreeVirtualizer, useForwardExpose, useFilter, } from 'reka-ui';
|
|
2
|
-
export type { AcceptableValue, PrimitiveProps, TooltipRootEmits, TooltipRootProps } from 'reka-ui';
|