anentrypoint-design 1.0.2 → 1.0.3

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 CHANGED
@@ -1,6 +1,102 @@
1
- /* chat.css — chat-specific styles. Most chat styles live in app-shell.css under
2
- the .chat-* prefix. This file carries the AgentChat kit styles (the reusable
3
- multi-agent orchestration chat surface). */
1
+ /* chat.css — chat-specific styles, including the base .chat-* rules used by
2
+ Chat()/ChatMessage() (chat/threads.js, chat/message.js): .chat, .chat-head,
3
+ .chat-thread, .chat-msg, .chat-avatar, .chat-bubble, .chat-stack,
4
+ .chat-empty. This file also carries the AgentChat kit styles (the reusable
5
+ multi-agent orchestration chat surface, .agentchat-*). */
6
+
7
+ /* Base chat surface — the default (non-flat) messenger layout: left/right
8
+ avatar-disc + colored-bubble turns. .chat-msg-flat further down overrides
9
+ these to the claude.ai/code full-width turn style; these are the rules it
10
+ overrides FROM, and were previously entirely undefined, so the default
11
+ layout rendered on raw flex/browser defaults (unstyled bubble shape, no
12
+ avatar depth, no defined thread padding) until a Chat() consumer supplied
13
+ its own colliding class names. */
14
+ .chat {
15
+ display: flex;
16
+ flex-direction: column;
17
+ flex: 1;
18
+ min-height: 0;
19
+ }
20
+ .chat-head {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: var(--space-2);
24
+ padding: var(--space-2-75) var(--space-3);
25
+ border-bottom: 1px solid var(--panel-3, color-mix(in oklab, var(--fg) 10%, transparent));
26
+ flex-shrink: 0;
27
+ }
28
+ .chat-head .ds-chat-title { font-size: var(--fs-sm); font-weight: var(--fw-medium); margin: 0; }
29
+ .chat-head .sub { font-size: var(--fs-tiny); color: var(--fg-3); }
30
+ .chat-head .spread { flex: 1; }
31
+ .chat-thread {
32
+ flex: 1;
33
+ min-height: 0;
34
+ overflow-y: auto;
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: var(--space-3);
38
+ padding: var(--space-3) var(--space-3) var(--space-4);
39
+ /* A short thread must not stretch its one message across the whole
40
+ viewport height — pack content to the bottom (where the composer is)
41
+ instead of centering it in a sea of empty space above and below. */
42
+ justify-content: flex-end;
43
+ }
44
+ .chat-empty {
45
+ margin: auto;
46
+ max-width: var(--measure-narrow, 60ch);
47
+ text-align: center;
48
+ padding: var(--space-5) var(--space-3);
49
+ color: var(--fg-3);
50
+ }
51
+ .chat-empty-title { font-size: var(--fs-lg); font-weight: var(--fw-medium); color: var(--fg-2); margin: 0 0 var(--space-1); }
52
+ .chat-empty-sub { font-size: var(--fs-sm); margin: 0; }
53
+ .chat-msg {
54
+ display: flex;
55
+ gap: var(--space-2);
56
+ align-items: flex-start;
57
+ max-width: 100%;
58
+ }
59
+ .chat-msg.you { flex-direction: row-reverse; }
60
+ .chat-msg.centered { justify-content: center; text-align: center; }
61
+ .chat-avatar {
62
+ width: 32px;
63
+ height: 32px;
64
+ flex-shrink: 0;
65
+ border-radius: 50%;
66
+ background: var(--bg-3);
67
+ color: var(--fg);
68
+ display: inline-flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ font-size: var(--fs-tiny);
72
+ font-weight: var(--fw-medium);
73
+ /* Depth over a flat solid-color disc: a hairline inset ring plus the same
74
+ soft shadow --panel-shadow uses elsewhere, so avatars read as a real
75
+ surface element instead of a wireframe placeholder. */
76
+ box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fg) 10%, transparent), 0 1px 2px color-mix(in oklab, var(--fg) 10%, transparent);
77
+ }
78
+ .chat-stack {
79
+ display: flex;
80
+ flex-direction: column;
81
+ gap: var(--space-1);
82
+ max-width: 70%;
83
+ min-width: 0;
84
+ }
85
+ .chat-msg.you .chat-stack { align-items: flex-end; }
86
+ .chat-bubble {
87
+ padding: var(--space-2) var(--space-2-75);
88
+ background: var(--bg-2);
89
+ color: var(--fg);
90
+ /* r-2, not a pill — a pill-capsule bubble read as a generic chat-template
91
+ shape inconsistent with every other rounded element in the app (which
92
+ all use the r-0..r-3 scale, never 999px). */
93
+ border-radius: var(--r-2);
94
+ line-height: var(--lh-base, 1.5);
95
+ word-break: break-word;
96
+ font-size: var(--fs-sm);
97
+ }
98
+ .chat-msg.you .chat-bubble { background: var(--accent); color: var(--accent-fg); }
99
+ .chat-meta { display: flex; gap: var(--space-1-5); font-size: var(--fs-nano); color: var(--fg-3); padding: 0 var(--space-1); }
4
100
 
