anentrypoint-design 0.0.238 → 0.0.240

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
@@ -1,8 +1,9 @@
1
1
  /* ============================================================
2
2
  247420 design system — component sheet
3
- "Acid Editorial": Space Grotesk display + Inter body + JetBrains code.
4
- Confident hierarchy, asymmetric grid tension, print texture over glow,
5
- one electric lead accent. Indicator rails over hairlines.
3
+ "Acid Editorial": Bricolage Grotesque display + Hanken Grotesk body +
4
+ JetBrains code. Confident hierarchy, asymmetric grid tension, print
5
+ texture over glow, one electric lead accent. Indicator rails over
6
+ hairlines.
6
7
  ============================================================ */
7
8
 
8
9
  /* ============================================================
@@ -371,11 +372,17 @@ body.canvas-host { background: transparent !important; }
371
372
  .app-main > .chat,
372
373
  .app-main > .chat-area,
373
374
  .app-main > .ds-file-stage,
375
+ .app-main > .ds-files-stack,
374
376
  .app-main > .grow { flex: 1 1 auto; min-height: 0; }
375
377
  .app-main.narrow { max-width: var(--measure-narrow); margin: 0 auto; }
376
378
 
377
379
  @media (min-width: 1400px) {
378
- .app { max-width: 1400px; margin-left: auto; margin-right: auto; }
380
+ /* Fluid ceiling, not a hard stop: scales from 1400px up to 1920px across the
381
+ 1400-2200px viewport band (matches .ws-shell's 1920px ultrawide cap below)
382
+ instead of freezing at 1400px and leaving >1000px dead margin on a 2560px+
383
+ display. Row/prose measure caps (--measure-wide etc.) still own line-length
384
+ readability, so widening the shell itself does not create unreadable rows. */
385
+ .app { max-width: clamp(1400px, 92vw, 1920px); margin-left: auto; margin-right: auto; }
379
386
  .app-main .chat,
380
387
  .app-main > .chat-area,
381
388
  .app-main > .main-content { max-width: none; margin: 0; width: 100%; }
@@ -385,6 +392,12 @@ body.canvas-host { background: transparent !important; }
385
392
  /* Cap row text measure inside the wide capped main (ultrawide readability). */
386
393
  .row .title, .row .sub { max-width: var(--measure-wide); }
387
394
  }
395
+ /* Beyond 1920px the shell itself stops growing (matches .ws-shell's own cap) —
396
+ extra space becomes page margin rather than stretching sidebar/content grid
397
+ tracks to distances a pointer/eye shouldn't have to travel. */
398
+ @media (min-width: 2200px) {
399
+ .app { max-width: 1920px; }
400
+ }
388
401
 
389
402
  .app-status {
390
403
  display: flex; align-items: center; gap: var(--space-3);
@@ -1586,8 +1599,17 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
1586
1599
 
1587
1600
  /* Full-width files stack: the stage's space-3 vertical beat without its
1588
1601
  920px cap/auto-margins, so the roots / toolbar / bulkbar / uploads / grid
1589
- bands keep one consistent rhythm instead of touching edge-to-edge. */
1590
- .ds-files-stack { display: flex; flex-direction: column; gap: var(--space-3); min-height: 0; }
1602
+ bands keep one consistent rhythm instead of touching edge-to-edge. Carries
1603
+ the same side/bottom padding as .ds-file-stage (top collapses the same way
1604
+ when mounted directly under .app-main, which already supplies top padding)
1605
+ so switching a consumer from the capped stage to this full-width stack is a
1606
+ pure width change, not a spacing regression. */
1607
+ .ds-files-stack {
1608
+ display: flex; flex-direction: column; gap: var(--space-3); min-height: 0;
1609
+ padding: 0 var(--space-3) var(--space-4);
1610
+ }
1611
+ .app-main > div > .ds-files-stack,
1612
+ .app-main .ds-files-stack { padding-top: 0; }
1591
1613
 
1592
1614
  /* Breadcrumb path */
1593
1615
  .ds-crumb-path {
@@ -4209,3 +4231,18 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
4209
4231
  .ds-term-input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; font-family: var(--ff-mono); font-size: 13px; color: var(--fg); }
4210
4232
  /* full-viewport render root (community-app) */
4211
4233
  .ds-root-viewport { height: 100vh; height: 100dvh; }
4234
+
4235
+ /* --- chat kit: widescreen detail pane -----------------------
4236
+ .chat itself stays single-column (shared component, untouched) and
4237
+ stretches full-width on ultrawide via the existing .app-main > .chat
4238
+ max-width:none rule above (~L380) — that's fine for a bare thread, but
4239
+ it leaves a lone thread column growing to 1400px+ with no other use of
4240
+ the extra width. This wrapper adds a persistent "thread info" rail once
4241
+ there is room to spare, instead of just widening the message column. */
4242
+ .ds-chat-layout { display: flex; flex-direction: column; flex: 1; min-height: 0; gap: var(--space-3); }
4243
+ .ds-chat-layout > .chat { min-width: 0; }
4244
+ .ds-chat-detail { display: none; }
4245
+ @media (min-width: 1100px) {
4246
+ .ds-chat-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: var(--space-4); }
4247
+ .ds-chat-detail { display: block; position: sticky; top: 0; }
4248
+ }
@@ -5,17 +5,18 @@
5
5
  Source-of-truth tokens. Component sheet lives in app-shell.css.
