anentrypoint-design 0.0.188 → 0.0.191
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 +9 -5
- package/chat.css +94 -1
- package/dist/247420.css +103 -6
- package/dist/247420.js +12 -12
- package/package.json +1 -1
- package/src/components/agent-chat.js +68 -6
- package/src/components/chat.js +6 -2
- package/src/components/content.js +10 -2
- package/src/components/shell.js +3 -1
- package/src/kits/os/app-panes.css +3 -3
package/app-shell.css
CHANGED
|
@@ -1962,11 +1962,13 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1962
1962
|
.chat-composer textarea { padding: 10px 12px; }
|
|
1963
1963
|
}
|
|
1964
1964
|
|
|
1965
|
-
/*
|
|
1965
|
+
/* --- landscape orientation: reduce vertical space for composer --- */
|
|
1966
1966
|
@media (max-height: 500px) and (orientation: landscape) {
|
|
1967
1967
|
.chat-composer { padding: 6px 0; }
|
|
1968
|
-
.chat-composer textarea { min-height:
|
|
1969
|
-
|
|
1968
|
+
.chat-composer textarea { min-height: 44px; max-height: 120px; }
|
|
1969
|
+
/* Keep the send button at the 44x44 minimum tap target even in the
|
|
1970
|
+
space-constrained landscape layout. */
|
|
1971
|
+
.chat-composer .send, .chat-composer button { width: 44px; height: 44px; font-size: 14px; }
|
|
1970
1972
|
}
|
|
1971
1973
|
|
|
1972
1974
|
/* ============================================================
|
|
@@ -2636,9 +2638,11 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2636
2638
|
/* Mobile nav toggle (hamburger) — hidden on desktop, shown ≤900px */
|
|
2637
2639
|
.app-side-toggle {
|
|
2638
2640
|
display: none;
|
|
2639
|
-
position: fixed; top: calc((var(--app-topbar-h) -
|
|
2641
|
+
position: fixed; top: calc((var(--app-topbar-h) - 44px) / 2); left: 10px;
|
|
2640
2642
|
z-index: 51;
|
|
2641
|
-
|
|
2643
|
+
/* 44x44 minimum hit area (WCAG 2.5.5 / Apple HIG) - 36px is below the
|
|
2644
|
+
reliable-tap threshold on touch. */
|
|
2645
|
+
width: 44px; height: 44px;
|
|
2642
2646
|
align-items: center; justify-content: center;
|
|
2643
2647
|
font-size: 18px; line-height: 1;
|
|
2644
2648
|
background: var(--bg-2); color: var(--fg);
|
package/chat.css
CHANGED
|
@@ -19,6 +19,22 @@
|
|
|
19
19
|
}
|
|
20
20
|
.agentchat-controls .select,
|
|
21
21
|
.agentchat-controls [role="combobox"] { min-width: 130px; max-width: 240px; }
|
|
22
|
+
.agentchat-controls .ds-select { min-width: 130px; max-width: 240px; }
|
|
23
|
+
|
|
24
|
+
/* Narrow viewports: let the agent/model selects share the row two-up, then
|
|
25
|
+
stack full-width on the smallest screens, and drop the status to its own
|
|
26
|
+
line so nothing is squeezed below a usable tap size. */
|
|
27
|
+
@media (max-width: 640px) {
|
|
28
|
+
.agentchat-controls .select,
|
|
29
|
+
.agentchat-controls .ds-select,
|
|
30
|
+
.agentchat-controls [role="combobox"] { flex: 1 1 45%; max-width: none; }
|
|
31
|
+
.agentchat-status { margin-left: 0; flex-basis: 100%; }
|
|
32
|
+
}
|
|
33
|
+
@media (max-width: 360px) {
|
|
34
|
+
.agentchat-controls .select,
|
|
35
|
+
.agentchat-controls .ds-select,
|
|
36
|
+
.agentchat-controls [role="combobox"] { flex-basis: 100%; }
|
|
37
|
+
}
|
|
22
38
|
|
|
23
39
|
.agentchat-status {
|
|
24
40
|
display: inline-flex;
|
|
@@ -60,7 +76,9 @@
|
|
|
60
76
|
overflow: hidden;
|
|
61
77
|
text-overflow: ellipsis;
|
|
62
78
|
white-space: nowrap;
|
|
63
|
-
|
|
79
|
+
/* 60ch overflows narrow phones; clamp to the viewport so the path ellipsizes
|
|
80
|
+
instead of pushing the row wider than the screen. */
|
|
81
|
+
max-width: min(60ch, 60vw);
|
|
64
82
|
}
|
|
65
83
|
.agentchat-cwd-btn {
|
|
66
84
|
background: none;
|
|
@@ -72,6 +90,7 @@
|
|
|
72
90
|
font: inherit;
|
|
73
91
|
}
|
|
74
92
|
.agentchat-cwd-btn:hover { border-color: var(--accent); }
|
|
93
|
+
.agentchat-cwd-btn:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
|
|
75
94
|
.agentchat-cwd-input {
|
|
76
95
|
flex: 1;
|
|
77
96
|
min-width: 12ch;
|
|
@@ -99,3 +118,77 @@
|
|
|
99
118
|
flex-direction: column;
|
|
100
119
|
gap: var(--space-2, 8px);
|
|
101
120
|
}
|
|
121
|
+
|
|
122
|
+
/* Empty state: a fresh thread is an invitation, not a void. */
|
|
123
|
+
.agentchat-empty {
|
|
124
|
+
margin: auto;
|
|
125
|
+
display: flex;
|
|
126
|
+
flex-direction: column;
|
|
127
|
+
align-items: center;
|
|
128
|
+
gap: .4em;
|
|
129
|
+
text-align: center;
|
|
130
|
+
padding: var(--space-6, 32px) var(--space-4, 16px);
|
|
131
|
+
color: var(--fg-3);
|
|
132
|
+
max-width: 46ch;
|
|
133
|
+
}
|
|
134
|
+
.agentchat-empty-title { margin: 0; font-size: 1.05em; color: var(--fg-2, var(--fg)); }
|
|
135
|
+
.agentchat-empty-sub { margin: 0; font-size: .9em; }
|
|
136
|
+
.agentchat-empty-suggestions {
|
|
137
|
+
display: flex;
|
|
138
|
+
flex-wrap: wrap;
|
|
139
|
+
gap: .5em;
|
|
140
|
+
justify-content: center;
|
|
141
|
+
margin-top: .5em;
|
|
142
|
+
}
|
|
143
|
+
.agentchat-empty-suggestion {
|
|
144
|
+
cursor: pointer;
|
|
145
|
+
font: inherit;
|
|
146
|
+
font-size: .85em;
|
|
147
|
+
padding: .4em .8em;
|
|
148
|
+
border-radius: 999px;
|
|
149
|
+
border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
|
|
150
|
+
background: color-mix(in srgb, var(--fg) 5%, transparent);
|
|
151
|
+
color: var(--fg-2, var(--fg));
|
|
152
|
+
}
|
|
153
|
+
.agentchat-empty-suggestion:hover { background: color-mix(in srgb, var(--accent, var(--fg)) 12%, transparent); }
|
|
154
|
+
.agentchat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
|
|
155
|
+
|
|
156
|
+
/* "working" tail: a long silent tool call shouldn't read as frozen. */
|
|
157
|
+
.agentchat-working {
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: center;
|
|
160
|
+
gap: .5em;
|
|
161
|
+
padding: .3em .2em;
|
|
162
|
+
color: var(--fg-3);
|
|
163
|
+
font-size: .85em;
|
|
164
|
+
}
|
|
165
|
+
.agentchat-working-text { color: var(--fg-3); }
|
|
166
|
+
/* Self-contained dots (chat-thinking-dots lives in a kit sheet not bundled
|
|
167
|
+
into this DS distribution, so the agentchat tail draws its own). */
|
|
168
|
+
.agentchat-working .chat-thinking-dots { display: inline-flex; gap: 3px; }
|
|
169
|
+
.agentchat-working .chat-thinking-dots span {
|
|
170
|
+
width: 5px; height: 5px; border-radius: 50%;
|
|
171
|
+
background: var(--fg); opacity: .4;
|
|
172
|
+
animation: agentchat-dot-bounce 1.2s infinite ease-in-out;
|
|
173
|
+
}
|
|
174
|
+
.agentchat-working .chat-thinking-dots span:nth-child(2) { animation-delay: .15s; }
|
|
175
|
+
.agentchat-working .chat-thinking-dots span:nth-child(3) { animation-delay: .3s; }
|
|
176
|
+
@keyframes agentchat-dot-bounce {
|
|
177
|
+
0%, 80%, 100% { transform: scale(.6); opacity: .3; }
|
|
178
|
+
40% { transform: scale(1); opacity: .9; }
|
|
179
|
+
}
|
|
180
|
+
@media (prefers-reduced-motion: reduce) {
|
|
181
|
+
.agentchat-working .chat-thinking-dots span { animation: none; opacity: .7; }
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* Responsive: the control cluster + cwd bar must stay usable on phones/tablets.
|
|
185
|
+
The cwd path can't eat the row beside its label + buttons on a narrow screen. */
|
|
186
|
+
.agentchat-controls { flex-wrap: wrap; }
|
|
187
|
+
.agentchat-cwd-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: min(60ch, 60vw); }
|
|
188
|
+
@media (max-width: 900px) {
|
|
189
|
+
.agentchat-controls .ds-select { min-width: 110px; max-width: 180px; }
|
|
190
|
+
}
|
|
191
|
+
@media (max-width: 640px) {
|
|
192
|
+
.agentchat-cwd-text { max-width: 42vw; }
|
|
193
|
+
.agentchat-controls { gap: .4em; }
|
|
194
|
+
}
|
package/dist/247420.css
CHANGED
|
@@ -2363,11 +2363,13 @@
|
|
|
2363
2363
|
.ds-247420 .chat-composer textarea { padding: 10px 12px; }
|
|
2364
2364
|
}
|
|
2365
2365
|
|
|
2366
|
-
/*
|
|
2366
|
+
/* --- landscape orientation: reduce vertical space for composer --- */
|
|
2367
2367
|
@media (max-height: 500px) and (orientation: landscape) {
|
|
2368
2368
|
.ds-247420 .chat-composer { padding: 6px 0; }
|
|
2369
|
-
.ds-247420 .chat-composer textarea { min-height:
|
|
2370
|
-
|
|
2369
|
+
.ds-247420 .chat-composer textarea { min-height: 44px; max-height: 120px; }
|
|
2370
|
+
/* Keep the send button at the 44x44 minimum tap target even in the
|
|
2371
|
+
space-constrained landscape layout. */
|
|
2372
|
+
.ds-247420 .chat-composer .send, .ds-247420 .chat-composer button { width: 44px; height: 44px; font-size: 14px; }
|
|
2371
2373
|
}
|
|
2372
2374
|
|
|
2373
2375
|
/* ============================================================
|
|
@@ -3028,9 +3030,11 @@
|
|
|
3028
3030
|
/* Mobile nav toggle (hamburger) — hidden on desktop, shown ≤900px */
|
|
3029
3031
|
.ds-247420 .app-side-toggle {
|
|
3030
3032
|
display: none;
|
|
3031
|
-
position: fixed; top: calc((var(--app-topbar-h) -
|
|
3033
|
+
position: fixed; top: calc((var(--app-topbar-h) - 44px) / 2); left: 10px;
|
|
3032
3034
|
z-index: 51;
|
|
3033
|
-
|
|
3035
|
+
/* 44x44 minimum hit area (WCAG 2.5.5 / Apple HIG) - 36px is below the
|
|
3036
|
+
reliable-tap threshold on touch. */
|
|
3037
|
+
width: 44px; height: 44px;
|
|
3034
3038
|
align-items: center; justify-content: center;
|
|
3035
3039
|
font-size: 18px; line-height: 1;
|
|
3036
3040
|
background: var(--bg-2); color: var(--fg);
|
|
@@ -4631,6 +4635,22 @@
|
|
|
4631
4635
|
}
|
|
4632
4636
|
.ds-247420 .agentchat-controls .select,
|
|
4633
4637
|
.ds-247420 .agentchat-controls [role="combobox"] { min-width: 130px; max-width: 240px; }
|
|
4638
|
+
.ds-247420 .agentchat-controls .ds-select { min-width: 130px; max-width: 240px; }
|
|
4639
|
+
|
|
4640
|
+
/* Narrow viewports: let the agent/model selects share the row two-up, then
|
|
4641
|
+
stack full-width on the smallest screens, and drop the status to its own
|
|
4642
|
+
line so nothing is squeezed below a usable tap size. */
|
|
4643
|
+
@media (max-width: 640px) {
|
|
4644
|
+
.ds-247420 .agentchat-controls .select,
|
|
4645
|
+
.ds-247420 .agentchat-controls .ds-select,
|
|
4646
|
+
.ds-247420 .agentchat-controls [role="combobox"] { flex: 1 1 45%; max-width: none; }
|
|
4647
|
+
.ds-247420 .agentchat-status { margin-left: 0; flex-basis: 100%; }
|
|
4648
|
+
}
|
|
4649
|
+
@media (max-width: 360px) {
|
|
4650
|
+
.ds-247420 .agentchat-controls .select,
|
|
4651
|
+
.ds-247420 .agentchat-controls .ds-select,
|
|
4652
|
+
.ds-247420 .agentchat-controls [role="combobox"] { flex-basis: 100%; }
|
|
4653
|
+
}
|
|
4634
4654
|
|
|
4635
4655
|
.ds-247420 .agentchat-status {
|
|
4636
4656
|
display: inline-flex;
|
|
@@ -4672,7 +4692,9 @@
|
|
|
4672
4692
|
overflow: hidden;
|
|
4673
4693
|
text-overflow: ellipsis;
|
|
4674
4694
|
white-space: nowrap;
|
|
4675
|
-
|
|
4695
|
+
/* 60ch overflows narrow phones; clamp to the viewport so the path ellipsizes
|
|
4696
|
+
instead of pushing the row wider than the screen. */
|
|
4697
|
+
max-width: min(60ch, 60vw);
|
|
4676
4698
|
}
|
|
4677
4699
|
.ds-247420 .agentchat-cwd-btn {
|
|
4678
4700
|
background: none;
|
|
@@ -4684,6 +4706,7 @@
|
|
|
4684
4706
|
font: inherit;
|
|
4685
4707
|
}
|
|
4686
4708
|
.ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent); }
|
|
4709
|
+
.ds-247420 .agentchat-cwd-btn:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
|
|
4687
4710
|
.ds-247420 .agentchat-cwd-input {
|
|
4688
4711
|
flex: 1;
|
|
4689
4712
|
min-width: 12ch;
|
|
@@ -4712,6 +4735,80 @@
|
|
|
4712
4735
|
gap: var(--space-2, 8px);
|
|
4713
4736
|
}
|
|
4714
4737
|
|
|
4738
|
+
/* Empty state: a fresh thread is an invitation, not a void. */
|
|
4739
|
+
.ds-247420 .agentchat-empty {
|
|
4740
|
+
margin: auto;
|
|
4741
|
+
display: flex;
|
|
4742
|
+
flex-direction: column;
|
|
4743
|
+
align-items: center;
|
|
4744
|
+
gap: .4em;
|
|
4745
|
+
text-align: center;
|
|
4746
|
+
padding: var(--space-6, 32px) var(--space-4, 16px);
|
|
4747
|
+
color: var(--fg-3);
|
|
4748
|
+
max-width: 46ch;
|
|
4749
|
+
}
|
|
4750
|
+
.ds-247420 .agentchat-empty-title { margin: 0; font-size: 1.05em; color: var(--fg-2, var(--fg)); }
|
|
4751
|
+
.ds-247420 .agentchat-empty-sub { margin: 0; font-size: .9em; }
|
|
4752
|
+
.ds-247420 .agentchat-empty-suggestions {
|
|
4753
|
+
display: flex;
|
|
4754
|
+
flex-wrap: wrap;
|
|
4755
|
+
gap: .5em;
|
|
4756
|
+
justify-content: center;
|
|
4757
|
+
margin-top: .5em;
|
|
4758
|
+
}
|
|
4759
|
+
.ds-247420 .agentchat-empty-suggestion {
|
|
4760
|
+
cursor: pointer;
|
|
4761
|
+
font: inherit;
|
|
4762
|
+
font-size: .85em;
|
|
4763
|
+
padding: .4em .8em;
|
|
4764
|
+
border-radius: 999px;
|
|
4765
|
+
border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
|
|
4766
|
+
background: color-mix(in srgb, var(--fg) 5%, transparent);
|
|
4767
|
+
color: var(--fg-2, var(--fg));
|
|
4768
|
+
}
|
|
4769
|
+
.ds-247420 .agentchat-empty-suggestion:hover { background: color-mix(in srgb, var(--accent, var(--fg)) 12%, transparent); }
|
|
4770
|
+
.ds-247420 .agentchat-empty-suggestion:focus-visible { outline: 2px solid var(--accent, var(--fg)); outline-offset: 2px; }
|
|
4771
|
+
|
|
4772
|
+
/* "working" tail: a long silent tool call shouldn't read as frozen. */
|
|
4773
|
+
.ds-247420 .agentchat-working {
|
|
4774
|
+
display: flex;
|
|
4775
|
+
align-items: center;
|
|
4776
|
+
gap: .5em;
|
|
4777
|
+
padding: .3em .2em;
|
|
4778
|
+
color: var(--fg-3);
|
|
4779
|
+
font-size: .85em;
|
|
4780
|
+
}
|
|
4781
|
+
.ds-247420 .agentchat-working-text { color: var(--fg-3); }
|
|
4782
|
+
/* Self-contained dots (chat-thinking-dots lives in a kit sheet not bundled
|
|
4783
|
+
into this DS distribution, so the agentchat tail draws its own). */
|
|
4784
|
+
.ds-247420 .agentchat-working .chat-thinking-dots { display: inline-flex; gap: 3px; }
|
|
4785
|
+
.ds-247420 .agentchat-working .chat-thinking-dots span {
|
|
4786
|
+
width: 5px; height: 5px; border-radius: 50%;
|
|
4787
|
+
background: var(--fg); opacity: .4;
|
|
4788
|
+
animation: agentchat-dot-bounce 1.2s infinite ease-in-out;
|
|
4789
|
+
}
|
|
4790
|
+
.ds-247420 .agentchat-working .chat-thinking-dots span:nth-child(2) { animation-delay: .15s; }
|
|
4791
|
+
.ds-247420 .agentchat-working .chat-thinking-dots span:nth-child(3) { animation-delay: .3s; }
|
|
4792
|
+
@keyframes agentchat-dot-bounce {
|
|
4793
|
+
0%, 80%, 100% { transform: scale(.6); opacity: .3; }
|
|
4794
|
+
40% { transform: scale(1); opacity: .9; }
|
|
4795
|
+
}
|
|
4796
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4797
|
+
.ds-247420 .agentchat-working .chat-thinking-dots span { animation: none; opacity: .7; }
|
|
4798
|
+
}
|
|
4799
|
+
|
|
4800
|
+
/* Responsive: the control cluster + cwd bar must stay usable on phones/tablets.
|
|
4801
|
+
The cwd path can't eat the row beside its label + buttons on a narrow screen. */
|
|
4802
|
+
.ds-247420 .agentchat-controls { flex-wrap: wrap; }
|
|
4803
|
+
.ds-247420 .agentchat-cwd-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: min(60ch, 60vw); }
|
|
4804
|
+
@media (max-width: 900px) {
|
|
4805
|
+
.ds-247420 .agentchat-controls .ds-select { min-width: 110px; max-width: 180px; }
|
|
4806
|
+
}
|
|
4807
|
+
@media (max-width: 640px) {
|
|
4808
|
+
.ds-247420 .agentchat-cwd-text { max-width: 42vw; }
|
|
4809
|
+
.ds-247420 .agentchat-controls { gap: .4em; }
|
|
4810
|
+
}
|
|
4811
|
+
|
|
4715
4812
|
/* editor-primitives.css */
|
|
4716
4813
|
/* editor-primitives.css — chrome for in-engine editors, inspectors, IDEs,
|
|
4717
4814
|
debug HUDs. All rules under .ds-247420 scope (build prefixes). Tokens
|