5
101
  .agentchat {
6
102
  display: flex;
@@ -187,6 +187,16 @@
187
187
  --ff-body: system-ui, sans-serif;
188
188
  --ff-mono: ui-monospace, Menlo, Consolas, monospace;
189
189
 
190
+ /* Weight scale — regular is the default voice for body/UI text everywhere;
191
+ medium/semibold/bold are reserved for genuine emphasis (active state,
192
+ unread counts, own-message author, section headers). Never reach for a
193
+ hardcoded 600/700 in a component rule — use these so the whole surface
194
+ can be re-tuned in one place instead of drifting per-component. */
195
+ --fw-regular: 400;
196
+ --fw-medium: 500;
197
+ --fw-semibold: 600;
198
+ --fw-bold: 700;
199
+
190
200
  /* Sub-12px tiers exist ONLY for dense OS/data chrome — taskbar strips,
191
201
  session chips, tool-call headers, file-row metadata, ID/stat columns.
192
202
  Never use them for body copy or ordinary UI text: at these sizes the
package/community.css CHANGED
@@ -82,7 +82,7 @@
82
82
  justify-content: center;
83
83
  font-family: var(--ff-body);
84
84
  font-size: var(--fs-lg);
85
- font-weight: 600;
85
+ font-weight: var(--fw-medium);
86
86
  letter-spacing: var(--tr-tight);
87
87
  cursor: pointer;
88
88
  overflow: hidden;
@@ -139,7 +139,7 @@
139
139
  color: var(--ink);
140
140
  font-family: var(--ff-mono);
141
141
  font-size: var(--fs-micro);
142
- font-weight: 700;
142
+ font-weight: var(--fw-bold);
143
143
  border-radius: var(--r-pill);
144
144
  display: flex;
145
145
  align-items: center;
@@ -158,7 +158,7 @@
158
158
  align-items: center;
159
159
  justify-content: center;
160
160
  font-size: var(--fs-xl);
161
- font-weight: 400;
161
+ font-weight: var(--fw-regular);
162
162
  cursor: pointer;
163
163
  border: 0;
164
164
  transition:
@@ -204,7 +204,7 @@
204
204
  padding: var(--space-2-75) var(--space-3);
205
205
  background: var(--bg-2);
206
206
  box-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 8%, transparent);
207
- font-weight: 600;
207
+ font-weight: var(--fw-medium);
208
208
  font-size: var(--fs-sm);
209
209
  letter-spacing: -0.01em;
210
210
  /* No cursor:pointer, no :hover background, no user-select:none. This is a
@@ -259,7 +259,7 @@
259
259
  padding: var(--space-1) var(--space-2);
260
260
  font-family: var(--ff-body);
261
261
  font-size: var(--fs-micro);
262
- font-weight: 600;
262
+ font-weight: var(--fw-medium);
263
263
  color: var(--fg-3);
264
264
  letter-spacing: var(--tr-caps);
265
265
  text-transform: uppercase;
@@ -298,7 +298,7 @@
298
298
  font-family: var(--ff-mono);
299
299
  font-size: var(--fs-micro);
300
300
  color: var(--fg-3);
301
- font-weight: 500;
301
+ font-weight: var(--fw-medium);
302
302
  letter-spacing: 0;
303
303
  text-transform: none;
304
304
  }
@@ -368,7 +368,7 @@
368
368
  .cm-channel-item.active {
369
369
  background: color-mix(in oklab, var(--fg) 10%, transparent);
370
370
  color: var(--fg);
371
- font-weight: 500;
371
+ font-weight: var(--fw-medium);
372
372
  }
373
373
  .cm-channel-item.active::before {
374
374
  content: '';
@@ -474,7 +474,7 @@
474
474
  color: var(--ink);
475
475
  font-family: var(--ff-mono);
476
476
  font-size: var(--fs-micro);
477
- font-weight: 700;
477
+ font-weight: var(--fw-bold);
478
478
  border-radius: var(--r-pill);
479
479
  display: inline-flex;
480
480
  align-items: center;
@@ -558,7 +558,7 @@
558
558
  align-items: center;
559
559
  justify-content: center;
560
560
  font-size: var(--fs-pico);
561
- font-weight: 600;
561
+ font-weight: var(--fw-medium);
562
562
  overflow: hidden;
563
563
  transition: box-shadow var(--dur-snap) var(--ease);
564
564
  }
@@ -597,7 +597,7 @@
597
597
  a pulsing dot and must read as the loudest thing in the strip). */
598
598
  .cm-vs-label {
599
599
  color: var(--green);
600
- font-weight: 700;
600
+ font-weight: var(--fw-bold);
601
601
  display: inline-flex;
602
602
  align-items: center;
603
603
  gap: var(--space-1-75);
@@ -623,7 +623,7 @@
623
623
 
624
624
  .cm-vs-channel {
625
625
  font-size: var(--fs-sm);
626
- font-weight: 600;
626
+ font-weight: var(--fw-medium);
627
627
  color: var(--fg);
628
628
  overflow: hidden;
629
629
  text-overflow: ellipsis;
@@ -651,7 +651,7 @@
651
651
  border-radius: var(--r-1);
652
652
  font-family: var(--ff-body);
653
653
  font-size: var(--fs-xs);
654
- font-weight: 600;
654
+ font-weight: var(--fw-medium);
655
655
  cursor: pointer;
656
656
  transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
657
657
  }
@@ -693,7 +693,7 @@
693
693
  align-items: center;
694
694
  justify-content: center;
695
695
  font-size: var(--fs-xs);
696
- font-weight: 600;
696
+ font-weight: var(--fw-medium);
697
697
  overflow: hidden;
698
698
  }
699
699
  .cm-user-avatar img {
@@ -723,7 +723,7 @@
723
723
  }
724
724
  .cm-user-name {
725
725
  font-size: var(--fs-xs);
726
- font-weight: 600;
726
+ font-weight: var(--fw-medium);
727
727
  color: var(--fg);
728
728
  overflow: hidden;
729
729
  text-overflow: ellipsis;
@@ -804,7 +804,7 @@
804
804
  pinned weight/size/colour, but a bare h1 also brings a UA block margin
805
805
  that would break this flex row — so the margin is zeroed explicitly. */
806
806
  margin: 0;
807
- font-weight: 600;
807
+ font-weight: var(--fw-medium);
808
808
  font-size: var(--fs-sm);
809
809
  color: var(--fg);
810
810
  letter-spacing: -0.01em;
@@ -868,7 +868,7 @@
868
868
  padding: var(--space-2-75) var(--space-3) var(--space-1-75);
869
869
  font-family: var(--ff-body);
870
870
  font-size: var(--fs-micro);
871
- font-weight: 600;
871
+ font-weight: var(--fw-medium);
872
872
  color: var(--fg-3);
873
873
  letter-spacing: var(--tr-caps);
874
874
  text-transform: uppercase;
@@ -904,7 +904,7 @@
904
904
  align-items: center;
905
905
  justify-content: center;
906
906
  font-size: var(--fs-micro);
907
- font-weight: 600;
907
+ font-weight: var(--fw-medium);
908
908
  overflow: hidden;
909
909
  }
910
910
  .cm-member-avatar img {
@@ -965,7 +965,7 @@
965
965
  align-items: center;
966
966
  justify-content: center;
967
967
  font-size: var(--fs-lg);
968
- font-weight: 600;
968
+ font-weight: var(--fw-medium);
969
969
  overflow: hidden;
970
970
  }
971
971
  .cm-voice-user-avatar img {
@@ -981,7 +981,7 @@
981
981
  .cm-voice-user-name {
982
982
  font-size: var(--fs-xs);
983
983
  color: var(--fg);
984
- font-weight: 500;
984
+ font-weight: var(--fw-medium);
985
985
  max-width: 100px;
986
986
  overflow: hidden;
987
987
  text-overflow: ellipsis;
@@ -1176,7 +1176,7 @@
1176
1176
  flex: 1 1 auto;
1177
1177
  min-width: 0;
1178
1178
  font-family: var(--font-mono, monospace);
1179
- font-weight: 600;
1179
+ font-weight: var(--fw-medium);
1180
1180
  color: var(--fg);
1181
1181
  white-space: nowrap;
1182
1182
  overflow: hidden;
@@ -1199,7 +1199,7 @@
1199
1199
  font-size: var(--fs-xs);
1200
1200
  }
1201
1201
  .cm-rb-label { flex: none; color: var(--fg-2); }
1202
- .cm-rb-author { color: var(--accent); font-weight: 600; }
1202
+ .cm-rb-author { color: var(--accent); font-weight: var(--fw-medium); }
1203
1203
  .cm-rb-preview {
1204
1204
  flex: 1 1 auto;
1205
1205
  min-width: 0;
@@ -1231,7 +1231,7 @@
1231
1231
  width: 100%;
1232
1232
  padding: var(--space-2) var(--space-3);
1233
1233
  font-size: var(--fs-xs);
1234
- font-weight: 500;
1234
+ font-weight: var(--fw-medium);
1235
1235
  }
1236
1236
  .cm-banner.clickable { cursor: pointer; }
1237
1237
  .cm-banner.clickable:hover { background: color-mix(in oklab, currentColor 10%, transparent); }
@@ -1242,7 +1242,7 @@
1242
1242
  background: transparent;
1243
1243
  color: inherit;
1244
1244
  font: inherit;
1245
- font-weight: 600;
1245
+ font-weight: var(--fw-semibold);
1246
1246
  padding: var(--space-hair) var(--space-2);
1247
1247
  border-radius: var(--r-1);
1248
1248
  cursor: pointer;
@@ -1304,7 +1304,7 @@
1304
1304
  color: var(--fg);
1305
1305
  font-family: var(--ff-body);
1306
1306
  font-size: var(--fs-sm);
1307
- font-weight: 600;
1307
+ font-weight: var(--fw-medium);
1308
1308
  cursor: pointer;
1309
1309
  user-select: none;
1310
1310
  -webkit-user-select: none;
@@ -1426,7 +1426,7 @@
1426
1426
  color: var(--fg);
1427
1427
  font-family: var(--ff-body);
1428
1428
  font-size: var(--fs-sm);
1429
- font-weight: 600;
1429
+ font-weight: var(--fw-semibold);
1430
1430
  cursor: pointer;
1431
1431
  transition: background var(--dur-base) var(--ease);
1432
1432
  }
@@ -1456,7 +1456,7 @@
1456
1456
  padding: var(--space-3);
1457
1457
  border-bottom: var(--bw-hair) solid var(--rule);
1458
1458
  }
