@adea-ai/ui 0.25.16 → 0.26.0

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@adea-ai/ui",
3
- "version": "0.25.16",
3
+ "version": "0.26.0",
4
4
  "description": "Shared UI kit for Adea: Kobalte/corvu-backed Solid primitives, workspace shells, and theme styles.",
5
5
  "keywords": [
6
6
  "components",
@@ -51,6 +51,7 @@
51
51
  "./globals.css": "./src/styles/globals.css",
52
52
  "./auth-shell.css": "./src/styles/auth-shell.css",
53
53
  "./conventional-workspace.css": "./src/styles/conventional-workspace.css",
54
+ "./dev-view.css": "./src/styles/dev-view.css",
54
55
  "./theme.css": "./src/styles/theme.css",
55
56
  "./workspace-shell.css": "./src/styles/workspace-shell.css",
56
57
  "./base.css": "./src/styles/base.css"
@@ -0,0 +1,633 @@
1
+ .dev-workspace {
2
+ --dev-border: color-mix(in srgb, var(--border) 62%, transparent);
3
+ --dev-panel: color-mix(in srgb, var(--background) 94%, var(--muted));
4
+ --dev-muted: var(--muted-foreground);
5
+ display: grid;
6
+ grid-template-rows: 3rem minmax(0, 1fr);
7
+ width: 100%;
8
+ min-width: 0;
9
+ height: 100%;
10
+ overflow: hidden;
11
+ color: var(--foreground);
12
+ background: var(--background);
13
+ }
14
+
15
+ .dev-skip-link {
16
+ position: fixed;
17
+ z-index: 100;
18
+ inset-block-start: 0.5rem;
19
+ inset-inline-start: 0.5rem;
20
+ transform: translateY(-160%);
21
+ padding: 0.5rem 0.75rem;
22
+ border-radius: 0.4rem;
23
+ background: var(--foreground);
24
+ color: var(--background);
25
+ }
26
+
27
+ .dev-skip-link:focus {
28
+ transform: translateY(0);
29
+ }
30
+
31
+ .dev-toolbar {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 0.75rem;
35
+ padding: 0 0.75rem;
36
+ border-block-end: 1px solid var(--dev-border);
37
+ background: var(--dev-panel);
38
+ }
39
+
40
+ .dev-toolbar__identity {
41
+ display: flex;
42
+ min-width: 0;
43
+ align-items: baseline;
44
+ gap: 0.65rem;
45
+ }
46
+
47
+ .dev-toolbar__identity span {
48
+ overflow: hidden;
49
+ color: var(--dev-muted);
50
+ font:
51
+ 500 0.75rem/1.2 ui-monospace,
52
+ SFMono-Regular,
53
+ Menlo,
54
+ monospace;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ }
58
+
59
+ .dev-toolbar__actions {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 0.35rem;
63
+ margin-inline-start: auto;
64
+ }
65
+
66
+ .dev-button,
67
+ .dev-icon-button,
68
+ .dev-tree-row,
69
+ .dev-utility-tabs button {
70
+ min-height: 2rem;
71
+ border: 1px solid transparent;
72
+ border-radius: 0.35rem;
73
+ color: inherit;
74
+ background: transparent;
75
+ }
76
+
77
+ .dev-button {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ gap: 0.4rem;
81
+ padding: 0 0.65rem;
82
+ border-color: var(--dev-border);
83
+ font-size: 0.78rem;
84
+ }
85
+
86
+ .dev-button svg,
87
+ .dev-icon-button svg,
88
+ .dev-tree-row svg,
89
+ .dev-utility-tabs svg,
90
+ .dev-pane header svg {
91
+ width: 1rem;
92
+ height: 1rem;
93
+ flex: none;
94
+ }
95
+
96
+ .dev-icon-button {
97
+ display: inline-grid;
98
+ width: 2rem;
99
+ place-items: center;
100
+ }
101
+
102
+ .dev-button:not(:disabled):hover,
103
+ .dev-icon-button:hover,
104
+ .dev-tree-row:hover,
105
+ .dev-utility-tab:hover,
106
+ .dev-utility-tab--selected {
107
+ background: color-mix(in srgb, var(--foreground) 8%, transparent);
108
+ }
109
+
110
+ .dev-button:focus-visible,
111
+ .dev-icon-button:focus-visible,
112
+ .dev-tree-row:focus-visible,
113
+ .dev-utility-tabs button:focus-visible,
114
+ .dev-search input:focus-visible {
115
+ outline: 2px solid var(--ring);
116
+ outline-offset: 1px;
117
+ }
118
+
119
+ .dev-button:disabled,
120
+ .dev-tree-row:disabled {
121
+ opacity: 0.48;
122
+ }
123
+
124
+ .dev-workspace__body {
125
+ display: grid;
126
+ min-height: 0;
127
+ grid-template-columns: minmax(13rem, 17rem) minmax(20rem, 1fr) minmax(13rem, 18rem);
128
+ }
129
+
130
+ .dev-sidebar,
131
+ .dev-utility {
132
+ min-width: 0;
133
+ overflow: auto;
134
+ background: var(--dev-panel);
135
+ }
136
+
137
+ .dev-sidebar {
138
+ display: flex;
139
+ flex-direction: column;
140
+ padding: 0.65rem;
141
+ border-inline-end: 1px solid var(--dev-border);
142
+ }
143
+
144
+ .dev-search {
145
+ display: flex;
146
+ align-items: center;
147
+ gap: 0.4rem;
148
+ margin-block-end: 0.65rem;
149
+ padding: 0 0.55rem;
150
+ border: 1px solid var(--dev-border);
151
+ border-radius: 0.35rem;
152
+ }
153
+
154
+ .dev-search svg {
155
+ width: 0.9rem;
156
+ color: var(--dev-muted);
157
+ }
158
+
159
+ .dev-search input {
160
+ width: 100%;
161
+ min-height: 2rem;
162
+ border: 0;
163
+ outline: 0;
164
+ background: transparent;
165
+ color: inherit;
166
+ }
167
+
168
+ .dev-tree-group + .dev-tree-group {
169
+ margin-block-start: 0.4rem;
170
+ }
171
+
172
+ .dev-tree-row {
173
+ display: flex;
174
+ width: 100%;
175
+ align-items: center;
176
+ gap: 0.35rem;
177
+ padding: 0 0.4rem;
178
+ text-align: start;
179
+ }
180
+
181
+ .dev-tree-row--group {
182
+ color: var(--dev-muted);
183
+ font-size: 0.69rem;
184
+ font-weight: 700;
185
+ letter-spacing: 0.08em;
186
+ text-transform: uppercase;
187
+ }
188
+
189
+ .dev-tree-row--project {
190
+ font-size: 0.82rem;
191
+ font-weight: 650;
192
+ }
193
+
194
+ .dev-tree-row--session {
195
+ padding-inline-start: 1.8rem;
196
+ font-size: 0.78rem;
197
+ }
198
+
199
+ .dev-tree-row--selected {
200
+ background: color-mix(in srgb, var(--primary) 15%, transparent);
201
+ }
202
+
203
+ .dev-tree-row__count {
204
+ margin-inline-start: auto;
205
+ color: var(--dev-muted);
206
+ font-variant-numeric: tabular-nums;
207
+ }
208
+
209
+ .dev-tree-empty {
210
+ margin: 0;
211
+ padding: 0.65rem 0.75rem;
212
+ color: var(--dev-muted);
213
+ font-size: 0.75rem;
214
+ line-height: 1.4;
215
+ }
216
+
217
+ .dev-archive-shelf {
218
+ margin-block-start: auto;
219
+ border-block-start: 1px solid var(--dev-border);
220
+ }
221
+
222
+ .dev-tree-row--archive {
223
+ width: 100%;
224
+ }
225
+
226
+ .dev-status-dot {
227
+ width: 0.48rem;
228
+ height: 0.48rem;
229
+ flex: none;
230
+ border-radius: 50%;
231
+ background: var(--dev-muted);
232
+ }
233
+
234
+ .dev-status-dot--active {
235
+ background: var(--success);
236
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--success) 18%, transparent);
237
+ }
238
+
239
+ .dev-status-dot--archived {
240
+ background: var(--muted-foreground);
241
+ }
242
+
243
+ .dev-center {
244
+ min-width: 0;
245
+ min-height: 0;
246
+ overflow: hidden;
247
+ background: color-mix(in srgb, var(--background) 96%, var(--muted));
248
+ }
249
+
250
+ .dev-layout-node {
251
+ min-width: 0;
252
+ min-height: 0;
253
+ width: 100%;
254
+ height: 100%;
255
+ overflow: hidden;
256
+ }
257
+
258
+ .dev-layout-node--ratio-10 {
259
+ --dev-node-ratio: 10%;
260
+ }
261
+ .dev-layout-node--ratio-15 {
262
+ --dev-node-ratio: 15%;
263
+ }
264
+ .dev-layout-node--ratio-20 {
265
+ --dev-node-ratio: 20%;
266
+ }
267
+ .dev-layout-node--ratio-25 {
268
+ --dev-node-ratio: 25%;
269
+ }
270
+ .dev-layout-node--ratio-30 {
271
+ --dev-node-ratio: 30%;
272
+ }
273
+ .dev-layout-node--ratio-35 {
274
+ --dev-node-ratio: 35%;
275
+ }
276
+ .dev-layout-node--ratio-40 {
277
+ --dev-node-ratio: 40%;
278
+ }
279
+ .dev-layout-node--ratio-45 {
280
+ --dev-node-ratio: 45%;
281
+ }
282
+ .dev-layout-node--ratio-50 {
283
+ --dev-node-ratio: 50%;
284
+ }
285
+ .dev-layout-node--ratio-55 {
286
+ --dev-node-ratio: 55%;
287
+ }
288
+ .dev-layout-node--ratio-60 {
289
+ --dev-node-ratio: 60%;
290
+ }
291
+ .dev-layout-node--ratio-65 {
292
+ --dev-node-ratio: 65%;
293
+ }
294
+ .dev-layout-node--ratio-70 {
295
+ --dev-node-ratio: 70%;
296
+ }
297
+ .dev-layout-node--ratio-75 {
298
+ --dev-node-ratio: 75%;
299
+ }
300
+ .dev-layout-node--ratio-80 {
301
+ --dev-node-ratio: 80%;
302
+ }
303
+ .dev-layout-node--ratio-85 {
304
+ --dev-node-ratio: 85%;
305
+ }
306
+ .dev-layout-node--ratio-90 {
307
+ --dev-node-ratio: 90%;
308
+ }
309
+
310
+ .dev-layout-node--row {
311
+ display: grid;
312
+ grid-template-columns: minmax(0, var(--dev-node-ratio)) 0.45rem minmax(0, 1fr);
313
+ }
314
+
315
+ .dev-layout-node--column {
316
+ display: grid;
317
+ grid-template-rows: minmax(0, var(--dev-node-ratio)) 0.45rem minmax(0, 1fr);
318
+ }
319
+
320
+ .dev-layout-node--column > .dev-splitter {
321
+ cursor: row-resize;
322
+ border-block: 1px solid var(--dev-border);
323
+ border-inline: 0;
324
+ }
325
+
326
+ .dev-pane {
327
+ display: grid;
328
+ min-width: 0;
329
+ min-height: 0;
330
+ grid-template-rows: 2.25rem minmax(0, 1fr);
331
+ overflow: hidden;
332
+ }
333
+
334
+ .dev-pane--focused {
335
+ box-shadow: inset 0 0 0 1px var(--ring);
336
+ }
337
+
338
+ .dev-splitter {
339
+ position: relative;
340
+ z-index: 1;
341
+ width: 100%;
342
+ min-width: 0;
343
+ padding: 0;
344
+ border: 0;
345
+ border-inline: 1px solid var(--dev-border);
346
+ background: color-mix(in srgb, var(--foreground) 3%, transparent);
347
+ cursor: col-resize;
348
+ }
349
+
350
+ .dev-splitter:hover,
351
+ .dev-splitter:focus-visible {
352
+ background: color-mix(in srgb, var(--primary) 35%, transparent);
353
+ }
354
+
355
+ .dev-splitter:focus-visible {
356
+ outline: 2px solid var(--ring);
357
+ outline-offset: -2px;
358
+ }
359
+
360
+ .dev-pane header {
361
+ display: flex;
362
+ align-items: center;
363
+ gap: 0.4rem;
364
+ padding: 0 0.65rem;
365
+ border-block-end: 1px solid var(--dev-border);
366
+ color: var(--dev-muted);
367
+ font-size: 0.72rem;
368
+ font-weight: 700;
369
+ letter-spacing: 0.04em;
370
+ text-transform: uppercase;
371
+ }
372
+
373
+ .dev-pane__badge {
374
+ margin-inline-start: auto;
375
+ padding: 0.15rem 0.35rem;
376
+ border: 1px solid var(--dev-border);
377
+ border-radius: 999px;
378
+ font-size: 0.6rem;
379
+ }
380
+
381
+ .dev-pane-close {
382
+ display: inline-grid;
383
+ width: 1.5rem;
384
+ height: 1.5rem;
385
+ margin-inline-start: auto;
386
+ padding: 0;
387
+ place-items: center;
388
+ border: 0;
389
+ border-radius: 0.25rem;
390
+ color: inherit;
391
+ background: transparent;
392
+ }
393
+
394
+ .dev-pane__badge + .dev-pane-close {
395
+ margin-inline-start: 0;
396
+ }
397
+
398
+ .dev-pane-close svg {
399
+ width: 0.85rem;
400
+ height: 0.85rem;
401
+ }
402
+
403
+ .dev-pane-close:hover,
404
+ .dev-pane-close:focus-visible {
405
+ background: color-mix(in srgb, var(--foreground) 8%, transparent);
406
+ }
407
+
408
+ .dev-pane-close:focus-visible {
409
+ outline: 2px solid var(--ring);
410
+ outline-offset: -1px;
411
+ }
412
+
413
+ .dev-terminal-placeholder {
414
+ padding: 0.9rem;
415
+ overflow: auto;
416
+ font:
417
+ 0.78rem/1.65 ui-monospace,
418
+ SFMono-Regular,
419
+ Menlo,
420
+ monospace;
421
+ }
422
+
423
+ .dev-terminal-muted,
424
+ .dev-empty-state p,
425
+ .dev-utility-panel p {
426
+ color: var(--dev-muted);
427
+ }
428
+
429
+ .dev-empty-state {
430
+ display: grid;
431
+ place-content: center;
432
+ justify-items: center;
433
+ padding: 2rem;
434
+ text-align: center;
435
+ }
436
+
437
+ .dev-empty-state svg {
438
+ width: 2rem;
439
+ height: 2rem;
440
+ color: var(--dev-muted);
441
+ }
442
+
443
+ .dev-empty-state h1 {
444
+ margin: 0.8rem 0 0.2rem;
445
+ font: 650 0.95rem/1.2 inherit;
446
+ }
447
+
448
+ .dev-empty-state p {
449
+ max-width: 24rem;
450
+ margin: 0;
451
+ font-size: 0.78rem;
452
+ }
453
+
454
+ .dev-utility {
455
+ display: grid;
456
+ min-height: 0;
457
+ grid-template-columns: 2.75rem minmax(0, 1fr);
458
+ border-inline-start: 1px solid var(--dev-border);
459
+ }
460
+
461
+ .dev-utility-tabs {
462
+ display: flex;
463
+ flex-direction: column;
464
+ gap: 0.25rem;
465
+ padding: 0.45rem 0.35rem;
466
+ border-inline-end: 1px solid var(--dev-border);
467
+ }
468
+
469
+ .dev-utility-tabs button {
470
+ display: grid;
471
+ width: 2rem;
472
+ height: 2rem;
473
+ place-items: center;
474
+ }
475
+
476
+ .dev-utility-tabs button span {
477
+ position: absolute;
478
+ width: 1px;
479
+ height: 1px;
480
+ overflow: hidden;
481
+ clip: rect(0, 0, 0, 0);
482
+ white-space: nowrap;
483
+ }
484
+
485
+ .dev-utility-panel {
486
+ min-width: 0;
487
+ padding: 0.85rem;
488
+ }
489
+
490
+ .dev-utility-panel__heading {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 0.5rem;
494
+ }
495
+
496
+ .dev-utility-panel__heading .dev-icon-button {
497
+ margin-inline-start: auto;
498
+ }
499
+
500
+ .dev-utility-panel h2 {
501
+ margin: 0;
502
+ font-size: 0.82rem;
503
+ }
504
+
505
+ .dev-utility-panel p {
506
+ font-size: 0.75rem;
507
+ }
508
+
509
+ .workspace-frame:has(.dev-workspace--focus) {
510
+ grid-template-columns: minmax(0, 1fr);
511
+ }
512
+
513
+ .workspace-frame:has(.dev-workspace--focus) > .global-rail,
514
+ .dev-workspace--focus .dev-sidebar,
515
+ .dev-workspace--focus .dev-utility {
516
+ display: none;
517
+ }
518
+
519
+ .dev-workspace--focus .dev-workspace__body {
520
+ grid-template-columns: minmax(0, 1fr);
521
+ }
522
+
523
+ .dev-workspace--utility-full .dev-sidebar,
524
+ .dev-workspace--utility-full .dev-center {
525
+ display: none;
526
+ }
527
+
528
+ .dev-workspace--utility-full .dev-workspace__body {
529
+ grid-template-columns: minmax(0, 1fr);
530
+ }
531
+
532
+ .dev-workspace--utility-full .dev-utility {
533
+ border-inline-start: 0;
534
+ }
535
+
536
+ .dev-sidebar-toggle,
537
+ .dev-utility-toggle {
538
+ display: none;
539
+ }
540
+
541
+ @media (max-width: 70rem) {
542
+ .dev-workspace__body {
543
+ grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
544
+ }
545
+
546
+ .dev-utility {
547
+ position: absolute;
548
+ z-index: 4;
549
+ inset-block: 3rem 0;
550
+ inset-inline-end: 0;
551
+ width: min(19rem, 78vw);
552
+ box-shadow: -0.5rem 0 2rem color-mix(in srgb, var(--scrim) 12%, transparent);
553
+ }
554
+ }
555
+
556
+ @media (max-width: 48rem) {
557
+ .dev-sidebar-toggle,
558
+ .dev-utility-toggle {
559
+ display: inline-grid;
560
+ }
561
+
562
+ .dev-toolbar__actions .dev-button {
563
+ display: none;
564
+ }
565
+
566
+ .dev-workspace__body {
567
+ grid-template-columns: minmax(0, 1fr);
568
+ }
569
+
570
+ .dev-sidebar {
571
+ position: absolute;
572
+ z-index: 5;
573
+ inset-block: 3rem 0;
574
+ inset-inline-start: 0;
575
+ width: min(17rem, 84vw);
576
+ visibility: hidden;
577
+ transform: translateX(-105%);
578
+ transition:
579
+ transform 160ms ease,
580
+ visibility 0s linear 160ms;
581
+ box-shadow: 0.5rem 0 2rem color-mix(in srgb, var(--scrim) 12%, transparent);
582
+ }
583
+
584
+ .dev-sidebar--open {
585
+ visibility: visible;
586
+ transform: translateX(0);
587
+ transition-delay: 0s;
588
+ }
589
+
590
+ .dev-layout-node--row {
591
+ grid-template-columns: minmax(0, 1fr);
592
+ grid-template-rows: minmax(12rem, var(--dev-node-ratio)) 0.45rem minmax(12rem, 1fr);
593
+ }
594
+
595
+ .dev-layout-node--row > .dev-splitter {
596
+ cursor: row-resize;
597
+ border-block: 1px solid var(--dev-border);
598
+ border-inline: 0;
599
+ }
600
+
601
+ .dev-utility {
602
+ display: grid;
603
+ visibility: hidden;
604
+ transform: translateX(105%);
605
+ transition:
606
+ transform 160ms ease,
607
+ visibility 0s linear 160ms;
608
+ }
609
+
610
+ .dev-utility--open {
611
+ visibility: visible;
612
+ transform: translateX(0);
613
+ transition-delay: 0s;
614
+ }
615
+ }
616
+
617
+ @media (pointer: coarse) {
618
+ .dev-button,
619
+ .dev-icon-button,
620
+ .dev-tree-row,
621
+ .dev-utility-tabs button,
622
+ .dev-pane-close {
623
+ min-width: 2.75rem;
624
+ min-height: 2.75rem;
625
+ }
626
+ }
627
+
628
+ @media (prefers-reduced-motion: reduce) {
629
+ .dev-sidebar,
630
+ .dev-utility {
631
+ transition: none;
632
+ }
633
+ }