@justai/cuts 0.63.0 → 0.65.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 +3 -2
- package/src/AuthMount.astro +35 -0
- package/src/Toolbar.astro +13 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justai/cuts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.65.0",
|
|
4
4
|
"description": "A persona's named parts \u2014 the page shell that holds them, and the cuts themselves.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"./FilePicker.astro": "./src/FilePicker.astro",
|
|
26
26
|
"./ActionList.astro": "./src/ActionList.astro",
|
|
27
27
|
"./ActionRow.astro": "./src/ActionRow.astro",
|
|
28
|
-
"./Files.astro": "./src/FilePicker.astro"
|
|
28
|
+
"./Files.astro": "./src/FilePicker.astro",
|
|
29
|
+
"./AuthMount.astro": "./src/AuthMount.astro"
|
|
29
30
|
},
|
|
30
31
|
"peerDependencies": {
|
|
31
32
|
"astro": ">=5"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
// ░░ AUTH MOUNT — the sign-in avatar, and the script that fills it, as ONE thing ░░
|
|
3
|
+
//
|
|
4
|
+
// queries: no avatar in the toolbar · sign in missing on files · the auth avatar never appears ·
|
|
5
|
+
// data-justai-auth is empty · how does a persona get sign-in · where does sdk.js come from ·
|
|
6
|
+
// why is the auth mount a component instead of two lines
|
|
7
|
+
//
|
|
8
|
+
// THE TWO HALVES CANNOT BE SEPARATED, WHICH IS WHY THIS IS A COMPONENT AND NOT A SNIPPET.
|
|
9
|
+
//
|
|
10
|
+
// Sign-in on a persona page is a mount point plus the SDK that fills it. Both are trivial, and that is
|
|
11
|
+
// exactly the problem: a surface hand-writing its own toolbar copies them BY HAND, and half a copy
|
|
12
|
+
// fails silently. `files` carried `<div data-justai-auth>` in precisely the right place and never
|
|
13
|
+
// loaded the script — so the div sat there, empty, for as long as anybody looked at it. Nothing
|
|
14
|
+
// errored. There is no avatar and no error to explain its absence, which is the worst shape a defect
|
|
15
|
+
// can take.
|
|
16
|
+
//
|
|
17
|
+
// Found 2026-07-31 by the founder noticing the avatar was simply not there. Measured across the
|
|
18
|
+
// ecosystem at that moment: the cut had both halves, `files` had one, `me` had neither, and `feed`
|
|
19
|
+
// had its own copy of both — four surfaces, three different answers to one question.
|
|
20
|
+
//
|
|
21
|
+
// So the pair ships as a unit. A surface either has sign-in or does not; it can no longer have half.
|
|
22
|
+
//
|
|
23
|
+
// WHY THE THREE SURFACES CANNOT JUST USE `Toolbar`: `/me`, `/files` and the feed carry navigation of
|
|
24
|
+
// their own — a vault link, a host link, a back-to-persona mark — so they hand-write the toolbar
|
|
25
|
+
// markup and always will. That is the same reason `personaScroll` moved down into @justai/core. What
|
|
26
|
+
// cannot be shared is the markup; what CAN be shared is every load-bearing piece inside it, and this
|
|
27
|
+
// is one of them.
|
|
28
|
+
//
|
|
29
|
+
// The origin is deliberately absolute. This is inherited from auth.justai.pro — one Google client for
|
|
30
|
+
// the whole ecosystem, sign in once and you are you on every persona — so the src is that host and
|
|
31
|
+
// never a local path, on every domain that mounts it.
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
<div data-justai-auth></div>
|
|
35
|
+
<script is:inline defer src="https://auth.justai.pro/sdk.js"></script>
|
package/src/Toolbar.astro
CHANGED
|
@@ -53,6 +53,7 @@ interface Props {
|
|
|
53
53
|
}
|
|
54
54
|
import BackToZone from "./BackToZone.astro";
|
|
55
55
|
const { sectionsLabel, profileLabel, kernelLabel, postsLabel, home = true, files = true, filesLabel = "Files" } = Astro.props;
|
|
56
|
+
import AuthMount from "./AuthMount.astro";
|
|
56
57
|
---
|
|
57
58
|
|
|
58
59
|
<header class="toolbar">
|
|
@@ -122,13 +123,11 @@ const { sectionsLabel, profileLabel, kernelLabel, postsLabel, home = true, files
|
|
|
122
123
|
<div class="tb-right">
|
|
123
124
|
<slot name="toolbarRight" />
|
|
124
125
|
<slot name="langPicker" />
|
|
125
|
-
<
|
|
126
|
+
<AuthMount />
|
|
126
127
|
</div>
|
|
127
128
|
</div>
|
|
128
129
|
<div class="tb-title" id="tbTitle"><span class="tb-title-text" id="tbTitleText"></span></div>
|
|
129
130
|
</header>
|
|
130
|
-
<!-- justai auth — sign-in avatar menu, inherited from auth.justai.pro (the developer writes only the kernel) -->
|
|
131
|
-
<script is:inline defer src="https://auth.justai.pro/sdk.js"></script>
|
|
132
131
|
|
|
133
132
|
<style>
|
|
134
133
|
/* ---- app toolbar — sticky to the top of the active region (kernel + posts); it never
|
|
@@ -187,8 +186,17 @@ const { sectionsLabel, profileLabel, kernelLabel, postsLabel, home = true, files
|
|
|
187
186
|
themes — an SVG's internal `prefers-color-scheme` does not survive <img>, measured — and the persona
|
|
188
187
|
hides one with a media query. A `display: block` here would be two classes deep against the persona's
|
|
189
188
|
one and would WIN, showing both marks stacked. That exact mistake shipped once in this shell and the
|
|
190
|
-
founder counted the duplicate logos before anyone read the CSS. Width and height only.
|
|
191
|
-
|
|
189
|
+
founder counted the duplicate logos before anyone read the CSS. Width and height only.
|
|
190
|
+
|
|
191
|
+
14.5px, NOT the 19px the stroke icons get, and the difference is the whole point. A glyph carries its
|
|
192
|
+
own padding: measured in this toolbar, the bubble and the folder draw 14.3px of ink inside a 19px box,
|
|
193
|
+
and the grid 14.25px. A mark has no padding — it is artwork whose coordinates fill its viewBox
|
|
194
|
+
(favicon.svg 101%, appzone-mark.svg 111%), so a 19px box gives it 19px of ink and it reads about a
|
|
195
|
+
third larger than everything beside it at the same nominal size. Equal boxes are not equal icons.
|
|
196
|
+
Sizing the box to the neighbours' INK is what makes the row look level. The founder saw this before
|
|
197
|
+
it was measured, and the same correction already exists in the Profile cut, where the bare mark sits
|
|
198
|
+
at 72% of its tile for the same reason. */
|
|
199
|
+
.tb-nav.tb-mark :global(img) { width: 14.5px; height: 14.5px; }
|
|
192
200
|
.tb-nav :global(svg) { width: 19px; height: 19px; }
|
|
193
201
|
</style>
|
|
194
202
|
|