anentrypoint-design 0.0.296 → 0.0.298

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 CHANGED
@@ -590,7 +590,7 @@ body.canvas-host { background: transparent !important; }
590
590
  .glyph {
591
591
  display: inline-flex; align-items: center; justify-content: center;
592
592
  width: 18px; height: 18px;
593
- font-family: var(--ff-mono); font-size: 13px;
593
+ font-family: var(--ff-mono); font-size: var(--fs-tiny);
594
594
  opacity: 0.8;
595
595
  }
596
596
 
@@ -685,7 +685,7 @@ a.row:hover, button.row:hover, .row[role="button"]:hover {
685
685
  font-family: var(--ff-mono);
686
686
  font-size: var(--fs-sm);
687
687
  line-height: var(--lh-snug);
688
- margin-top: 8px;
688
+ margin-top: var(--space-2);
689
689
  padding: 10px 12px;
690
690
  background: var(--bg);
691
691
  border-radius: var(--r-1);
@@ -1159,7 +1159,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1159
1159
 
1160
1160
  /* Field char counter (TextField maxLength) */
1161
1161
  .ds-field-count {
1162
- font-size: var(--fs-tiny, 12px);
1162
+ font-size: var(--fs-tiny, 13px);
1163
1163
  color: var(--fg-3, var(--fg-2));
1164
1164
  text-align: right;
1165
1165
  }
@@ -1607,7 +1607,11 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1607
1607
  Shared by FileRow/FileCell (.is-marked) and the file/session select-all +
1608
1608
  SessionCard select (aria-checked true/mixed) since the bundle concatenates
1609
1609
  all CSS. Replaces the old [x]/[ ] bracket text - no glyphs, AT keeps the
1610
- role=checkbox/aria-checked name+state. */
1610
+ role=checkbox/aria-checked name+state.
1611
+ See also .ds-check in editor-primitives.css — a separate native-input
1612
+ checkbox family for form/settings contexts; intentionally distinct
1613
+ rendering (native vs CSS-drawn), do not let one drift toward the other
1614
+ by accident. */
1611
1615
  .ds-check-box {
1612
1616
  width: 15px; height: 15px; box-sizing: border-box; flex: 0 0 auto; position: relative;
1613
1617
  border: 1.5px solid var(--fg-3); border-radius: var(--r-0);
@@ -1758,7 +1762,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1758
1762
  /* Stage — the scrollable content column. */
1759
1763
  .ds-file-stage {
1760
1764
  display: flex; flex-direction: column; gap: var(--space-3);
1761
- width: 100%; max-width: 920px; margin: 0 auto;
1765
+ width: 100%; max-width: var(--measure-wide); margin: 0 auto;
1762
1766
  padding: var(--space-2) var(--space-3) var(--space-4);
1763
1767
  }
1764
1768
  /* When the stage is the app-main child, the shell already supplies top
@@ -1767,7 +1771,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1767
1771
  .app-main .ds-file-stage { padding-top: 0; }
1768
1772
 
1769
1773
  /* Full-width files stack: the stage's space-3 vertical beat without its
1770
- 920px cap/auto-margins, so the roots / toolbar / bulkbar / uploads / grid
1774
+ --measure-wide cap/auto-margins, so the roots / toolbar / bulkbar / uploads / grid
1771
1775
  bands keep one consistent rhythm instead of touching edge-to-edge. Carries
1772
1776
  the same side/bottom padding as .ds-file-stage (top collapses the same way
1773
1777
  when mounted directly under .app-main, which already supplies top padding)
@@ -2711,6 +2715,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
2711
2715
  .ds-select {
2712
2716
  width: 100%;
2713
2717
  min-width: 0;
2718
+ min-height: 32px; /* shared control floor with .btn/.btn-primary/.btn-ghost */
2714
2719
  padding: 10px 30px 10px 14px; /* right gap clears the chevron */
2715
2720
  background: var(--bg-2);
2716
2721
  border: 0;
package/chat.css CHANGED
@@ -151,7 +151,7 @@
151
151
  }
152
152
  .agentchat-jump.show { display: inline-flex; }
153
153
  .agentchat-jump:hover { background: var(--bg-3); }
154
- .agentchat-jump:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
154
+ .agentchat-jump:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
155
155
 
156
156
  /* Streaming caret: a thin blinking bar at the live edge of an assistant turn. */
157
157
  .chat-stream-caret {
@@ -173,7 +173,7 @@
173
173
  }
174
174
  .chat-msg-action-label { font-size: var(--fs-tiny); }
175
175
  .chat-msg-action:hover { background: var(--bg-2); color: var(--fg); }
176
- .chat-msg-action:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
176
+ .chat-msg-action:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; opacity: 1; }
177
177
 