6
6
  ============================================================ */
7
7
 
8
- @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
8
+ @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Hanken+Grotesk:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
9
9
 
10
- /* Metric-matched fallback for the display face. While Space Grotesk loads,
11
- text falls back to Arial with size-adjust tuned to its cap-height so the
12
- oversized hero does not reflow on swap. Referenced first in --ff-display via
13
- the 'Space Grotesk' family; this only kicks in for the fallback glyphs. */
10
+ /* Metric-matched fallback for the display face. While Bricolage Grotesque
11
+ loads, text falls back to Arial with size-adjust tuned to its cap-height so
12
+ the oversized hero does not reflow on swap. Referenced first in --ff-display
13
+ via the 'Bricolage Grotesque' family; this only kicks in for the fallback
14
+ glyphs. */
14
15
  @font-face {
15
- font-family: 'Space Grotesk Fallback';
16
+ font-family: 'Bricolage Grotesque Fallback';
16
17
  src: local('Arial');
17
- size-adjust: 96%;
18
- ascent-override: 95%;
18
+ size-adjust: 99%;
19
+ ascent-override: 94%;
19
20
  descent-override: 24%;
20
21
  }
21
22
 
@@ -129,13 +130,14 @@
129
130
  --panel-accent-2: var(--accent-bright, var(--accent));
130
131
  --panel-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 6%, transparent), 0 4px 14px color-mix(in oklab, var(--fg) 8%, transparent);
131
132
 
132
- /* Type — Space Grotesk carries display/headings (editorial grotesk with real
133
- character), Inter carries body and UI, JetBrains carries code. The narrow
134
- alias tracks the display face. size-adjust on the fallback keeps the
135
- oversized hero from shifting while Space Grotesk loads. */
136
- --ff-display: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
137
- --ff-narrow: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
138
- --ff-body: 'Inter', system-ui, sans-serif;
133
+ /* Type — Bricolage Grotesque carries display/headings (variable editorial
134
+ grotesque with real character), Hanken Grotesk carries body and UI,
135
+ JetBrains carries code. The narrow alias tracks the display face.
136
+ size-adjust on the fallback keeps the oversized hero from shifting while
137
+ Bricolage Grotesque loads. */
138
+ --ff-display: 'Bricolage Grotesque', 'Bricolage Grotesque Fallback', 'Hanken Grotesk', system-ui, sans-serif;
139
+ --ff-narrow: 'Bricolage Grotesque', 'Bricolage Grotesque Fallback', 'Hanken Grotesk', system-ui, sans-serif;
140
+ --ff-body: 'Hanken Grotesk', system-ui, sans-serif;
139
141
  --ff-mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
140
142
 
141
143
  --fs-micro: 12px;
package/dist/247420.css CHANGED
@@ -7,17 +7,18 @@
7
7
  Source-of-truth tokens. Component sheet lives in app-shell.css.
8
8
  ============================================================ */
9
9
 
10
- @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
10
+ @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Hanken+Grotesk:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
11
11
 
12
- /* Metric-matched fallback for the display face. While Space Grotesk loads,
13
- text falls back to Arial with size-adjust tuned to its cap-height so the
14
- oversized hero does not reflow on swap. Referenced first in --ff-display via
15
- the 'Space Grotesk' family; this only kicks in for the fallback glyphs. */
12
+ /* Metric-matched fallback for the display face. While Bricolage Grotesque
13
+ loads, text falls back to Arial with size-adjust tuned to its cap-height so
14
+ the oversized hero does not reflow on swap. Referenced first in --ff-display
15
+ via the 'Bricolage Grotesque' family; this only kicks in for the fallback
16
+ glyphs. */
16
17
  @font-face {
17
- font-family: 'Space Grotesk Fallback';
18
+ font-family: 'Bricolage Grotesque Fallback';
18
19
  src: local('Arial');
19
- size-adjust: 96%;
20
- ascent-override: 95%;
20
+ size-adjust: 99%;
21
+ ascent-override: 94%;
21
22
  descent-override: 24%;
22
23
  }
