@dsh-plugin/dsh-ui-components 0.0.1 → 0.1.0-dev.43613492370

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 (65) hide show
  1. package/LICENSE +21 -21
  2. package/NOTICE +21 -21
  3. package/README.md +136 -136
  4. package/README.zh_CN.md +136 -136
  5. package/docs/tokens.md +67 -67
  6. package/lib/basic/form.js +49 -49
  7. package/lib/basic/styles.js +391 -391
  8. package/lib/composites/styles.js +427 -427
  9. package/lib/data/styles.js +257 -257
  10. package/lib/display/styles.js +310 -310
  11. package/lib/feedback/styles.js +228 -228
  12. package/lib/foundation/bridge.js +203 -203
  13. package/lib/navigation/styles.js +417 -417
  14. package/package.json +104 -104
  15. package/scripts/check-size.mjs +69 -69
  16. package/scripts/dump-npm-latest.mjs +59 -59
  17. package/scripts/gen-host-tokens.mjs +61 -61
  18. package/scripts/gen-icons.mjs +188 -178
  19. package/scripts/verify-no-literal-colors.mjs +63 -63
  20. package/scripts/verify-tokens.mjs +135 -135
  21. package/src/basic/button.tsx +76 -76
  22. package/src/basic/form.tsx +187 -187
  23. package/src/basic/icon-button.tsx +66 -66
  24. package/src/basic/index.ts +38 -38
  25. package/src/basic/input.tsx +140 -140
  26. package/src/basic/select.tsx +120 -120
  27. package/src/basic/styles.ts +412 -412
  28. package/src/basic/toggle.tsx +116 -116
  29. package/src/composites/data-view.tsx +189 -189
  30. package/src/composites/index.ts +11 -11
  31. package/src/composites/indicator.tsx +90 -90
  32. package/src/composites/menu-select.tsx +230 -230
  33. package/src/composites/panel.tsx +72 -72
  34. package/src/composites/settings.tsx +80 -80
  35. package/src/composites/styles.ts +450 -450
  36. package/src/data/collection.tsx +71 -71
  37. package/src/data/index.ts +39 -39
  38. package/src/data/info.tsx +89 -89
  39. package/src/data/picker.tsx +113 -113
  40. package/src/data/styles.ts +278 -278
  41. package/src/display/container.tsx +67 -67
  42. package/src/display/feedback.tsx +92 -92
  43. package/src/display/index.ts +44 -44
  44. package/src/display/label.tsx +165 -165
  45. package/src/display/overlay.tsx +103 -103
  46. package/src/display/styles.ts +332 -332
  47. package/src/feedback/global.tsx +110 -110
  48. package/src/feedback/index.ts +19 -19
  49. package/src/feedback/inline.tsx +50 -50
  50. package/src/feedback/panel.tsx +93 -93
  51. package/src/feedback/styles.ts +250 -250
  52. package/src/foundation/bridge.ts +318 -318
  53. package/src/foundation/icons.tsx +315 -315
  54. package/src/foundation/index.ts +33 -33
  55. package/src/foundation/palette.ts +153 -153
  56. package/src/foundation/provider.tsx +62 -62
  57. package/src/foundation/style.ts +63 -63
  58. package/src/foundation/tokens.ts +62 -62
  59. package/src/index.ts +18 -18
  60. package/src/navigation/hierarchy.tsx +82 -82
  61. package/src/navigation/index.ts +21 -21
  62. package/src/navigation/indicator.tsx +125 -125
  63. package/src/navigation/menu.tsx +94 -94
  64. package/src/navigation/segmented.tsx +136 -136
  65. package/src/navigation/styles.ts +438 -438
