@webdevarif/dashui 1.2.3 → 1.2.6

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/package.json CHANGED
@@ -1,95 +1,89 @@
1
- {
2
- "name": "@webdevarif/dashui",
3
- "version": "1.2.3",
4
- "description": "Universal dashboard UI component library — forms, inputs, media, tables, layouts. Modular categories: primitives, forms, dashboard, media, data, editors, ecommerce, cms.",
5
- "keywords": [
6
- "dashboard",
7
- "ui",
8
- "components",
9
- "design-system",
10
- "react",
11
- "tailwind"
12
- ],
13
- "author": "webdevarif",
14
- "license": "MIT",
15
- "homepage": "https://dashui.webdevarif.com",
16
- "repository": {
17
- "type": "git",
18
- "url": "https://github.com/webdevarif/dashui"
19
- },
20
- "main": "./dist/index.js",
21
- "module": "./dist/index.mjs",
22
- "types": "./dist/index.d.ts",
23
- "exports": {
24
- ".": {
25
- "types": "./dist/index.d.ts",
26
- "import": "./dist/index.mjs",
27
- "require": "./dist/index.js"
28
- },
29
- "./styles": "./dist/styles/globals.css",
30
- "./tokens/primitives": "./dist/tokens/primitives.css",
31
- "./tokens/light": "./dist/tokens/semantic-light.css",
32
- "./tokens/dark": "./dist/tokens/semantic-dark.css",
33
- "./tokens/schemes": "./dist/tokens/storefront-schemes.css"
34
- },
35
- "files": [
36
- "dist",
37
- "templates",
38
- "README.md"
39
- ],
40
- "scripts": {
41
- "build": "tsup \u0026\u0026 cpx \"src/styles/**/*.css\" dist/styles \u0026\u0026 cpx \"src/tokens/**/*.css\" dist/tokens",
42
- "dev": "tsup --watch",
43
- "lint": "eslint src --ext .ts,.tsx",
44
- "typecheck": "tsc --noEmit"
45
- },
46
- "peerDependencies": {
47
- "next": "\u003e=14",
48
- "next-themes": "\u003e=0.2",
49
- "react": "\u003e=18",
50
- "react-dom": "\u003e=18"
51
- },
52
- "dependencies": {
53
- "@radix-ui/react-checkbox": "^1.1.3",
54
- "@radix-ui/react-dialog": "^1.1.4",
55
- "@radix-ui/react-dropdown-menu": "^2.1.4",
56
- "@radix-ui/react-label": "^2.1.1",
57
- "@radix-ui/react-popover": "^1.1.4",
58
- "@radix-ui/react-select": "^2.1.4",
59
- "@radix-ui/react-separator": "^1.1.1",
60
- "@radix-ui/react-slider": "^1.3.6",
61
- "@radix-ui/react-slot": "^1.1.1",
62
- "@radix-ui/react-switch": "^1.1.2",
63
- "@radix-ui/react-tabs": "^1.1.2",
64
- "@radix-ui/react-tooltip": "^1.1.6",
65
- "class-variance-authority": "^0.7.1",
66
- "clsx": "^2.1.1",
67
- "color": "^5.0.3",
68
- "lucide-react": "^0.469.0",
69
- "next-themes": "\u003e=0.2",
70
- "react-colorful": "^5.6.1",
71
- "sonner": "^1.7.1",
72
- "tailwind-merge": "^2.6.0",
73
- "@tiptap/react": "^2.1.0",
74
- "@tiptap/starter-kit": "^2.1.0",
75
- "@tiptap/extension-placeholder": "^2.1.0"
76
- },
77
- "devDependencies": {
78
- "@types/color": "^4.2.1",
79
- "@types/react": "^18",
80
- "@types/react-dom": "^18",
81
- "cpx2": "^8.0.0",
82
- "tailwindcss": "^3.4.17",
83
- "tsup": "^8.3.5",
84
- "typescript": "^5"
85
- },
86
- "publishConfig": {
87
- "access": "public"
88
- }
89
- }
90
-
91
-
92
-
93
-
94
-
95
-
1
+ {
2
+ "name": "@webdevarif/dashui",
3
+ "version": "1.2.6",
4
+ "description": "Universal dashboard UI component library forms, inputs, media, tables, layouts. Modular categories: primitives, forms, dashboard, media, data, editors, ecommerce, cms.",
5
+ "keywords": [
6
+ "dashboard",
7
+ "ui",
8
+ "components",
9
+ "design-system",
10
+ "react",
11
+ "tailwind"
12
+ ],
13
+ "author": "webdevarif",
14
+ "license": "MIT",
15
+ "homepage": "https://dashui.webdevarif.com",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/webdevarif/dashui"
19
+ },
20
+ "main": "./dist/index.js",
21
+ "module": "./dist/index.mjs",
22
+ "types": "./dist/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.mjs",
27
+ "require": "./dist/index.js"
28
+ },
29
+ "./styles": "./dist/styles/globals.css",
30
+ "./tokens/primitives": "./dist/tokens/primitives.css",
31
+ "./tokens/light": "./dist/tokens/semantic-light.css",
32
+ "./tokens/dark": "./dist/tokens/semantic-dark.css",
33
+ "./tokens/schemes": "./dist/tokens/storefront-schemes.css"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "templates",
38
+ "README.md"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsup && cpx \"src/styles/**/*.css\" dist/styles && cpx \"src/tokens/**/*.css\" dist/tokens",
42
+ "dev": "tsup --watch",
43
+ "lint": "eslint src --ext .ts,.tsx",
44
+ "typecheck": "tsc --noEmit"
45
+ },
46
+ "peerDependencies": {
47
+ "next": ">=14",
48
+ "next-themes": ">=0.2",
49
+ "react": ">=18",
50
+ "react-dom": ">=18"
51
+ },
52
+ "dependencies": {
53
+ "@radix-ui/react-checkbox": "^1.1.3",
54
+ "@radix-ui/react-dialog": "^1.1.4",
55
+ "@radix-ui/react-dropdown-menu": "^2.1.4",
56
+ "@radix-ui/react-label": "^2.1.1",
57
+ "@radix-ui/react-popover": "^1.1.4",
58
+ "@radix-ui/react-select": "^2.1.4",
59
+ "@radix-ui/react-separator": "^1.1.1",
60
+ "@radix-ui/react-slider": "^1.3.6",
61
+ "@radix-ui/react-slot": "^1.1.1",
62
+ "@radix-ui/react-switch": "^1.1.2",
63
+ "@radix-ui/react-tabs": "^1.1.2",
64
+ "@radix-ui/react-tooltip": "^1.1.6",
65
+ "class-variance-authority": "^0.7.1",
66
+ "clsx": "^2.1.1",
67
+ "color": "^5.0.3",
68
+ "lucide-react": "^0.469.0",
69
+ "next-themes": ">=0.2",
70
+ "react-colorful": "^5.6.1",
71
+ "sonner": "^1.7.1",
72
+ "tailwind-merge": "^2.6.0",
73
+ "@tiptap/react": "^2.1.0",
74
+ "@tiptap/starter-kit": "^2.1.0",
75
+ "@tiptap/extension-placeholder": "^2.1.0"
76
+ },
77
+ "devDependencies": {
78
+ "@types/color": "^4.2.1",
79
+ "@types/react": "^18",
80
+ "@types/react-dom": "^18",
81
+ "cpx2": "^8.0.0",
82
+ "tailwindcss": "^3.4.17",
83
+ "tsup": "^8.3.5",
84
+ "typescript": "^5"
85
+ },
86
+ "publishConfig": {
87
+ "access": "public"
88
+ }
89
+ }
@@ -1,13 +0,0 @@
1
- @keyframes dashui-shimmer {
2
- 0% { transform: translateX(-100%); }
3
- 100% { transform: translateX(200%); }
4
- }
5
-
6
- @keyframes dashui-spin {
7
- to { transform: rotate(360deg); }
8
- }
9
-
10
- @keyframes dashui-pulse {
11
- 0%, 100% { opacity: 1; }
12
- 50% { opacity: 0.5; }
13
- }
@@ -1,437 +0,0 @@
1
- @keyframes dashui-shimmer {
2
- 0% { transform: translateX(-100%); }
3
- 100% { transform: translateX(200%); }
4
- }
5
-
6
- @keyframes dashui-spin {
7
- to { transform: rotate(360deg); }
8
- }
9
-
10
- @keyframes dashui-pulse {
11
- 0%, 100% { opacity: 1; }
12
- 50% { opacity: 0.5; }
13
- }
14
-
15
- /* @webdevarif/dashui � All Tokens Combined
16
- * Import: import '@webdevarif/dashui/styles'
17
- */
18
-
19
- /**
20
- * @webdevarif/dashui — Primitive Tokens (Layer 1)
21
- * Raw values. Never use these directly in components.
22
- * Use semantic tokens instead.
23
- */
24
- :root {
25
- /* ─── Gray Scale ─── */
26
- --wd-gray-0: #FFFFFF;
27
- --wd-gray-50: #F9FAFB;
28
- --wd-gray-100: #F3F4F6;
29
- --wd-gray-200: #E5E7EB;
30
- --wd-gray-300: #D1D5DB;
31
- --wd-gray-400: #9CA3AF;
32
- --wd-gray-500: #6B7280;
33
- --wd-gray-600: #4B5563;
34
- --wd-gray-700: #374151;
35
- --wd-gray-800: #1F2937;
36
- --wd-gray-900: #111827;
37
- --wd-gray-950: #030712;
38
-
39
- /* ─── Brand (Indigo) ─── */
40
- --wd-brand-50: #EEF2FF;
41
- --wd-brand-100: #E0E7FF;
42
- --wd-brand-200: #C7D2FE;
43
- --wd-brand-300: #A5B4FC;
44
- --wd-brand-400: #818CF8;
45
- --wd-brand-500: #6366F1;
46
- --wd-brand-600: #4F46E5;
47
- --wd-brand-700: #4338CA;
48
- --wd-brand-800: #3730A3;
49
- --wd-brand-900: #312E81;
50
-
51
- /* ─── Status ─── */
52
- --wd-green-500: #16A34A;
53
- --wd-green-50: #F0FDF4;
54
- --wd-yellow-500: #D97706;
55
- --wd-yellow-50: #FFFBEB;
56
- --wd-red-500: #DC2626;
57
- --wd-red-50: #FEF2F2;
58
- --wd-blue-500: #2563EB;
59
- --wd-blue-50: #EFF6FF;
60
-
61
- /* ─── Spacing ─── */
62
- --wd-space-1: 0.25rem; /* 4px */
63
- --wd-space-2: 0.5rem; /* 8px */
64
- --wd-space-3: 0.75rem; /* 12px */
65
- --wd-space-4: 1rem; /* 16px */
66
- --wd-space-5: 1.25rem; /* 20px */
67
- --wd-space-6: 1.5rem; /* 24px */
68
- --wd-space-8: 2rem; /* 32px */
69
- --wd-space-10: 2.5rem; /* 40px */
70
- --wd-space-12: 3rem; /* 48px */
71
- --wd-space-16: 4rem; /* 64px */
72
-
73
- /* ─── Border Radius ─── */
74
- --wd-radius-sm: 4px;
75
- --wd-radius-md: 8px;
76
- --wd-radius-lg: 12px;
77
- --wd-radius-xl: 16px;
78
- --wd-radius-2xl: 20px;
79
- --wd-radius-full: 9999px;
80
-
81
- /* ─── Typography ─── */
82
- --wd-font-sans: 'Inter', system-ui, -apple-system, sans-serif;
83
- --wd-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
84
-
85
- --wd-text-xs: 0.75rem; /* 12px */
86
- --wd-text-sm: 0.875rem; /* 14px */
87
- --wd-text-base: 1rem; /* 16px */
88
- --wd-text-lg: 1.125rem; /* 18px */
89
- --wd-text-xl: 1.25rem; /* 20px */
90
- --wd-text-2xl: 1.5rem; /* 24px */
91
- --wd-text-3xl: 1.875rem; /* 30px */
92
- --wd-text-4xl: 2.25rem; /* 36px */
93
-
94
- --wd-leading-tight: 1.25;
95
- --wd-leading-normal: 1.5;
96
- --wd-leading-relaxed: 1.75;
97
-
98
- /* ─── Shadows ─── */
99
- --wd-shadow-xs: 0 1px 2px rgba(0,0,0,0.05);
100
- --wd-shadow-sm: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
101
- --wd-shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
102
- --wd-shadow-lg: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
103
- --wd-shadow-xl: 0 20px 25px rgba(0,0,0,0.1), 0 10px 10px rgba(0,0,0,0.04);
104
-
105
- /* ─── Animation ─── */
106
- --wd-duration-fast: 100ms;
107
- --wd-duration-normal: 200ms;
108
- --wd-duration-slow: 300ms;
109
- --wd-ease-default: cubic-bezier(0.4, 0, 0.2, 1);
110
- }
111
-
112
-
113
- /**
114
- * @webdevarif/dashui — Semantic Tokens, Light Mode (Layer 2)
115
- * Apply via: <html data-dashui-theme="light"> (default)
116
- * Components use these variables, never primitives directly.
117
- */
118
- :root,
119
- [data-dashui-theme="light"] {
120
-
121
- /* ─── Surfaces ─── */
122
- --wd-surface-page: var(--wd-gray-50);
123
- --wd-surface-card: var(--wd-gray-0);
124
- --wd-surface-overlay: var(--wd-gray-0);
125
- --wd-surface-sunken: var(--wd-gray-100);
126
- --wd-surface-raised: var(--wd-gray-0);
127
- --wd-surface-sidebar: var(--wd-gray-0);
128
-
129
- /* ─── Text ─── */
130
- --wd-text-primary: var(--wd-gray-900);
131
- --wd-text-secondary: var(--wd-gray-600);
132
- --wd-text-tertiary: var(--wd-gray-400);
133
- --wd-text-disabled: var(--wd-gray-300);
134
- --wd-text-inverse: var(--wd-gray-0);
135
- --wd-text-on-brand: #FFFFFF;
136
-
137
- /* ─── Brand ─── */
138
- --wd-brand: var(--wd-brand-500);
139
- --wd-brand-hover: var(--wd-brand-600);
140
- --wd-brand-active: var(--wd-brand-700);
141
- --wd-brand-subtle: var(--wd-brand-50);
142
- --wd-brand-muted: var(--wd-brand-100);
143
- --wd-brand-border: var(--wd-brand-200);
144
-
145
- /* ─── Border ─── */
146
- --wd-border: var(--wd-gray-200);
147
- --wd-border-strong: var(--wd-gray-300);
148
- --wd-border-focus: var(--wd-brand-500);
149
-
150
- /* ─── Interactive ─── */
151
- --wd-interactive-bg: var(--wd-gray-0);
152
- --wd-interactive-hover: var(--wd-gray-50);
153
- --wd-interactive-active: var(--wd-gray-100);
154
- --wd-interactive-selected: var(--wd-brand-50);
155
- --wd-interactive-selected-border: var(--wd-brand-200);
156
-
157
- /* ─── Button — Primary ─── */
158
- --wd-btn-primary-bg: var(--wd-brand-500);
159
- --wd-btn-primary-bg-hover: var(--wd-brand-600);
160
- --wd-btn-primary-bg-active: var(--wd-brand-700);
161
- --wd-btn-primary-text: #FFFFFF;
162
- --wd-btn-primary-border: var(--wd-brand-500);
163
-
164
- /* ─── Button — Secondary ─── */
165
- --wd-btn-secondary-bg: var(--wd-gray-0);
166
- --wd-btn-secondary-bg-hover: var(--wd-gray-50);
167
- --wd-btn-secondary-bg-active: var(--wd-gray-100);
168
- --wd-btn-secondary-text: var(--wd-gray-700);
169
- --wd-btn-secondary-border: var(--wd-gray-300);
170
-
171
- /* ─── Button — Destructive ─── */
172
- --wd-btn-danger-bg: var(--wd-red-500);
173
- --wd-btn-danger-bg-hover: #B91C1C;
174
- --wd-btn-danger-text: #FFFFFF;
175
- --wd-btn-danger-border: var(--wd-red-500);
176
-
177
- /* ─── Button — Ghost ─── */
178
- --wd-btn-ghost-bg: transparent;
179
- --wd-btn-ghost-bg-hover: var(--wd-gray-100);
180
- --wd-btn-ghost-text: var(--wd-gray-700);
181
-
182
- /* ─── Input ─── */
183
- --wd-input-bg: var(--wd-gray-0);
184
- --wd-input-bg-hover: var(--wd-gray-50);
185
- --wd-input-bg-focus: var(--wd-gray-0);
186
- --wd-input-bg-disabled: var(--wd-gray-100);
187
- --wd-input-text: var(--wd-gray-900);
188
- --wd-input-placeholder: var(--wd-gray-400);
189
- --wd-input-border: var(--wd-gray-300);
190
- --wd-input-border-focus: var(--wd-brand-500);
191
- --wd-input-border-error: var(--wd-red-500);
192
-
193
- /* ─── Status ─── */
194
- --wd-status-success: var(--wd-green-500);
195
- --wd-status-success-bg: var(--wd-green-50);
196
- --wd-status-warning: var(--wd-yellow-500);
197
- --wd-status-warning-bg: var(--wd-yellow-50);
198
- --wd-status-error: var(--wd-red-500);
199
- --wd-status-error-bg: var(--wd-red-50);
200
- --wd-status-info: var(--wd-blue-500);
201
- --wd-status-info-bg: var(--wd-blue-50);
202
-
203
- /* ─── Shadows ─── */
204
- --wd-shadow-card: var(--wd-shadow-sm);
205
- --wd-shadow-dropdown: var(--wd-shadow-lg);
206
- --wd-shadow-modal: var(--wd-shadow-xl);
207
-
208
- /* ─── Radius (semantic) ─── */
209
- --wd-radius-btn: var(--wd-radius-md);
210
- --wd-radius-input: var(--wd-radius-md);
211
- --wd-radius-card: var(--wd-radius-lg);
212
- --wd-radius-badge: var(--wd-radius-full);
213
- --wd-radius-dialog: var(--wd-radius-xl);
214
-
215
- /* ─── Spacing (semantic) ─── */
216
- --wd-spacing-component-xs: var(--wd-space-2);
217
- --wd-spacing-component-sm: var(--wd-space-3);
218
- --wd-spacing-component-md: var(--wd-space-4);
219
- --wd-spacing-component-lg: var(--wd-space-6);
220
- --wd-spacing-layout-sm: var(--wd-space-6);
221
- --wd-spacing-layout-md: var(--wd-space-8);
222
- --wd-spacing-layout-lg: var(--wd-space-12);
223
-
224
- /* ─── Sidebar ─── */
225
- --wd-sidebar-width: 240px;
226
- --wd-sidebar-collapsed-width: 64px;
227
- --wd-topbar-height: 60px;
228
- }
229
-
230
-
231
- /**
232
- * @webdevarif/dashui — Semantic Tokens, Dark Mode (Layer 2)
233
- * Apply via: <html data-dashui-theme="dark">
234
- */
235
- [data-dashui-theme="dark"] {
236
-
237
- /* ─── Surfaces ─── */
238
- --wd-surface-page: #0A0A0A;
239
- --wd-surface-card: var(--wd-gray-900);
240
- --wd-surface-overlay: var(--wd-gray-800);
241
- --wd-surface-sunken: #050505;
242
- --wd-surface-raised: var(--wd-gray-800);
243
- --wd-surface-sidebar: var(--wd-gray-950);
244
-
245
- /* ─── Text ─── */
246
- --wd-text-primary: var(--wd-gray-50);
247
- --wd-text-secondary: var(--wd-gray-400);
248
- --wd-text-tertiary: var(--wd-gray-500);
249
- --wd-text-disabled: var(--wd-gray-700);
250
- --wd-text-inverse: var(--wd-gray-900);
251
- --wd-text-on-brand: #FFFFFF;
252
-
253
- /* ─── Brand ─── */
254
- --wd-brand: var(--wd-brand-400);
255
- --wd-brand-hover: var(--wd-brand-300);
256
- --wd-brand-active: var(--wd-brand-200);
257
- --wd-brand-subtle: rgba(99, 102, 241, 0.12);
258
- --wd-brand-muted: rgba(99, 102, 241, 0.20);
259
- --wd-brand-border: rgba(99, 102, 241, 0.30);
260
-
261
- /* ─── Border ─── */
262
- --wd-border: var(--wd-gray-800);
263
- --wd-border-strong: var(--wd-gray-700);
264
- --wd-border-focus: var(--wd-brand-400);
265
-
266
- /* ─── Interactive ─── */
267
- --wd-interactive-bg: var(--wd-gray-900);
268
- --wd-interactive-hover: var(--wd-gray-800);
269
- --wd-interactive-active: var(--wd-gray-700);
270
- --wd-interactive-selected: rgba(99, 102, 241, 0.15);
271
- --wd-interactive-selected-border: rgba(99, 102, 241, 0.40);
272
-
273
- /* ─── Button — Primary ─── */
274
- --wd-btn-primary-bg: var(--wd-brand-500);
275
- --wd-btn-primary-bg-hover: var(--wd-brand-400);
276
- --wd-btn-primary-bg-active: var(--wd-brand-300);
277
- --wd-btn-primary-text: #FFFFFF;
278
- --wd-btn-primary-border: var(--wd-brand-500);
279
-
280
- /* ─── Button — Secondary ─── */
281
- --wd-btn-secondary-bg: var(--wd-gray-800);
282
- --wd-btn-secondary-bg-hover: var(--wd-gray-700);
283
- --wd-btn-secondary-bg-active: var(--wd-gray-600);
284
- --wd-btn-secondary-text: var(--wd-gray-200);
285
- --wd-btn-secondary-border: var(--wd-gray-700);
286
-
287
- /* ─── Button — Ghost ─── */
288
- --wd-btn-ghost-bg: transparent;
289
- --wd-btn-ghost-bg-hover: var(--wd-gray-800);
290
- --wd-btn-ghost-text: var(--wd-gray-300);
291
-
292
- /* ─── Input ─── */
293
- --wd-input-bg: var(--wd-gray-900);
294
- --wd-input-bg-hover: var(--wd-gray-800);
295
- --wd-input-bg-focus: var(--wd-gray-900);
296
- --wd-input-bg-disabled: var(--wd-gray-950);
297
- --wd-input-text: var(--wd-gray-100);
298
- --wd-input-placeholder: var(--wd-gray-600);
299
- --wd-input-border: var(--wd-gray-700);
300
- --wd-input-border-focus: var(--wd-brand-400);
301
- --wd-input-border-error: #F87171;
302
-
303
- /* ─── Status ─── */
304
- --wd-status-success: #4ADE80;
305
- --wd-status-success-bg: rgba(22, 163, 74, 0.15);
306
- --wd-status-warning: #FCD34D;
307
- --wd-status-warning-bg: rgba(217, 119, 6, 0.15);
308
- --wd-status-error: #F87171;
309
- --wd-status-error-bg: rgba(220, 38, 38, 0.15);
310
- --wd-status-info: #60A5FA;
311
- --wd-status-info-bg: rgba(37, 99, 235, 0.15);
312
-
313
- /* ─── Shadows ─── */
314
- --wd-shadow-card: 0 1px 3px rgba(0,0,0,0.5);
315
- --wd-shadow-dropdown: 0 10px 15px rgba(0,0,0,0.6);
316
- --wd-shadow-modal: 0 20px 40px rgba(0,0,0,0.7);
317
- }
318
-
319
-
320
- /**
321
- * @webdevarif/dashui — Storefront Color Schemes (Layer 3)
322
- * For customer website sections/blocks.
323
- * Each section gets class="color-scheme-N"
324
- * Store brand color overrides --wd-scheme-brand via JS/API.
325
- */
326
-
327
- /* Scheme 1 — Light (default) */
328
- :root,
329
- .color-scheme-1 {
330
- --wd-scheme-bg: #FFFFFF;
331
- --wd-scheme-bg-rgb: 255 255 255;
332
- --wd-scheme-surface: #F9FAFB;
333
- --wd-scheme-text: #111827;
334
- --wd-scheme-text-rgb: 17 24 39;
335
- --wd-scheme-muted: #6B7280;
336
- --wd-scheme-heading: #030712;
337
- --wd-scheme-border: #E5E7EB;
338
- --wd-scheme-shadow: rgba(0,0,0,0.1);
339
-
340
- /* Brand — injected by store theme API */
341
- --wd-scheme-brand: #6366F1;
342
- --wd-scheme-brand-hover: #4F46E5;
343
- --wd-scheme-brand-text: #FFFFFF;
344
-
345
- /* Buttons */
346
- --wd-scheme-btn-primary-bg: var(--wd-scheme-brand);
347
- --wd-scheme-btn-primary-bg-hover: var(--wd-scheme-brand-hover);
348
- --wd-scheme-btn-primary-text: var(--wd-scheme-brand-text);
349
- --wd-scheme-btn-primary-border: var(--wd-scheme-brand);
350
-
351
- --wd-scheme-btn-secondary-bg: transparent;
352
- --wd-scheme-btn-secondary-bg-hover: #F9FAFB;
353
- --wd-scheme-btn-secondary-text: #111827;
354
- --wd-scheme-btn-secondary-border: #111827;
355
-
356
- /* Input */
357
- --wd-scheme-input-bg: #FFFFFF;
358
- --wd-scheme-input-text: #111827;
359
- --wd-scheme-input-border: #D1D5DB;
360
- }
361
-
362
- /* Scheme 2 — Dark */
363
- .color-scheme-2 {
364
- --wd-scheme-bg: #0A0A0A;
365
- --wd-scheme-bg-rgb: 10 10 10;
366
- --wd-scheme-surface: #141414;
367
- --wd-scheme-text: #F9FAFB;
368
- --wd-scheme-text-rgb: 249 250 251;
369
- --wd-scheme-muted: #9CA3AF;
370
- --wd-scheme-heading: #FFFFFF;
371
- --wd-scheme-border: #262626;
372
- --wd-scheme-shadow: rgba(0,0,0,0.5);
373
-
374
- --wd-scheme-btn-secondary-bg: transparent;
375
- --wd-scheme-btn-secondary-bg-hover: rgba(255,255,255,0.08);
376
- --wd-scheme-btn-secondary-text: #F9FAFB;
377
- --wd-scheme-btn-secondary-border: rgba(255,255,255,0.3);
378
-
379
- --wd-scheme-input-bg: #1A1A1A;
380
- --wd-scheme-input-text: #F9FAFB;
381
- --wd-scheme-input-border: #333333;
382
- }
383
-
384
- /* Scheme 3 — Brand/Accent Fill */
385
- .color-scheme-3 {
386
- --wd-scheme-bg: var(--wd-scheme-brand);
387
- --wd-scheme-surface: var(--wd-scheme-brand-hover);
388
- --wd-scheme-text: rgba(255,255,255,0.95);
389
- --wd-scheme-muted: rgba(255,255,255,0.70);
390
- --wd-scheme-heading: #FFFFFF;
391
- --wd-scheme-border: rgba(255,255,255,0.20);
392
-
393
- --wd-scheme-btn-primary-bg: #FFFFFF;
394
- --wd-scheme-btn-primary-bg-hover: #F0F0F0;
395
- --wd-scheme-btn-primary-text: var(--wd-scheme-brand);
396
- --wd-scheme-btn-primary-border: #FFFFFF;
397
-
398
- --wd-scheme-btn-secondary-bg: transparent;
399
- --wd-scheme-btn-secondary-bg-hover: rgba(255,255,255,0.15);
400
- --wd-scheme-btn-secondary-text: #FFFFFF;
401
- --wd-scheme-btn-secondary-border: rgba(255,255,255,0.5);
402
- }
403
-
404
- /* Scheme 4 — Soft/Tinted */
405
- .color-scheme-4 {
406
- --wd-scheme-bg: #F5F3FF;
407
- --wd-scheme-surface: #EDE9FE;
408
- --wd-scheme-text: #1E1B4B;
409
- --wd-scheme-muted: #6D28D9;
410
- --wd-scheme-heading: #0F0D2E;
411
- --wd-scheme-border: #DDD6FE;
412
- }
413
-
414
- /* Scheme 5–16: Reserved for user-defined schemes */
415
- /* Generated dynamically via API: GET /api/theme/{storeId}/styles.css */
416
-
417
- /* ─── react-colorful overrides for dark theme ───────────────── */
418
- .react-colorful {
419
- width: 200px !important;
420
- height: 160px !important;
421
- border-radius: 8px !important;
422
- }
423
- .react-colorful__saturation {
424
- border-radius: 6px 6px 0 0 !important;
425
- }
426
- .react-colorful__hue {
427
- height: 16px !important;
428
- border-radius: 4px !important;
429
- }
430
- .react-colorful__pointer {
431
- width: 18px !important;
432
- height: 18px !important;
433
- border-width: 2px !important;
434
- }
435
-
436
-
437
-
@@ -1,11 +0,0 @@
1
- /**
2
- * @webdevarif/dashui — Token Entry Point
3
- * Import order matters: primitives → semantic → schemes
4
- *
5
- * Usage:
6
- * import '@webdevarif/dashui/tokens'
7
- */
8
- @import './primitives.css';
9
- @import './semantic-light.css';
10
- @import './semantic-dark.css';
11
- @import './storefront-schemes.css';