23
24
 
@@ -131,13 +132,14 @@
131
132
  --panel-accent-2: var(--accent-bright, var(--accent));
132
133
  --panel-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 6%, transparent), 0 4px 14px color-mix(in oklab, var(--fg) 8%, transparent);
133
134
 
134
- /* Type — Space Grotesk carries display/headings (editorial grotesk with real
135
- character), Inter carries body and UI, JetBrains carries code. The narrow
136
- alias tracks the display face. size-adjust on the fallback keeps the
137
- oversized hero from shifting while Space Grotesk loads. */
138
- --ff-display: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
139
- --ff-narrow: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
140
- --ff-body: 'Inter', system-ui, sans-serif;
135
+ /* Type — Bricolage Grotesque carries display/headings (variable editorial
136
+ grotesque with real character), Hanken Grotesk carries body and UI,
137
+ JetBrains carries code. The narrow alias tracks the display face.
138
+ size-adjust on the fallback keeps the oversized hero from shifting while
139
+ Bricolage Grotesque loads. */
140
+ --ff-display: 'Bricolage Grotesque', 'Bricolage Grotesque Fallback', 'Hanken Grotesk', system-ui, sans-serif;
141
+ --ff-narrow: 'Bricolage Grotesque', 'Bricolage Grotesque Fallback', 'Hanken Grotesk', system-ui, sans-serif;
142
+ --ff-body: 'Hanken Grotesk', system-ui, sans-serif;
141
143
  --ff-mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
142
144
 
143
145
  --fs-micro: 12px;
@@ -500,9 +502,10 @@
500
502
  /* app-shell.css */
501
503
  /* ============================================================
502
504
  247420 design system — component sheet
503
- "Acid Editorial": Space Grotesk display + Inter body + JetBrains code.
504
- Confident hierarchy, asymmetric grid tension, print texture over glow,
505
- one electric lead accent. Indicator rails over hairlines.
505
+ "Acid Editorial": Bricolage Grotesque display + Hanken Grotesk body +
506
+ JetBrains code. Confident hierarchy, asymmetric grid tension, print
507
+ texture over glow, one electric lead accent. Indicator rails over
508
+ hairlines.
506
509
  ============================================================ */
507
510
 
508
511
  /* ============================================================
@@ -871,11 +874,17 @@
871
874
  .ds-247420 .app-main > .chat,
872
875
  .ds-247420 .app-main > .chat-area,
873
876
  .ds-247420 .app-main > .ds-file-stage,
877
+ .ds-247420 .app-main > .ds-files-stack,
874
878
  .ds-247420 .app-main > .grow { flex: 1 1 auto; min-height: 0; }
875
879
  .ds-247420 .app-main.narrow { max-width: var(--measure-narrow); margin: 0 auto; }
876
880
 
877
881
  @media (min-width: 1400px) {
878
- .ds-247420 .app { max-width: 1400px; margin-left: auto; margin-right: auto; }
882
+ /* Fluid ceiling, not a hard stop: scales from 1400px up to 1920px across the
883
+ 1400-2200px viewport band (matches .ws-shell's 1920px ultrawide cap below)
884
+ instead of freezing at 1400px and leaving >1000px dead margin on a 2560px+
885
+ display. Row/prose measure caps (--measure-wide etc.) still own line-length
886
+ readability, so widening the shell itself does not create unreadable rows. */
887
+ .ds-247420 .app { max-width: clamp(1400px, 92vw, 1920px); margin-left: auto; margin-right: auto; }
879
888
  .ds-247420 .app-main .chat,
880
889
  .ds-247420 .app-main > .chat-area,
881
890
  .ds-247420 .app-main > .main-content { max-width: none; margin: 0; width: 100%; }
@@ -885,6 +894,12 @@
885
894
  /* Cap row text measure inside the wide capped main (ultrawide readability). */
886
895
  .ds-247420 .row .title, .ds-247420 .row .sub { max-width: var(--measure-wide); }
887
896
  }
897
+ /* Beyond 1920px the shell itself stops growing (matches .ws-shell's own cap) —
898
+ extra space becomes page margin rather than stretching sidebar/content grid
899
+ tracks to distances a pointer/eye shouldn't have to travel. */
900
+ @media (min-width: 2200px) {
901
+ .ds-247420 .app { max-width: 1920px; }
902
+ }
888
903
 
