anentrypoint-design 0.0.146 → 0.0.147
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/app-shell.css +157 -22
- package/colors_and_type.css +21 -1
- package/community.css +25 -4
- package/dist/247420.css +218 -30
- package/dist/247420.js +13 -12
- package/package.json +1 -1
- package/src/components/chat.js +2 -2
- package/src/components/community.js +4 -4
- package/src/components/content.js +17 -8
- package/src/components/editor-primitives.js +2 -2
- package/src/components/form-primitives.js +25 -12
- package/src/components/freddie/runtime.js +101 -0
- package/src/components/freddie.js +614 -27
- package/src/components/overlay-primitives.js +3 -2
- package/src/components/shell.js +40 -5
- package/src/components.js +2 -2
- package/src/kits/os/freddie/pages-chat.js +1 -1
- package/src/kits/os/freddie/pages-core.js +1 -1
- package/src/kits/os/freddie-dashboard.js +3 -3
- package/src/kits/os/shell.js +2 -0
package/dist/247420.css
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
|
10
10
|
|
|
11
11
|
.ds-247420 {
|
|
12
|
+
/* Tree view indentation tokens */
|
|
13
|
+
--tree-indent: 12px;
|
|
14
|
+
--tree-base-indent: 6px;
|
|
15
|
+
|
|
12
16
|
/* Paper / Ink — cool stone scale; lets lore palette pop. */
|
|
13
17
|
--paper: #F6F5F1;
|
|
14
18
|
--paper-2: #ECEBE6;
|
|
@@ -138,6 +142,18 @@
|
|
|
138
142
|
--z-overlay: 1000;
|
|
139
143
|
|
|
140
144
|
--measure: 68ch;
|
|
145
|
+
--measure-wide: 940px;
|
|
146
|
+
--measure-narrow: 760px;
|
|
147
|
+
|
|
148
|
+
--sidebar-width: 220px;
|
|
149
|
+
--sidebar-width-collapsed: 64px;
|
|
150
|
+
|
|
151
|
+
--lh-tall: 1.4;
|
|
152
|
+
|
|
153
|
+
/* Control size scale — heights for status/topbar/crumb + controls. */
|
|
154
|
+
--size-sm: 32px;
|
|
155
|
+
--size-base: 42px;
|
|
156
|
+
--size-lg: 56px;
|
|
141
157
|
}
|
|
142
158
|
|
|
143
159
|
/* ============================================================
|
|
@@ -168,7 +184,7 @@
|
|
|
168
184
|
.ds-247420 textarea:focus-visible,
|
|
169
185
|
.ds-247420 select:focus-visible {
|
|
170
186
|
outline: 2px solid var(--accent);
|
|
171
|
-
outline-offset:
|
|
187
|
+
outline-offset: 2px;
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
/* Interactive element focus-visible */
|
|
@@ -200,6 +216,10 @@
|
|
|
200
216
|
--danger: oklch(0.68 0.19 25);
|
|
201
217
|
}
|
|
202
218
|
|
|
219
|
+
/* NOTE: the [data-theme="auto"] block below intentionally duplicates the
|
|
220
|
+
[data-theme="ink"/"dark"] block above. They are NOT literally identical —
|
|
221
|
+
the explicit-dark block also overrides --danger for contrast — so they are
|
|
222
|
+
kept separate rather than consolidated to avoid a behavior change. */
|
|
203
223
|
@media (prefers-color-scheme: dark) {
|
|
204
224
|
.ds-247420[data-theme="auto"] {
|
|
205
225
|
--bg: var(--ink);
|
|
@@ -311,6 +331,7 @@
|
|
|
311
331
|
============================================================ */
|
|
312
332
|
.ds-247420 * { box-sizing: border-box; }
|
|
313
333
|
.ds-247420, .ds-247420 body { margin: 0; padding: 0; }
|
|
334
|
+
.ds-247420 button, .ds-247420 input, .ds-247420 select, .ds-247420 textarea { font: inherit; }
|
|
314
335
|
|
|
315
336
|
/* ============================================================
|
|
316
337
|
Accessibility — Skip Link
|
|
@@ -330,7 +351,7 @@
|
|
|
330
351
|
}
|
|
331
352
|
.ds-247420 .skip-link:focus {
|
|
332
353
|
top: 10px;
|
|
333
|
-
outline: 2px solid var(--
|
|
354
|
+
outline: 2px solid var(--accent);
|
|
334
355
|
outline-offset: 2px;
|
|
335
356
|
}
|
|
336
357
|
.ds-247420 body {
|
|
@@ -373,7 +394,7 @@
|
|
|
373
394
|
|
|
374
395
|
.ds-247420 .lede, .ds-247420 .t-lede {
|
|
375
396
|
font-family: var(--ff-body); font-size: var(--fs-xl);
|
|
376
|
-
line-height:
|
|
397
|
+
line-height: var(--lh-tall); max-width: 38ch; font-weight: 400; color: var(--fg-2);
|
|
377
398
|
margin: 0;
|
|
378
399
|
}
|
|
379
400
|
|
|
@@ -429,8 +450,8 @@
|
|
|
429
450
|
|
|
430
451
|
.ds-247420 pre {
|
|
431
452
|
font-family: var(--ff-mono);
|
|
432
|
-
background: var(--
|
|
433
|
-
color: var(--
|
|
453
|
+
background: var(--panel-bg, #15151a);
|
|
454
|
+
color: var(--panel-text, inherit);
|
|
434
455
|
padding: var(--space-5);
|
|
435
456
|
overflow-x: auto;
|
|
436
457
|
line-height: 1.55;
|
|
@@ -460,9 +481,9 @@
|
|
|
460
481
|
}
|
|
461
482
|
|
|
462
483
|
.ds-247420 {
|
|
463
|
-
--app-status-h:
|
|
464
|
-
--app-topbar-h:
|
|
465
|
-
--app-crumb-h:
|
|
484
|
+
--app-status-h: var(--size-base);
|
|
485
|
+
--app-topbar-h: var(--size-lg);
|
|
486
|
+
--app-crumb-h: var(--size-sm);
|
|
466
487
|
}
|
|
467
488
|
|
|
468
489
|
.ds-247420 .app-topbar {
|
|
@@ -531,8 +552,11 @@
|
|
|
531
552
|
.ds-247420 .app-crumb .crumb-right { margin-left: auto; color: var(--fg-3); }
|
|
532
553
|
|
|
533
554
|
.ds-247420 .app-side-shell { background: var(--bg); }
|
|
534
|
-
.ds-247420 .app-body { display: grid; grid-template-columns:
|
|
555
|
+
.ds-247420 .app-body { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: stretch; align-content: stretch; flex: 1; min-height: 0; }
|
|
535
556
|
.ds-247420 .app-body.no-side { grid-template-columns: minmax(0, 1fr); }
|
|
557
|
+
/* When there is no sidebar, the empty side-shell must not occupy a grid row,
|
|
558
|
+
otherwise main wraps to a second (collapsed) row. Remove it from layout. */
|
|
559
|
+
.ds-247420 .app-body.no-side .app-side-shell { display: none; }
|
|
536
560
|
|
|
537
561
|
.ds-247420 .app-side {
|
|
538
562
|
display: flex; flex-direction: column; gap: var(--space-4);
|
|
@@ -572,23 +596,34 @@
|
|
|
572
596
|
.ds-247420 .app-main {
|
|
573
597
|
padding: var(--space-5) var(--pad-x) 0;
|
|
574
598
|
min-width: 0;
|
|
599
|
+
/* Full-height flex column so a single flex:1 child (e.g. .chat) fills the
|
|
600
|
+
region between crumb and status instead of floating at content height. */
|
|
601
|
+
display: flex; flex-direction: column;
|
|
602
|
+
min-height: 0;
|
|
603
|
+
align-self: stretch;
|
|
604
|
+
height: 100%;
|
|
575
605
|
}
|
|
576
|
-
.ds-247420 .app-main
|
|
606
|
+
.ds-247420 .app-main > * { min-height: 0; }
|
|
607
|
+
.ds-247420 .app-main.narrow { max-width: var(--measure-narrow); margin: 0 auto; }
|
|
577
608
|
|
|
578
609
|
@media (min-width: 1400px) {
|
|
579
610
|
.ds-247420 .app { max-width: 1400px; margin-left: auto; margin-right: auto; }
|
|
580
611
|
.ds-247420 .app-main .chat,
|
|
581
612
|
.ds-247420 .app-main > .chat-area,
|
|
582
613
|
.ds-247420 .app-main > .main-content { max-width: none; margin: 0; width: 100%; }
|
|
583
|
-
|
|
614
|
+
/* Status bar inherits the .app max-width cap above and stretches edge-to-edge
|
|
615
|
+
within it; no separate width constraint (which previously narrowed it). */
|
|
616
|
+
.ds-247420 .app-status { width: 100%; }
|
|
584
617
|
}
|
|
585
618
|
|
|
586
619
|
.ds-247420 .app-status {
|
|
587
620
|
display: flex; align-items: center; gap: var(--space-3);
|
|
621
|
+
width: 100%;
|
|
588
622
|
min-height: var(--app-status-h);
|
|
589
623
|
padding: 10px var(--pad-x);
|
|
590
624
|
font-family: var(--ff-mono); font-size: var(--fs-xs);
|
|
591
625
|
color: var(--fg-3);
|
|
626
|
+
border-top: 1px solid var(--rule);
|
|
592
627
|
}
|
|
593
628
|
.ds-247420 .app-status .item { color: inherit; }
|
|
594
629
|
.ds-247420 .app-status .item:first-of-type { color: var(--accent); }
|
|
@@ -620,6 +655,54 @@
|
|
|
620
655
|
outline-offset: 2px;
|
|
621
656
|
}
|
|
622
657
|
|
|
658
|
+
/* ============================================================
|
|
659
|
+
IconButton — square icon-only button
|
|
660
|
+
============================================================ */
|
|
661
|
+
.ds-247420 .ds-icon-btn {
|
|
662
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
663
|
+
padding: 0; border: none; cursor: pointer;
|
|
664
|
+
border-radius: var(--r-1, 6px);
|
|
665
|
+
background: transparent; color: var(--fg);
|
|
666
|
+
width: 32px; height: 32px;
|
|
667
|
+
}
|
|
668
|
+
.ds-247420 .ds-icon-btn-xs { width: 22px; height: 22px; }
|
|
669
|
+
.ds-247420 .ds-icon-btn-sm { width: 26px; height: 26px; }
|
|
670
|
+
.ds-247420 .ds-icon-btn-base { width: 32px; height: 32px; }
|
|
671
|
+
.ds-247420 .ds-icon-btn-lg { width: 40px; height: 40px; }
|
|
672
|
+
.ds-247420 .ds-icon-btn-xl { width: 48px; height: 48px; }
|
|
673
|
+
.ds-247420 .ds-icon-btn-ghost { background: transparent; }
|
|
674
|
+
.ds-247420 .ds-icon-btn-ghost:hover { background: var(--bg-2); }
|
|
675
|
+
.ds-247420 .ds-icon-btn-primary { background: var(--accent); color: var(--accent-fg); }
|
|
676
|
+
.ds-247420 .ds-icon-btn-primary:hover { background: var(--fg); color: var(--bg); }
|
|
677
|
+
.ds-247420 .ds-icon-btn-danger { background: var(--flame); color: var(--paper); }
|
|
678
|
+
.ds-247420 .ds-icon-btn-danger:hover { filter: brightness(1.1); }
|
|
679
|
+
.ds-247420 .ds-icon-btn:active { transform: translateY(1px); }
|
|
680
|
+
.ds-247420 .ds-icon-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
681
|
+
.ds-247420 .ds-icon-btn:disabled, .ds-247420 .ds-icon-btn.is-disabled {
|
|
682
|
+
opacity: 0.5; cursor: not-allowed; pointer-events: none;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/* ============================================================
|
|
686
|
+
Badge — small inline count/status pill
|
|
687
|
+
============================================================ */
|
|
688
|
+
.ds-247420 .ds-badge {
|
|
689
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
690
|
+
min-width: 18px; height: 18px; padding: 0 6px;
|
|
691
|
+
font-size: 11px; font-weight: 600; line-height: 1;
|
|
692
|
+
border-radius: 999px;
|
|
693
|
+
background: var(--bg-3); color: var(--fg-2);
|
|
694
|
+
}
|
|
695
|
+
.ds-247420 .ds-badge.tone-green { background: var(--green-tint); color: var(--green-deep); }
|
|
696
|
+
.ds-247420 .ds-badge.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
697
|
+
.ds-247420 .ds-badge.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
698
|
+
.ds-247420 .ds-badge.tone-sun { background: var(--sun); color: var(--ink); }
|
|
699
|
+
.ds-247420 .ds-badge.tone-flame { background: var(--flame); color: var(--paper); }
|
|
700
|
+
.ds-247420 .ds-badge.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
701
|
+
.ds-247420 .ds-badge.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
702
|
+
.ds-247420 .ds-badge.tone-error { background: var(--flame); color: var(--paper); }
|
|
703
|
+
.ds-247420 .ds-badge.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
704
|
+
.ds-247420 .ds-badge.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
705
|
+
|
|
623
706
|
.ds-247420 .chip {
|
|
624
707
|
display: inline-flex; align-items: center; gap: 6px;
|
|
625
708
|
padding: 3px 10px;
|
|
@@ -636,6 +719,12 @@
|
|
|
636
719
|
.ds-247420 .chip.tone-flame { background: var(--flame); color: var(--paper); }
|
|
637
720
|
.ds-247420 .chip.tone-live { background: var(--green-tint); color: var(--green-deep); }
|
|
638
721
|
.ds-247420 .chip.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
722
|
+
.ds-247420 .chip.tone-error { background: var(--flame); color: var(--paper); }
|
|
723
|
+
.ds-247420 .chip.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
724
|
+
.ds-247420 .chip.tone-disabled { background: var(--bg-3); color: var(--fg-3); }
|
|
725
|
+
.ds-247420 .chip.tone-ok { background: var(--green-tint); color: var(--green-deep); }
|
|
726
|
+
.ds-247420 .chip.tone-miss { background: var(--flame); color: var(--paper); }
|
|
727
|
+
.ds-247420 .chip.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
639
728
|
|
|
640
729
|
.ds-247420 .glyph {
|
|
641
730
|
display: inline-flex; align-items: center; justify-content: center;
|
|
@@ -696,6 +785,9 @@
|
|
|
696
785
|
.ds-247420 .row:hover::before { background: var(--rule-strong); }
|
|
697
786
|
.ds-247420 .row.active { background: color-mix(in oklab, var(--accent) 10%, var(--bg-2)); }
|
|
698
787
|
.ds-247420 .row.active::before { background: var(--accent); }
|
|
788
|
+
.ds-247420 .row.row-state-disabled { opacity: 0.5; pointer-events: none; }
|
|
789
|
+
.ds-247420 .row.row-state-error { background: color-mix(in oklab, var(--flame) 10%, var(--bg-2)); }
|
|
790
|
+
.ds-247420 .row.row-state-error::before { background: var(--flame); }
|
|
699
791
|
.ds-247420 .row-grid { /* explicit grid-template-columns set inline */ }
|
|
700
792
|
|
|
701
793
|
.ds-247420 .row .code { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); }
|
|
@@ -711,7 +803,7 @@
|
|
|
711
803
|
.ds-247420 .ds-hero {
|
|
712
804
|
padding: var(--space-9) 0 var(--space-8);
|
|
713
805
|
display: grid; gap: var(--space-5);
|
|
714
|
-
max-width:
|
|
806
|
+
max-width: var(--measure-wide);
|
|
715
807
|
}
|
|
716
808
|
.ds-247420 .ds-hero-title {
|
|
717
809
|
font-family: var(--ff-body); font-weight: 600;
|
|
@@ -725,6 +817,8 @@
|
|
|
725
817
|
color: var(--fg-2);
|
|
726
818
|
}
|
|
727
819
|
.ds-247420 .ds-hero-accent { color: var(--accent); font-weight: 500; }
|
|
820
|
+
.ds-247420 .ds-hero-actions { display: flex; gap: var(--space-2, 10px); flex-wrap: wrap; margin-top: var(--space-2, 8px); }
|
|
821
|
+
.ds-247420 .ds-chat-title { margin: 0; font-size: inherit; }
|
|
728
822
|
|
|
729
823
|
/* ============================================================
|
|
730
824
|
Section grouping
|
|
@@ -890,6 +984,21 @@
|
|
|
890
984
|
.ds-247420 .row-form input:focus,
|
|
891
985
|
.ds-247420 .row-form textarea:focus { box-shadow: inset 0 0 0 2px var(--accent); }
|
|
892
986
|
|
|
987
|
+
/* Field char counter (TextField maxLength) */
|
|
988
|
+
.ds-247420 .ds-field-count {
|
|
989
|
+
font-size: var(--fs-tiny, 12px);
|
|
990
|
+
color: var(--fg-3, var(--fg-2));
|
|
991
|
+
text-align: right;
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/* Multi-column form layout (Form columns prop) */
|
|
995
|
+
.ds-247420 .row-form[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
|
|
996
|
+
.ds-247420 .row-form[data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
|
|
997
|
+
@media (max-width: 600px) {
|
|
998
|
+
.ds-247420 .row-form[data-columns="2"],
|
|
999
|
+
.ds-247420 .row-form[data-columns="3"] { grid-template-columns: 1fr; }
|
|
1000
|
+
}
|
|
1001
|
+
|
|
893
1002
|
/* ============================================================
|
|
894
1003
|
Responsive Design — Mobile (480px), Tablet (1024px), Desktop (1440px+)
|
|
895
1004
|
============================================================ */
|
|
@@ -970,7 +1079,6 @@
|
|
|
970
1079
|
/* Chat */
|
|
971
1080
|
.ds-247420 .chat-stack { max-width: 100%; min-width: 0; }
|
|
972
1081
|
.ds-247420 .chat-bubble {
|
|
973
|
-
max-width: clamp(200px, 85vw, 320px);
|
|
974
1082
|
padding: 10px 12px; font-size: var(--fs-sm);
|
|
975
1083
|
}
|
|
976
1084
|
.ds-247420 .chat-avatar { width: 28px; height: 28px; font-size: 11px; }
|
|
@@ -1080,7 +1188,6 @@
|
|
|
1080
1188
|
/* Chat Bubbles */
|
|
1081
1189
|
.ds-247420 .chat-stack { max-width: min(75%, 420px); }
|
|
1082
1190
|
.ds-247420 .chat-bubble {
|
|
1083
|
-
max-width: clamp(220px, 75vw, 420px);
|
|
1084
1191
|
padding: 11px 14px; font-size: var(--fs-sm);
|
|
1085
1192
|
}
|
|
1086
1193
|
.ds-247420 .chat-avatar { width: 32px; height: 32px; font-size: 12px; }
|
|
@@ -1111,15 +1218,29 @@
|
|
|
1111
1218
|
}
|
|
1112
1219
|
}
|
|
1113
1220
|
|
|
1221
|
+
/* ────────────────────────────────────────────────────────────────────
|
|
1222
|
+
Mid Breakpoint (768px and below) — collapse sidebar + simplify row grid
|
|
1223
|
+
────────────────────────────────────────────────────────────────────── */
|
|
1224
|
+
@media (max-width: 768px) {
|
|
1225
|
+
/* Sidebar stacks above main rather than sitting beside it */
|
|
1226
|
+
.ds-247420 .app-body { grid-template-columns: 1fr; }
|
|
1227
|
+
.ds-247420 .app-side { width: 100%; max-width: none; }
|
|
1228
|
+
|
|
1229
|
+
/* Row drops the leading code column; title + meta share the line */
|
|
1230
|
+
.ds-247420 .row {
|
|
1231
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
1232
|
+
gap: var(--space-2);
|
|
1233
|
+
}
|
|
1234
|
+
.ds-247420 .row .code { display: none; }
|
|
1235
|
+
.ds-247420 .row .sub { grid-column: 1 / -1; }
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1114
1238
|
/* ────────────────────────────────────────────────────────────────────
|
|
1115
1239
|
Desktop Breakpoint Enhancements (1025px and up)
|
|
1116
1240
|
────────────────────────────────────────────────────────────────────── */
|
|
1117
1241
|
@media (min-width: 1025px) {
|
|
1118
1242
|
/* Chat Bubbles */
|
|
1119
1243
|
.ds-247420 .chat-stack { max-width: min(70%, 480px); }
|
|
1120
|
-
.ds-247420 .chat-bubble {
|
|
1121
|
-
max-width: clamp(240px, 70vw, 480px);
|
|
1122
|
-
}
|
|
1123
1244
|
|
|
1124
1245
|
/* KPI Cards */
|
|
1125
1246
|
.ds-247420 .kpi {
|
|
@@ -1398,7 +1519,7 @@
|
|
|
1398
1519
|
border-radius: var(--r-2); color: var(--fg);
|
|
1399
1520
|
font-family: inherit; font-size: var(--fs-sm);
|
|
1400
1521
|
}
|
|
1401
|
-
.ds-247420 .ds-modal-input:focus { outline: 2px solid var(--accent); outline-offset:
|
|
1522
|
+
.ds-247420 .ds-modal-input:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
1402
1523
|
.ds-247420 .btn-primary.danger {
|
|
1403
1524
|
background: var(--warn);
|
|
1404
1525
|
border-color: var(--warn);
|
|
@@ -1487,7 +1608,7 @@
|
|
|
1487
1608
|
border-radius: var(--r-pill); color: var(--fg);
|
|
1488
1609
|
font-family: inherit; font-size: var(--fs-xs);
|
|
1489
1610
|
}
|
|
1490
|
-
.ds-247420 .ds-filter-input:focus { outline: 2px solid var(--accent); outline-offset:
|
|
1611
|
+
.ds-247420 .ds-filter-input:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
1491
1612
|
|
|
1492
1613
|
/* Loading skeleton — placeholder rows while a directory loads. */
|
|
1493
1614
|
.ds-247420 .ds-file-grid-loading { display: flex; flex-direction: column; gap: 4px; }
|
|
@@ -1676,7 +1797,7 @@
|
|
|
1676
1797
|
border-radius: 14px; line-height: 1.55;
|
|
1677
1798
|
word-wrap: break-word; overflow-wrap: anywhere;
|
|
1678
1799
|
font-size: var(--fs-sm);
|
|
1679
|
-
max-width:
|
|
1800
|
+
max-width: clamp(220px, min(75vw, 28em), 480px);
|
|
1680
1801
|
min-width: 0;
|
|
1681
1802
|
transition: transform 0.12s ease, box-shadow 0.12s ease;
|
|
1682
1803
|
}
|
|
@@ -1950,6 +2071,8 @@
|
|
|
1950
2071
|
font-family: inherit; font-size: var(--fs-sm);
|
|
1951
2072
|
line-height: 1.4; resize: none;
|
|
1952
2073
|
min-height: 44px; max-height: 200px;
|
|
2074
|
+
box-sizing: border-box; overflow-y: auto;
|
|
2075
|
+
scrollbar-width: thin;
|
|
1953
2076
|
}
|
|
1954
2077
|
.ds-247420 .chat-composer textarea::placeholder { color: var(--fg-3); }
|
|
1955
2078
|
.ds-247420 .chat-composer textarea:focus {
|
|
@@ -2497,6 +2620,12 @@
|
|
|
2497
2620
|
.ds-247420 .ds-spinner-sm { height: 12px; gap: 2px; }
|
|
2498
2621
|
.ds-247420 .ds-spinner-sm span { width: 2px; height: 2px; }
|
|
2499
2622
|
|
|
2623
|
+
.ds-247420 .ds-spinner-xs { height: 8px; gap: 1px; }
|
|
2624
|
+
.ds-247420 .ds-spinner-xs span { width: 1.5px; height: 1.5px; }
|
|
2625
|
+
|
|
2626
|
+
.ds-247420 .ds-spinner-xl { height: 32px; gap: 8px; }
|
|
2627
|
+
.ds-247420 .ds-spinner-xl span { width: 8px; height: 8px; }
|
|
2628
|
+
|
|
2500
2629
|
@keyframes ds-bounce {
|
|
2501
2630
|
0%, 80%, 100% { transform: translateY(0); }
|
|
2502
2631
|
40% { transform: translateY(-8px); }
|
|
@@ -2622,7 +2751,7 @@
|
|
|
2622
2751
|
.ds-247420 .app-main { padding-left: var(--space-3); padding-right: var(--space-3); }
|
|
2623
2752
|
}
|
|
2624
2753
|
|
|
2625
|
-
/* Drawer scrim */
|
|
2754
|
+
/* Drawer scrim — lives inside .app-body, shown when drawer open ≤900px */
|
|
2626
2755
|
.ds-247420 .app-side-scrim {
|
|
2627
2756
|
display: none;
|
|
2628
2757
|
position: fixed; inset: 0;
|
|
@@ -2630,8 +2759,34 @@
|
|
|
2630
2759
|
z-index: 49;
|
|
2631
2760
|
}
|
|
2632
2761
|
@media (max-width: 900px) {
|
|
2633
|
-
.ds-247420 .app-body.side-open
|
|
2634
|
-
|
|
2762
|
+
.ds-247420 .app-body.side-open .app-side-scrim { display: block; }
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
/* Mobile nav toggle (hamburger) — hidden on desktop, shown ≤900px */
|
|
2766
|
+
.ds-247420 .app-side-toggle {
|
|
2767
|
+
display: none;
|
|
2768
|
+
position: fixed; top: calc((var(--app-topbar-h) - 32px) / 2); left: 10px;
|
|
2769
|
+
z-index: 51;
|
|
2770
|
+
width: 36px; height: 36px;
|
|
2771
|
+
align-items: center; justify-content: center;
|
|
2772
|
+
font-size: 18px; line-height: 1;
|
|
2773
|
+
background: var(--bg-2); color: var(--fg);
|
|
2774
|
+
border: 1px solid var(--rule, color-mix(in oklab, var(--fg) 12%, transparent));
|
|
2775
|
+
border-radius: var(--r-1, 6px);
|
|
2776
|
+
cursor: pointer;
|
|
2777
|
+
}
|
|
2778
|
+
.ds-247420 .app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
2779
|
+
@media (max-width: 900px) {
|
|
2780
|
+
.ds-247420 .app-side-toggle { display: inline-flex; }
|
|
2781
|
+
.ds-247420 .app-topbar .brand { margin-left: 44px; }
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2784
|
+
/* Desktop: independent scroll for side rail and main, so a short viewport
|
|
2785
|
+
keeps the bottom nav items reachable and main scrolls on its own. */
|
|
2786
|
+
@media (min-width: 901px) {
|
|
2787
|
+
.ds-247420 .app-body { min-height: 0; max-height: calc(100vh - var(--app-topbar-h) - var(--app-crumb-h, 0px) - var(--app-status-h, 0px)); }
|
|
2788
|
+
.ds-247420 .app-side-shell { overflow-y: auto; max-height: 100%; }
|
|
2789
|
+
.ds-247420 .app-main { overflow-y: auto; max-height: 100%; }
|
|
2635
2790
|
}
|
|
2636
2791
|
|
|
2637
2792
|
/* Mobile (≤480) status bar compact; hide tail item */
|
|
@@ -3171,7 +3326,7 @@
|
|
|
3171
3326
|
width: 20px;
|
|
3172
3327
|
height: 20px;
|
|
3173
3328
|
border-radius: 50%;
|
|
3174
|
-
background: var(--bg-3);
|
|
3329
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3175
3330
|
color: var(--fg-2);
|
|
3176
3331
|
display: inline-flex;
|
|
3177
3332
|
align-items: center;
|
|
@@ -3304,7 +3459,7 @@
|
|
|
3304
3459
|
width: 32px;
|
|
3305
3460
|
height: 32px;
|
|
3306
3461
|
border-radius: 50%;
|
|
3307
|
-
background: var(--bg-3);
|
|
3462
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3308
3463
|
color: var(--fg-2);
|
|
3309
3464
|
display: inline-flex;
|
|
3310
3465
|
align-items: center;
|
|
@@ -3508,7 +3663,7 @@
|
|
|
3508
3663
|
width: 28px;
|
|
3509
3664
|
height: 28px;
|
|
3510
3665
|
border-radius: 50%;
|
|
3511
|
-
background: var(--bg-3);
|
|
3666
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3512
3667
|
color: var(--fg-2);
|
|
3513
3668
|
display: inline-flex;
|
|
3514
3669
|
align-items: center;
|
|
@@ -3569,7 +3724,7 @@
|
|
|
3569
3724
|
width: 56px;
|
|
3570
3725
|
height: 56px;
|
|
3571
3726
|
border-radius: 50%;
|
|
3572
|
-
background: var(--bg-3);
|
|
3727
|
+
background: var(--avatar-bg, var(--bg-3));
|
|
3573
3728
|
color: var(--fg-2);
|
|
3574
3729
|
display: inline-flex;
|
|
3575
3730
|
align-items: center;
|
|
@@ -4161,6 +4316,27 @@
|
|
|
4161
4316
|
.ds-247420 .cm-page-body { padding: var(--space-3); line-height: 1.6; }
|
|
4162
4317
|
.ds-247420 .cm-page-empty { color: var(--fg-2, var(--fg)); opacity: .7; }
|
|
4163
4318
|
|
|
4319
|
+
/* ============================================================
|
|
4320
|
+
freddie pages — layout for FREDDIE_PAGES renderers.
|
|
4321
|
+
Scoped under .ds-247420 by the build prefixer. Tokens only.
|
|
4322
|
+
============================================================ */
|
|
4323
|
+
.ds-247420 .fd-page-root { display: block; height: 100%; }
|
|
4324
|
+
.ds-247420 .fd-page-inner { display: flex; flex-direction: column; gap: var(--space-3, 16px); padding: var(--space-3, 16px); max-width: 1100px; }
|
|
4325
|
+
.ds-247420 .fd-page-inner > * { min-width: 0; }
|
|
4326
|
+
.ds-247420 .fd-loading { display: flex; align-items: center; gap: var(--space-2, 10px); padding: var(--space-4, 24px); color: var(--fg-2, var(--fg)); }
|
|
4327
|
+
.ds-247420 .fd-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2, 10px); padding: var(--space-5, 32px) var(--space-3, 16px); color: var(--fg-2, var(--fg)); text-align: center; }
|
|
4328
|
+
.ds-247420 .fd-empty-glyph { font-size: 28px; opacity: .55; line-height: 1; }
|
|
4329
|
+
.ds-247420 .fd-pre { margin: 0; padding: var(--space-2, 10px); background: var(--bg-3, var(--panel-bg-2)); border: var(--bw-hair, 1px) solid var(--rule, var(--panel-accent)); border-radius: var(--r-1, 6px); overflow: auto; max-height: 460px; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-family: var(--font-mono, ui-monospace, monospace); font-size: 12px; line-height: 1.5; }
|
|
4330
|
+
.ds-247420 .fd-skill-body { max-height: 320px; }
|
|
4331
|
+
.ds-247420 .fd-row-actions { display: inline-flex; gap: var(--space-1, 6px); align-items: center; }
|
|
4332
|
+
.ds-247420 .fd-chat { display: flex; flex-direction: column; gap: var(--space-2, 10px); height: 100%; min-height: 0; }
|
|
4333
|
+
.ds-247420 .fd-chat-thread { flex: 1 1 auto; min-height: 240px; overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-2, 10px); padding: var(--space-2, 10px); }
|
|
4334
|
+
.ds-247420 .fd-page-error { white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
4335
|
+
/* page-level responsive: tighten padding on narrow viewports */
|
|
4336
|
+
@media (max-width: 640px) {
|
|
4337
|
+
.ds-247420 .fd-page-inner { padding: var(--space-2, 10px); gap: var(--space-2, 10px); }
|
|
4338
|
+
}
|
|
4339
|
+
|
|
4164
4340
|
/* chat.css */
|
|
4165
4341
|
/* chat.css — chat-specific styles. Currently empty; all chat styles live in
|
|
4166
4342
|
app-shell.css under the .chat-* prefix. Reserved for future split. */
|
|
@@ -4180,7 +4356,7 @@
|
|
|
4180
4356
|
border-bottom: 1px solid var(--rule);
|
|
4181
4357
|
font: var(--fs-tiny, 12px)/var(--lh-base, 1.4) var(--ff-mono, monospace);
|
|
4182
4358
|
}
|
|
4183
|
-
.ds-247420 .ds-ep-toolbar.dense { padding: 4px
|
|
4359
|
+
.ds-247420 .ds-ep-toolbar.dense { padding: 2px 4px; gap: 2px; }
|
|
4184
4360
|
.ds-247420 .ds-ep-toolbar-leading,
|
|
4185
4361
|
.ds-247420 .ds-ep-toolbar-center,
|
|
4186
4362
|
.ds-247420 .ds-ep-toolbar-trailing { display: flex; align-items: center; gap: 4px; }
|
|
@@ -4190,7 +4366,8 @@
|
|
|
4190
4366
|
/* Tabs */
|
|
4191
4367
|
.ds-247420 .ds-ep-tabs { display: flex; flex-direction: column; min-height: 0; height: 100%; }
|
|
4192
4368
|
.ds-247420 .ds-ep-tabs-head {
|
|
4193
|
-
display: flex; flex-shrink: 0;
|
|
4369
|
+
display: flex; flex-shrink: 0; flex-wrap: nowrap;
|
|
4370
|
+
overflow-x: auto; scroll-behavior: smooth;
|
|
4194
4371
|
background: var(--panel-1);
|
|
4195
4372
|
border-bottom: 1px solid var(--rule);
|
|
4196
4373
|
}
|
|
@@ -4217,6 +4394,7 @@
|
|
|
4217
4394
|
overflow: auto;
|
|
4218
4395
|
}
|
|
4219
4396
|
.ds-247420 .ds-ep-tree-item { display: flex; flex-direction: column; }
|
|
4397
|
+
.ds-247420 .ds-ep-tree-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
4220
4398
|
.ds-247420 .ds-ep-tree-row {
|
|
4221
4399
|
display: flex; align-items: center; gap: 6px;
|
|
4222
4400
|
padding: 4px 8px 4px 0;
|
|
@@ -4256,7 +4434,7 @@
|
|
|
4256
4434
|
}
|
|
4257
4435
|
.ds-247420 .ds-ep-propfield {
|
|
4258
4436
|
display: grid;
|
|
4259
|
-
grid-template-columns: 120px 1fr;
|
|
4437
|
+
grid-template-columns: minmax(80px, 120px) 1fr;
|
|
4260
4438
|
gap: 4px 10px;
|
|
4261
4439
|
align-items: center;
|
|
4262
4440
|
}
|
|
@@ -4319,6 +4497,14 @@
|
|
|
4319
4497
|
}
|
|
4320
4498
|
.ds-247420 .ds-ep-dock-center > * { pointer-events: auto; }
|
|
4321
4499
|
|
|
4500
|
+
/* Mobile — stack dock regions vertically instead of the 3x3 grid */
|
|
4501
|
+
@media (max-width: 600px) {
|
|
4502
|
+
.ds-247420 .ds-ep-dock {
|
|
4503
|
+
display: flex;
|
|
4504
|
+
flex-direction: column;
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
|
|
4322
4508
|
/* IconButtonGroup */
|
|
4323
4509
|
.ds-247420 .ds-ep-btngrp {
|
|
4324
4510
|
display: inline-flex;
|
|
@@ -4378,6 +4564,8 @@
|
|
|
4378
4564
|
.ds-247420 .ds-ep-split.horiz { flex-direction: row; }
|
|
4379
4565
|
.ds-247420 .ds-ep-split.vert { flex-direction: column; }
|
|
4380
4566
|
.ds-247420 .ds-ep-split-pane { overflow: auto; }
|
|
4567
|
+
.ds-247420 .ds-ep-split.horiz > .ds-ep-split-pane:not(.grow) { width: var(--split-size); }
|
|
4568
|
+
.ds-247420 .ds-ep-split.vert > .ds-ep-split-pane:not(.grow) { height: var(--split-size); }
|
|
4381
4569
|
.ds-247420 .ds-ep-split-pane.grow { flex: 1 1 0; }
|
|
4382
4570
|
|
|
4383
4571
|
/* ---------------------------------------------------------------
|