178
178
  /* Empty state: a fresh thread is an invitation, not a void. */
179
179
  .agentchat-empty {
@@ -207,7 +207,7 @@
207
207
  color: var(--fg-2, var(--fg));
208
208
  }
209
209
  .agentchat-empty-suggestion:hover, .chat-empty-suggestion:hover { background: color-mix(in srgb, var(--accent, var(--fg)) 12%, transparent); }
210
- .agentchat-empty-suggestion:focus-visible, .chat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
210
+ .agentchat-empty-suggestion:focus-visible, .chat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: var(--focus-offset); }
211
211
 
212
212
  /* Guided install path in the empty state: copy line + monospaced command rows
213
213
  (each with its own copy button) + a recheck button. No animation. */
@@ -240,7 +240,7 @@
240
240
  font-family: var(--ff-body); font-size: var(--fs-tiny);
241
241
  }
242
242
  .agentchat-install-copy:hover { background: var(--bg-3); color: var(--fg); }
243
- .agentchat-install-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
243
+ .agentchat-install-copy:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
244
244
  .agentchat-install-actions { display: flex; justify-content: flex-start; }
245
245
 
246
246
  /* Host-supplied transcript export actions riding the controls row. */
@@ -251,7 +251,7 @@
251
251
  font-family: var(--ff-body); font-size: var(--fs-tiny);
252
252
  }
253
253
  .agentchat-export-act:hover { background: var(--bg-2); color: var(--fg); }
254
- .agentchat-export-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
254
+ .agentchat-export-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
255
255
 
256
256
  /* "working" tail: a long silent tool call shouldn't read as frozen. */
257
257
  .agentchat-working {
@@ -382,7 +382,7 @@
382
382
  /* Rail filter uses the shared .ds-search-input primitive (provides bg/border/
383
383
  radius/focus-ring); only the rail layout + touch floor live here. */
384
384
  .ds-session-head .ds-search-input { order: 1; flex: 1 1 auto; min-width: 0; min-height: 36px; padding: 0 10px; }
385
- .ds-session-new:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
385
+ .ds-session-new:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
386
386
  /* Touch floor (must FOLLOW the base rules - same specificity, order decides). */
387
387
  @media (pointer: coarse) {
388
388
  .ds-session-new { width: 44px; min-height: 44px; }
@@ -401,7 +401,7 @@
401
401
  cursor: pointer; text-align: left; color: var(--fg);
402
402
  }
403
403
  .ds-session-row:hover { background: var(--bg-2); }
404
- .ds-session-row:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
404
+ .ds-session-row:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: calc(var(--focus-offset) * -1); }
405
405
  .ds-session-row.active { background: var(--accent-tint); box-shadow: inset 2px 0 0 var(--accent); }
406
406
  .ds-session-row.rail-green::before, .ds-session-row.rail-purple::before, .ds-session-row.rail-flame::before {
407
407
  content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: var(--r-hair);
@@ -495,7 +495,7 @@
495
495
  }
496
496
  .chat-code-block:hover .chat-code-copy, .chat-code-block:focus-within .chat-code-copy { opacity: 1; }