1459
- .vx-modal-title { margin: 0; font-size: var(--fs-lg); font-weight: 600; }
1459
+ .vx-modal-title { margin: 0; font-size: var(--fs-lg); font-weight: var(--fw-semibold); }
1460
1460
  .vx-modal-x {
1461
1461
  border: 0; background: transparent; color: var(--fg-3);
1462
1462
  font-size: var(--fs-xl); line-height: 1; cursor: pointer; padding: 0 var(--space-1);
@@ -1480,7 +1480,7 @@
1480
1480
  color: var(--fg);
1481
1481
  font-family: var(--ff-body);
1482
1482
  font-size: var(--fs-tiny);
1483
- font-weight: 600;
1483
+ font-weight: var(--fw-medium);
1484
1484
  letter-spacing: var(--tr-caps);
1485
1485
  cursor: pointer;
1486
1486
  }
@@ -1538,13 +1538,13 @@
1538
1538
  .vx-chip-current { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 16%, var(--bg-3)); }
1539
1539
  .vx-chip-live { border-color: var(--green-2); }
1540
1540
  .vx-chip-dot { width: 8px; height: 8px; border-radius: var(--r-pill); background: var(--fg-3); flex-shrink: 0; }
1541
- .vx-chip-name { font-weight: 600; }
1541
+ .vx-chip-name { font-weight: var(--fw-medium); }
1542
1542
  .vx-chip-dur { font-family: var(--ff-mono); color: var(--fg-3); }
