@justai/cuts 0.4.0 → 0.5.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.
Files changed (2) hide show
  1. package/package.json +6 -3
  2. package/src/Base.astro +6 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justai/cuts",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "A persona's named parts — the page shell that holds them, and the cuts themselves.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -16,10 +16,13 @@
16
16
  "./Base.astro": "./src/Base.astro"
17
17
  },
18
18
  "peerDependencies": {
19
- "astro": ">=5",
20
- "@justai/ui": ">=0.2.0"
19
+ "@justai/ui": ">=0.2.0",
20
+ "astro": ">=5"
21
21
  },
22
22
  "publishConfig": {
23
23
  "access": "public"
24
+ },
25
+ "dependencies": {
26
+ "@justai/core": "^0.1.0"
24
27
  }
25
28
  }
package/src/Base.astro CHANGED
@@ -26,6 +26,9 @@
26
26
  * The dictionaries. Same reason, stronger: the machinery is shared, the CONTENT is the persona's.
27
27
  */
28
28
  import { dir as dirOf } from "@justai/ui/locale";
29
+ // The load-bearing behaviour is framework-free and lives in @justai/core, so `feed` (Next) injects the
30
+ // SAME strings instead of hand-copying them. This binding just decides where they go in an Astro head.
31
+ import { AUTH_CAPTURE_JS, JS_CLASS_JS, REVEAL_CSS } from "@justai/core";
29
32
 
30
33
  interface Props {
31
34
  lang: string;
@@ -71,15 +74,15 @@ const localePath = (l: string) => (l === defaultLocale ? "/" : `/${l}/`);
71
74
  current hash onto the next locale's URL (LangPicker), which would PROPAGATE the raw token
72
75
  into a new page and into history. Capturing first defeats both. Move this and sign-in breaks
73
76
  silently — no error, the visitor simply lands back signed out. */}
74
- <script is:inline>(function(){try{var h=location.hash||"";var m=h.match(/(?:^#|&)auth_token=([^&]+)/);if(m){localStorage.setItem("justai_token",decodeURIComponent(m[1]))}else if(/(?:^#|&)auth_signout=1\b/.test(h)){localStorage.removeItem("justai_token")}else{return}history.replaceState(null,"",location.pathname+location.search)}catch(e){}})();</script>
75
- <script is:inline>document.documentElement.classList.add("js")</script>
77
+ <script is:inline set:html={AUTH_CAPTURE_JS} />
78
+ <script is:inline set:html={JS_CLASS_JS} />
76
79
  {/* Reveal only after a page marks itself ready — gated behind .js so the page is always visible
77
80
  if JS is off, and no scroll flash before we position at the Kernel. This style is a TRAP as
78
81
  much as a feature, and the warning must stay beside it: ANY page using this layout without a
79
82
  kernel script that sets body.ready stays invisible FOREVER. The 404 is the page that keeps
80
83
  falling into this — it carries its own inline body.classList.add("ready") for exactly this
81
84
  reason. Nothing errors; the page is simply never shown. */}
82
- <style is:inline>html.js body{opacity:0}html.js body.ready{opacity:1}</style>
85
+ <style is:inline set:html={REVEAL_CSS} />
83
86
  {/* The locale list is INJECTED, never typed. It used to be a literal array here — a second
84
87
  declaration beside src/i18n/index.ts, kept in agreement by hand, in the one place where
85
88
  being wrong is invisible: a locale missing from this list simply never auto-routes, and