@nextop-os/ui-system 0.0.17 → 0.0.18
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/AGENTS.md +30 -8
- package/README.md +11 -14
- package/agent/install-skill.mjs +65 -5
- package/agent/nextop-ui-system/SKILL.md +119 -8
- package/agent/nextop-ui-system/references/extract-base-component.md +50 -6
- package/agent/nextop-ui-system/references/maintain-inventory.md +5 -0
- package/agent/nextop-ui-system/references/promote-business-component.md +94 -208
- package/dist/chunk-GE5YVRTV.js +859 -0
- package/dist/chunk-GE5YVRTV.js.map +1 -0
- package/dist/chunk-KJQ366TA.js +70 -0
- package/dist/chunk-KJQ366TA.js.map +1 -0
- package/dist/chunk-LVHEV755.js +2553 -0
- package/dist/chunk-LVHEV755.js.map +1 -0
- package/dist/components/index.d.ts +162 -11
- package/dist/components/index.js +62 -2
- package/dist/date-format.d.ts +6 -0
- package/dist/date-format.js +11 -0
- package/dist/date-format.js.map +1 -0
- package/dist/dev-vite.js +12 -5
- package/dist/dev-vite.js.map +1 -1
- package/dist/icons/index.d.ts +90 -47
- package/dist/icons/index.js +91 -11
- package/dist/index.d.ts +3 -2
- package/dist/index.js +159 -11
- package/dist/metadata/components.json +1320 -265
- package/dist/metadata/components.schema.json +4 -0
- package/dist/metadata/index.d.ts +3 -1
- package/dist/metadata/index.js +1320 -265
- package/dist/metadata/index.js.map +1 -1
- package/dist/styles/base.css +85 -0
- package/dist/styles/index.css +1 -0
- package/dist/styles/semantic.css +7 -0
- package/dist/styles/theme.css +82 -1
- package/package.json +10 -3
- package/ui-system.md +640 -0
- package/UI_SYSTEM_GUIDELINES.md +0 -148
- package/dist/chunk-FT633NLJ.js +0 -1159
- package/dist/chunk-FT633NLJ.js.map +0 -1
- package/dist/chunk-NFSMZKML.js +0 -208
- package/dist/chunk-NFSMZKML.js.map +0 -1
package/dist/styles/base.css
CHANGED
|
@@ -3,12 +3,32 @@
|
|
|
3
3
|
@layer base {
|
|
4
4
|
* {
|
|
5
5
|
box-sizing: border-box;
|
|
6
|
+
scrollbar-width: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
*::-webkit-scrollbar {
|
|
10
|
+
display: none;
|
|
11
|
+
width: 0;
|
|
12
|
+
height: 0;
|
|
6
13
|
}
|
|
7
14
|
|
|
8
15
|
html {
|
|
9
16
|
color-scheme: light;
|
|
10
17
|
}
|
|
11
18
|
|
|
19
|
+
:root {
|
|
20
|
+
--modal-open-dur: 250ms;
|
|
21
|
+
--modal-close-dur: 150ms;
|
|
22
|
+
--modal-scale: 0.96;
|
|
23
|
+
--modal-scale-close: 0.96;
|
|
24
|
+
--modal-ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
25
|
+
--dropdown-open-dur: 250ms;
|
|
26
|
+
--dropdown-close-dur: 150ms;
|
|
27
|
+
--dropdown-pre-scale: 0.97;
|
|
28
|
+
--dropdown-closing-scale: 0.99;
|
|
29
|
+
--dropdown-ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
30
|
+
}
|
|
31
|
+
|
|
12
32
|
html[data-theme="dark"] {
|
|
13
33
|
color-scheme: dark;
|
|
14
34
|
}
|
|
@@ -35,15 +55,73 @@
|
|
|
35
55
|
linear-gradient(180deg, var(--background) 0%, var(--background-soft) 100%);
|
|
36
56
|
color: var(--foreground);
|
|
37
57
|
font-family: var(--font-sans-system);
|
|
58
|
+
font-weight: var(--font-weight-regular);
|
|
38
59
|
line-height: 1.5;
|
|
39
60
|
text-rendering: optimizeLegibility;
|
|
40
61
|
}
|
|
41
62
|
|
|
63
|
+
:where(:lang(zh), [lang^="zh"]) {
|
|
64
|
+
--font-weight-regular: var(--font-weight-regular-cjk);
|
|
65
|
+
}
|
|
66
|
+
|
|
42
67
|
body,
|
|
43
68
|
#app {
|
|
44
69
|
min-height: 100vh;
|
|
45
70
|
}
|
|
46
71
|
|
|
72
|
+
@keyframes nextop-dropdown-open {
|
|
73
|
+
from {
|
|
74
|
+
transform: scale(var(--dropdown-pre-scale));
|
|
75
|
+
opacity: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
to {
|
|
79
|
+
transform: scale(1);
|
|
80
|
+
opacity: 1;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@keyframes nextop-dropdown-close {
|
|
85
|
+
from {
|
|
86
|
+
transform: scale(1);
|
|
87
|
+
opacity: 1;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
to {
|
|
91
|
+
transform: scale(var(--dropdown-closing-scale));
|
|
92
|
+
opacity: 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.t-dropdown {
|
|
97
|
+
transform: scale(var(--dropdown-pre-scale));
|
|
98
|
+
opacity: 0;
|
|
99
|
+
pointer-events: none;
|
|
100
|
+
will-change: transform, opacity;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.t-dropdown[data-state="open"] {
|
|
104
|
+
transform: scale(1);
|
|
105
|
+
opacity: 1;
|
|
106
|
+
pointer-events: auto;
|
|
107
|
+
animation: nextop-dropdown-open var(--dropdown-open-dur)
|
|
108
|
+
var(--dropdown-ease) both;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.t-dropdown[data-state="closed"] {
|
|
112
|
+
transform: scale(var(--dropdown-closing-scale));
|
|
113
|
+
opacity: 0;
|
|
114
|
+
pointer-events: none;
|
|
115
|
+
animation: nextop-dropdown-close var(--dropdown-close-dur)
|
|
116
|
+
var(--dropdown-ease) both;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@media (prefers-reduced-motion: reduce) {
|
|
120
|
+
.t-dropdown {
|
|
121
|
+
animation: none !important;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
47
125
|
button,
|
|
48
126
|
input,
|
|
49
127
|
textarea,
|
|
@@ -59,3 +137,10 @@
|
|
|
59
137
|
outline: none;
|
|
60
138
|
}
|
|
61
139
|
}
|
|
140
|
+
|
|
141
|
+
@layer utilities {
|
|
142
|
+
:where(:lang(zh), [lang^="zh"]).font-normal,
|
|
143
|
+
:where(:lang(zh), [lang^="zh"]) :where(.font-normal) {
|
|
144
|
+
font-weight: var(--font-weight-regular-cjk);
|
|
145
|
+
}
|
|
146
|
+
}
|
package/dist/styles/index.css
CHANGED
package/dist/styles/semantic.css
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
--font-mono: var(--font-mono-system);
|
|
4
4
|
|
|
5
5
|
--color-background: var(--background);
|
|
6
|
+
--color-background-panel: var(--background-panel);
|
|
6
7
|
--color-background-fronted: var(--background-fronted);
|
|
7
8
|
--color-foreground: var(--foreground);
|
|
8
9
|
--color-card: var(--card);
|
|
@@ -15,11 +16,16 @@
|
|
|
15
16
|
--color-secondary-foreground: var(--secondary-foreground);
|
|
16
17
|
--color-muted: var(--muted);
|
|
17
18
|
--color-muted-foreground: var(--muted-foreground);
|
|
19
|
+
--color-text-secondary: var(--text-secondary);
|
|
20
|
+
--color-text-disabled: var(--text-disabled);
|
|
21
|
+
--color-white-stationary: var(--white-stationary);
|
|
22
|
+
--color-black-stationary: var(--black-stationary);
|
|
18
23
|
--color-accent: var(--accent);
|
|
19
24
|
--color-accent-foreground: var(--accent-foreground);
|
|
20
25
|
--color-destructive: var(--destructive);
|
|
21
26
|
--color-destructive-foreground: var(--destructive-foreground);
|
|
22
27
|
--color-border: var(--border);
|
|
28
|
+
--color-border-1: var(--border-1);
|
|
23
29
|
--color-input: var(--input);
|
|
24
30
|
--color-ring: var(--ring);
|
|
25
31
|
|
|
@@ -30,6 +36,7 @@
|
|
|
30
36
|
--color-warning: var(--warning);
|
|
31
37
|
--color-warning-foreground: var(--warning-foreground);
|
|
32
38
|
--color-transparency-block: var(--transparency-block);
|
|
39
|
+
--color-transparency-hover: var(--transparency-hover);
|
|
33
40
|
|
|
34
41
|
--radius-sm: calc(var(--radius) - 0.375rem);
|
|
35
42
|
--radius-md: calc(var(--radius) - 0.25rem);
|
package/dist/styles/theme.css
CHANGED
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--font-sans-system:
|
|
3
|
-
"
|
|
3
|
+
"Lexend Variable", "Lexend", -apple-system, BlinkMacSystemFont,
|
|
4
|
+
"PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC",
|
|
5
|
+
"Source Han Sans SC", system-ui, sans-serif;
|
|
6
|
+
--font-ui: var(--font-sans-system);
|
|
7
|
+
--font-display: var(--font-ui);
|
|
4
8
|
--font-mono-system:
|
|
5
9
|
"Geist Mono", "SF Mono", "IBM Plex Mono", "JetBrains Mono", monospace;
|
|
10
|
+
--font-weight-regular: 400;
|
|
11
|
+
--font-weight-regular-cjk: 500;
|
|
6
12
|
|
|
7
13
|
--radius: 0.625rem;
|
|
8
14
|
|
|
9
15
|
--background: oklch(0.986 0.004 84);
|
|
16
|
+
--background-panel: rgb(248 250 252);
|
|
10
17
|
--background-fronted: rgb(255 255 255 / 1);
|
|
11
18
|
--background-soft: oklch(0.968 0.006 84);
|
|
12
19
|
--foreground: oklch(0.248 0.016 258);
|
|
20
|
+
--text-primary: rgb(0 0 0);
|
|
21
|
+
--text-primary-hover: rgb(0 0 0 / 90%);
|
|
22
|
+
--text-tertiary: rgb(43 43 43 / 50%);
|
|
23
|
+
--text-placeholder: rgb(0 0 0 / 30%);
|
|
24
|
+
--text-inverted: rgb(255 255 255);
|
|
25
|
+
--white-stationary: rgb(255 255 255);
|
|
26
|
+
--black-stationary: rgb(0 0 0);
|
|
27
|
+
--toast-neutral-bg: var(--black-stationary);
|
|
28
|
+
--toast-neutral-fg: var(--white-stationary);
|
|
29
|
+
--toast-neutral-border: rgb(255 255 255 / 14%);
|
|
30
|
+
--toast-shadow-color: rgb(19 24 38 / 18%);
|
|
13
31
|
|
|
14
32
|
--card: oklch(0.995 0.003 84 / 88%);
|
|
15
33
|
--card-foreground: var(--foreground);
|
|
@@ -22,13 +40,33 @@
|
|
|
22
40
|
--secondary-foreground: oklch(0.314 0.018 258);
|
|
23
41
|
--muted: oklch(0.958 0.005 84);
|
|
24
42
|
--muted-foreground: oklch(0.528 0.013 258);
|
|
43
|
+
--text-secondary: rgb(43 43 43 / 70%);
|
|
44
|
+
--text-disabled: rgb(0 0 0 / 30%);
|
|
45
|
+
--rich-text-mention-file: rgb(80, 175, 238);
|
|
25
46
|
--accent: oklch(0.944 0.012 247);
|
|
26
47
|
--accent-foreground: oklch(0.302 0.02 258);
|
|
27
48
|
--destructive: oklch(0.62 0.21 25);
|
|
28
49
|
--destructive-foreground: oklch(0.985 0.004 25);
|
|
50
|
+
--state-danger: rgb(220 38 38);
|
|
51
|
+
--state-danger-hover: color-mix(
|
|
52
|
+
in srgb,
|
|
53
|
+
var(--state-danger) 90%,
|
|
54
|
+
transparent
|
|
55
|
+
);
|
|
56
|
+
--state-success: rgb(34 197 94);
|
|
57
|
+
--on-danger: rgb(255 238 242);
|
|
58
|
+
--on-danger-hover: color-mix(
|
|
59
|
+
in srgb,
|
|
60
|
+
var(--on-danger) 92%,
|
|
61
|
+
var(--state-danger)
|
|
62
|
+
);
|
|
29
63
|
--border: oklch(0.904 0.005 252);
|
|
64
|
+
--border-1: rgb(0 0 0 / 8%);
|
|
65
|
+
--border-2: rgb(43 43 43 / 8%);
|
|
66
|
+
--border-focus: rgb(66 112 160);
|
|
30
67
|
--input: oklch(0.936 0.006 252);
|
|
31
68
|
--ring: oklch(0.662 0.072 248);
|
|
69
|
+
--accent-bg: rgb(66 112 160 / 12%);
|
|
32
70
|
|
|
33
71
|
--panel: oklch(0.975 0.004 84 / 92%);
|
|
34
72
|
--panel-foreground: var(--foreground);
|
|
@@ -36,10 +74,14 @@
|
|
|
36
74
|
--success-foreground: oklch(0.985 0.004 145);
|
|
37
75
|
--warning: oklch(0.774 0.116 86);
|
|
38
76
|
--warning-foreground: oklch(0.29 0.05 84);
|
|
77
|
+
--backdrop: rgb(255 255 255 / 80%);
|
|
39
78
|
|
|
40
79
|
--shadow-soft: 0 10px 28px rgb(19 24 38 / 5%);
|
|
41
80
|
--shadow-panel: 0 20px 44px rgb(19 24 38 / 8%);
|
|
81
|
+
--shadow-elevated: rgb(0 0 0 / 8%);
|
|
42
82
|
--transparency-block: rgba(0, 0, 0, 0.04);
|
|
83
|
+
--transparency-hover: rgba(0, 0, 0, 0.06);
|
|
84
|
+
--transparency-active: rgba(0, 0, 0, 0.06);
|
|
43
85
|
|
|
44
86
|
--z-workbench-chrome: 100100;
|
|
45
87
|
--z-workbench-genie: 100150;
|
|
@@ -49,6 +91,7 @@
|
|
|
49
91
|
--z-panel-popover: 100550;
|
|
50
92
|
--z-dialog-overlay: 100600;
|
|
51
93
|
--z-dialog: 100610;
|
|
94
|
+
--z-dialog-popover: 100620;
|
|
52
95
|
|
|
53
96
|
--workbench-canvas-bg: oklch(0.948 0.006 84);
|
|
54
97
|
--workbench-surface-background:
|
|
@@ -122,9 +165,21 @@
|
|
|
122
165
|
|
|
123
166
|
:root[data-theme="dark"] {
|
|
124
167
|
--background: oklch(0.192 0.008 255);
|
|
168
|
+
--background-panel: rgb(42 42 43);
|
|
125
169
|
--background-fronted: rgb(51 51 51 / 1);
|
|
126
170
|
--background-soft: oklch(0.224 0.01 255);
|
|
127
171
|
--foreground: oklch(0.955 0.004 84);
|
|
172
|
+
--text-primary: rgb(255 255 255);
|
|
173
|
+
--text-primary-hover: rgb(255 255 255 / 90%);
|
|
174
|
+
--text-tertiary: rgb(255 255 255 / 50%);
|
|
175
|
+
--text-placeholder: rgb(255 255 255 / 30%);
|
|
176
|
+
--text-inverted: rgb(0 0 0);
|
|
177
|
+
--white-stationary: rgb(255 255 255);
|
|
178
|
+
--black-stationary: rgb(0 0 0);
|
|
179
|
+
--toast-neutral-bg: var(--white-stationary);
|
|
180
|
+
--toast-neutral-fg: var(--black-stationary);
|
|
181
|
+
--toast-neutral-border: rgb(0 0 0 / 10%);
|
|
182
|
+
--toast-shadow-color: rgb(0 0 0 / 24%);
|
|
128
183
|
|
|
129
184
|
--card: oklch(0.252 0.01 255 / 88%);
|
|
130
185
|
--card-foreground: var(--foreground);
|
|
@@ -137,13 +192,33 @@
|
|
|
137
192
|
--secondary-foreground: var(--foreground);
|
|
138
193
|
--muted: oklch(0.282 0.008 255);
|
|
139
194
|
--muted-foreground: oklch(0.734 0.012 255);
|
|
195
|
+
--text-secondary: rgb(255 255 255 / 70%);
|
|
196
|
+
--text-disabled: rgb(255 255 255 / 30%);
|
|
197
|
+
--rich-text-mention-file: rgb(80, 175, 238);
|
|
140
198
|
--accent: oklch(0.308 0.014 248);
|
|
141
199
|
--accent-foreground: var(--foreground);
|
|
142
200
|
--destructive: oklch(0.672 0.172 25);
|
|
143
201
|
--destructive-foreground: oklch(0.19 0.01 25);
|
|
202
|
+
--state-danger: rgb(239 68 68);
|
|
203
|
+
--state-danger-hover: color-mix(
|
|
204
|
+
in srgb,
|
|
205
|
+
var(--state-danger) 90%,
|
|
206
|
+
transparent
|
|
207
|
+
);
|
|
208
|
+
--state-success: rgb(74 222 128);
|
|
209
|
+
--on-danger: rgb(255 238 242);
|
|
210
|
+
--on-danger-hover: color-mix(
|
|
211
|
+
in srgb,
|
|
212
|
+
var(--on-danger) 92%,
|
|
213
|
+
var(--state-danger)
|
|
214
|
+
);
|
|
144
215
|
--border: oklch(0.352 0.012 255);
|
|
216
|
+
--border-1: rgb(255 255 255 / 12%);
|
|
217
|
+
--border-2: rgb(255 255 255 / 8%);
|
|
218
|
+
--border-focus: rgb(217 240 245);
|
|
145
219
|
--input: oklch(0.318 0.011 255);
|
|
146
220
|
--ring: oklch(0.728 0.078 248);
|
|
221
|
+
--accent-bg: rgb(217 240 245 / 12%);
|
|
147
222
|
|
|
148
223
|
--panel: oklch(0.236 0.009 255 / 92%);
|
|
149
224
|
--panel-foreground: var(--foreground);
|
|
@@ -151,10 +226,14 @@
|
|
|
151
226
|
--success-foreground: oklch(0.172 0.01 158);
|
|
152
227
|
--warning: oklch(0.82 0.108 86);
|
|
153
228
|
--warning-foreground: oklch(0.204 0.02 84);
|
|
229
|
+
--backdrop: rgb(0 0 0 / 80%);
|
|
154
230
|
|
|
155
231
|
--shadow-soft: 0 14px 32px rgb(0 0 0 / 24%);
|
|
156
232
|
--shadow-panel: 0 24px 52px rgb(0 0 0 / 34%);
|
|
233
|
+
--shadow-elevated: rgb(0 0 0 / 50%);
|
|
157
234
|
--transparency-block: rgb(255 255 255 / 10%);
|
|
235
|
+
--transparency-hover: rgb(255 255 255 / 14%);
|
|
236
|
+
--transparency-active: rgb(255 255 255 / 16%);
|
|
158
237
|
|
|
159
238
|
--workbench-canvas-bg: oklch(0.172 0.008 255);
|
|
160
239
|
--workbench-surface-background:
|
|
@@ -228,6 +307,7 @@
|
|
|
228
307
|
|
|
229
308
|
[data-workbench-wallpaper-appearance="dark"] {
|
|
230
309
|
--transparency-block: rgb(255 255 255 / 12%);
|
|
310
|
+
--transparency-hover: rgb(255 255 255 / 16%);
|
|
231
311
|
--workbench-chrome-foreground: rgb(255 255 255 / 88%);
|
|
232
312
|
--workbench-chrome-muted: rgb(255 255 255 / 70%);
|
|
233
313
|
--workbench-chrome-hover-bg: var(--transparency-block);
|
|
@@ -235,6 +315,7 @@
|
|
|
235
315
|
|
|
236
316
|
[data-workbench-wallpaper-appearance="light"] {
|
|
237
317
|
--transparency-block: rgba(0, 0, 0, 0.04);
|
|
318
|
+
--transparency-hover: rgba(0, 0, 0, 0.06);
|
|
238
319
|
--workbench-chrome-foreground: color-mix(
|
|
239
320
|
in srgb,
|
|
240
321
|
var(--foreground) 68%,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextop-os/ui-system",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
"types": "./dist/components/index.d.ts",
|
|
27
27
|
"import": "./dist/components/index.js"
|
|
28
28
|
},
|
|
29
|
+
"./date-format": {
|
|
30
|
+
"types": "./dist/date-format.d.ts",
|
|
31
|
+
"import": "./dist/date-format.js"
|
|
32
|
+
},
|
|
29
33
|
"./dev-vite": {
|
|
30
34
|
"types": "./dist/dev-vite.d.ts",
|
|
31
35
|
"import": "./dist/dev-vite.js"
|
|
@@ -48,7 +52,7 @@
|
|
|
48
52
|
"dist",
|
|
49
53
|
"agent",
|
|
50
54
|
"AGENTS.md",
|
|
51
|
-
"
|
|
55
|
+
"ui-system.md",
|
|
52
56
|
"README.md"
|
|
53
57
|
],
|
|
54
58
|
"repository": {
|
|
@@ -57,9 +61,9 @@
|
|
|
57
61
|
"directory": "packages/ui/system"
|
|
58
62
|
},
|
|
59
63
|
"dependencies": {
|
|
64
|
+
"@fontsource-variable/lexend": "^5.2.11",
|
|
60
65
|
"class-variance-authority": "^0.7.1",
|
|
61
66
|
"clsx": "^2.1.1",
|
|
62
|
-
"lucide-react": "^0.511.0",
|
|
63
67
|
"radix-ui": "^1.4.2",
|
|
64
68
|
"react-resizable-panels": "^4.11.1",
|
|
65
69
|
"tailwind-merge": "^3.3.0",
|
|
@@ -95,6 +99,9 @@
|
|
|
95
99
|
"components": [
|
|
96
100
|
"./dist/components/index.d.ts"
|
|
97
101
|
],
|
|
102
|
+
"date-format": [
|
|
103
|
+
"./dist/date-format.d.ts"
|
|
104
|
+
],
|
|
98
105
|
"icons": [
|
|
99
106
|
"./dist/icons/index.d.ts"
|
|
100
107
|
],
|