@@ -1,250 +1,250 @@
1
- /**
2
- * 反馈与浮层组件追加样式。
3
- *
4
- * 弹窗与抽屉按全局规范处理:与窗口上下各留至少 120px,最大高度
5
- * `calc(100dvh - 240px)`,超出部分在内部滚动,标题与操作行保持可见。
6
- *
7
- * @module @dsh-plugin/dsh-ui-components/feedback/styles
8
- */
9
- import { injectUiStyle } from '../foundation/style.js'
10
- import { G } from '../foundation/tokens.js'
11
-
12
- /** 反馈与浮层样式表。 */
13
- export const FEEDBACK_CSS = `
14
- /* ── 提示条 ─────────────────────────────────────────────────────── */
15
- .dsh-ui .arco-alert {
16
- border-radius: var(--dsw-radius-lg, 16px);
17
- border: 0.5px solid var(--dsw-alias-border-l2);
18
- font-size: 14px;
19
- line-height: 22px;
20
- padding: 12px 16px;
21
- }
22
-
23
- .dsh-ui .arco-alert-info {
24
- border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 28%, transparent);
25
- background-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 8%, transparent);
26
- color: var(--dsw-alias-label-primary);
27
- }
28
-
29
- .dsh-ui .arco-alert-success {
30
- border-color: color-mix(in srgb, var(--dsw-alias-state-success-primary) 28%, transparent);
31
- background-color: color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent);
32
- color: var(--dsw-alias-label-primary);
33
- }
34
-
35
- .dsh-ui .arco-alert-warning {
36
- border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 32%, transparent);
37
- background-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 10%, transparent);
38
- color: var(--dsw-alias-label-primary);
39
- }
40
-
41
- .dsh-ui .arco-alert-error {
42
- border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 28%, transparent);
43
- background-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);
44
- color: var(--dsw-alias-label-primary);
45
- }
46
-
47
- .dsh-ui .arco-alert-title {
48
- font-size: 14px;
49
- line-height: 22px;
50
- font-weight: 500;
51
- }
52
-
53
- .dsh-ui .arco-alert-content {
54
- font-size: 13px;
55
- line-height: 20px;
56
- color: var(--dsw-alias-label-secondary);
57
- }
58
-
59
- /* ── 弹窗 ───────────────────────────────────────────────────────── */
60
- .dsh-ui-overlay .arco-modal-mask,
61
- .dsh-ui .arco-modal-mask {
62
- background-color: var(--dsw-alias-bg-mask-1);
63
- backdrop-filter: none;
64
- }
65
-
66
- .dsh-ui-overlay .arco-modal,
67
- .dsh-ui .arco-modal {
68
- border-radius: var(--dsw-radius-panel, 28px);
69
- border: 0;
70
- box-shadow: var(--dsw-elevation-prominent);
71
- background-color: var(--dsw-alias-bg-layer-2);
72
- max-height: calc(100dvh - ${G.overlayMargin * 2}px);
73
- overflow: hidden;
74
- display: flex;
75
- flex-direction: column;
76
- }
77
-
78
- .dsh-ui-overlay .arco-modal-header,
79
- .dsh-ui .arco-modal-header {
80
- border-bottom: 0.5px solid var(--dsw-alias-border-l1);
81
- padding: 20px 24px 14px;
82
- flex: none;
83
- }
84
-
85
- .dsh-ui-overlay .arco-modal-title,
86
- .dsh-ui .arco-modal-title {
87
- font-size: 16px;
88
- line-height: 24px;
89
- font-weight: 500;
90
- color: var(--dsw-alias-label-primary);
91
- text-align: left;
92
- }
93
-
94
- .dsh-ui-overlay .arco-modal-content,
95
- .dsh-ui .arco-modal-content {
96
- padding: 16px 24px;
97
- font-size: 14px;
98
- line-height: 22px;
99
- color: var(--dsw-alias-label-primary);
100
- overflow: auto;
101
- min-height: 0;
102
- }
103
-
104
- .dsh-ui-overlay .arco-modal-footer,
105
- .dsh-ui .arco-modal-footer {
106
- border-top: 0.5px solid var(--dsw-alias-border-l1);
107
- padding: 14px 24px;
108
- flex: none;
109
- }
110
-
111
- /* ── 抽屉 ───────────────────────────────────────────────────────── */
112
- .dsh-ui-overlay .arco-drawer,
113
- .dsh-ui .arco-drawer {
114
- background-color: var(--dsw-alias-bg-layer-2);
115
- border: 0;
116
- max-height: calc(100dvh - ${G.overlayMargin * 2}px);
117
- }
118
-
119
- .dsh-ui-overlay .arco-drawer-header,
120
- .dsh-ui .arco-drawer-header {
121
- border-bottom: 0.5px solid var(--dsw-alias-border-l1);
122
- height: auto;
123
- padding: 18px 24px;
124
- }
125
-
126
- .dsh-ui-overlay .arco-drawer-title,
127
- .dsh-ui .arco-drawer-title {
128
- font-size: 16px;
129
- line-height: 24px;
130
- font-weight: 500;
131
- color: var(--dsw-alias-label-primary);
132
- }
133
-
134
- .dsh-ui-overlay .arco-drawer-content,
135
- .dsh-ui .arco-drawer-content {
136
- padding: 20px 24px;
137
- font-size: 14px;
138
- line-height: 22px;
139
- color: var(--dsw-alias-label-primary);
140
- overflow: auto;
141
- }
142
-
143
- /* ── 全局消息 ───────────────────────────────────────────────────── */
144
- .dsh-ui-overlay .arco-message,
145
- .dsh-ui .arco-message {
146
- border-radius: var(--dsw-radius-lg, 16px);
147
- border: 0;
148
- background-color: var(--dsw-alias-toast-bg);
149
- color: var(--dsw-alias-toast-label);
150
- box-shadow: var(--dsw-shadow-lv3);
151
- font-size: 14px;
152
- line-height: 22px;
153
- padding: 12px 16px;
154
- }
155
-
156
- .dsh-ui-overlay .arco-message-success .arco-message-icon,
157
- .dsh-ui .arco-message-success .arco-message-icon {
158
- color: var(--dsw-alias-state-success-primary);
159
- }
160
-
161
- .dsh-ui-overlay .arco-message-error .arco-message-icon,
162
- .dsh-ui .arco-message-error .arco-message-icon {
163
- color: var(--dsw-alias-state-error-primary);
164
- }
165
-
166
- .dsh-ui-overlay .arco-message-warning .arco-message-icon,
167
- .dsh-ui .arco-message-warning .arco-message-icon {
168
- color: var(--dsw-alias-state-warn-label);
169
- }
170
-
171
- .dsh-ui-overlay .arco-notification,
172
- .dsh-ui .arco-notification {
173
- border-radius: var(--dsw-radius-xl, 20px);
174
- border: 0;
175
- background-color: var(--dsw-alias-bg-layer-2);
176
- box-shadow: var(--dsw-elevation-prominent);
177
- }
178
-
179
- .dsh-ui-overlay .arco-notification-title,
180
- .dsh-ui .arco-notification-title {
181
- font-size: 15px;
182
- line-height: 22px;
183
- font-weight: 500;
184
- color: var(--dsw-alias-label-primary);
185
- }
186
-
187
- .dsh-ui-overlay .arco-notification-content,
188
- .dsh-ui .arco-notification-content {
189
- font-size: 13px;
190
- line-height: 20px;
191
- color: var(--dsw-alias-label-secondary);
192
- }
193
-
194
- /* ── 进度与结果 ─────────────────────────────────────────────────── */
195
- .dsh-ui .arco-progress-line-outer {
196
- background-color: var(--dsw-alias-border-l2);
197
- border-radius: 999px;
198
- corner-shape: round;
199
- }
200
-
201
- .dsh-ui .arco-progress-line-inner {
202
- border-radius: 999px;
203
- corner-shape: round;
204
- background-color: var(--dsw-alias-brand-primary);
205
- }
206
-
207
- .dsh-ui .arco-progress-line-text {
208
- font-size: 12px;
209
- line-height: 18px;
210
- color: var(--dsw-alias-label-tertiary);
211
- }
212
-
213
- .dsh-ui .arco-result-title {
214
- font-size: 19px;
215
- line-height: 28px;
216
- color: var(--dsw-alias-label-primary);
217
- }
218
-
219
- .dsh-ui .arco-result-subtitle {
220
- font-size: 13px;
221
- line-height: 20px;
222
- color: var(--dsw-alias-label-tertiary);
223
- }
224
-
225
- /* ── 确认气泡 ───────────────────────────────────────────────────── */
226
- .dsh-ui-overlay .arco-popconfirm-content,
227
- .dsh-ui .arco-popconfirm-content {
228
- border-radius: var(--dsw-radius-lg, 16px);
229
- border: 0;
230
- background: var(--dsw-specific-menu, var(--dsw-alias-bg-layer-2));
231
- box-shadow: var(--dsw-elevation-prominent);
232
- color: var(--dsw-alias-label-primary);
233
- }
234
-
235
- @media (prefers-reduced-motion: reduce) {
236
- .dsh-ui-overlay .arco-modal,
237
- .dsh-ui .arco-modal {
238
- animation: none;
239
- }
240
- }
241
- `
242
-
243
- /**
244
- * 注入反馈与浮层样式。幂等。
245
- *
246
- * @returns 释放函数。
247
- */
248
- export function injectFeedbackStyles(): () => void {
249
- return injectUiStyle('feedback/components.css', FEEDBACK_CSS)
250
- }
1
+ /**
2
+ * 反馈与浮层组件追加样式。
3
+ *
4
+ * 弹窗与抽屉按全局规范处理:与窗口上下各留至少 120px,最大高度
5
+ * `calc(100dvh - 240px)`,超出部分在内部滚动,标题与操作行保持可见。
6
+ *
7
+ * @module @dsh-plugin/dsh-ui-components/feedback/styles
8
+ */
9
+ import { injectUiStyle } from '../foundation/style.js'
10
+ import { G } from '../foundation/tokens.js'
11
+
12
+ /** 反馈与浮层样式表。 */
13
+ export const FEEDBACK_CSS = `
14
+ /* ── 提示条 ─────────────────────────────────────────────────────── */
15
+ .dsh-ui .arco-alert {
16
+ border-radius: var(--dsw-radius-lg, 16px);
17
+ border: 0.5px solid var(--dsw-alias-border-l2);
18
+ font-size: 14px;
19
+ line-height: 22px;
20
+ padding: 12px 16px;
21
+ }
22
+
23
+ .dsh-ui .arco-alert-info {
24
+ border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 28%, transparent);
25
+ background-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 8%, transparent);
26
+ color: var(--dsw-alias-label-primary);
27
+ }
28
+
29
+ .dsh-ui .arco-alert-success {
30
+ border-color: color-mix(in srgb, var(--dsw-alias-state-success-primary) 28%, transparent);
31
+ background-color: color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent);
32
+ color: var(--dsw-alias-label-primary);
33
+ }
34
+
35
+ .dsh-ui .arco-alert-warning {
36
+ border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 32%, transparent);
37
+ background-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 10%, transparent);
38
+ color: var(--dsw-alias-label-primary);
39
+ }
40
+
41
+ .dsh-ui .arco-alert-error {
42
+ border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 28%, transparent);
43
+ background-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);
44
+ color: var(--dsw-alias-label-primary);
45
+ }
46
+
47
+ .dsh-ui .arco-alert-title {
48
+ font-size: 14px;
49
+ line-height: 22px;
50
+ font-weight: 500;
51
+ }
52
+
53
+ .dsh-ui .arco-alert-content {
54
+ font-size: 13px;
55
+ line-height: 20px;
56
+ color: var(--dsw-alias-label-secondary);
57
+ }
58
+
59
+ /* ── 弹窗 ───────────────────────────────────────────────────────── */
60
+ .dsh-ui-overlay .arco-modal-mask,
61
+ .dsh-ui .arco-modal-mask {
62
+ background-color: var(--dsw-alias-bg-mask-1);
63
+ backdrop-filter: none;
64
+ }
65
+
66
+ .dsh-ui-overlay .arco-modal,
67
+ .dsh-ui .arco-modal {
68
+ border-radius: var(--dsw-radius-panel, 28px);
69
+ border: 0;
70
+ box-shadow: var(--dsw-elevation-prominent);
71
+ background-color: var(--dsw-alias-bg-layer-2);
72
+ max-height: calc(100dvh - ${G.overlayMargin * 2}px);
73
+ overflow: hidden;
74
+ display: flex;
75
+ flex-direction: column;
76
+ }
77
+
78
+ .dsh-ui-overlay .arco-modal-header,
79
+ .dsh-ui .arco-modal-header {
80
+ border-bottom: 0.5px solid var(--dsw-alias-border-l1);
81
+ padding: 20px 24px 14px;
82
+ flex: none;
83
+ }
84
+
85
+ .dsh-ui-overlay .arco-modal-title,
86
+ .dsh-ui .arco-modal-title {
87
+ font-size: 16px;
88
+ line-height: 24px;
89
+ font-weight: 500;
90
+ color: var(--dsw-alias-label-primary);
91
+ text-align: left;
92
+ }
93
+
94
+ .dsh-ui-overlay .arco-modal-content,
95
+ .dsh-ui .arco-modal-content {
96
+ padding: 16px 24px;
97
+ font-size: 14px;
98
+ line-height: 22px;
99
+ color: var(--dsw-alias-label-primary);
100
+ overflow: auto;
101
+ min-height: 0;
102
+ }
103
+
104
+ .dsh-ui-overlay .arco-modal-footer,
105
+ .dsh-ui .arco-modal-footer {
106
+ border-top: 0.5px solid var(--dsw-alias-border-l1);
107
+ padding: 14px 24px;
108
+ flex: none;
109
+ }
110
+
111
+ /* ── 抽屉 ───────────────────────────────────────────────────────── */
112
+ .dsh-ui-overlay .arco-drawer,
113
+ .dsh-ui .arco-drawer {
114
+ background-color: var(--dsw-alias-bg-layer-2);
115
+ border: 0;
116
+ max-height: calc(100dvh - ${G.overlayMargin * 2}px);
117
+ }
118
+
119
+ .dsh-ui-overlay .arco-drawer-header,
120
+ .dsh-ui .arco-drawer-header {
121
+ border-bottom: 0.5px solid var(--dsw-alias-border-l1);
122
+ height: auto;
123
+ padding: 18px 24px;
124
+ }
125
+
126
+ .dsh-ui-overlay .arco-drawer-title,
127
+ .dsh-ui .arco-drawer-title {
128
+ font-size: 16px;
129
+ line-height: 24px;
130
+ font-weight: 500;
131
+ color: var(--dsw-alias-label-primary);
132
+ }
133
+
134
+ .dsh-ui-overlay .arco-drawer-content,
135
+ .dsh-ui .arco-drawer-content {
136
+ padding: 20px 24px;
137
+ font-size: 14px;
138
+ line-height: 22px;
139
+ color: var(--dsw-alias-label-primary);
140
+ overflow: auto;
141
+ }
142
+
143
+ /* ── 全局消息 ───────────────────────────────────────────────────── */
144
+ .dsh-ui-overlay .arco-message,
145
+ .dsh-ui .arco-message {
146
+ border-radius: var(--dsw-radius-lg, 16px);
147
+ border: 0;
148
+ background-color: var(--dsw-alias-toast-bg);
149
+ color: var(--dsw-alias-toast-label);
150
+ box-shadow: var(--dsw-shadow-lv3);
151
+ font-size: 14px;
152
+ line-height: 22px;
153
+ padding: 12px 16px;
154
+ }
155
+
156
+ .dsh-ui-overlay .arco-message-success .arco-message-icon,
157
+ .dsh-ui .arco-message-success .arco-message-icon {
158
+ color: var(--dsw-alias-state-success-primary);
159
+ }
160
+
161
+ .dsh-ui-overlay .arco-message-error .arco-message-icon,
162
+ .dsh-ui .arco-message-error .arco-message-icon {
163
+ color: var(--dsw-alias-state-error-primary);
164
+ }
165
+
166
+ .dsh-ui-overlay .arco-message-warning .arco-message-icon,
167
+ .dsh-ui .arco-message-warning .arco-message-icon {
168
+ color: var(--dsw-alias-state-warn-label);
169
+ }
170
+
171
+ .dsh-ui-overlay .arco-notification,
172
+ .dsh-ui .arco-notification {
173
+ border-radius: var(--dsw-radius-xl, 20px);
174
+ border: 0;
175
+ background-color: var(--dsw-alias-bg-layer-2);
176
+ box-shadow: var(--dsw-elevation-prominent);
177
+ }
178
+
179
+ .dsh-ui-overlay .arco-notification-title,
180
+ .dsh-ui .arco-notification-title {
181
+ font-size: 15px;
182
+ line-height: 22px;
183
+ font-weight: 500;
184
+ color: var(--dsw-alias-label-primary);
185
+ }
186
+
187
+ .dsh-ui-overlay .arco-notification-content,
188
+ .dsh-ui .arco-notification-content {
189
+ font-size: 13px;
190
+ line-height: 20px;
191
+ color: var(--dsw-alias-label-secondary);
192
+ }
193
+
194
+ /* ── 进度与结果 ─────────────────────────────────────────────────── */
195
+ .dsh-ui .arco-progress-line-outer {
196
+ background-color: var(--dsw-alias-border-l2);
197
+ border-radius: 999px;
198
+ corner-shape: round;
199
+ }
200
+
201
+ .dsh-ui .arco-progress-line-inner {
202
+ border-radius: 999px;
203
+ corner-shape: round;
204
+ background-color: var(--dsw-alias-brand-primary);
205
+ }
206
+
207
+ .dsh-ui .arco-progress-line-text {
208
+ font-size: 12px;
209
+ line-height: 18px;
210
+ color: var(--dsw-alias-label-tertiary);
211
+ }
212
+
213
+ .dsh-ui .arco-result-title {
214
+ font-size: 19px;
215
+ line-height: 28px;
216
+ color: var(--dsw-alias-label-primary);
217
+ }
218
+
219
+ .dsh-ui .arco-result-subtitle {
220
+ font-size: 13px;
221
+ line-height: 20px;
222
+ color: var(--dsw-alias-label-tertiary);
223
+ }
224
+
225
+ /* ── 确认气泡 ───────────────────────────────────────────────────── */
226
+ .dsh-ui-overlay .arco-popconfirm-content,
227
+ .dsh-ui .arco-popconfirm-content {
228
+ border-radius: var(--dsw-radius-lg, 16px);
229
+ border: 0;
230
+ background: var(--dsw-specific-menu, var(--dsw-alias-bg-layer-2));
231
+ box-shadow: var(--dsw-elevation-prominent);
232
+ color: var(--dsw-alias-label-primary);
233
+ }
234
+
235
+ @media (prefers-reduced-motion: reduce) {
236
+ .dsh-ui-overlay .arco-modal,
237
+ .dsh-ui .arco-modal {
238
+ animation: none;
239
+ }
240
+ }
241
+ `
242
+
243
+ /**
244
+ * 注入反馈与浮层样式。幂等。
245
+ *
246
+ * @returns 释放函数。
247
+ */
248
+ export function injectFeedbackStyles(): () => void {
249
+ return injectUiStyle('feedback/components.css', FEEDBACK_CSS)
250
+ }