@justai/cuts 0.83.0 → 0.85.0
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/package.json +1 -1
- package/src/ChildPersona.astro +13 -4
- package/src/Toolbar.astro +28 -0
package/package.json
CHANGED
package/src/ChildPersona.astro
CHANGED
|
@@ -110,9 +110,17 @@ interface Props {
|
|
|
110
110
|
avatarPad?: string;
|
|
111
111
|
/** The cover behind the profile. Defaults to the host persona's accent, which is the point. */
|
|
112
112
|
cover?: string;
|
|
113
|
-
/**
|
|
114
|
-
*
|
|
113
|
+
/** queries: the child persona knows its host already · server-side face · feed accent
|
|
114
|
+
*
|
|
115
|
+
* THE HOST'S FACE WHEN THE PAGE ALREADY HAS IT. Two children fetch it in the browser because they
|
|
116
|
+
* are one static bundle mounted on every host; the feed RENDERS per host and already read the
|
|
117
|
+
* registry, so it knows before the first paint. Pass it and the accent is set server-side —
|
|
118
|
+
* no flash of the platform default, and `childFace()` has nothing to do.
|
|
119
|
+
* Leave it out and the runtime path applies, which is the ordinary case. */
|
|
115
120
|
host?: { name?: string; avatar?: string; accent?: string };
|
|
121
|
+
/** Override the handle line. Defaults to `@<child>` — a child persona's own address. The feed says
|
|
122
|
+
* `qr.app.zone · feed` instead, because it is the FEED OF a host rather than a room inside it. */
|
|
123
|
+
handle?: string;
|
|
116
124
|
/** Where the parent's kernel is. Defaults to the host root, which is where a visitor came from. */
|
|
117
125
|
parentHref?: string;
|
|
118
126
|
parentLabel?: string;
|
|
@@ -126,6 +134,7 @@ interface Props {
|
|
|
126
134
|
}
|
|
127
135
|
const {
|
|
128
136
|
child, name, bio, meta, host,
|
|
137
|
+
handle,
|
|
129
138
|
parentHref = "/#kernel", parentLabel = "Home",
|
|
130
139
|
sectionsLabel = "Sections", profileLabel, kernelLabel, face = "page",
|
|
131
140
|
avatarBg = "linear-gradient(160deg, #1f2740, #11141f)",
|
|
@@ -144,7 +153,7 @@ const chrome = face === "page";
|
|
|
144
153
|
IT RENDERS THE COLUMN ITSELF. An earlier draft styled `.pp .app` and left the consumer to emit
|
|
145
154
|
the element, which is precisely the homework law 1 forbids: a shell whose geometry only works if
|
|
146
155
|
somebody remembers a class name is a template, not a component. */}
|
|
147
|
-
<div class="pp" id="pp" data-child={child} data-face={face}>
|
|
156
|
+
<div class="pp" id="pp" data-child={child} data-face={face} style={host?.accent ? `--accent: ${host.accent}` : undefined}>
|
|
148
157
|
<main class="app">
|
|
149
158
|
{/* THE `sheet` FACE SHOWS NO PROFILE AND NO ROW. It is content inside somebody's chrome, and a
|
|
150
159
|
biography there is the guest introducing itself while the host is mid-sentence. As a `page`
|
|
@@ -162,7 +171,7 @@ const chrome = face === "page";
|
|
|
162
171
|
child's own words, correct if the lookup never returns. */}
|
|
163
172
|
<Profile
|
|
164
173
|
name={`<span id="pnName">${name}</span><span class="pro" id="pnFacet"></span>`}
|
|
165
|
-
handle={`<span id="pnHandle"
|
|
174
|
+
handle={`<span id="pnHandle">${handle ?? "@" + child}</span>`}
|
|
166
175
|
bio={bio ? `<span id="pnBio">${bio}</span>` : undefined}
|
|
167
176
|
meta={`<span id="pnMeta">${meta ?? ""}</span>`}
|
|
168
177
|
kernelLabel={name}
|
package/src/Toolbar.astro
CHANGED
|
@@ -350,6 +350,34 @@ import AuthMount from "./AuthMount.astro";
|
|
|
350
350
|
inside the same 19px. If the row is ever to read level, the way there is to grow the GLYPHS, not to
|
|
351
351
|
shrink the identity. */
|
|
352
352
|
.tb-nav.tb-mark :global(img) { width: 19px; height: 19px; }
|
|
353
|
+
|
|
354
|
+
/* ── WHATEVER IS FIRST IN THE ROW READS AT 20; EVERYTHING AFTER IT AT 19 ────────────────────
|
|
355
|
+
*
|
|
356
|
+
* queries: toolbar icon sizes · why is the first icon bigger · 20 and 19 · first position
|
|
357
|
+
*
|
|
358
|
+
* The founder's rule, with app.zone's own mark as the reference every icon is measured against.
|
|
359
|
+
* It is POSITIONAL, not about which icon happens to be there — the row is saying that the first
|
|
360
|
+
* thing in it is not one of the sections, and that is true whatever fills the slot:
|
|
361
|
+
*
|
|
362
|
+
* a persona `BackToZone` — the way out to app.zone
|
|
363
|
+
* a child persona the parent's face — the way up
|
|
364
|
+
* app.zone itself its OWN mark, because there is no way out of the zone from the zone
|
|
365
|
+
*
|
|
366
|
+
* Written structurally for that reason. `BackToZone` sizes itself; when it is absent the nav group
|
|
367
|
+
* becomes the first child of `.tb-left`, and its first item is what a person sees first. Expressed
|
|
368
|
+
* as a selector rather than a list of ids, a fourth arrangement is right without anyone editing
|
|
369
|
+
* this file — which is what "positional" has to mean to be worth the words.
|
|
370
|
+
*
|
|
371
|
+
* Measured across nine live surfaces first: `home` was 20 on eleven personas and 19 on qr, which
|
|
372
|
+
* had overridden it; the three children's parent icon was 19; auth's was 19 because I set it there
|
|
373
|
+
* an hour earlier having read the drift backwards; app.zone's own mark was 19 while being the
|
|
374
|
+
* first thing in its row. `BackToZone`'s default was right the whole time.
|
|
375
|
+
*
|
|
376
|
+
* The first slot always holds a MARK — a drawing that fills its own viewBox — so a 20px box is
|
|
377
|
+
* 20px of ink. A glyph there would need 26.67 to read the same, and if one ever lands in that slot
|
|
378
|
+
* this rule is where the exception belongs. */
|
|
379
|
+
.tb-left > .tb-nav-group:first-child > .tb-nav:first-child :global(svg),
|
|
380
|
+
.tb-left > .tb-nav-group:first-child > .tb-nav:first-child :global(img) { width: 20px; height: 20px; }
|
|
353
381
|
.tb-nav :global(svg) { width: 19px; height: 19px; }
|
|
354
382
|
|
|
355
383
|
/* ── EQUAL INK, TWO BOXES ────────────────────────────────────────────────────────────────────
|