@nextop-os/ui-system 0.0.16 → 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.
Files changed (41) hide show
  1. package/AGENTS.md +106 -0
  2. package/README.md +15 -10
  3. package/agent/install-skill.mjs +65 -5
  4. package/agent/nextop-ui-system/SKILL.md +145 -69
  5. package/agent/nextop-ui-system/references/extract-base-component.md +87 -0
  6. package/agent/nextop-ui-system/references/maintain-inventory.md +45 -0
  7. package/agent/nextop-ui-system/references/promote-business-component.md +238 -0
  8. package/agent/nextop-ui-system/references/use-existing-component.md +37 -0
  9. package/agent/nextop-ui-system/scripts/create-business-preview.mjs +658 -0
  10. package/dist/chunk-GE5YVRTV.js +859 -0
  11. package/dist/chunk-GE5YVRTV.js.map +1 -0
  12. package/dist/chunk-KJQ366TA.js +70 -0
  13. package/dist/chunk-KJQ366TA.js.map +1 -0
  14. package/dist/chunk-LVHEV755.js +2553 -0
  15. package/dist/chunk-LVHEV755.js.map +1 -0
  16. package/dist/components/index.d.ts +162 -11
  17. package/dist/components/index.js +62 -2
  18. package/dist/date-format.d.ts +6 -0
  19. package/dist/date-format.js +11 -0
  20. package/dist/date-format.js.map +1 -0
  21. package/dist/dev-vite.js +12 -5
  22. package/dist/dev-vite.js.map +1 -1
  23. package/dist/icons/index.d.ts +90 -46
  24. package/dist/icons/index.js +93 -11
  25. package/dist/index.d.ts +3 -2
  26. package/dist/index.js +161 -11
  27. package/dist/metadata/components.json +1331 -263
  28. package/dist/metadata/components.schema.json +4 -0
  29. package/dist/metadata/index.d.ts +3 -1
  30. package/dist/metadata/index.js +1331 -263
  31. package/dist/metadata/index.js.map +1 -1
  32. package/dist/styles/base.css +85 -0
  33. package/dist/styles/index.css +1 -0
  34. package/dist/styles/semantic.css +8 -0
  35. package/dist/styles/theme.css +94 -1
  36. package/package.json +11 -2
  37. package/ui-system.md +640 -0
  38. package/dist/chunk-5COFORA5.js +0 -1159
  39. package/dist/chunk-5COFORA5.js.map +0 -1
  40. package/dist/chunk-TT7B6HKG.js +0 -205
  41. package/dist/chunk-TT7B6HKG.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,8 @@
3
3
  --font-mono: var(--font-mono-system);
4
4
 
5
5
  --color-background: var(--background);
6
+ --color-background-panel: var(--background-panel);
7
+ --color-background-fronted: var(--background-fronted);
6
8
  --color-foreground: var(--foreground);
7
9
  --color-card: var(--card);
8
10
  --color-card-foreground: var(--card-foreground);
@@ -14,11 +16,16 @@
14
16
  --color-secondary-foreground: var(--secondary-foreground);
15
17
  --color-muted: var(--muted);
16
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);
17
23
  --color-accent: var(--accent);
18
24
  --color-accent-foreground: var(--accent-foreground);
19
25
  --color-destructive: var(--destructive);
20
26
  --color-destructive-foreground: var(--destructive-foreground);
21
27
  --color-border: var(--border);
28
+ --color-border-1: var(--border-1);
22
29
  --color-input: var(--input);
23
30
  --color-ring: var(--ring);
24
31
 
@@ -29,6 +36,7 @@
29
36
  --color-warning: var(--warning);
30
37
  --color-warning-foreground: var(--warning-foreground);
31
38
  --color-transparency-block: var(--transparency-block);
39
+ --color-transparency-hover: var(--transparency-hover);
32
40
 
33
41
  --radius-sm: calc(var(--radius) - 0.375rem);
34
42
  --radius-md: calc(var(--radius) - 0.25rem);
@@ -1,14 +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);
17
+ --background-fronted: rgb(255 255 255 / 1);
10
18
  --background-soft: oklch(0.968 0.006 84);
11
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%);
12
31
 
13
32
  --card: oklch(0.995 0.003 84 / 88%);
14
33
  --card-foreground: var(--foreground);
@@ -21,13 +40,33 @@
21
40
  --secondary-foreground: oklch(0.314 0.018 258);
22
41
  --muted: oklch(0.958 0.005 84);
23
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);
24
46
  --accent: oklch(0.944 0.012 247);
25
47
  --accent-foreground: oklch(0.302 0.02 258);
26
48
  --destructive: oklch(0.62 0.21 25);
27
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
+ );
28
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);
29
67
  --input: oklch(0.936 0.006 252);
30
68
  --ring: oklch(0.662 0.072 248);
69
+ --accent-bg: rgb(66 112 160 / 12%);
31
70
 
32
71
  --panel: oklch(0.975 0.004 84 / 92%);
33
72
  --panel-foreground: var(--foreground);
@@ -35,10 +74,14 @@
35
74
  --success-foreground: oklch(0.985 0.004 145);
36
75
  --warning: oklch(0.774 0.116 86);
37
76
  --warning-foreground: oklch(0.29 0.05 84);
77
+ --backdrop: rgb(255 255 255 / 80%);
38
78
 
39
79
  --shadow-soft: 0 10px 28px rgb(19 24 38 / 5%);
40
80
  --shadow-panel: 0 20px 44px rgb(19 24 38 / 8%);
81
+ --shadow-elevated: rgb(0 0 0 / 8%);
41
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);
42
85
 
43
86
  --z-workbench-chrome: 100100;
44
87
  --z-workbench-genie: 100150;
@@ -48,6 +91,7 @@
48
91
  --z-panel-popover: 100550;
49
92
  --z-dialog-overlay: 100600;
50
93
  --z-dialog: 100610;
94
+ --z-dialog-popover: 100620;
51
95
 
52
96
  --workbench-canvas-bg: oklch(0.948 0.006 84);
53
97
  --workbench-surface-background:
@@ -81,6 +125,11 @@
81
125
  var(--workbench-panel) 92%,
82
126
  transparent
83
127
  );
128
+ --workbench-node-surface: color-mix(
129
+ in srgb,
130
+ var(--workbench-window-bg) 96%,
131
+ var(--workbench-panel)
132
+ );
84
133
  --workbench-window-header-bg: color-mix(
85
134
  in srgb,
86
135
  var(--workbench-panel) 86%,
@@ -116,8 +165,21 @@
116
165
 
117
166
  :root[data-theme="dark"] {
118
167
  --background: oklch(0.192 0.008 255);
168
+ --background-panel: rgb(42 42 43);
169
+ --background-fronted: rgb(51 51 51 / 1);
119
170
  --background-soft: oklch(0.224 0.01 255);
120
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%);
121
183
 
122
184
  --card: oklch(0.252 0.01 255 / 88%);
123
185
  --card-foreground: var(--foreground);
@@ -130,13 +192,33 @@
130
192
  --secondary-foreground: var(--foreground);
131
193
  --muted: oklch(0.282 0.008 255);
132
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);
133
198
  --accent: oklch(0.308 0.014 248);
134
199
  --accent-foreground: var(--foreground);
135
200
  --destructive: oklch(0.672 0.172 25);
136
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
+ );
137
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);
138
219
  --input: oklch(0.318 0.011 255);
139
220
  --ring: oklch(0.728 0.078 248);
221
+ --accent-bg: rgb(217 240 245 / 12%);
140
222
 
141
223
  --panel: oklch(0.236 0.009 255 / 92%);
142
224
  --panel-foreground: var(--foreground);
@@ -144,10 +226,14 @@
144
226
  --success-foreground: oklch(0.172 0.01 158);
145
227
  --warning: oklch(0.82 0.108 86);
146
228
  --warning-foreground: oklch(0.204 0.02 84);
229
+ --backdrop: rgb(0 0 0 / 80%);
147
230
 
148
231
  --shadow-soft: 0 14px 32px rgb(0 0 0 / 24%);
149
232
  --shadow-panel: 0 24px 52px rgb(0 0 0 / 34%);
233
+ --shadow-elevated: rgb(0 0 0 / 50%);
150
234
  --transparency-block: rgb(255 255 255 / 10%);
235
+ --transparency-hover: rgb(255 255 255 / 14%);
236
+ --transparency-active: rgb(255 255 255 / 16%);
151
237
 
152
238
  --workbench-canvas-bg: oklch(0.172 0.008 255);
153
239
  --workbench-surface-background:
@@ -181,6 +267,11 @@
181
267
  var(--workbench-panel) 92%,
182
268
  transparent
183
269
  );
270
+ --workbench-node-surface: color-mix(
271
+ in srgb,
272
+ var(--workbench-window-bg) 96%,
273
+ var(--workbench-panel)
274
+ );
184
275
  --workbench-window-header-bg: color-mix(
185
276
  in srgb,
186
277
  var(--workbench-panel) 86%,
@@ -216,6 +307,7 @@
216
307
 
217
308
  [data-workbench-wallpaper-appearance="dark"] {
218
309
  --transparency-block: rgb(255 255 255 / 12%);
310
+ --transparency-hover: rgb(255 255 255 / 16%);
219
311
  --workbench-chrome-foreground: rgb(255 255 255 / 88%);
220
312
  --workbench-chrome-muted: rgb(255 255 255 / 70%);
221
313
  --workbench-chrome-hover-bg: var(--transparency-block);
@@ -223,6 +315,7 @@
223
315
 
224
316
  [data-workbench-wallpaper-appearance="light"] {
225
317
  --transparency-block: rgba(0, 0, 0, 0.04);
318
+ --transparency-hover: rgba(0, 0, 0, 0.06);
226
319
  --workbench-chrome-foreground: color-mix(
227
320
  in srgb,
228
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.16",
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"
@@ -47,6 +51,8 @@
47
51
  "files": [
48
52
  "dist",
49
53
  "agent",
54
+ "AGENTS.md",
55
+ "ui-system.md",
50
56
  "README.md"
51
57
  ],
52
58
  "repository": {
@@ -55,9 +61,9 @@
55
61
  "directory": "packages/ui/system"
56
62
  },
57
63
  "dependencies": {
64
+ "@fontsource-variable/lexend": "^5.2.11",
58
65
  "class-variance-authority": "^0.7.1",
59
66
  "clsx": "^2.1.1",
60
- "lucide-react": "^0.511.0",
61
67
  "radix-ui": "^1.4.2",
62
68
  "react-resizable-panels": "^4.11.1",
63
69
  "tailwind-merge": "^3.3.0",
@@ -93,6 +99,9 @@
93
99
  "components": [
94
100
  "./dist/components/index.d.ts"
95
101
  ],
102
+ "date-format": [
103
+ "./dist/date-format.d.ts"
104
+ ],
96
105
  "icons": [
97
106
  "./dist/icons/index.d.ts"
98
107
  ],