497
497
  .chat-code-copy.is-copied { color: var(--accent-ink); border-color: var(--accent); }
498
- .chat-code-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
498
+ .chat-code-copy:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; opacity: 1; }
499
499
  /* Head-placed copy (structured CodeNode + FilePreviewCode) is always visible. */
500
500
  .chat-code-head .spread { flex: 1; }
501
501
  .chat-code-copy-head { position: static; opacity: 1; }
@@ -590,7 +590,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
590
590
  cursor: pointer; font-family: var(--ff-body); font-size: var(--fs-tiny);
591
591
  }
592
592
  .ds-dash-errors-toggle.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
593
- .ds-dash-errors-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
593
+ .ds-dash-errors-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
594
594
 
595
595
  /* --- C3: per-card select checkbox. --- */
596
596
  .ds-dash-select {
@@ -600,7 +600,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
600
600
  font-family: var(--ff-mono); font-size: var(--fs-sm);
601
601
  }
602
602
  .ds-dash-select[aria-checked="true"] { color: var(--accent-ink); }
603
- .ds-dash-select:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
603
+ .ds-dash-select:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
604
604
 
605
605
  /* --- C5: active dashboard card (current conversation). --- */
606
606
  .ds-dash-card.is-active { box-shadow: inset 2px 0 0 var(--accent); }
@@ -622,7 +622,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
622
622
 
623
623
  /* --- E1: inline file preview pane (split view, non-modal). --- */
624
624
  .ds-preview-pane { display: flex; flex-direction: column; min-height: 0; height: 100%; overflow: hidden; }
625
- .ds-preview-pane:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
625
+ .ds-preview-pane:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: calc(var(--focus-offset) * -1); }
626
626
  .ds-preview-pane .ds-preview-body { flex: 1; min-height: 0; overflow: auto; }
627
627
  .ds-preview-pane-empty { align-items: center; justify-content: center; color: var(--fg-3); font-size: var(--fs-sm); }
628
628
  .ds-preview-code-wrap { display: flex; flex-direction: column; min-height: 0; }
@@ -639,7 +639,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
639
639
  border-radius: var(--r-1); background: var(--bg-2); color: var(--fg-2); cursor: pointer;
640
640
  font-family: var(--ff-body); font-size: var(--fs-tiny);
641
641
  }
642
- .ds-file-more-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
642
+ .ds-file-more-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
643
643
  /* --- D3: locked/no-access file row. --- */
644
644
  .ds-file-row.is-locked { opacity: .6; }
645
645
 
@@ -652,7 +652,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
652
652
  }
653
653
  .ds-roots-tab:hover { background: var(--bg-2); color: var(--fg); }
654
654
  .ds-roots-tab.active { background: var(--bg); color: var(--fg); }
655
- .ds-roots-tab:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
655
+ .ds-roots-tab:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
656
656
 
657
657
  /* --- H4: touch targets. On a coarse pointer / narrow screen the hover-revealed
658
658
  action rows are made permanently visible and small controls floor to 44px so
@@ -660,6 +660,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
660
660
  @media (pointer: coarse), (max-width: 640px) {
661
661
  .chat-msg-actions { opacity: 1; }
662
662
  .chat-code-copy { opacity: 1; }
663
+ .chat-tool-copy { opacity: 1; min-width: 44px; min-height: 44px; }
663
664
  .chat-msg-action { min-width: 44px; height: 44px; }
664
665
  .ds-dash-select { min-width: 44px; min-height: 44px; }
665
666
  .ds-file-more-btn, .ds-roots-tab, .ds-dash-errors-toggle { min-height: 44px; }
@@ -684,7 +685,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
684
685
  color: var(--fg-3); font-family: var(--ff-body); font-size: var(--fs-micro);
685
686
  }
686
687
  .ds-session-meta-copy:hover { background: var(--bg-3); color: var(--fg); }
687
- .ds-session-meta-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
688
+ .ds-session-meta-copy:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
688
689
  @media (pointer: coarse), (max-width: 640px) {
689
690
  .ds-session-meta-copy { min-height: 44px; min-width: 44px; }
690
691
  }
@@ -712,7 +713,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
712
713
  }
713
714
 
714
715
  /* Drag-over ring: token accent, never a hex. */
