@justai/cuts 0.112.1 → 0.113.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 +2 -2
  2. package/src/Base.astro +17 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justai/cuts",
3
- "version": "0.112.1",
3
+ "version": "0.113.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": {
@@ -41,7 +41,7 @@
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "@justai/core": "^0.22.0",
44
+ "@justai/core": "^0.23.0",
45
45
  "@justai/ui": "^0",
46
46
  "@justai/atrium": "^0.1.9"
47
47
  }
package/src/Base.astro CHANGED
@@ -69,6 +69,21 @@ interface Props {
69
69
  * privacy/terms child personas use this: the surface that proves it collects nothing by running
70
70
  * nothing. */
71
71
  gaId?: string | null;
72
+ /**
73
+ * queries: kind game · data-kind · my game persona has margins · the game does not fill the screen ·
74
+ * which storefront lists this persona · persona kind in the layout
75
+ *
76
+ * WHAT KIND OF PERSONA THIS IS — the same word its `.justai/persona.yml` declares, and the same one
77
+ * the catalogue reads to decide which storefront lists it. It lands on `<html>` as `data-kind`, and
78
+ * `@justai/ui` keys the kernel's geometry off it: an APP kernel is inset by the gutter on all four
79
+ * sides and is *at least* the active view's height; a GAME kernel keeps no inset at all and is
80
+ * *exactly* that height.
81
+ *
82
+ * IT DEFAULTS TO `app` BECAUSE FIFTEEN OF THE SIXTEEN PERSONAS ARE ONE. The failure of getting it
83
+ * wrong is quiet in the right direction: a game persona that forgets it renders as an app — margins
84
+ * where it wanted none — rather than an app persona bleeding to the edges.
85
+ */
86
+ kind?: "app" | "game" | "now" | "expert" | "knower" | "platform";
72
87
  }
73
88
 
74
89
  const {
@@ -76,6 +91,7 @@ const {
76
91
  themeDark = "#000000",
77
92
  themeLight = "#f2f2f7",
78
93
  gaId = "G-13L3BP6XCW",
94
+ kind = "app",
79
95
  } = Astro.props;
80
96
 
81
97
  const d = dirOf(lang);
@@ -84,7 +100,7 @@ const localePath = (l: string) => (l === defaultLocale ? "/" : `/${l}/`);
84
100
  ---
85
101
 
86
102
  <!doctype html>
87
- <html lang={lang} dir={d}>
103
+ <html lang={lang} dir={d} data-kind={kind}>
88
104
  <head>
89
105
  <meta charset="utf-8" />
90
106
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />