anentrypoint-design 0.0.130 → 0.0.134

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
@@ -157,11 +157,18 @@ pre .n { color: var(--green-2); }
157
157
  padding-right: env(safe-area-inset-right);
158
158
  }
159
159
 
160
+ :root {
161
+ --app-status-h: 42px;
162
+ --app-topbar-h: 56px;
163
+ --app-crumb-h: 32px;
164
+ }
165
+
160
166
  .app-topbar {
161
167
  position: sticky; top: 0; z-index: var(--z-header);
162
168
  display: grid; grid-template-columns: auto 1fr auto;
163
169
  align-items: center; gap: var(--space-4);
164
- padding: 18px var(--pad-x);
170
+ min-height: var(--app-topbar-h);
171
+ padding: 10px var(--pad-x);
165
172
  background: color-mix(in oklab, var(--bg) 88%, transparent);
166
173
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
167
174
  }
@@ -212,7 +219,8 @@ pre .n { color: var(--green-2); }
212
219
  }
213
220
 
214
221
  .app-crumb {
215
- padding: 0 var(--pad-x) 14px;
222
+ min-height: var(--app-crumb-h);
223
+ padding: 6px var(--pad-x);
216
224
  display: flex; align-items: center; gap: 8px;
217
225
  font-size: var(--fs-sm); color: var(--fg-3);
218
226
  }
@@ -256,14 +264,23 @@ pre .n { color: var(--green-2); }
256
264
  }
257
265
 
258
266
  .app-main {
259
- padding: var(--space-7) var(--pad-x);
267
+ padding: var(--space-5) var(--pad-x) 0;
260
268
  min-width: 0;
261
269
  }
262
270
  .app-main.narrow { max-width: 760px; margin: 0 auto; }
263
271
 
272
+ @media (min-width: 1400px) {
273
+ .app { max-width: 1400px; margin-left: auto; margin-right: auto; }
274
+ .app-main .chat,
275
+ .app-main > .chat-area,
276
+ .app-main > .main-content { max-width: none; margin: 0; width: 100%; }
277
+ .app-status { max-width: 1400px; margin-left: auto; margin-right: auto; left: 0; right: 0; }
278
+ }
279
+
264
280
  .app-status {
265
281
  display: flex; align-items: center; gap: var(--space-3);
266
- padding: 14px var(--pad-x);
282
+ min-height: var(--app-status-h);
283
+ padding: 10px var(--pad-x);
267
284
  font-family: var(--ff-mono); font-size: var(--fs-xs);
268
285
  color: var(--fg-3);
269
286
  }
@@ -569,24 +586,9 @@ table tr.clickable:hover td { background: var(--bg-2); }
569
586
  Mobile Portrait Breakpoint (480px and below)
570
587
  ────────────────────────────────────────────────────────────────────── */