715
- .chat-composer.dragover { outline: 2px solid var(--accent-ink); outline-offset: -2px; border-radius: var(--r-2); }
716
+ .chat-composer.dragover { outline: var(--focus-w) solid var(--focus-color); outline-offset: calc(var(--focus-offset) * -1); border-radius: var(--r-2); }
716
717
 
717
718
  /* Per-bit composer context: only the bit that owns a control is a button. */
718
719
  .chat-composer-context-bit {
@@ -753,7 +754,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
753
754
  font-family: var(--ff-body); font-size: var(--fs-tiny);
754
755
  }
755
756
  .agentchat-earlier-btn:hover { background: var(--bg-2); color: var(--fg); }
756
- .agentchat-earlier-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
757
+ .agentchat-earlier-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
757
758
  @media (pointer: coarse) {
758
759
  .agentchat-earlier-btn { min-height: 44px; }
759
760
  }
@@ -861,7 +862,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
861
862
  }
862
863
  .chat-msg .chat-tool .chat-tool-head::-webkit-details-marker { display: none; }
863
864
  .chat-msg .chat-tool .chat-tool-head:hover { background: var(--bg-2); }
864
- .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
865
+ .chat-msg .chat-tool .chat-tool-head:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: calc(var(--focus-offset) * -1); }
865
866
  .chat-tool-icon { display: inline-flex; color: var(--fg-3); }
866
867
  .chat-tool-name { font-family: var(--ff-mono); font-weight: 600; color: var(--fg); }
867
868
  .chat-tool-label { color: var(--fg-3); font-size: var(--fs-tiny); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
@@ -888,7 +889,7 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
888
889
  .chat-tool-section-label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
889
890
  .chat-tool-copy { position: static; opacity: 0; }
890
891
  .chat-tool-section:hover .chat-tool-copy, .chat-tool-section:focus-within .chat-tool-copy { opacity: 1; }
891
- .chat-tool-copy:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; opacity: 1; }
892
+ .chat-tool-copy:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; opacity: 1; }
892
893
  .chat-tool-pre { margin: 0; padding: var(--space-2); background: var(--bg-2); border-radius: var(--r-1); font-family: var(--ff-mono); font-size: var(--fs-tiny); line-height: 1.45; overflow-x: auto; max-height: 320px; overflow-y: auto; }
893
894
  .chat-tool-pre.is-error { color: var(--flame); }
894
895
  .chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
@@ -952,10 +953,10 @@ button.chat-composer-context:focus-visible { outline: var(--focus-w) solid var(-
952
953
  .ds-dash-stream-disc { display: inline-flex; align-items: center; gap: var(--space-1); }
953
954
  .ds-dash-selectall { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-tiny); color: var(--fg-2); cursor: pointer; background: none; border: none; padding: var(--space-1); }
954
955
  .ds-dash-selectall:hover { color: var(--fg); }
955
- .ds-dash-selectall:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
956
+ .ds-dash-selectall:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; }
956
957
  .ds-dash-clear { background: none; border: none; color: var(--fg-3); cursor: pointer; font-size: var(--fs-tiny); text-decoration: underline dotted; padding: var(--space-1); }
957
958
  .ds-dash-clear:hover { color: var(--fg); }
958
- .ds-dash-clear:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; border-radius: var(--r-1); }
959
+ .ds-dash-clear:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: 1px; border-radius: var(--r-1); }
959
960
 
960
961
  /* Conversation-rail loading skeleton (cold ccsniff walk). */
961
962
  .ds-session-row-skeleton { display: flex; flex-direction: column; gap: 6px; padding: var(--space-2) var(--space-3); }