@orion-studios/payload-admin-components 0.2.0-beta.2 → 0.2.0-beta.4

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/dist/admin.css CHANGED
@@ -1,13 +1,9 @@
1
1
  /**
2
2
  * Orion Studios Admin Theme System
3
3
  *
4
- * Import all theme files and overrides.
5
- * Usage in payload.config.ts:
6
- * export default buildConfig({
7
- * admin: {
8
- * css: require.resolve('@orion-studios/payload-admin-components/dist/admin.css'),
9
- * },
10
- * })
4
+ * All themes and overrides are inlined in this single file to ensure
5
+ * compatibility with Next.js/Turbopack CSS loading from node_modules.
6
+ * DO NOT use @import statements — they don't resolve from node_modules.
11
7
  */
12
8
 
13
9
  /* Default brand colors (overridden by configureAdmin) */
@@ -16,16 +12,293 @@
16
12
  --brand-secondary: #8b5cf6;
17
13
  }
18
14
 
19
- /* Theme files */
20
- @import './themes/light.css';
21
- @import './themes/dark.css';
22
- @import './themes/brand-light.css';
23
- @import './themes/brand-dark.css';
15
+ /* ============================================================
16
+ Light Theme - Clean whites, subtle grays, blue accents
17
+ ============================================================ */
18
+ [data-theme="light"] {
19
+ --admin-bg: #ffffff;
20
+ --admin-surface: #f9fafb;
21
+ --admin-surface-elevated: #ffffff;
22
+ --admin-border: #e5e7eb;
23
+ --admin-border-subtle: #f3f4f6;
24
+
25
+ --admin-text: #111827;
26
+ --admin-text-secondary: #4b5563;
27
+ --admin-text-muted: #9ca3af;
28
+ --admin-text-inverse: #ffffff;
29
+
30
+ --admin-accent: #3b82f6;
31
+ --admin-accent-hover: #2563eb;
32
+ --admin-accent-subtle: #eff6ff;
33
+ --admin-accent-secondary: #8b5cf6;
34
+ --admin-accent-secondary-hover: #7c3aed;
35
+ --admin-accent-secondary-subtle: #f5f3ff;
36
+
37
+ --admin-nav-bg: #f8fafc;
38
+ --admin-nav-text: #374151;
39
+ --admin-nav-text-active: #111827;
40
+ --admin-nav-item-hover: #f1f5f9;
41
+ --admin-nav-item-active: #e0e7ff;
42
+ --admin-nav-group-text: #6b7280;
43
+ --admin-nav-border: #e2e8f0;
44
+
45
+ --admin-input-bg: #ffffff;
46
+ --admin-input-border: #d1d5db;
47
+ --admin-input-border-focus: var(--admin-accent);
48
+ --admin-input-placeholder: #9ca3af;
49
+
50
+ --admin-card-bg: #ffffff;
51
+ --admin-card-border: #e5e7eb;
52
+ --admin-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
53
+ --admin-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
54
+
55
+ --admin-success: #16a34a;
56
+ --admin-success-bg: #f0fdf4;
57
+ --admin-warning: #d97706;
58
+ --admin-warning-bg: #fffbeb;
59
+ --admin-error: #dc2626;
60
+ --admin-error-bg: #fef2f2;
61
+ --admin-info: #0284c7;
62
+ --admin-info-bg: #f0f9ff;
63
+
64
+ --admin-badge-draft-bg: #fef3c7;
65
+ --admin-badge-draft-text: #92400e;
66
+ --admin-badge-published-bg: #dcfce7;
67
+ --admin-badge-published-text: #166534;
68
+ --admin-badge-changed-bg: #dbeafe;
69
+ --admin-badge-changed-text: #1e40af;
70
+
71
+ --admin-tooltip-bg: #1f2937;
72
+ --admin-tooltip-text: #f9fafb;
73
+
74
+ --admin-overlay: rgba(0, 0, 0, 0.3);
75
+ --admin-scrollbar-track: #f1f5f9;
76
+ --admin-scrollbar-thumb: #cbd5e1;
77
+ --admin-scrollbar-thumb-hover: #94a3b8;
24
78
 
25
- /* Payload UI overrides */
26
- @import './overrides.css';
79
+ --admin-focus-ring: 0 0 0 2px var(--admin-accent-subtle), 0 0 0 4px var(--admin-accent);
80
+ --admin-radius-sm: 6px;
81
+ --admin-radius-md: 8px;
82
+ --admin-radius-lg: 12px;
83
+ --admin-radius-xl: 16px;
84
+ }
85
+
86
+ /* ============================================================
87
+ Dark Theme - Rich dark backgrounds, light text, blue accents
88
+ ============================================================ */
89
+ [data-theme="dark"] {
90
+ --admin-bg: #0f1117;
91
+ --admin-surface: #1a1d27;
92
+ --admin-surface-elevated: #242836;
93
+ --admin-border: #2e3345;
94
+ --admin-border-subtle: #1e2231;
95
+
96
+ --admin-text: #f1f5f9;
97
+ --admin-text-secondary: #94a3b8;
98
+ --admin-text-muted: #64748b;
99
+ --admin-text-inverse: #0f1117;
100
+
101
+ --admin-accent: #60a5fa;
102
+ --admin-accent-hover: #93bbfd;
103
+ --admin-accent-subtle: rgba(96, 165, 250, 0.12);
104
+ --admin-accent-secondary: #a78bfa;
105
+ --admin-accent-secondary-hover: #c4b5fd;
106
+ --admin-accent-secondary-subtle: rgba(167, 139, 250, 0.12);
107
+
108
+ --admin-nav-bg: #141722;
109
+ --admin-nav-text: #94a3b8;
110
+ --admin-nav-text-active: #f1f5f9;
111
+ --admin-nav-item-hover: #1e2231;
112
+ --admin-nav-item-active: rgba(96, 165, 250, 0.15);
113
+ --admin-nav-group-text: #64748b;
114
+ --admin-nav-border: #2e3345;
115
+
116
+ --admin-input-bg: #1a1d27;
117
+ --admin-input-border: #2e3345;
118
+ --admin-input-border-focus: var(--admin-accent);
119
+ --admin-input-placeholder: #475569;
120
+
121
+ --admin-card-bg: #1a1d27;
122
+ --admin-card-border: #2e3345;
123
+ --admin-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
124
+ --admin-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.4), 0 2px 4px rgba(0, 0, 0, 0.3);
125
+
126
+ --admin-success: #4ade80;
127
+ --admin-success-bg: rgba(74, 222, 128, 0.1);
128
+ --admin-warning: #fbbf24;
129
+ --admin-warning-bg: rgba(251, 191, 36, 0.1);
130
+ --admin-error: #f87171;
131
+ --admin-error-bg: rgba(248, 113, 113, 0.1);
132
+ --admin-info: #38bdf8;
133
+ --admin-info-bg: rgba(56, 189, 248, 0.1);
134
+
135
+ --admin-badge-draft-bg: rgba(251, 191, 36, 0.15);
136
+ --admin-badge-draft-text: #fcd34d;
137
+ --admin-badge-published-bg: rgba(74, 222, 128, 0.15);
138
+ --admin-badge-published-text: #86efac;
139
+ --admin-badge-changed-bg: rgba(96, 165, 250, 0.15);
140
+ --admin-badge-changed-text: #93c5fd;
141
+
142
+ --admin-tooltip-bg: #f1f5f9;
143
+ --admin-tooltip-text: #1a1d27;
144
+
145
+ --admin-overlay: rgba(0, 0, 0, 0.6);
146
+ --admin-scrollbar-track: #1a1d27;
147
+ --admin-scrollbar-thumb: #2e3345;
148
+ --admin-scrollbar-thumb-hover: #3b4559;
149
+
150
+ --admin-focus-ring: 0 0 0 2px var(--admin-accent-subtle), 0 0 0 4px var(--admin-accent);
151
+ --admin-radius-sm: 6px;
152
+ --admin-radius-md: 8px;
153
+ --admin-radius-lg: 12px;
154
+ --admin-radius-xl: 16px;
155
+ }
156
+
157
+ /* ============================================================
158
+ Brand Light Theme - Brand colors on light backgrounds
159
+ ============================================================ */
160
+ [data-theme="brand-light"] {
161
+ --admin-bg: #ffffff;
162
+ --admin-surface: color-mix(in srgb, var(--brand-primary) 3%, #f9fafb);
163
+ --admin-surface-elevated: #ffffff;
164
+ --admin-border: color-mix(in srgb, var(--brand-primary) 12%, #e5e7eb);
165
+ --admin-border-subtle: color-mix(in srgb, var(--brand-primary) 5%, #f3f4f6);
166
+
167
+ --admin-text: #111827;
168
+ --admin-text-secondary: #4b5563;
169
+ --admin-text-muted: #9ca3af;
170
+ --admin-text-inverse: #ffffff;
27
171
 
28
- /* Default to light theme when no data-theme attribute is set */
172
+ --admin-accent: var(--brand-primary);
173
+ --admin-accent-hover: color-mix(in srgb, var(--brand-primary) 85%, #000000);
174
+ --admin-accent-subtle: color-mix(in srgb, var(--brand-primary) 8%, #ffffff);
175
+ --admin-accent-secondary: var(--brand-secondary);
176
+ --admin-accent-secondary-hover: color-mix(in srgb, var(--brand-secondary) 85%, #000000);
177
+ --admin-accent-secondary-subtle: color-mix(in srgb, var(--brand-secondary) 8%, #ffffff);
178
+
179
+ --admin-nav-bg: color-mix(in srgb, var(--brand-primary) 6%, #f8fafc);
180
+ --admin-nav-text: #374151;
181
+ --admin-nav-text-active: var(--brand-primary);
182
+ --admin-nav-item-hover: color-mix(in srgb, var(--brand-primary) 8%, #f1f5f9);
183
+ --admin-nav-item-active: color-mix(in srgb, var(--brand-primary) 12%, #ffffff);
184
+ --admin-nav-group-text: color-mix(in srgb, var(--brand-primary) 40%, #6b7280);
185
+ --admin-nav-border: color-mix(in srgb, var(--brand-primary) 10%, #e2e8f0);
186
+
187
+ --admin-input-bg: #ffffff;
188
+ --admin-input-border: color-mix(in srgb, var(--brand-primary) 15%, #d1d5db);
189
+ --admin-input-border-focus: var(--brand-primary);
190
+ --admin-input-placeholder: #9ca3af;
191
+
192
+ --admin-card-bg: #ffffff;
193
+ --admin-card-border: color-mix(in srgb, var(--brand-primary) 10%, #e5e7eb);
194
+ --admin-card-shadow: 0 1px 3px color-mix(in srgb, var(--brand-primary) 6%, transparent), 0 1px 2px rgba(0, 0, 0, 0.04);
195
+ --admin-card-shadow-hover: 0 4px 12px color-mix(in srgb, var(--brand-primary) 10%, transparent), 0 2px 4px rgba(0, 0, 0, 0.04);
196
+
197
+ --admin-success: #16a34a;
198
+ --admin-success-bg: #f0fdf4;
199
+ --admin-warning: #d97706;
200
+ --admin-warning-bg: #fffbeb;
201
+ --admin-error: #dc2626;
202
+ --admin-error-bg: #fef2f2;
203
+ --admin-info: var(--brand-secondary);
204
+ --admin-info-bg: color-mix(in srgb, var(--brand-secondary) 8%, #ffffff);
205
+
206
+ --admin-badge-draft-bg: #fef3c7;
207
+ --admin-badge-draft-text: #92400e;
208
+ --admin-badge-published-bg: #dcfce7;
209
+ --admin-badge-published-text: #166534;
210
+ --admin-badge-changed-bg: color-mix(in srgb, var(--brand-secondary) 15%, #ffffff);
211
+ --admin-badge-changed-text: var(--brand-secondary);
212
+
213
+ --admin-tooltip-bg: color-mix(in srgb, var(--brand-primary) 90%, #1f2937);
214
+ --admin-tooltip-text: #f9fafb;
215
+
216
+ --admin-overlay: rgba(0, 0, 0, 0.3);
217
+ --admin-scrollbar-track: color-mix(in srgb, var(--brand-primary) 4%, #f1f5f9);
218
+ --admin-scrollbar-thumb: color-mix(in srgb, var(--brand-primary) 20%, #cbd5e1);
219
+ --admin-scrollbar-thumb-hover: color-mix(in srgb, var(--brand-primary) 30%, #94a3b8);
220
+
221
+ --admin-focus-ring: 0 0 0 2px var(--admin-accent-subtle), 0 0 0 4px var(--admin-accent);
222
+ --admin-radius-sm: 6px;
223
+ --admin-radius-md: 8px;
224
+ --admin-radius-lg: 12px;
225
+ --admin-radius-xl: 16px;
226
+ }
227
+
228
+ /* ============================================================
229
+ Brand Dark Theme - Dark backgrounds with brand color accents
230
+ ============================================================ */
231
+ [data-theme="brand-dark"] {
232
+ --admin-bg: #0f1117;
233
+ --admin-surface: color-mix(in srgb, var(--brand-primary) 5%, #1a1d27);
234
+ --admin-surface-elevated: color-mix(in srgb, var(--brand-primary) 6%, #242836);
235
+ --admin-border: color-mix(in srgb, var(--brand-primary) 12%, #2e3345);
236
+ --admin-border-subtle: color-mix(in srgb, var(--brand-primary) 6%, #1e2231);
237
+
238
+ --admin-text: #f1f5f9;
239
+ --admin-text-secondary: #94a3b8;
240
+ --admin-text-muted: #64748b;
241
+ --admin-text-inverse: #0f1117;
242
+
243
+ --admin-accent: color-mix(in srgb, var(--brand-primary) 70%, #ffffff);
244
+ --admin-accent-hover: color-mix(in srgb, var(--brand-primary) 55%, #ffffff);
245
+ --admin-accent-subtle: color-mix(in srgb, var(--brand-primary) 15%, transparent);
246
+ --admin-accent-secondary: color-mix(in srgb, var(--brand-secondary) 70%, #ffffff);
247
+ --admin-accent-secondary-hover: color-mix(in srgb, var(--brand-secondary) 55%, #ffffff);
248
+ --admin-accent-secondary-subtle: color-mix(in srgb, var(--brand-secondary) 15%, transparent);
249
+
250
+ --admin-nav-bg: color-mix(in srgb, var(--brand-primary) 8%, #141722);
251
+ --admin-nav-text: #94a3b8;
252
+ --admin-nav-text-active: color-mix(in srgb, var(--brand-primary) 60%, #ffffff);
253
+ --admin-nav-item-hover: color-mix(in srgb, var(--brand-primary) 10%, #1e2231);
254
+ --admin-nav-item-active: color-mix(in srgb, var(--brand-primary) 18%, #1a1d27);
255
+ --admin-nav-group-text: color-mix(in srgb, var(--brand-primary) 30%, #64748b);
256
+ --admin-nav-border: color-mix(in srgb, var(--brand-primary) 12%, #2e3345);
257
+
258
+ --admin-input-bg: color-mix(in srgb, var(--brand-primary) 3%, #1a1d27);
259
+ --admin-input-border: color-mix(in srgb, var(--brand-primary) 15%, #2e3345);
260
+ --admin-input-border-focus: var(--admin-accent);
261
+ --admin-input-placeholder: #475569;
262
+
263
+ --admin-card-bg: color-mix(in srgb, var(--brand-primary) 5%, #1a1d27);
264
+ --admin-card-border: color-mix(in srgb, var(--brand-primary) 12%, #2e3345);
265
+ --admin-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
266
+ --admin-card-shadow-hover: 0 4px 12px color-mix(in srgb, var(--brand-primary) 15%, rgba(0, 0, 0, 0.4)), 0 2px 4px rgba(0, 0, 0, 0.3);
267
+
268
+ --admin-success: #4ade80;
269
+ --admin-success-bg: rgba(74, 222, 128, 0.1);
270
+ --admin-warning: #fbbf24;
271
+ --admin-warning-bg: rgba(251, 191, 36, 0.1);
272
+ --admin-error: #f87171;
273
+ --admin-error-bg: rgba(248, 113, 113, 0.1);
274
+ --admin-info: color-mix(in srgb, var(--brand-secondary) 60%, #ffffff);
275
+ --admin-info-bg: color-mix(in srgb, var(--brand-secondary) 10%, transparent);
276
+
277
+ --admin-badge-draft-bg: rgba(251, 191, 36, 0.15);
278
+ --admin-badge-draft-text: #fcd34d;
279
+ --admin-badge-published-bg: rgba(74, 222, 128, 0.15);
280
+ --admin-badge-published-text: #86efac;
281
+ --admin-badge-changed-bg: color-mix(in srgb, var(--brand-secondary) 15%, transparent);
282
+ --admin-badge-changed-text: color-mix(in srgb, var(--brand-secondary) 60%, #ffffff);
283
+
284
+ --admin-tooltip-bg: #f1f5f9;
285
+ --admin-tooltip-text: #1a1d27;
286
+
287
+ --admin-overlay: rgba(0, 0, 0, 0.6);
288
+ --admin-scrollbar-track: color-mix(in srgb, var(--brand-primary) 5%, #1a1d27);
289
+ --admin-scrollbar-thumb: color-mix(in srgb, var(--brand-primary) 20%, #2e3345);
290
+ --admin-scrollbar-thumb-hover: color-mix(in srgb, var(--brand-primary) 30%, #3b4559);
291
+
292
+ --admin-focus-ring: 0 0 0 2px var(--admin-accent-subtle), 0 0 0 4px var(--admin-accent);
293
+ --admin-radius-sm: 6px;
294
+ --admin-radius-md: 8px;
295
+ --admin-radius-lg: 12px;
296
+ --admin-radius-xl: 16px;
297
+ }
298
+
299
+ /* ============================================================
300
+ Default (no data-theme) - matches light theme
301
+ ============================================================ */
29
302
  :root:not([data-theme]) {
30
303
  --admin-bg: #ffffff;
31
304
  --admin-surface: #f9fafb;
@@ -83,3 +356,339 @@
83
356
  --admin-badge-changed-bg: #dbeafe;
84
357
  --admin-badge-changed-text: #1e40af;
85
358
  }
359
+
360
+ /* ============================================================
361
+ Payload CMS UI Overrides
362
+ ============================================================ */
363
+
364
+ /* Base / Body */
365
+ body {
366
+ background-color: var(--admin-bg) !important;
367
+ color: var(--admin-text) !important;
368
+ }
369
+
370
+ /* Typography */
371
+ h1, h2, h3, h4, h5, h6 {
372
+ color: var(--admin-text) !important;
373
+ }
374
+
375
+ /* Smooth Transitions */
376
+ body,
377
+ .nav,
378
+ .nav__content,
379
+ .nav a,
380
+ .template-default,
381
+ .collection-list,
382
+ .dashboard,
383
+ button,
384
+ input,
385
+ select,
386
+ textarea,
387
+ .field-type,
388
+ .card,
389
+ .popup,
390
+ a {
391
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
392
+ }
393
+
394
+ /* Sidebar / Navigation */
395
+ .nav {
396
+ background-color: var(--admin-nav-bg) !important;
397
+ border-right-color: var(--admin-nav-border) !important;
398
+ }
399
+
400
+ .nav a,
401
+ .nav__link {
402
+ color: var(--admin-nav-text) !important;
403
+ border-radius: var(--admin-radius-sm) !important;
404
+ padding: 8px 12px !important;
405
+ }
406
+
407
+ .nav a:hover,
408
+ .nav__link:hover {
409
+ background-color: var(--admin-nav-item-hover) !important;
410
+ color: var(--admin-nav-text-active) !important;
411
+ }
412
+
413
+ .nav a.active,
414
+ .nav__link.active {
415
+ background-color: var(--admin-nav-item-active) !important;
416
+ color: var(--admin-nav-text-active) !important;
417
+ font-weight: 600 !important;
418
+ }
419
+
420
+ /* Nav group labels */
421
+ .nav-group__label,
422
+ .nav__label {
423
+ color: var(--admin-nav-group-text) !important;
424
+ font-size: 11px !important;
425
+ font-weight: 700 !important;
426
+ letter-spacing: 0.05em !important;
427
+ text-transform: uppercase !important;
428
+ padding: 16px 12px 6px !important;
429
+ }
430
+
431
+ /* Buttons */
432
+ button[type="submit"],
433
+ .btn--style-primary {
434
+ background-color: var(--admin-accent) !important;
435
+ border-radius: var(--admin-radius-md) !important;
436
+ border: none !important;
437
+ color: var(--admin-text-inverse) !important;
438
+ font-weight: 600 !important;
439
+ padding: 10px 20px !important;
440
+ }
441
+
442
+ button[type="submit"]:hover,
443
+ .btn--style-primary:hover {
444
+ background-color: var(--admin-accent-hover) !important;
445
+ transform: translateY(-1px);
446
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
447
+ }
448
+
449
+ button[type="submit"]:active,
450
+ .btn--style-primary:active {
451
+ transform: translateY(0);
452
+ }
453
+
454
+ .btn--style-secondary {
455
+ background-color: transparent !important;
456
+ border: 1px solid var(--admin-border) !important;
457
+ border-radius: var(--admin-radius-md) !important;
458
+ color: var(--admin-text) !important;
459
+ }
460
+
461
+ .btn--style-secondary:hover {
462
+ background-color: var(--admin-surface) !important;
463
+ border-color: var(--admin-accent) !important;
464
+ color: var(--admin-accent) !important;
465
+ }
466
+
467
+ /* Form Inputs */
468
+ input,
469
+ textarea,
470
+ select,
471
+ .field-type input,
472
+ .field-type textarea,
473
+ .field-type select {
474
+ background-color: var(--admin-input-bg) !important;
475
+ border: 1px solid var(--admin-input-border) !important;
476
+ border-radius: var(--admin-radius-md) !important;
477
+ color: var(--admin-text) !important;
478
+ padding: 10px 14px !important;
479
+ }
480
+
481
+ input:focus,
482
+ textarea:focus,
483
+ select:focus,
484
+ .field-type input:focus,
485
+ .field-type textarea:focus,
486
+ .field-type select:focus {
487
+ border-color: var(--admin-input-border-focus) !important;
488
+ box-shadow: var(--admin-focus-ring) !important;
489
+ outline: none !important;
490
+ }
491
+
492
+ input::placeholder,
493
+ textarea::placeholder {
494
+ color: var(--admin-input-placeholder) !important;
495
+ }
496
+
497
+ /* Field labels */
498
+ .field-type .field-label,
499
+ label {
500
+ color: var(--admin-text-secondary) !important;
501
+ font-weight: 500 !important;
502
+ font-size: 13px !important;
503
+ margin-bottom: 6px !important;
504
+ }
505
+
506
+ /* Field descriptions */
507
+ .field-description {
508
+ color: var(--admin-text-muted) !important;
509
+ font-size: 12px !important;
510
+ }
511
+
512
+ /* Cards & Panels */
513
+ .card,
514
+ .collection-list__card {
515
+ background-color: var(--admin-card-bg) !important;
516
+ border: 1px solid var(--admin-card-border) !important;
517
+ border-radius: var(--admin-radius-lg) !important;
518
+ box-shadow: var(--admin-card-shadow) !important;
519
+ }
520
+
521
+ .card:hover,
522
+ .collection-list__card:hover {
523
+ box-shadow: var(--admin-card-shadow-hover) !important;
524
+ border-color: var(--admin-accent) !important;
525
+ }
526
+
527
+ /* Collapsible Sections */
528
+ .collapsible {
529
+ border: 1px solid var(--admin-border) !important;
530
+ border-radius: var(--admin-radius-lg) !important;
531
+ margin-bottom: 12px !important;
532
+ overflow: hidden;
533
+ }
534
+
535
+ .collapsible__toggle {
536
+ background-color: var(--admin-surface) !important;
537
+ padding: 14px 16px !important;
538
+ border-bottom: 1px solid var(--admin-border-subtle) !important;
539
+ }
540
+
541
+ .collapsible__toggle:hover {
542
+ background-color: var(--admin-nav-item-hover) !important;
543
+ }
544
+
545
+ .collapsible__content {
546
+ padding: 16px !important;
547
+ }
548
+
549
+ /* Tables / List Views */
550
+ .table {
551
+ border-radius: var(--admin-radius-lg) !important;
552
+ overflow: hidden;
553
+ border: 1px solid var(--admin-border) !important;
554
+ }
555
+
556
+ .table th {
557
+ background-color: var(--admin-surface) !important;
558
+ color: var(--admin-text-secondary) !important;
559
+ font-weight: 600 !important;
560
+ font-size: 12px !important;
561
+ text-transform: uppercase !important;
562
+ letter-spacing: 0.04em !important;
563
+ }
564
+
565
+ .table td {
566
+ border-bottom-color: var(--admin-border-subtle) !important;
567
+ }
568
+
569
+ .table tr:hover td {
570
+ background-color: var(--admin-surface) !important;
571
+ }
572
+
573
+ /* Tabs */
574
+ .tabs-field__tabs {
575
+ border-bottom: 2px solid var(--admin-border) !important;
576
+ gap: 4px !important;
577
+ }
578
+
579
+ .tabs-field__tab-button {
580
+ border-radius: var(--admin-radius-sm) var(--admin-radius-sm) 0 0 !important;
581
+ color: var(--admin-text-muted) !important;
582
+ font-weight: 500 !important;
583
+ padding: 10px 16px !important;
584
+ }
585
+
586
+ .tabs-field__tab-button:hover {
587
+ color: var(--admin-text) !important;
588
+ background-color: var(--admin-surface) !important;
589
+ }
590
+
591
+ .tabs-field__tab-button--active {
592
+ color: var(--admin-accent) !important;
593
+ border-bottom: 2px solid var(--admin-accent) !important;
594
+ font-weight: 600 !important;
595
+ }
596
+
597
+ /* Status Pills / Badges */
598
+ .status-pill,
599
+ .pill {
600
+ border-radius: 20px !important;
601
+ font-size: 12px !important;
602
+ font-weight: 600 !important;
603
+ padding: 3px 10px !important;
604
+ }
605
+
606
+ /* Popups / Modals */
607
+ .popup {
608
+ background-color: var(--admin-card-bg) !important;
609
+ border: 1px solid var(--admin-border) !important;
610
+ border-radius: var(--admin-radius-lg) !important;
611
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12) !important;
612
+ }
613
+
614
+ /* Scrollbars (webkit) */
615
+ ::-webkit-scrollbar {
616
+ width: 8px;
617
+ height: 8px;
618
+ }
619
+
620
+ ::-webkit-scrollbar-track {
621
+ background: var(--admin-scrollbar-track);
622
+ }
623
+
624
+ ::-webkit-scrollbar-thumb {
625
+ background: var(--admin-scrollbar-thumb);
626
+ border-radius: 4px;
627
+ }
628
+
629
+ ::-webkit-scrollbar-thumb:hover {
630
+ background: var(--admin-scrollbar-thumb-hover);
631
+ }
632
+
633
+ /* Firefox scrollbar */
634
+ * {
635
+ scrollbar-width: thin;
636
+ scrollbar-color: var(--admin-scrollbar-thumb) var(--admin-scrollbar-track);
637
+ }
638
+
639
+ /* Main Content Area */
640
+ .template-default,
641
+ .template-default__content {
642
+ background-color: var(--admin-bg) !important;
643
+ }
644
+
645
+ .doc-header {
646
+ border-bottom-color: var(--admin-border) !important;
647
+ }
648
+
649
+ /* Breadcrumbs */
650
+ .step-nav a {
651
+ color: var(--admin-text-muted) !important;
652
+ }
653
+
654
+ .step-nav a:hover {
655
+ color: var(--admin-accent) !important;
656
+ }
657
+
658
+ /* Upload / Dropzone */
659
+ .dropzone {
660
+ border: 2px dashed var(--admin-border) !important;
661
+ border-radius: var(--admin-radius-lg) !important;
662
+ background-color: var(--admin-surface) !important;
663
+ }
664
+
665
+ .dropzone:hover,
666
+ .dropzone--dragging {
667
+ border-color: var(--admin-accent) !important;
668
+ background-color: var(--admin-accent-subtle) !important;
669
+ }
670
+
671
+ /* Rich Text Editor */
672
+ .rich-text {
673
+ border: 1px solid var(--admin-input-border) !important;
674
+ border-radius: var(--admin-radius-md) !important;
675
+ }
676
+
677
+ .rich-text:focus-within {
678
+ border-color: var(--admin-input-border-focus) !important;
679
+ box-shadow: var(--admin-focus-ring) !important;
680
+ }
681
+
682
+ /* Toast / Notifications */
683
+ .toast-container .toast {
684
+ border-radius: var(--admin-radius-md) !important;
685
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
686
+ }
687
+
688
+ /* Empty Collection States */
689
+ .collection-list--no-results {
690
+ background-color: var(--admin-surface) !important;
691
+ border-radius: var(--admin-radius-lg) !important;
692
+ padding: 48px 24px !important;
693
+ text-align: center;
694
+ }
package/dist/client.d.mts CHANGED
@@ -67,6 +67,7 @@ declare function useTheme(): {
67
67
  isDark: boolean;
68
68
  isBrand: boolean;
69
69
  isLoading: boolean;
70
+ hasMounted: boolean;
70
71
  toggleDarkMode: () => void;
71
72
  toggleBrandMode: () => void;
72
73
  };
package/dist/client.d.ts CHANGED
@@ -67,6 +67,7 @@ declare function useTheme(): {
67
67
  isDark: boolean;
68
68
  isBrand: boolean;
69
69
  isLoading: boolean;
70
+ hasMounted: boolean;
70
71
  toggleDarkMode: () => void;
71
72
  toggleBrandMode: () => void;
72
73
  };