@nextop-os/ui-system 0.0.17 → 0.0.19

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 (40) hide show
  1. package/AGENTS.md +30 -8
  2. package/README.md +11 -14
  3. package/agent/install-skill.mjs +65 -5
  4. package/agent/nextop-ui-system/SKILL.md +119 -8
  5. package/agent/nextop-ui-system/references/extract-base-component.md +50 -6
  6. package/agent/nextop-ui-system/references/maintain-inventory.md +5 -0
  7. package/agent/nextop-ui-system/references/promote-business-component.md +94 -208
  8. package/dist/chunk-GE5YVRTV.js +859 -0
  9. package/dist/chunk-GE5YVRTV.js.map +1 -0
  10. package/dist/chunk-KJQ366TA.js +70 -0
  11. package/dist/chunk-KJQ366TA.js.map +1 -0
  12. package/dist/chunk-LVHEV755.js +2553 -0
  13. package/dist/chunk-LVHEV755.js.map +1 -0
  14. package/dist/components/index.d.ts +162 -11
  15. package/dist/components/index.js +62 -2
  16. package/dist/date-format.d.ts +6 -0
  17. package/dist/date-format.js +11 -0
  18. package/dist/date-format.js.map +1 -0
  19. package/dist/dev-vite.js +12 -5
  20. package/dist/dev-vite.js.map +1 -1
  21. package/dist/icons/index.d.ts +90 -47
  22. package/dist/icons/index.js +91 -11
  23. package/dist/index.d.ts +3 -2
  24. package/dist/index.js +159 -11
  25. package/dist/metadata/components.json +1320 -265
  26. package/dist/metadata/components.schema.json +4 -0
  27. package/dist/metadata/index.d.ts +3 -1
  28. package/dist/metadata/index.js +1320 -265
  29. package/dist/metadata/index.js.map +1 -1
  30. package/dist/styles/base.css +85 -0
  31. package/dist/styles/index.css +1 -0
  32. package/dist/styles/semantic.css +7 -0
  33. package/dist/styles/theme.css +82 -1
  34. package/package.json +10 -3
  35. package/ui-system.md +640 -0
  36. package/UI_SYSTEM_GUIDELINES.md +0 -148
  37. package/dist/chunk-FT633NLJ.js +0 -1159
  38. package/dist/chunk-FT633NLJ.js.map +0 -1
  39. package/dist/chunk-NFSMZKML.js +0 -208
  40. package/dist/chunk-NFSMZKML.js.map +0 -1
@@ -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
+ }
@@ -1,3 +1,4 @@
1
+ @import "@fontsource-variable/lexend";
1
2
  @import "./theme.css";
2
3
  @import "./semantic.css";
3
4
  @import "./base.css";
@@ -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);
@@ -1,15 +1,33 @@
1
1
  :root {
2
2
  --font-sans-system:
3
- "Geist", "SF Pro Text", "IBM Plex Sans", "Segoe UI", sans-serif;
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.17",
3
+ "version": "0.0.19",
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
- "UI_SYSTEM_GUIDELINES.md",
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
  ],