@rizom/site-rizom-ai 0.2.0-alpha.167 → 0.2.0-alpha.168

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": "@rizom/site-rizom-ai",
3
- "version": "0.2.0-alpha.167",
3
+ "version": "0.2.0-alpha.168",
4
4
  "description": "Rizom AI site package for hosted Rover deployments",
5
5
  "type": "module",
6
6
  "exports": {
@@ -18,9 +18,9 @@
18
18
  "prepack": "publish-manifest prepare"
19
19
  },
20
20
  "dependencies": {
21
- "@rizom/site": "0.2.0-alpha.167",
22
- "@rizom/site-rizom": "0.2.0-alpha.167",
23
- "@rizom/site-sections": "0.2.0-alpha.167",
21
+ "@rizom/site": "0.2.0-alpha.168",
22
+ "@rizom/site-rizom": "0.2.0-alpha.168",
23
+ "@rizom/site-sections": "0.2.0-alpha.168",
24
24
  "preact": "^10.27.2"
25
25
  },
26
26
  "publishConfig": {
package/src/home.tsx CHANGED
@@ -13,13 +13,15 @@ import {
13
13
  trioSchema,
14
14
  ctaSchema,
15
15
  delayClass,
16
+ ROOM_HIGHLIGHT_CLS,
16
17
  } from "./shared";
17
18
 
18
19
  /**
19
20
  * The umbrella home page. The hero is the live agent proximity map (wired in
20
21
  * routes.ts as agent-discovery:proximity-map); the sections here tell the
21
- * story the map opens — the dark it fights (problem), how the network grows
22
- * (growth), the mission band, the three faces, and the living-proof colophon.
22
+ * story the map opens — the dark it fights (problem), the one light that
23
+ * starts it (the product hook), how the network grows (growth), the mission
24
+ * band, the three faces, and the living-proof colophon.
23
25
  * Each section is authored from one zod schema (its component's props are
24
26
  * `z.infer` of that schema); copy is content-driven, stored as markdown in
25
27
  * site-content/home/<section>.md. Only the assembled section group is
@@ -54,16 +56,54 @@ function HomeGrowthSection({
54
56
 
55
57
  function HomeProblemSection({
56
58
  cap,
59
+ capNote,
57
60
  items,
58
61
  }: z.infer<typeof trioSchema>): JSX.Element {
59
62
  return (
60
63
  <Section id="problem" className="py-14">
61
- <SectCap lead={cap} />
64
+ <SectCap lead={cap} trail={capNote} />
62
65
  <Trio items={items} mono={false} />
63
66
  </Section>
64
67
  );
65
68
  }
66
69
 
70
+ /* ============ it starts with one light ============ */
71
+
72
+ const oneLightSchema = z.object({
73
+ cap: z.string(),
74
+ capNote: z.string(),
75
+ headline: z.string(),
76
+ intro: z.string(),
77
+ primaryCta: ctaSchema,
78
+ secondaryCta: ctaSchema,
79
+ });
80
+
81
+ function HomeOneLightSection({
82
+ cap,
83
+ capNote,
84
+ headline,
85
+ intro,
86
+ primaryCta,
87
+ secondaryCta,
88
+ }: z.infer<typeof oneLightSchema>): JSX.Element {
89
+ return (
90
+ <Section id="one-light" className="py-14">
91
+ <SectCap lead={cap} trail={capNote} />
92
+ <h2 className="reveal reveal-delay-1 mt-3.5 max-w-[20em] font-display text-[clamp(28px,3vw,40px)] font-[465] leading-[1.1] tracking-[-0.014em] text-theme [font-variation-settings:'SOFT'_78,'opsz'_84]">
93
+ {renderHighlightedText(headline, ROOM_HIGHLIGHT_CLS)}
94
+ </h2>
95
+ <p className="reveal reveal-delay-2 mt-4 max-w-[62ch] font-body text-[17px] leading-[1.7] text-theme-muted">
96
+ {intro}
97
+ </p>
98
+ <CtaRow
99
+ primaryCta={primaryCta}
100
+ secondaryCta={secondaryCta}
101
+ className="reveal reveal-delay-3 mt-6"
102
+ />
103
+ </Section>
104
+ );
105
+ }
106
+
67
107
  /* ============ mission band ============ */
68
108
 
69
109
  const missionSchema = z.object({
@@ -177,7 +217,12 @@ export const homeSections: SiteSectionGroup = sectionGroup("home", {
177
217
  }),
178
218
  problem: defineSection(trioSchema, HomeProblemSection, {
179
219
  title: "Problem",
180
- description: "Why it has to exist — problem trio (large numerals)",
220
+ description: "The dark around the lights — problem trio (large numerals)",
221
+ }),
222
+ "one-light": defineSection(oneLightSchema, HomeOneLightSection, {
223
+ title: "One Light",
224
+ description:
225
+ "It starts with one light — the product hook between problem and growth",
181
226
  }),
182
227
  mission: defineSection(missionSchema, HomeMissionSection, {
183
228
  title: "Mission",
package/src/routes.ts CHANGED
@@ -18,13 +18,15 @@ export const aiRoutes: RouteDefinitionInput[] = [
18
18
  // own registry. dataQuery routes it through the datasource (live map
19
19
  // data); its hero copy is authored at site-content/home/network.md and
20
20
  // merged over via the content overlay. Then the story the map opens: the
21
- // dark it fights, how the network grows, the mission, the faces.
21
+ // dark it fights, the one light that starts it (the product hook), how
22
+ // the network grows, the mission, the faces.
22
23
  {
23
24
  id: "network",
24
25
  template: "agent-discovery:proximity-map",
25
26
  dataQuery: {},
26
27
  },
27
28
  { id: "problem", template: "home:problem" },
29
+ { id: "one-light", template: "home:one-light" },
28
30
  { id: "growth", template: "home:growth" },
29
31
  { id: "mission", template: "home:mission" },
30
32
  { id: "faces", template: "home:faces" },
package/src/shared.tsx CHANGED
@@ -212,9 +212,11 @@ export const trioItemSchema: z.ZodObject<{
212
212
 
213
213
  export const trioSchema: z.ZodObject<{
214
214
  cap: z.ZodString;
215
+ capNote: z.ZodOptional<z.ZodString>;
215
216
  items: z.ZodArray<typeof trioItemSchema>;
216
217
  }> = z.object({
217
218
  cap: z.string(),
219
+ capNote: z.string().optional(),
218
220
  items: z.array(trioItemSchema),
219
221
  });
220
222