@justai/cuts 0.12.0 → 0.13.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@justai/cuts",
3
- "version": "0.12.0",
3
+ "version": "0.13.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": {
package/src/Profile.astro CHANGED
@@ -28,7 +28,10 @@
28
28
  // CONTRACT: the shell's scroll-spy reads `.pname` and `.handle` from here to name the title strip, and
29
29
  // the section id `#profile` is one of the three cut anchors. Nothing else depends on the profile.
30
30
  interface Props {
31
- name: string; // the persona name (the <h1>)
31
+ // The persona name (the <h1>), rendered RAW — it is authored in the persona's own source, never user
32
+ // input, so a name may carry markup (justai's "justai<span class='pro'>.pro</span>"). Same rule as the
33
+ // Posts cut: a persona's OWN name is authored; anything from the API is escaped.
34
+ name: string;
32
35
  handle: string; // the @handle line, e.g. "@qr"
33
36
  bio: string; // the one-line bio
34
37
  meta?: string; // the small meta line under the bio (optional)
@@ -53,10 +56,14 @@ const vars = [
53
56
  <div class="cover"></div>
54
57
  <div class="pbody">
55
58
  <div class="avatar" role={avatarLabel ? "img" : undefined} aria-label={avatarLabel}><slot name="avatar" /></div>
56
- <h1 class="pname">{name}</h1>
59
+ <h1 class="pname" set:html={name} />
57
60
  <p class="handle">{handle}</p>
58
61
  <p class="bio">{bio}</p>
59
62
  {meta && <p class="meta">{meta}</p>}
63
+ <!-- anything else this persona's face carries (justai's purpose line, the apexes' privacy/terms
64
+ nav). It stays the PERSONA's markup — and therefore the persona's scope — so its styling lives
65
+ in the persona, while the frame above stays shared. -->
66
+ <slot />
60
67
  </div>
61
68
  </section>
62
69