anentrypoint-design 0.0.399 → 0.0.400
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/chat.css +72 -0
- package/dist/247420.css +81 -0
- package/dist/247420.js +21 -21
- package/package.json +15 -1
- package/scripts/lint-glyphs.mjs +5 -1
- package/scripts/lint-null-children.mjs +7 -1
- package/src/components/files/grid.js +29 -0
- package/src/components/sessions/dashboard.js +5 -4
- package/src/components/sessions/session-card.js +24 -6
- package/src/css/app-shell/primitives.css +9 -0
- package/src/markdown-cache.js +14 -2
- package/types/components.d.ts +2931 -0
- package/types/index.d.ts +106 -0
package/chat.css
CHANGED
|
@@ -610,6 +610,78 @@
|
|
|
610
610
|
.ds-dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-2); padding: var(--space-3); }
|
|
611
611
|
@media (min-width: 1500px) { .ds-dash-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } }
|
|
612
612
|
.ds-dash-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-2); }
|
|
613
|
+
|
|
614
|
+
/* Compact density — one line per session. The comfortable card stacks title +
|
|
615
|
+
head + meta + actions as four flex rows and measured 208px tall on a real
|
|
616
|
+
dashboard, so a 439px viewport showed two sessions at once; a command center
|
|
617
|
+
whose job is scanning many sessions cannot afford a third of a screen each.
|
|
618
|
+
Compact keeps every fact and drops only the per-card action row (reachable by
|
|
619
|
+
opening the session), laying head and meta side by side instead of stacked.
|
|
620
|
+
The grid also collapses to a single column: a min-240px card grid beside
|
|
621
|
+
one-line rows would put unrelated sessions shoulder to shoulder and destroy
|
|
622
|
+
the vertical scan the density exists to create. */
|
|
623
|
+
.ds-dash-grid.is-compact { grid-template-columns: 1fr; gap: 0; padding: var(--space-1) var(--space-2); }
|
|
624
|
+
/* nowrap, not wrap: with wrapping allowed a long value pushes the next cluster
|
|
625
|
+
onto its own line and the row grows. Measured that way -- rows came out 37 /
|
|
626
|
+
55 / 75 / 176px instead of one height, the 176px case being a long phase
|
|
627
|
+
label that expanded the head to 498px and squeezed meta to 202px so its
|
|
628
|
+
contents stacked. Every child now elides instead of wrapping, which is what
|
|
629
|
+
keeps a density a density. */
|
|
630
|
+
.ds-dash-card.is-compact {
|
|
631
|
+
flex-direction: row; align-items: baseline; flex-wrap: nowrap;
|
|
632
|
+
gap: var(--space-2); padding: var(--space-1-75) var(--space-2);
|
|
633
|
+
background: transparent; border: 0; border-radius: 0;
|
|
634
|
+
border-bottom: var(--bw-hair) solid var(--bg-3);
|
|
635
|
+
overflow: hidden;
|
|
636
|
+
}
|
|
637
|
+
/* The head carries status + agent + model; it may shrink and elide rather than
|
|
638
|
+
expand past its content and starve the meta cluster. */
|
|
639
|
+
.ds-dash-card.is-compact .ds-dash-card-head {
|
|
640
|
+
flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap;
|
|
641
|
+
}
|
|
642
|
+
.ds-dash-card.is-compact .ds-dash-agent,
|
|
643
|
+
.ds-dash-card.is-compact .ds-dash-model,
|
|
644
|
+
.ds-dash-card.is-compact .ds-dash-status {
|
|
645
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
|
|
646
|
+
}
|
|
647
|
+
/* meta takes the remaining width and stays on one line, so a long cwd elides
|
|
648
|
+
rather than wrapping the row to two lines and defeating the density. */
|
|
649
|
+
.ds-dash-card.is-compact .ds-dash-meta {
|
|
650
|
+
flex: 1 1 0; min-width: 0; display: flex; flex-direction: row;
|
|
651
|
+
align-items: baseline; gap: var(--space-2); overflow: hidden;
|
|
652
|
+
flex-wrap: nowrap; white-space: nowrap;
|
|
653
|
+
}
|
|
654
|
+
.ds-dash-card.is-compact .ds-dash-stat,
|
|
655
|
+
.ds-dash-card.is-compact .ds-dash-activity {
|
|
656
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
|
|
657
|
+
}
|
|
658
|
+
.ds-dash-card.is-compact .ds-dash-cwd {
|
|
659
|
+
min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
660
|
+
}
|
|
661
|
+
.ds-dash-card.is-compact .ds-dash-activity { flex: 0 0 auto; margin-inline-start: auto; }
|
|
662
|
+
/* The selected/active affordances are inset shadows on the comfortable card;
|
|
663
|
+
with no border to sit inside, compact carries them as a leading rule. */
|
|
664
|
+
.ds-dash-card.is-compact.is-active { box-shadow: inset 2px 0 0 var(--accent); }
|
|
665
|
+
.ds-dash-card.is-compact:last-child { border-bottom: 0; }
|
|
666
|
+
|
|
667
|
+
/* Visual weight follows the status the host already computes -- it does NOT
|
|
668
|
+
invent a severity. A dense list where every row paints identically makes the
|
|
669
|
+
reader scan all of them; the point of ranking rows is that the eye should
|
|
670
|
+
land on the one that needs attention. `error` is reserved by the host for
|
|
671
|
+
something genuinely wrong (a blocked gate, an unparseable state, a dispatch
|
|
672
|
+
that never completed), `running` for live work, `stale` for idle -- so those
|
|
673
|
+
three get three weights and nothing else changes. */
|
|
674
|
+
/* Measured baseline before choosing these: .ds-dash-agent is already
|
|
675
|
+
font-weight 600 / color --fg, and .ds-dash-cwd is already --fg-3. So the
|
|
676
|
+
differentiator cannot BE --fg-3 (that is the default) -- error must rise
|
|
677
|
+
above the baseline and idle must fall below it. */
|
|
678
|
+
.ds-dash-card.is-compact.is-error { box-shadow: inset 2px 0 0 var(--flame); }
|
|
679
|
+
.ds-dash-card.is-compact.is-error .ds-dash-agent { font-weight: 700; color: var(--fg); }
|
|
680
|
+
.ds-dash-card.is-compact.is-running .ds-dash-agent { font-weight: 600; color: var(--fg); }
|
|
681
|
+
/* Idle recedes by weight and by the tier-2 tone -- NOT by opacity, which would
|
|
682
|
+
scale every child including the status word and drop it under the contrast
|
|
683
|
+
floor. --fg-2 stays a real text tone. */
|
|
684
|
+
.ds-dash-card.is-compact.is-stale .ds-dash-agent { font-weight: 400; color: var(--fg-2); }
|
|
613
685
|
.ds-dash-card.is-error { border-color: var(--flame); }
|
|
614
686
|
.ds-dash-card-head { display: flex; align-items: center; gap: var(--space-2); }
|
|
615
687
|
.ds-dash-status { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); }
|
package/dist/247420.css
CHANGED
|
@@ -1438,6 +1438,15 @@
|
|
|
1438
1438
|
.ds-247420 .chip.tone-wip, .ds-247420 .chip.tone-neutral {
|
|
1439
1439
|
background: var(--bg-3); color: var(--fg-2);
|
|
1440
1440
|
}
|
|
1441
|
+
/* tone-dim was applied by five kits (aicat, project_page, signin, system_primer,
|
|
1442
|
+
terminal) with no rule anywhere, so a "dim" chip rendered byte-identical to a
|
|
1443
|
+
plain one — measured at rgb(234,230,218) on rgb(31,31,38), same opacity. It is
|
|
1444
|
+
the recede-into-the-row tone: the tier-3 foreground on the same recessed
|
|
1445
|
+
surface tone-wip uses, which is quieter than the default --fg-2 without
|
|
1446
|
+
dropping to an opacity fade that would take the border and background with it. */
|
|
1447
|
+
.ds-247420 .chip.tone-dim {
|
|
1448
|
+
background: var(--bg-3); color: var(--fg-3);
|
|
1449
|
+
}
|
|
1441
1450
|
.ds-247420 .chip.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
1442
1451
|
.ds-247420 .chip.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
1443
1452
|
.ds-247420 .chip.tone-sun, .ds-247420 .chip.tone-yellow {
|
|
@@ -9035,6 +9044,78 @@
|
|
|
9035
9044
|
.ds-247420 .ds-dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-2); padding: var(--space-3); }
|
|
9036
9045
|
@media (min-width: 1500px) { .ds-247420 .ds-dash-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } }
|
|
9037
9046
|
.ds-247420 .ds-dash-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-2); }
|
|
9047
|
+
|
|
9048
|
+
/* Compact density — one line per session. The comfortable card stacks title +
|
|
9049
|
+
head + meta + actions as four flex rows and measured 208px tall on a real
|
|
9050
|
+
dashboard, so a 439px viewport showed two sessions at once; a command center
|
|
9051
|
+
whose job is scanning many sessions cannot afford a third of a screen each.
|
|
9052
|
+
Compact keeps every fact and drops only the per-card action row (reachable by
|
|
9053
|
+
opening the session), laying head and meta side by side instead of stacked.
|
|
9054
|
+
The grid also collapses to a single column: a min-240px card grid beside
|
|
9055
|
+
one-line rows would put unrelated sessions shoulder to shoulder and destroy
|
|
9056
|
+
the vertical scan the density exists to create. */
|
|
9057
|
+
.ds-247420 .ds-dash-grid.is-compact { grid-template-columns: 1fr; gap: 0; padding: var(--space-1) var(--space-2); }
|
|
9058
|
+
/* nowrap, not wrap: with wrapping allowed a long value pushes the next cluster
|
|
9059
|
+
onto its own line and the row grows. Measured that way -- rows came out 37 /
|
|
9060
|
+
55 / 75 / 176px instead of one height, the 176px case being a long phase
|
|
9061
|
+
label that expanded the head to 498px and squeezed meta to 202px so its
|
|
9062
|
+
contents stacked. Every child now elides instead of wrapping, which is what
|
|
9063
|
+
keeps a density a density. */
|
|
9064
|
+
.ds-247420 .ds-dash-card.is-compact {
|
|
9065
|
+
flex-direction: row; align-items: baseline; flex-wrap: nowrap;
|
|
9066
|
+
gap: var(--space-2); padding: var(--space-1-75) var(--space-2);
|
|
9067
|
+
background: transparent; border: 0; border-radius: 0;
|
|
9068
|
+
border-bottom: var(--bw-hair) solid var(--bg-3);
|
|
9069
|
+
overflow: hidden;
|
|
9070
|
+
}
|
|
9071
|
+
/* The head carries status + agent + model; it may shrink and elide rather than
|
|
9072
|
+
expand past its content and starve the meta cluster. */
|
|
9073
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-card-head {
|
|
9074
|
+
flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap;
|
|
9075
|
+
}
|
|
9076
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-agent,
|
|
9077
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-model,
|
|
9078
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-status {
|
|
9079
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
|
|
9080
|
+
}
|
|
9081
|
+
/* meta takes the remaining width and stays on one line, so a long cwd elides
|
|
9082
|
+
rather than wrapping the row to two lines and defeating the density. */
|
|
9083
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-meta {
|
|
9084
|
+
flex: 1 1 0; min-width: 0; display: flex; flex-direction: row;
|
|
9085
|
+
align-items: baseline; gap: var(--space-2); overflow: hidden;
|
|
9086
|
+
flex-wrap: nowrap; white-space: nowrap;
|
|
9087
|
+
}
|
|
9088
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-stat,
|
|
9089
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-activity {
|
|
9090
|
+
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
|
|
9091
|
+
}
|
|
9092
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-cwd {
|
|
9093
|
+
min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
9094
|
+
}
|
|
9095
|
+
.ds-247420 .ds-dash-card.is-compact .ds-dash-activity { flex: 0 0 auto; margin-inline-start: auto; }
|
|
9096
|
+
/* The selected/active affordances are inset shadows on the comfortable card;
|
|
9097
|
+
with no border to sit inside, compact carries them as a leading rule. */
|
|
9098
|
+
.ds-247420 .ds-dash-card.is-compact.is-active { box-shadow: inset 2px 0 0 var(--accent); }
|
|
9099
|
+
.ds-247420 .ds-dash-card.is-compact:last-child { border-bottom: 0; }
|
|
9100
|
+
|
|
9101
|
+
/* Visual weight follows the status the host already computes -- it does NOT
|
|
9102
|
+
invent a severity. A dense list where every row paints identically makes the
|
|
9103
|
+
reader scan all of them; the point of ranking rows is that the eye should
|
|
9104
|
+
land on the one that needs attention. `error` is reserved by the host for
|
|
9105
|
+
something genuinely wrong (a blocked gate, an unparseable state, a dispatch
|
|
9106
|
+
that never completed), `running` for live work, `stale` for idle -- so those
|
|
9107
|
+
three get three weights and nothing else changes. */
|
|
9108
|
+
/* Measured baseline before choosing these: .ds-dash-agent is already
|
|
9109
|
+
font-weight 600 / color --fg, and .ds-dash-cwd is already --fg-3. So the
|
|
9110
|
+
differentiator cannot BE --fg-3 (that is the default) -- error must rise
|
|
9111
|
+
above the baseline and idle must fall below it. */
|
|
9112
|
+
.ds-247420 .ds-dash-card.is-compact.is-error { box-shadow: inset 2px 0 0 var(--flame); }
|
|
9113
|
+
.ds-247420 .ds-dash-card.is-compact.is-error .ds-dash-agent { font-weight: 700; color: var(--fg); }
|
|
9114
|
+
.ds-247420 .ds-dash-card.is-compact.is-running .ds-dash-agent { font-weight: 600; color: var(--fg); }
|
|
9115
|
+
/* Idle recedes by weight and by the tier-2 tone -- NOT by opacity, which would
|
|
9116
|
+
scale every child including the status word and drop it under the contrast
|
|
9117
|
+
floor. --fg-2 stays a real text tone. */
|
|
9118
|
+
.ds-247420 .ds-dash-card.is-compact.is-stale .ds-dash-agent { font-weight: 400; color: var(--fg-2); }
|
|
9038
9119
|
.ds-247420 .ds-dash-card.is-error { border-color: var(--flame); }
|
|
9039
9120
|
.ds-247420 .ds-dash-card-head { display: flex; align-items: center; gap: var(--space-2); }
|
|
9040
9121
|
.ds-247420 .ds-dash-status { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); }
|