1543
1543
  /* Joins the small-label voice above. Deliberate overrides: --green + weight 700
1544
1544
  because this is the "LIVE" badge on a session chip, same signal role as
1545
1545
  .cm-vs-label. */
1546
1546
  .vx-chip-tag {
1547
- color: var(--green); font-weight: 700;
1547
+ color: var(--green); font-weight: var(--fw-bold);
1548
1548
  }
1549
1549
 
1550
1550
  /* VoiceControls — vx-vc-* */
@@ -1590,7 +1590,7 @@
1590
1590
  display: flex; align-items: center; justify-content: space-between;
1591
1591
  padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule);
1592
1592
  }
1593
- .cm-tp-title { font-weight: 700; font-size: var(--fs-xs); }
1593
+ .cm-tp-title { font-weight: var(--fw-bold); font-size: var(--fs-xs); }
1594
1594
  .cm-tp-head-actions { display: flex; gap: var(--space-1); }
1595
1595
  .cm-tp-new, .cm-tp-close {
1596
1596
  border: none; background: transparent; color: var(--fg-2, var(--fg));
@@ -1608,7 +1608,7 @@
1608
1608
  }
1609
1609
  .cm-tp-item:hover { background: var(--bg-3); }
1610
1610
  .cm-tp-item.is-active { background: var(--bg-3); box-shadow: inset 3px 0 0 var(--accent); }
1611
- .cm-tp-item.is-unread .cm-tp-item-title { font-weight: 700; }
1611
+ .cm-tp-item.is-unread .cm-tp-item-title { font-weight: var(--fw-bold); }
1612
1612
  .cm-tp-dot { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
1613
1613
  .cm-tp-item-title { font-size: var(--fs-xs); }
1614
1614
  .cm-tp-item-snippet { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@@ -1664,7 +1664,7 @@
1664
1664
  .cm-forum-item { display: flex; flex-direction: column; gap: var(--space-1); width: 100%; text-align: left; cursor: pointer; padding: var(--space-2) var(--space-3); border: none; background: transparent; border-bottom: var(--bw-hair) solid var(--rule); color: var(--fg); }
1665
1665
  .cm-forum-item:hover { background: var(--bg-3); }
1666
1666
  .cm-forum-item-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
1667
- .cm-forum-item-title { font-weight: 700; font-size: var(--fs-xs); }
1667
+ .cm-forum-item-title { font-weight: var(--fw-bold); font-size: var(--fs-xs); }
1668
1668
  .cm-forum-item-replies { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .8; white-space: nowrap; }
1669
1669
  .cm-forum-item-snippet { font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .85; }
1670
1670
  .cm-forum-item-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; font-size: var(--fs-micro); color: var(--fg-2, var(--fg)); opacity: .7; }
@@ -1677,9 +1677,9 @@
1677
1677
  .cm-page { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow-y: auto; background: var(--bg-1, var(--bg-2)); color: var(--fg); }
1678
1678
  .cm-page-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-3); border-bottom: var(--bw-hair) solid var(--rule); }
1679
1679
  .cm-page-head-title { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
1680
- .cm-page-title { margin: 0; font-size: var(--fs-xl); font-weight: 700; }
1680
+ .cm-page-title { margin: 0; font-size: var(--fs-xl); font-weight: var(--fw-bold); }
1681
1681
  .cm-page-meta { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-xs); color: var(--fg-2, var(--fg)); }
1682
- .cm-page-author { font-weight: 500; }
1682
+ .cm-page-author { font-weight: var(--fw-medium); }
1683
1683
  .cm-page-time { opacity: .75; }
1684
1684
  .cm-page-edit { padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); cursor: pointer; }
1685
1685
  .cm-page-body { padding: var(--space-3); line-height: 1.6; }