@nqlib/nqui 0.1.1 → 0.1.3
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/README.md +40 -2
- package/dist/styles.css +468 -21
- package/package.json +5 -1
- package/scripts/build-styles.js +0 -10
- package/scripts/examples/nextjs-layout.tsx +2 -0
- package/scripts/examples.js +76 -0
- package/scripts/framework.js +68 -0
- package/scripts/getPackageRoot.js +26 -0
- package/scripts/help.js +34 -0
- package/scripts/init-css.js +88 -543
- package/scripts/pipeline/emit.js +21 -0
- package/scripts/pipeline/extract.js +118 -0
- package/scripts/pipeline/index.js +90 -0
- package/scripts/pipeline/tokens.js +25 -0
- package/scripts/pipeline/transform.js +51 -0
- package/scripts/postcss.config.mjs +10 -0
- package/scripts/setup-helper.js +72 -0
- package/scripts/wizard.js +57 -0
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ npm install @nqlib/nqui
|
|
|
37
37
|
@source "./**/*.{js,ts,jsx,tsx,mdx}";
|
|
38
38
|
@source "../components/**/*.{js,ts,jsx,tsx,mdx}";
|
|
39
39
|
@source "../node_modules/@nqlib/nqui/dist/**/*.js";
|
|
40
|
-
@import "
|
|
40
|
+
@import "tw-animate-css";
|
|
41
41
|
@custom-variant dark (&:is(.dark *));
|
|
42
42
|
|
|
43
43
|
@import "@nqlib/nqui/styles";
|
|
@@ -57,6 +57,16 @@ export default function Page() {
|
|
|
57
57
|
|
|
58
58
|
**Note:** Pages using nqui components must include `"use client"` because nqui components use React hooks.
|
|
59
59
|
|
|
60
|
+
**For Local Development:** If you're using `npm link` or `file:` protocol, you may need to use Webpack instead of Turbopack:
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"scripts": {
|
|
64
|
+
"dev": "next dev --webpack"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
See [Troubleshooting](#troubleshooting) for more details.
|
|
69
|
+
|
|
60
70
|
#### For Vite
|
|
61
71
|
|
|
62
72
|
1. **Import CSS in your `src/main.tsx` or `src/index.css`:**
|
|
@@ -64,7 +74,7 @@ export default function Page() {
|
|
|
64
74
|
```css
|
|
65
75
|
/* src/index.css */
|
|
66
76
|
@import "tailwindcss";
|
|
67
|
-
@import "
|
|
77
|
+
@import "tw-animate-css";
|
|
68
78
|
@import "@nqlib/nqui/styles";
|
|
69
79
|
```
|
|
70
80
|
|
|
@@ -210,6 +220,34 @@ function MyApp() {
|
|
|
210
220
|
|
|
211
221
|
All components are framework-agnostic and work with any React setup.
|
|
212
222
|
|
|
223
|
+
## Troubleshooting
|
|
224
|
+
|
|
225
|
+
### Module Resolution Issues (Next.js 16+)
|
|
226
|
+
|
|
227
|
+
If you encounter `Module not found: Can't resolve '@nqlib/nqui'` when using `npm link` or `file:` protocol, switch to Webpack:
|
|
228
|
+
|
|
229
|
+
**Quick Fix:**
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"scripts": {
|
|
233
|
+
"dev": "next dev --webpack"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Or in `next.config.ts`:**
|
|
239
|
+
```typescript
|
|
240
|
+
const nextConfig: NextConfig = {
|
|
241
|
+
experimental: {
|
|
242
|
+
turbo: undefined, // Disable Turbopack
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Why?** Next.js 16 uses Turbopack by default, which has limited symlink support. Webpack handles symlinks better for local development. Production builds always use Webpack, so there's no production impact.
|
|
248
|
+
|
|
249
|
+
See [instructions.md](./instructions.md) for more troubleshooting tips.
|
|
250
|
+
|
|
213
251
|
## Features
|
|
214
252
|
|
|
215
253
|
- ✨ **Enhanced UI Components** - Button, Checkbox, RadioGroup, Separator, ScrollArea with additional variants
|
package/dist/styles.css
CHANGED
|
@@ -6,16 +6,6 @@
|
|
|
6
6
|
* IMPORTANT: This file does NOT include Tailwind CSS imports or framework-specific directives.
|
|
7
7
|
* You must have Tailwind CSS configured in your project and add the appropriate imports.
|
|
8
8
|
*
|
|
9
|
-
* For Next.js with Tailwind CSS v4:
|
|
10
|
-
* @import "tailwindcss";
|
|
11
|
-
* @source "./**/*.{js,ts,jsx,tsx,mdx}";
|
|
12
|
-
* @source "../node_modules/@nqlib/nqui/dist/**/*.js";
|
|
13
|
-
* @import "@nqlib/nqui/styles";
|
|
14
|
-
*
|
|
15
|
-
* For Vite with Tailwind CSS v4:
|
|
16
|
-
* @import "tailwindcss";
|
|
17
|
-
* @import "@nqlib/nqui/styles";
|
|
18
|
-
*
|
|
19
9
|
* This file includes:
|
|
20
10
|
* - All CSS variables (--primary, --background, --foreground, etc.)
|
|
21
11
|
* - Complete color scales (100-600) for all semantic colors
|
|
@@ -28,6 +18,328 @@
|
|
|
28
18
|
*/
|
|
29
19
|
|
|
30
20
|
|
|
21
|
+
@theme inline {
|
|
22
|
+
--font-sans: 'Inter Variable', sans-serif;
|
|
23
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
24
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
25
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
26
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
27
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
28
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
29
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
30
|
+
--color-sidebar: var(--sidebar);
|
|
31
|
+
--color-chart-5: var(--chart-5);
|
|
32
|
+
--color-chart-4: var(--chart-4);
|
|
33
|
+
--color-chart-3: var(--chart-3);
|
|
34
|
+
--color-chart-2: var(--chart-2);
|
|
35
|
+
--color-chart-1: var(--chart-1);
|
|
36
|
+
--color-ring: var(--ring);
|
|
37
|
+
--color-input: var(--input);
|
|
38
|
+
--color-border: var(--border);
|
|
39
|
+
--color-destructive: var(--destructive);
|
|
40
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
41
|
+
--color-success: var(--success);
|
|
42
|
+
--color-success-foreground: var(--success-foreground);
|
|
43
|
+
--color-warning: var(--warning);
|
|
44
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
45
|
+
--color-info: var(--info);
|
|
46
|
+
--color-info-foreground: var(--info-foreground);
|
|
47
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
48
|
+
--color-accent: var(--accent);
|
|
49
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
50
|
+
--color-muted: var(--muted);
|
|
51
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
52
|
+
--color-secondary: var(--secondary);
|
|
53
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
54
|
+
--color-primary: var(--primary);
|
|
55
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
56
|
+
--color-popover: var(--popover);
|
|
57
|
+
--color-card-foreground: var(--card-foreground);
|
|
58
|
+
--color-card: var(--card);
|
|
59
|
+
--color-foreground: var(--foreground);
|
|
60
|
+
--color-background: var(--background);
|
|
61
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
62
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
63
|
+
--radius-lg: var(--radius);
|
|
64
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
65
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
66
|
+
--radius-3xl: calc(var(--radius) + 12px);
|
|
67
|
+
--radius-4xl: calc(var(--radius) + 16px);
|
|
68
|
+
|
|
69
|
+
/* Button enhanced styling */
|
|
70
|
+
--button-gradient: linear-gradient(to bottom, rgba(255,255,255,0.15), transparent);
|
|
71
|
+
--button-shadow: 0 1px 0 0 rgba(255,255,255,0.15) inset, 0 1px 1px 0 rgba(0,0,0,0.075);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@layer base {
|
|
75
|
+
* {
|
|
76
|
+
@apply border-border outline-ring/50;
|
|
77
|
+
}
|
|
78
|
+
body {
|
|
79
|
+
@apply font-sans bg-background text-foreground;
|
|
80
|
+
}
|
|
81
|
+
html {
|
|
82
|
+
@apply font-sans;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@layer utilities {
|
|
87
|
+
@keyframes radio-pulse {
|
|
88
|
+
0% {
|
|
89
|
+
box-shadow: 0 0 0 0 color-mix(in oklch, var(--primary) 40%, transparent);
|
|
90
|
+
}
|
|
91
|
+
70% {
|
|
92
|
+
box-shadow: 0 0 0 8px color-mix(in oklch, var(--primary) 0%, transparent);
|
|
93
|
+
}
|
|
94
|
+
100% {
|
|
95
|
+
box-shadow: 0 0 0 0 color-mix(in oklch, var(--primary) 0%, transparent);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@keyframes accordion-down {
|
|
100
|
+
from {
|
|
101
|
+
height: 0;
|
|
102
|
+
}
|
|
103
|
+
to {
|
|
104
|
+
height: var(--radix-accordion-content-height);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@keyframes accordion-up {
|
|
109
|
+
from {
|
|
110
|
+
height: var(--radix-accordion-content-height);
|
|
111
|
+
}
|
|
112
|
+
to {
|
|
113
|
+
height: 0;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Separator Decorative Variants */
|
|
118
|
+
/* Base transparent gradient line for decorative variants */
|
|
119
|
+
.separator-transparent::before {
|
|
120
|
+
content: "";
|
|
121
|
+
position: absolute;
|
|
122
|
+
top: 0;
|
|
123
|
+
left: 5%;
|
|
124
|
+
right: 5%;
|
|
125
|
+
width: 90%;
|
|
126
|
+
height: 1px;
|
|
127
|
+
background-image: linear-gradient(to right, transparent, var(--border), transparent);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Arrow/Diamond Down - decorative arrow shape in center */
|
|
131
|
+
.separator-arrow-down::after {
|
|
132
|
+
content: "";
|
|
133
|
+
position: absolute;
|
|
134
|
+
z-index: 1;
|
|
135
|
+
top: -7px;
|
|
136
|
+
left: calc(50% - 7px);
|
|
137
|
+
width: 14px;
|
|
138
|
+
height: 14px;
|
|
139
|
+
transform: rotate(45deg);
|
|
140
|
+
background-color: var(--background);
|
|
141
|
+
border-bottom: 1px solid var(--border);
|
|
142
|
+
border-right: 1px solid var(--border);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Tab Down - rounded tab shape in center */
|
|
146
|
+
.separator-tab-down::after {
|
|
147
|
+
content: "";
|
|
148
|
+
position: absolute;
|
|
149
|
+
z-index: 1;
|
|
150
|
+
top: 0;
|
|
151
|
+
left: calc(50% - 10px);
|
|
152
|
+
width: 20px;
|
|
153
|
+
height: 14px;
|
|
154
|
+
background-color: var(--background);
|
|
155
|
+
border-bottom: 1px solid var(--border);
|
|
156
|
+
border-left: 1px solid var(--border);
|
|
157
|
+
border-right: 1px solid var(--border);
|
|
158
|
+
border-radius: 0 0 var(--radius) var(--radius);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Stopper - rectangular stopper in center */
|
|
162
|
+
.separator-stopper::after {
|
|
163
|
+
content: "";
|
|
164
|
+
position: absolute;
|
|
165
|
+
z-index: 1;
|
|
166
|
+
top: -6px;
|
|
167
|
+
left: calc(50% - 7px);
|
|
168
|
+
width: 14px;
|
|
169
|
+
height: 12px;
|
|
170
|
+
background-color: var(--background);
|
|
171
|
+
border-left: 1px solid var(--border);
|
|
172
|
+
border-right: 1px solid var(--border);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Dot - circular dot in center with shadow */
|
|
176
|
+
.separator-dot::after {
|
|
177
|
+
content: "";
|
|
178
|
+
position: absolute;
|
|
179
|
+
z-index: 1;
|
|
180
|
+
top: -9px;
|
|
181
|
+
left: calc(50% - 9px);
|
|
182
|
+
width: 18px;
|
|
183
|
+
height: 18px;
|
|
184
|
+
background-color: var(--primary);
|
|
185
|
+
border: 1px solid var(--border);
|
|
186
|
+
border-radius: 50%;
|
|
187
|
+
box-shadow: inset 0 0 0 2px var(--background), 0 0 0 4px var(--background);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* Text Decoration - text/character decoration in center */
|
|
191
|
+
.separator-text-decoration {
|
|
192
|
+
border-top: 1px solid var(--border);
|
|
193
|
+
background-color: transparent;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.separator-text-decoration::before {
|
|
197
|
+
content: var(--separator-text-content, "j");
|
|
198
|
+
position: absolute;
|
|
199
|
+
z-index: 1;
|
|
200
|
+
top: 50%;
|
|
201
|
+
left: 50%;
|
|
202
|
+
transform: translate(-50%, -65%);
|
|
203
|
+
background-color: var(--background);
|
|
204
|
+
color: var(--foreground);
|
|
205
|
+
display: inline-block;
|
|
206
|
+
font-size: 1rem;
|
|
207
|
+
line-height: 1rem;
|
|
208
|
+
padding: 0 0.5rem;
|
|
209
|
+
text-rendering: geometricPrecision;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* Shiny Corner - lighting effect on 2 edges (left/right for horizontal, top/bottom for vertical) */
|
|
213
|
+
.separator-shiny-corner {
|
|
214
|
+
background: linear-gradient(
|
|
215
|
+
90deg,
|
|
216
|
+
color-mix(in oklch, var(--foreground) 60%, transparent) 0%,
|
|
217
|
+
transparent 8%,
|
|
218
|
+
var(--border) 20%,
|
|
219
|
+
var(--border) 80%,
|
|
220
|
+
transparent 92%,
|
|
221
|
+
color-mix(in oklch, var(--foreground) 60%, transparent) 100%
|
|
222
|
+
);
|
|
223
|
+
position: relative;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.separator-shiny-corner::before {
|
|
227
|
+
content: "";
|
|
228
|
+
position: absolute;
|
|
229
|
+
inset: -1px;
|
|
230
|
+
background: linear-gradient(
|
|
231
|
+
90deg,
|
|
232
|
+
color-mix(in oklch, var(--foreground) 80%, transparent) 0%,
|
|
233
|
+
transparent 5%,
|
|
234
|
+
transparent 95%,
|
|
235
|
+
color-mix(in oklch, var(--foreground) 80%, transparent) 100%
|
|
236
|
+
);
|
|
237
|
+
filter: blur(1px);
|
|
238
|
+
opacity: 0.7;
|
|
239
|
+
z-index: -1;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* Vertical orientation support for shiny corner */
|
|
243
|
+
[aria-orientation="vertical"].separator-shiny-corner {
|
|
244
|
+
background: linear-gradient(
|
|
245
|
+
180deg,
|
|
246
|
+
color-mix(in oklch, var(--foreground) 60%, transparent) 0%,
|
|
247
|
+
transparent 8%,
|
|
248
|
+
var(--border) 20%,
|
|
249
|
+
var(--border) 80%,
|
|
250
|
+
transparent 92%,
|
|
251
|
+
color-mix(in oklch, var(--foreground) 60%, transparent) 100%
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
[aria-orientation="vertical"].separator-shiny-corner::before {
|
|
256
|
+
background: linear-gradient(
|
|
257
|
+
180deg,
|
|
258
|
+
color-mix(in oklch, var(--foreground) 80%, transparent) 0%,
|
|
259
|
+
transparent 5%,
|
|
260
|
+
transparent 95%,
|
|
261
|
+
color-mix(in oklch, var(--foreground) 80%, transparent) 100%
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/* Shiny Edge - softer gradient highlight on edges */
|
|
266
|
+
.separator-shiny-edge {
|
|
267
|
+
background: linear-gradient(
|
|
268
|
+
90deg,
|
|
269
|
+
color-mix(in oklch, var(--foreground) 40%, transparent) 0%,
|
|
270
|
+
transparent 10%,
|
|
271
|
+
var(--border) 30%,
|
|
272
|
+
var(--border) 70%,
|
|
273
|
+
transparent 90%,
|
|
274
|
+
color-mix(in oklch, var(--foreground) 40%, transparent) 100%
|
|
275
|
+
);
|
|
276
|
+
position: relative;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.separator-shiny-edge::before {
|
|
280
|
+
content: "";
|
|
281
|
+
position: absolute;
|
|
282
|
+
inset: -0.5px;
|
|
283
|
+
background: linear-gradient(
|
|
284
|
+
90deg,
|
|
285
|
+
color-mix(in oklch, var(--primary) 50%, transparent) 0%,
|
|
286
|
+
transparent 8%,
|
|
287
|
+
transparent 92%,
|
|
288
|
+
color-mix(in oklch, var(--primary) 50%, transparent) 100%
|
|
289
|
+
);
|
|
290
|
+
filter: blur(0.5px);
|
|
291
|
+
opacity: 0.5;
|
|
292
|
+
z-index: -1;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* Vertical orientation support for shiny edge */
|
|
296
|
+
[aria-orientation="vertical"].separator-shiny-edge {
|
|
297
|
+
background: linear-gradient(
|
|
298
|
+
180deg,
|
|
299
|
+
color-mix(in oklch, var(--foreground) 40%, transparent) 0%,
|
|
300
|
+
transparent 10%,
|
|
301
|
+
var(--border) 30%,
|
|
302
|
+
var(--border) 70%,
|
|
303
|
+
transparent 90%,
|
|
304
|
+
color-mix(in oklch, var(--foreground) 40%, transparent) 100%
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
[aria-orientation="vertical"].separator-shiny-edge::before {
|
|
309
|
+
background: linear-gradient(
|
|
310
|
+
180deg,
|
|
311
|
+
color-mix(in oklch, var(--primary) 50%, transparent) 0%,
|
|
312
|
+
transparent 8%,
|
|
313
|
+
transparent 92%,
|
|
314
|
+
color-mix(in oklch, var(--primary) 50%, transparent) 100%
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/* nqui Design System CSS
|
|
320
|
+
*
|
|
321
|
+
* This file contains ALL design tokens, CSS variables, and color scales from nqui.
|
|
322
|
+
* It includes everything the library needs to style components correctly.
|
|
323
|
+
*
|
|
324
|
+
* IMPORTANT: This file does NOT include Tailwind CSS imports.
|
|
325
|
+
* You must have Tailwind CSS configured in your project.
|
|
326
|
+
*
|
|
327
|
+
* For Tailwind CSS v4, add this at the TOP of your CSS file:
|
|
328
|
+
* *
|
|
329
|
+
* For Tailwind CSS v3, configure it in your tailwind.config.js
|
|
330
|
+
*
|
|
331
|
+
* This file includes:
|
|
332
|
+
* - All CSS variables (--primary, --background, --foreground, etc.)
|
|
333
|
+
* - Complete color scales (100-600) for all semantic colors
|
|
334
|
+
* - Light and dark mode support
|
|
335
|
+
* - Base layer styles
|
|
336
|
+
* - Utility animations
|
|
337
|
+
*
|
|
338
|
+
* Generated by: npx nqui init-css
|
|
339
|
+
* Do not edit manually - regenerate if nqui is updated
|
|
340
|
+
*/
|
|
341
|
+
|
|
342
|
+
|
|
31
343
|
/* ============================================
|
|
32
344
|
nqui Color System & Design Tokens
|
|
33
345
|
============================================ */
|
|
@@ -105,6 +417,79 @@
|
|
|
105
417
|
--info: var(--info-500);
|
|
106
418
|
--info-foreground: oklch(0.98 0 0);
|
|
107
419
|
|
|
420
|
+
/* Additional variables from index.css */
|
|
421
|
+
/* ============================================
|
|
422
|
+
Primary Color Scale - Light Mode
|
|
423
|
+
Blue Theme (Hue 240)
|
|
424
|
+
============================================ */
|
|
425
|
+
|
|
426
|
+
/* Primary Color Scale (Light Mode) - Blue Theme (Hue 240) */
|
|
427
|
+
--primary-100: oklch(0.95 0.08 240);
|
|
428
|
+
--primary-200: oklch(0.90 0.10 240);
|
|
429
|
+
--primary-300: oklch(0.85 0.12 240);
|
|
430
|
+
--primary-400: oklch(0.80 0.14 240);
|
|
431
|
+
--primary-500: oklch(0.60 0.25 240); /* Main primary - darker for light mode */
|
|
432
|
+
--primary-600: oklch(0.50 0.28 240);
|
|
433
|
+
|
|
434
|
+
/* ============================================
|
|
435
|
+
Semantic Color Scales - Light Mode
|
|
436
|
+
============================================ */
|
|
437
|
+
|
|
438
|
+
/* Success Color Scale (Light Mode) - Green (Hue 142) */
|
|
439
|
+
--success-100: oklch(0.95 0.08 142);
|
|
440
|
+
--success-200: oklch(0.90 0.10 142);
|
|
441
|
+
--success-300: oklch(0.75 0.12 142);
|
|
442
|
+
--success-400: oklch(0.60 0.14 142);
|
|
443
|
+
--success-500: oklch(0.50 0.15 142);
|
|
444
|
+
--success-600: oklch(0.40 0.18 142);
|
|
445
|
+
|
|
446
|
+
/* Warning Color Scale (Light Mode) - Orange (Hue 65) */
|
|
447
|
+
--warning-100: oklch(0.95 0.08 65);
|
|
448
|
+
--warning-200: oklch(0.90 0.10 65);
|
|
449
|
+
--warning-300: oklch(0.85 0.12 65);
|
|
450
|
+
--warning-400: oklch(0.75 0.14 65);
|
|
451
|
+
--warning-500: oklch(0.70 0.15 65);
|
|
452
|
+
--warning-600: oklch(0.60 0.18 65);
|
|
453
|
+
|
|
454
|
+
/* Destructive Color Scale (Light Mode) - Red (Hue 25) */
|
|
455
|
+
--danger-100: oklch(0.95 0.08 25);
|
|
456
|
+
--danger-200: oklch(0.90 0.10 25);
|
|
457
|
+
--danger-300: oklch(0.80 0.12 25);
|
|
458
|
+
--danger-400: oklch(0.70 0.14 25);
|
|
459
|
+
--danger-500: oklch(0.60 0.15 25);
|
|
460
|
+
--danger-600: oklch(0.50 0.18 25);
|
|
461
|
+
|
|
462
|
+
/* Info Color Scale (Light Mode) - Cyan/Teal (Hue 200) */
|
|
463
|
+
--info-100: oklch(0.95 0.08 200);
|
|
464
|
+
--info-200: oklch(0.90 0.10 200);
|
|
465
|
+
--info-300: oklch(0.80 0.12 200);
|
|
466
|
+
--info-400: oklch(0.70 0.14 200);
|
|
467
|
+
--info-500: oklch(0.60 0.15 200);
|
|
468
|
+
--info-600: oklch(0.50 0.18 200);
|
|
469
|
+
|
|
470
|
+
/* ============================================
|
|
471
|
+
System Color Mappings - Light Mode
|
|
472
|
+
============================================ */
|
|
473
|
+
|
|
474
|
+
/* Primary Colors - Mapped to color scales */
|
|
475
|
+
--primary: var(--primary-500);
|
|
476
|
+
--primary-foreground: oklch(0.98 0 0); /* Light text for contrast */
|
|
477
|
+
--primary-hover: var(--primary-400);
|
|
478
|
+
--ring: var(--primary-500); /* Focus ring uses primary color */
|
|
479
|
+
|
|
480
|
+
/* Semantic Colors - Mapped to color scales */
|
|
481
|
+
--success: var(--success-500);
|
|
482
|
+
--success-foreground: oklch(0.98 0 0);
|
|
483
|
+
|
|
484
|
+
--warning: var(--warning-500);
|
|
485
|
+
--warning-foreground: oklch(0.145 0 0);
|
|
486
|
+
|
|
487
|
+
--destructive: var(--danger-500);
|
|
488
|
+
--destructive-foreground: oklch(0.98 0 0);
|
|
489
|
+
|
|
490
|
+
--info: var(--info-500);
|
|
491
|
+
--info-foreground: oklch(0.98 0 0);
|
|
492
|
+
|
|
108
493
|
/* Additional variables from index.css */
|
|
109
494
|
--background: oklch(1 0 0);
|
|
110
495
|
--foreground: oklch(0.145 0 0);
|
|
@@ -212,6 +597,79 @@
|
|
|
212
597
|
--info: var(--info-500);
|
|
213
598
|
--info-foreground: oklch(0.98 0 0);
|
|
214
599
|
|
|
600
|
+
/* Additional variables from index.css */
|
|
601
|
+
/* ============================================
|
|
602
|
+
Primary Color Scale - Dark Mode
|
|
603
|
+
Blue Theme (Hue 240)
|
|
604
|
+
============================================ */
|
|
605
|
+
|
|
606
|
+
/* Primary Color Scale (Dark Mode) - Blue Theme (Hue 240) */
|
|
607
|
+
--primary-100: oklch(0.40 0.15 240);
|
|
608
|
+
--primary-200: oklch(0.45 0.18 240);
|
|
609
|
+
--primary-300: oklch(0.50 0.20 240);
|
|
610
|
+
--primary-400: oklch(0.55 0.22 240);
|
|
611
|
+
--primary-500: oklch(0.65 0.20 240); /* Main primary - lighter for dark mode */
|
|
612
|
+
--primary-600: oklch(0.70 0.22 240);
|
|
613
|
+
|
|
614
|
+
/* ============================================
|
|
615
|
+
Semantic Color Scales - Dark Mode
|
|
616
|
+
============================================ */
|
|
617
|
+
|
|
618
|
+
/* Success Color Scale (Dark Mode) - Green (Hue 142) */
|
|
619
|
+
--success-100: oklch(0.40 0.15 142);
|
|
620
|
+
--success-200: oklch(0.45 0.18 142);
|
|
621
|
+
--success-300: oklch(0.50 0.20 142);
|
|
622
|
+
--success-400: oklch(0.55 0.22 142);
|
|
623
|
+
--success-500: oklch(0.65 0.20 142);
|
|
624
|
+
--success-600: oklch(0.70 0.22 142);
|
|
625
|
+
|
|
626
|
+
/* Warning Color Scale (Dark Mode) - Orange (Hue 65) */
|
|
627
|
+
--warning-100: oklch(0.50 0.15 65);
|
|
628
|
+
--warning-200: oklch(0.55 0.18 65);
|
|
629
|
+
--warning-300: oklch(0.60 0.20 65);
|
|
630
|
+
--warning-400: oklch(0.65 0.22 65);
|
|
631
|
+
--warning-500: oklch(0.75 0.15 65);
|
|
632
|
+
--warning-600: oklch(0.80 0.18 65);
|
|
633
|
+
|
|
634
|
+
/* Destructive Color Scale (Dark Mode) - Red (Hue 25) */
|
|
635
|
+
--danger-100: oklch(0.40 0.15 25);
|
|
636
|
+
--danger-200: oklch(0.45 0.18 25);
|
|
637
|
+
--danger-300: oklch(0.50 0.20 25);
|
|
638
|
+
--danger-400: oklch(0.55 0.22 25);
|
|
639
|
+
--danger-500: oklch(0.65 0.15 25);
|
|
640
|
+
--danger-600: oklch(0.70 0.18 25);
|
|
641
|
+
|
|
642
|
+
/* Info Color Scale (Dark Mode) - Cyan/Teal (Hue 200) */
|
|
643
|
+
--info-100: oklch(0.40 0.15 200);
|
|
644
|
+
--info-200: oklch(0.45 0.18 200);
|
|
645
|
+
--info-300: oklch(0.50 0.20 200);
|
|
646
|
+
--info-400: oklch(0.55 0.22 200);
|
|
647
|
+
--info-500: oklch(0.65 0.15 200);
|
|
648
|
+
--info-600: oklch(0.70 0.18 200);
|
|
649
|
+
|
|
650
|
+
/* ============================================
|
|
651
|
+
System Color Mappings - Dark Mode
|
|
652
|
+
============================================ */
|
|
653
|
+
|
|
654
|
+
/* Primary Colors - Mapped to color scales */
|
|
655
|
+
--primary: var(--primary-500);
|
|
656
|
+
--primary-foreground: oklch(0.98 0 0); /* Light text for contrast */
|
|
657
|
+
--primary-hover: var(--primary-400);
|
|
658
|
+
--ring: var(--primary-500); /* Focus ring uses primary color */
|
|
659
|
+
|
|
660
|
+
/* Semantic Colors - Mapped to color scales */
|
|
661
|
+
--success: var(--success-500);
|
|
662
|
+
--success-foreground: oklch(0.98 0 0);
|
|
663
|
+
|
|
664
|
+
--warning: var(--warning-500);
|
|
665
|
+
--warning-foreground: oklch(0.985 0 0);
|
|
666
|
+
|
|
667
|
+
--destructive: var(--danger-500);
|
|
668
|
+
--destructive-foreground: oklch(0.98 0 0);
|
|
669
|
+
|
|
670
|
+
--info: var(--info-500);
|
|
671
|
+
--info-foreground: oklch(0.98 0 0);
|
|
672
|
+
|
|
215
673
|
/* Additional variables from index.css */
|
|
216
674
|
--background: oklch(0.145 0 0);
|
|
217
675
|
--foreground: oklch(0.985 0 0);
|
|
@@ -298,17 +756,6 @@
|
|
|
298
756
|
--button-shadow: 0 1px 0 0 rgba(255,255,255,0.15) inset, 0 1px 1px 0 rgba(0,0,0,0.075);
|
|
299
757
|
}
|
|
300
758
|
|
|
301
|
-
@layer base {
|
|
302
|
-
* {
|
|
303
|
-
@apply border-border outline-ring/50;
|
|
304
|
-
}
|
|
305
|
-
body {
|
|
306
|
-
@apply font-sans bg-background text-foreground;
|
|
307
|
-
}
|
|
308
|
-
html {
|
|
309
|
-
@apply font-sans;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
759
|
|
|
313
760
|
@layer utilities {
|
|
314
761
|
@keyframes radio-pulse {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nqlib/nqui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "A React component library with enhanced UI components and developer tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/nqui.cjs.js",
|
|
@@ -95,8 +95,12 @@
|
|
|
95
95
|
"html2canvas-pro": "^1.6.3",
|
|
96
96
|
"input-otp": "^1.4.2",
|
|
97
97
|
"lucide-react": "^0.562.0",
|
|
98
|
+
"minimist": "^1.2.8",
|
|
98
99
|
"next-themes": "^0.4.6",
|
|
99
100
|
"package": "^1.0.1",
|
|
101
|
+
"postcss": "^8.4.0",
|
|
102
|
+
"postcss-discard-comments": "^7.0.0",
|
|
103
|
+
"postcss-import": "^16.0.0",
|
|
100
104
|
"radix-ui": "^1.4.3",
|
|
101
105
|
"react": "^19.2.0",
|
|
102
106
|
"react-day-picker": "^9.13.0",
|
package/scripts/build-styles.js
CHANGED
|
@@ -157,16 +157,6 @@ function extractStandaloneCSS() {
|
|
|
157
157
|
* IMPORTANT: This file does NOT include Tailwind CSS imports or framework-specific directives.
|
|
158
158
|
* You must have Tailwind CSS configured in your project and add the appropriate imports.
|
|
159
159
|
*
|
|
160
|
-
* For Next.js with Tailwind CSS v4:
|
|
161
|
-
* @import "tailwindcss";
|
|
162
|
-
* @source "./**/*.{js,ts,jsx,tsx,mdx}";
|
|
163
|
-
* @source "../node_modules/@nqlib/nqui/dist/**/*.js";
|
|
164
|
-
* @import "@nqlib/nqui/styles";
|
|
165
|
-
*
|
|
166
|
-
* For Vite with Tailwind CSS v4:
|
|
167
|
-
* @import "tailwindcss";
|
|
168
|
-
* @import "@nqlib/nqui/styles";
|
|
169
|
-
*
|
|
170
160
|
* This file includes:
|
|
171
161
|
* - All CSS variables (--primary, --background, --foreground, etc.)
|
|
172
162
|
* - Complete color scales (100-600) for all semantic colors
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Metadata } from "next";
|
|
2
2
|
import { ThemeProvider } from "next-themes";
|
|
3
3
|
import "./globals.css";
|
|
4
|
+
// Note: Make sure globals.css imports nqui.css (via nqui-setup.css content)
|
|
5
|
+
// Required dependencies: npm install @nqlib/nqui tw-animate-css next-themes
|
|
4
6
|
|
|
5
7
|
export const metadata: Metadata = {
|
|
6
8
|
title: "nqui Example App",
|