571
588
  @media (max-width: 480px) {
572
- /* App Layout */
589
+ /* App Layout — drawer handled in 900px block below */
573
590
  .app-body { grid-template-columns: 1fr !important; }
574
591
  .app-body.no-side { grid-template-columns: 1fr; }
575
- .app-side-shell { border-right: 0; border-bottom: 1px solid var(--rule); }
576
- .app-side {
577
- padding: var(--space-3) var(--space-2);
578
- font-size: var(--fs-xs);
579
- flex-direction: row; flex-wrap: wrap; gap: var(--space-2);
580
- }
581
- .app-side .group {
582
- width: 100%; font-size: var(--fs-micro); margin-bottom: 4px;
583
- }
584
- .app-side a {
585
- flex: 1; min-width: 100px; padding: 12px 10px; gap: 6px;
586
- grid-template-columns: 14px 1fr;
587
- min-height: 44px;
588
- }
589
- .app-side a .glyph { font-size: 12px; }
590
592
 
591
593
  /* Topbar Navigation */
592
594
  .app-topbar {
@@ -714,13 +716,7 @@ table tr.clickable:hover td { background: var(--bg-2); }
714
716
  Tablet Landscape Breakpoint (768px to 1024px)
715
717
  ────────────────────────────────────────────────────────────────────── */
716
718
  @media (min-width: 481px) and (max-width: 1024px) {
717
- /* App Layout */
718
- .app-body { grid-template-columns: 200px minmax(0, 1fr); }
719
- .app-side {
720
- padding: var(--space-4) var(--space-2);
721
- font-size: var(--fs-xs);
722
- flex-direction: column; gap: var(--space-3);
723
- }
719
+ /* App Layout — side handled by 900px drawer block; restore for 901-1024 */
724
720
  .app-side a {
725
721
  padding: 12px 12px; gap: 8px;
726
722
  grid-template-columns: 16px 1fr auto;
@@ -914,14 +910,15 @@ table tr.clickable:hover td { background: var(--bg-2); }
914
910
  .chat {
915
911
  display: flex; flex-direction: column;
916
912
  flex: 1; min-height: 0; gap: var(--space-3);
913
+ padding-bottom: calc(var(--app-status-h, 42px) + var(--space-2));
917
914
  }
918
915
  .chat-head {
919
916
  display: flex; align-items: baseline; gap: 8px;
920
- padding: 0 0 var(--space-3);
917
+ padding: var(--space-3) 0 var(--space-2);
921
918
  font-family: var(--ff-mono); font-size: var(--fs-xs);
922
919
  color: var(--fg-3); text-transform: lowercase; letter-spacing: 0.02em;
923
920
  border-bottom: 1px solid color-mix(in oklab, var(--fg) 8%, transparent);
924
- margin-bottom: var(--space-3);
921
+ margin-bottom: var(--space-2);
925
922
  }
926
923
  .chat-head .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
927
924
  .chat-head > span:nth-child(2) {
@@ -953,7 +950,7 @@ table tr.clickable:hover td { background: var(--bg-2); }
953
950
  pointer-events: none;
954
951
  }
955
952
 
956
- .chat-msg { display: flex; gap: 12px; align-items: flex-start; padding: 2px 0; position: relative; }
953
+ .chat-msg { display: flex; gap: 12px; align-items: flex-start; padding: 2px 0; position: relative; min-width: 0; }
957
954
  .chat-msg.you { flex-direction: row-reverse; }
958
955
  .chat-msg.you .chat-stack { align-items: flex-end; }
959
956
  .chat-msg:hover { background: color-mix(in oklab, var(--fg) 1%, transparent); padding: 2px 0; margin: 0; border-radius: 8px; transition: background var(--dur-base) var(--ease); }
@@ -980,6 +977,7 @@ table tr.clickable:hover td { background: var(--bg-2); }
980
977
  .chat-stack {
981
978
  display: flex; flex-direction: column; gap: 4px;
982
979
  max-width: min(70%, 56ch); min-width: 0;
980
+ flex: 0 1 auto; overflow: hidden;
983
981
  }
984
982
 
985
983
  .chat-bubble {
@@ -987,7 +985,8 @@ table tr.clickable:hover td { background: var(--bg-2); }
987
985
  border-radius: 14px; line-height: 1.55;
988
986
  word-wrap: break-word; overflow-wrap: anywhere;
989
987
  font-size: var(--fs-sm);
990
- max-width: clamp(200px, 80vw, 480px);
988
+ max-width: 100%;
989
+ min-width: 0;
991
990
  transition: transform 0.12s ease, box-shadow 0.12s ease;
992
991
  }
993
992
  .chat-msg:hover .chat-bubble { transform: translateY(-1px); box-shadow: 0 2px 8px color-mix(in oklab, var(--fg) 6%, transparent); transition: transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease); }
@@ -1045,7 +1044,21 @@ table tr.clickable:hover td { background: var(--bg-2); }
1045
1044
  padding: 0; background: var(--bg);
1046
1045
  color: var(--fg);
1047
1046
  border: 1px solid color-mix(in oklab, var(--fg) 12%, transparent);
1048
- overflow: hidden; max-width: min(90%, 72ch);
1047
+ overflow: hidden; max-width: 100%; min-width: 0;
1048
+ }
1049
+ .chat-bubble.chat-code pre,
1050
+ .chat-bubble pre,
1051
+ .chat-msg pre {
1052
+ max-width: 100%;
1053
+ overflow-x: auto;
1054
+ scrollbar-width: thin;
1055
+ scrollbar-color: var(--bg-3) transparent;
1056
+ }
1057
+ .chat-bubble pre code,
1058
+ .chat-msg pre code {
1059
+ display: block;
1060
+ white-space: pre;
1061
+ min-width: 0;
1049
1062
  }
1050
1063
  .chat-code-head {
1051
1064
  display: flex; align-items: center; gap: 10px;
@@ -1881,3 +1894,78 @@ body {
1881
1894
  transition: color var(--dur-snap) var(--ease);
1882
1895
  }
1883
1896
  .ds-alert-dismiss:hover { color: var(--fg); }
1897
+
1898
+ /* ============================================================
1899
+ Responsive Perfection — Drawer rail, ultrawide cap, mobile compact
1900
+ ============================================================ */
1901
+
1902
+ /* Tablet + Mobile: side rail becomes off-canvas drawer (≤900px) */
1903
+ @media (max-width: 900px) {
1904
+ .app-body,
1905
+ .app-body.no-side { grid-template-columns: 1fr !important; }
1906
+ .app-side-shell {
1907
+ position: fixed;
1908
+ left: 0; top: var(--app-topbar-h);
1909
+ height: calc(100vh - var(--app-topbar-h) - var(--app-status-h));
1910
+ width: 280px; max-width: 80vw;
1911
+ transform: translateX(-100%);
1912
+ transition: transform var(--dur-base, 240ms) var(--ease, ease);
1913
+ z-index: 50;
1914
+ background: var(--bg);
1915
+ border-right: 1px solid color-mix(in oklab, var(--fg) 8%, transparent);
1916
+ overflow-y: auto;
1917
+ }
1918
+ .app-side-shell.open,
1919
+ .app-side.open,
1920
+ .app-body.side-open .app-side-shell { transform: translateX(0); }
1921
+ .app-side {
1922
+ flex-direction: column !important;
1923
+ flex-wrap: nowrap !important;
1924
+ gap: var(--space-2);
1925
+ padding: var(--space-3);
1926
+ font-size: var(--fs-sm);
1927
+ }
1928
+ .app-side a {
1929
+ flex: 0 0 auto; min-width: 0;
1930
+ grid-template-columns: 18px 1fr auto;
1931
+ padding: 10px 12px;
1932
+ }
1933
+ .app-side .group { width: 100%; }
1934
+ .app-crumb { display: none; }
1935
+ .chat-head { padding: var(--space-2) var(--space-3) var(--space-2); margin-bottom: var(--space-2); }
1936
+ .app-main { padding-left: var(--space-3); padding-right: var(--space-3); }
1937
+ }
1938
+
1939
+ /* Drawer scrim */
1940
+ .app-side-scrim {
1941
+ display: none;
1942
+ position: fixed; inset: 0;
1943
+ background: color-mix(in oklab, var(--bg) 60%, transparent);
1944
+ z-index: 49;
1945
+ }
1946
+ @media (max-width: 900px) {
1947
+ .app-body.side-open ~ .app-side-scrim,
1948
+ .app-side-shell.open ~ .app-side-scrim { display: block; }
1949
+ }
1950
+
1951
+ /* Mobile (≤480) status bar compact; hide tail item */
1952
+ @media (max-width: 480px) {
1953
+ .app-status {
1954
+ font-size: var(--fs-micro);
1955
+ padding: 4px var(--space-2);
1956
+ gap: var(--space-2);
1957
+ }
1958
+ .app-status > :last-child:not(:only-child) { display: none; }
1959
+ }
1960
+
1961
+ /* Tiny phone (≤360) topbar compact */
1962
+ @media (max-width: 360px) {
1963
+ .app-topbar {
1964
+ padding: 8px var(--space-2);
1965
+ font-size: var(--fs-xs);
1966
+ gap: var(--space-2);
1967
+ }
1968
+ .app-topbar nav,
1969
+ .app-topbar > :last-child { display: none; }
1970
+ .brand { font-size: var(--fs-tiny); }
1971
+ }
@@ -13,7 +13,7 @@
13
13
  --paper-3: #DFDED9;
14
14
  --ink: #131318;
15
15
  --ink-2: #25252C;
16
- --ink-3: #6A6A70;
16
+ --ink-3: #54545A; /* WCAG AAA on --paper (~7.1:1); was #6A6A70 (AA only) */
17
17
 
18
18
  /* Lore palette */
19
19
  --green: #247420;
@@ -33,6 +33,8 @@
33
33
  --flame: #FF5A1F;
34
34
  --sky: #3A6EFF;
35
35
  --warn: #E0241A;
36
+ --danger: oklch(0.55 0.18 25);
37
+ --success: var(--green-2);
36
38
  --live: var(--green);
37
39
 
38
40
  /* Semantic surfaces */
@@ -192,6 +194,7 @@ select:focus-visible {
192
194
  --accent: var(--accent-bright, var(--green-2));
193
195
  --accent-fg: var(--ink);
194
196
  --accent-bright: var(--green-2);
197
+ --danger: oklch(0.68 0.19 25);
195
198
  }
196
199
 
197
200
  @media (prefers-color-scheme: dark) {
@@ -263,3 +266,32 @@ select:focus-visible {
263
266
  linear-gradient(to bottom, rgba(232,75,138,0.15) 1px, transparent 1px);
264
267
  background-size: 8px 8px;
265
268
  }
269
+
270
+ /* Reduced-motion guard — neutralizes every transition/animation/transform
271
+ inside the design-system scope when the user requests reduced motion.
272
+ Components remain free to opt back in with
273
+ `@media (prefers-reduced-motion: no-preference) { ... }`. */
274
+ @media (prefers-reduced-motion: reduce) {
275
+ .ds-247420 *,
276
+ .ds-247420 *::before,
277
+ .ds-247420 *::after {
278
+ animation-duration: 0.001ms !important;
279
+ animation-iteration-count: 1 !important;
280
+ transition-duration: 0.001ms !important;
281
+ scroll-behavior: auto !important;
282
+ }
283
+ }
284
+
285
+ /* Elevation tokens consumed by overlays (Tooltip, Popover, Dropdown, Dialog). */
286
+ :root {
287
+ --shadow-1: 0 1px 2px color-mix(in oklab, var(--fg) 8%, transparent);
288
+ --shadow-2: 0 4px 12px color-mix(in oklab, var(--fg) 10%, transparent),
289
+ 0 2px 4px color-mix(in oklab, var(--fg) 6%, transparent);
290
+ --shadow-3: 0 12px 32px color-mix(in oklab, var(--fg) 14%, transparent),
291
+ 0 4px 8px color-mix(in oklab, var(--fg) 8%, transparent);
292
+ --z-dropdown: 600;
293
+ --z-popover: 700;
294
+ --z-modal: 800;
295
+ --z-toast: 900;
296
+ --z-tooltip: 1000;
297
+ }