889
904
  .ds-247420 .app-status {
890
905
  display: flex; align-items: center; gap: var(--space-3);
@@ -2086,8 +2101,17 @@
2086
2101
 
2087
2102
  /* Full-width files stack: the stage's space-3 vertical beat without its
2088
2103
  920px cap/auto-margins, so the roots / toolbar / bulkbar / uploads / grid
2089
- bands keep one consistent rhythm instead of touching edge-to-edge. */
2090
- .ds-247420 .ds-files-stack { display: flex; flex-direction: column; gap: var(--space-3); min-height: 0; }
2104
+ bands keep one consistent rhythm instead of touching edge-to-edge. Carries
2105
+ the same side/bottom padding as .ds-file-stage (top collapses the same way
2106
+ when mounted directly under .app-main, which already supplies top padding)
2107
+ so switching a consumer from the capped stage to this full-width stack is a
2108
+ pure width change, not a spacing regression. */
2109
+ .ds-247420 .ds-files-stack {
2110
+ display: flex; flex-direction: column; gap: var(--space-3); min-height: 0;
2111
+ padding: 0 var(--space-3) var(--space-4);
2112
+ }
2113
+ .ds-247420 .app-main > div > .ds-files-stack,
2114
+ .ds-247420 .app-main .ds-files-stack { padding-top: 0; }
2091
2115
 
2092
2116
  /* Breadcrumb path */
2093
2117
  .ds-247420 .ds-crumb-path {
@@ -4699,6 +4723,21 @@
4699
4723
  /* full-viewport render root (community-app) */
4700
4724
  .ds-247420 .ds-root-viewport { height: 100vh; height: 100dvh; }
4701
4725
 
4726
+ /* --- chat kit: widescreen detail pane -----------------------
4727
+ .chat itself stays single-column (shared component, untouched) and
4728
+ stretches full-width on ultrawide via the existing .app-main > .chat
4729
+ max-width:none rule above (~L380) — that's fine for a bare thread, but
4730
+ it leaves a lone thread column growing to 1400px+ with no other use of
4731
+ the extra width. This wrapper adds a persistent "thread info" rail once
4732
+ there is room to spare, instead of just widening the message column. */
4733
+ .ds-247420 .ds-chat-layout { display: flex; flex-direction: column; flex: 1; min-height: 0; gap: var(--space-3); }
4734
+ .ds-247420 .ds-chat-layout > .chat { min-width: 0; }
4735
+ .ds-247420 .ds-chat-detail { display: none; }
4736
+ @media (min-width: 1100px) {
4737
+ .ds-247420 .ds-chat-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: var(--space-4); }
4738
+ .ds-247420 .ds-chat-detail { display: block; position: sticky; top: 0; }
4739
+ }
4740
+
4702
4741
  /* community.css */
4703
4742
  /* ============================================================
4704
4743
  247420 design system — community surface (Discord-style chat)
@@ -8658,6 +8697,40 @@
8658
8697
  align-content: start;
8659
8698
  }
8660
8699
 
8700
+ /* ============================================================
8701
+ Responsive — collapse the server+channel rail on narrow viewports.
8702
+ community-app builds its own hand-rolled .ca-app/.app-body/.ca-rail tree
8703
+ (not AppShell()), so it does not inherit AppShell's @container drawer CSS
8704
+ (keyed off .app/.app-side-shell, which .ca-app/.ca-rail never establish).
8705
+ Mirrors the .cm-channel-sidebar off-canvas idiom in community.css 1:1: same
8706
+ breakpoint, same translateX(-110%) + .open reveal, same :has() scrim — so
8707
+ the .ca-rail drawer driven by MobileHeader's hamburger (mobileMenuOpen in
8708
+ the adapter snapshot) behaves identically to the community kit's sidebar.
8709
+ ============================================================ */
8710
+ @media (max-width: 900px) {
8711
+ .ds-247420.ds-247420 .ca-rail {
8712
+ position: absolute;
8713
+ z-index: 20;
8714
+ top: 0; left: 0; bottom: 0;
8715
+ width: 240px; min-width: 240px;
8716
+ transform: translateX(-110%);
8717
+ transition: transform var(--dur-base, 240ms) var(--ease, ease);
8718
+ box-shadow: 2px 0 16px color-mix(in oklab, var(--ink, #000) 30%, transparent);
8719
+ }
8720
+ .ds-247420.ds-247420 .ca-rail.open { transform: translateX(0); }
8721
+ .ds-247420.ds-247420 .ca-app:has(.ca-rail.open) .app-main {
8722
+ position: relative;
8723
+ }
8724
+ .ds-247420.ds-247420 .ca-app:has(.ca-rail.open) .app-main::before {
8725
+ content: '';
8726
+ position: absolute;
8727
+ inset: 0;
8728
+ z-index: 15;
8729
+ background: color-mix(in oklab, var(--ink, #000) 40%, transparent);
8730
+ pointer-events: none;
8731
+ }
8732
+ }
8733
+
8661
8734
  /* app-surfaces.css */
8662
8735
  /* app-surfaces.css — agentgui application-surface styling.
8663
8736
  *