@guuey/agent-layout 0.16.1 → 0.16.2

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/styles.css +28 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guuey/agent-layout",
3
- "version": "0.16.1",
3
+ "version": "0.16.2",
4
4
  "description": "Agent-mode layout: the two-tone shell where an app and its agent share one surface — the pane follows attention, the transport owns the stream.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/styles.css CHANGED
@@ -11,14 +11,37 @@
11
11
  * set it.
12
12
  */
13
13
 
14
+ /* guuey#429 (founder rule, requirement-grade): the shell is VIEWPORT-PINNED
15
+ * by default — "the sidebar's height should be fixed and the lower part
16
+ * should be stick on its bottom". `height: 100%` only pins when every
17
+ * ancestor carries a definite height, which no adopter's tree guarantees —
18
+ * against auto ancestors it computes to auto, tall pane content stretches
19
+ * the PAGE, and the agent rail scrolls below the fold (a scrollable-away
20
+ * agent panel defeats the category). So the ROOT establishes the chain
21
+ * itself: dynamic-viewport height (dvh; vh first as the older-browser
22
+ * fallback), `overflow: hidden` so content can only scroll inside the
23
+ * panels' own scroll contexts (the pane's overflow:auto; the chat's own
24
+ * scroller), never the page. An embedder that genuinely wants an in-flow
25
+ * layout sets `--guuey-layout-height` (e.g. `100%` inside its own pinned
26
+ * region) — a seam, not a fight. */
14
27
  .guuey-agent-layout {
15
- height: 100%;
28
+ height: var(--guuey-layout-height, 100vh);
29
+ height: var(--guuey-layout-height, 100dvh);
16
30
  min-height: 0;
31
+ overflow: hidden;
17
32
  }
18
33
 
19
34
  .guuey-layout-shell {
20
35
  display: grid;
21
36
  grid-template-columns: minmax(240px, 300px) 1fr;
37
+ /* guuey#429, the completing half (console's adjudication): without an
38
+ * explicit row the grid's IMPLICIT row is `auto` — it sizes to content,
39
+ * growing past any bounded container and rendering every child's
40
+ * min-height:0 + overflow:auto inert (clip-not-scroll). minmax(0, 1fr)
41
+ * makes the row exactly the container's height, so the root's viewport
42
+ * pin actually DISTRIBUTES: sidebar bound, pane scrolling within
43
+ * itself. */
44
+ grid-template-rows: minmax(0, 1fr);
22
45
  height: 100%;
23
46
  min-height: 0;
24
47
  }
@@ -36,6 +59,10 @@
36
59
  transition: background-color var(--guuey-layout-tone-transition) ease-out;
37
60
  }
38
61
  .guuey-layout-panel-app {
62
+ /* The app panel keeps its content height; the agent panel takes the
63
+ * remaining lower space (guuey#429 — stuck on its bottom, never
64
+ * crushed nor scrolled away). */
65
+ flex-shrink: 0;
39
66
  background: var(--guuey-layout-tone-upper);
40
67
  color: var(--guuey-layout-tone-upper-on);
41
68
  }