create-ailk 0.13.0 → 0.15.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/README.md +12 -4
- package/component-catalog.json +250 -36
- package/component-catalog.md +10 -6
- package/dist/add-module.d.ts +7 -0
- package/dist/add-module.js +34 -2
- package/dist/add-route.js +18 -2
- package/dist/apply-design.d.ts +32 -2
- package/dist/apply-design.js +155 -22
- package/dist/cli.js +24 -3
- package/dist/derive-architecture.d.ts +15 -2
- package/dist/derive-architecture.js +34 -6
- package/dist/design-compile.d.ts +70 -2
- package/dist/design-compile.js +97 -1
- package/dist/design-home.d.ts +74 -0
- package/dist/design-home.js +256 -0
- package/dist/design-package.d.ts +39 -2
- package/dist/design-package.js +224 -9
- package/dist/design-presets.d.ts +17 -1
- package/dist/design-presets.js +17 -5
- package/dist/design-scaffold.d.ts +6 -25
- package/dist/design-scaffold.js +26 -74
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/lib/chrome-readers.d.ts +21 -0
- package/dist/lib/chrome-readers.js +100 -0
- package/dist/lib/design-checks.d.ts +12 -1
- package/dist/lib/design-checks.js +38 -2
- package/dist/lib/extract-module-bundle.d.ts +11 -0
- package/dist/lib/extract-module-bundle.js +36 -6
- package/dist/lib/license-key-files.d.ts +6 -1
- package/dist/lib/license-key-files.js +9 -4
- package/dist/lib/module-license-gate.d.ts +9 -0
- package/dist/lib/module-license-gate.js +18 -0
- package/dist/module-architecture.d.ts +9 -0
- package/dist/module-architecture.js +6 -0
- package/dist/parse-args.d.ts +22 -0
- package/dist/parse-args.js +73 -0
- package/dist/programmatic.d.ts +20 -0
- package/dist/programmatic.js +180 -35
- package/dist/site-chrome.d.ts +42 -0
- package/dist/site-chrome.js +140 -2
- package/dist/site-fonts.d.ts +21 -0
- package/dist/site-fonts.js +54 -0
- package/dist/site-manifest.d.ts +12 -5
- package/dist/site-manifest.js +25 -11
- package/dist/site-roster.d.ts +16 -0
- package/dist/site-roster.js +81 -0
- package/dist/starter-grid.js +15 -0
- package/dist/surfaces.js +12 -0
- package/dist/sync-routes.js +11 -2
- package/dist/team-profiles.d.ts +29 -0
- package/dist/team-profiles.js +43 -0
- package/dist/topology.d.ts +131 -0
- package/dist/topology.js +533 -0
- package/package.json +3 -3
- package/release-scope.json +1 -1
- package/site-templates/_base/content/en/TeamList/team.mdx +68 -0
- package/site-templates/_base/content/en/TeamMember/first-member.mdx +22 -0
- package/site-templates/_base/content/en/TeamMember/second-member.mdx +22 -0
- package/site-templates/_base/content/en/TeamMember/third-member.mdx +22 -0
- package/site-templates/designs/minimalism/DESIGN.md +166 -36
- package/site-templates/designs/minimalism/home/local-business-service.mdx +119 -0
- package/site-templates/designs/minimalism/home/organization-product.mdx +132 -0
- package/site-templates/designs/minimalism/home/organization-service.mdx +131 -0
- package/site-templates/designs/minimalism/home/person-service.mdx +101 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +34 -1
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +20 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +34 -1
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +22 -1
- package/site-templates/marketing-site-free/ailk-template.json +1 -1
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.json +34 -1
- package/site-templates/shapes/local-business-service/TEMPLATE-MANIFEST.md +26 -7
- package/site-templates/shapes/local-business-service/ailk-template.json +1 -1
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.json +34 -1
- package/site-templates/shapes/organization-service/TEMPLATE-MANIFEST.md +26 -7
- package/site-templates/shapes/organization-service/ailk-template.json +1 -1
- package/templates/README.md +2 -0
- package/templates/apps/api/CLAUDE.md +6 -1
- package/templates/apps/api/package.json +1 -0
- package/templates/apps/api/src/__tests__/factories/agent-caller.ts +5 -1
- package/templates/apps/api/src/lib/__mocks__/prisma.ts +10 -0
- package/templates/apps/api/src/lib/__tests__/agent-store.test.ts +114 -1
- package/templates/apps/api/src/lib/__tests__/site.test.ts +54 -0
- package/templates/apps/api/src/lib/agent-store.ts +95 -3
- package/templates/apps/api/src/lib/site.ts +37 -0
- package/templates/apps/api/src/lib/spoke-store.ts +18 -2
- package/templates/apps/api/src/middleware/__tests__/auth.bearer-path.test.ts +4 -0
- package/templates/apps/api/src/middleware/__tests__/default-tenant.test.ts +22 -0
- package/templates/apps/api/src/middleware/auth.ts +3 -0
- package/templates/apps/api/src/openapi/__tests__/openapi.test.ts +23 -0
- package/templates/apps/api/src/openapi/spec.ts +38 -2
- package/templates/apps/api/src/routes/checkout/__tests__/sessions.test.ts +50 -2
- package/templates/apps/api/src/routes/checkout/sessions.ts +7 -0
- package/templates/apps/api/src/routes/leads/__tests__/index.test.ts +275 -0
- package/templates/apps/api/src/routes/leads/index.ts +69 -6
- package/templates/apps/api/src/routes/webhooks/README.md +39 -0
- package/templates/apps/api/src/routes/webhooks/__tests__/stripe-site-filter.test.ts +366 -0
- package/templates/apps/api/src/routes/webhooks/stripe.ts +61 -1
- package/templates/apps/api/src/services/__tests__/lead-routing.test.ts +199 -0
- package/templates/apps/api/src/services/default-tenant.ts +41 -7
- package/templates/apps/api/src/services/lead-routing.ts +148 -29
- package/templates/apps/api/src/services/public-site-resolver.ts +48 -0
- package/templates/apps/mcp/__tests__/index.test.ts +5 -5
- package/templates/apps/mcp/package.json +1 -1
- package/templates/apps/mcp/src/index.ts +6 -4
- package/templates/apps/mcp/src/lib/content-adapter.ts +2 -2
- package/templates/apps/mcp/src/lib/topology.generated.ts +24 -0
- package/templates/apps/web/CLAUDE.md +12 -0
- package/templates/apps/web/app/[locale]/(authed)/account/__tests__/settings.test.tsx +10 -0
- package/templates/apps/web/app/[locale]/(authed)/account/settings/__tests__/theme-modes.test.ts +42 -0
- package/templates/apps/web/app/[locale]/(authed)/account/settings/theme-modes.ts +8 -0
- package/templates/apps/web/app/[locale]/[slug]/[detail]/__tests__/page.test.tsx +3 -0
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +3 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +14 -1
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +66 -14
- package/templates/apps/web/app/[locale]/contact/__tests__/site-contact-lines.test.ts +163 -0
- package/templates/apps/web/app/[locale]/contact/site-contact-lines.ts +68 -0
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +4 -4
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +15 -3
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +17 -6
- package/templates/apps/web/app/[locale]/for/__tests__/page-renderer-migration.test.tsx +14 -1
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +4 -6
- package/templates/apps/web/app/[locale]/layout.tsx +212 -57
- package/templates/apps/web/app/[locale]/newsletter/__tests__/page.test.tsx +3 -0
- package/templates/apps/web/app/[locale]/page.tsx +37 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +4 -6
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +5 -2
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +15 -2
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +43 -6
- package/templates/apps/web/app/[locale]/services/page.tsx +14 -2
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/team/[slug]/page.tsx +45 -0
- package/templates/apps/web/app/[locale]/team/__tests__/team-routes.test.tsx +155 -0
- package/templates/apps/web/app/[locale]/team/page.tsx +49 -0
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +14 -1
- package/templates/apps/web/app/[locale]/thanks/[slug]/__tests__/page.test.tsx +3 -0
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/not-found.tsx +47 -0
- package/templates/apps/web/app/openapi.json/__tests__/route.test.ts +89 -1
- package/templates/apps/web/app/openapi.json/route.ts +69 -1
- package/templates/apps/web/instrumentation.ts +7 -4
- package/templates/apps/web/lib/__tests__/closing-footer-path.test.ts +96 -0
- package/templates/apps/web/lib/__tests__/profile-back-link.test.ts +95 -0
- package/templates/apps/web/lib/__tests__/relay.test.ts +290 -0
- package/templates/apps/web/lib/__tests__/site-brand.test.ts +52 -0
- package/templates/apps/web/lib/__tests__/site-theme-head.test.ts +70 -0
- package/templates/apps/web/lib/__tests__/site-theme.test.ts +64 -1
- package/templates/apps/web/lib/closing-footer-path.ts +50 -0
- package/templates/apps/web/lib/profile-back-link.ts +51 -0
- package/templates/apps/web/lib/relay.ts +206 -2
- package/templates/apps/web/lib/site-brand.tsx +22 -1
- package/templates/apps/web/lib/site-chrome.ts +15 -0
- package/templates/apps/web/lib/site-fonts.ts +15 -0
- package/templates/apps/web/lib/site-logo.tsx +39 -1
- package/templates/apps/web/lib/site-theme-head.ts +33 -0
- package/templates/apps/web/lib/site-theme.ts +13 -1
- package/templates/apps/web/lib/topology.generated.ts +23 -0
- package/templates/apps/web/messages/en.json +7 -1
- package/templates/apps/web/package.json +1 -1
- package/templates/database/CHANGELOG.md +32 -0
- package/templates/database/__tests__/agents.db.test.ts +65 -0
- package/templates/database/__tests__/lead-idempotency-key.db.test.ts +92 -0
- package/templates/database/auth/schema.prisma +23 -0
- package/templates/database/inbox/schema.prisma +13 -0
- package/templates/database/jest.config.cjs +7 -11
- package/templates/database/migrations/20261008120000_user_last_workspace/migration.sql +35 -0
- package/templates/database/migrations/20261008130000_lead_idempotency_key/migration.sql +20 -0
- package/templates/database/migrations/20261009120000_agent_grants/migration.sql +33 -0
- package/templates/database/package.json +1 -1
- package/versions.json +35 -34
- package/site-templates/designs/minimalism/sample/README.md +0 -48
- package/site-templates/designs/minimalism/sample/content/en/HomePage/home.mdx +0 -244
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-1.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-2.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-3.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-4.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-5.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/avatar-placeholder-6.svg +0 -7
- package/site-templates/designs/minimalism/sample/public/hero-backdrop.svg +0 -17
- package/site-templates/designs/minimalism/sample/public/logo-placeholder-1.svg +0 -6
- package/site-templates/designs/minimalism/sample/public/logo-placeholder-2.svg +0 -6
- package/site-templates/designs/minimalism/sample/public/logo-placeholder-3.svg +0 -6
- package/site-templates/designs/minimalism/sample/public/wordmark-placeholder.svg +0 -28
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "HomePage"
|
|
3
|
-
slug: "home"
|
|
4
|
-
title: "Your Company"
|
|
5
|
-
description: "Placeholder home for the minimalism design — a nine-slide scroll-snap deck. Replace every line before you launch."
|
|
6
|
-
sections:
|
|
7
|
-
[
|
|
8
|
-
{
|
|
9
|
-
"id": "landing",
|
|
10
|
-
"type": "hero",
|
|
11
|
-
"data":
|
|
12
|
-
{
|
|
13
|
-
"variant": "centered",
|
|
14
|
-
"fill": "viewport",
|
|
15
|
-
"surface": "gradient-brand",
|
|
16
|
-
"backdrop": { "src": "/hero-backdrop.svg", "alt": "" },
|
|
17
|
-
"headline": "Your Company",
|
|
18
|
-
"lockup":
|
|
19
|
-
{
|
|
20
|
-
"src": "/wordmark-placeholder.svg",
|
|
21
|
-
"alt": "",
|
|
22
|
-
"width": 1043,
|
|
23
|
-
"height": 128,
|
|
24
|
-
},
|
|
25
|
-
"primaryCta": { "label": "{Primary CTA} →", "href": "/reports" },
|
|
26
|
-
"ctaSize": "xl",
|
|
27
|
-
"scrollCue": { "label": "Scroll" },
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"id": "tagline",
|
|
32
|
-
"type": "content-block",
|
|
33
|
-
"data":
|
|
34
|
-
{
|
|
35
|
-
"variant": "narrow",
|
|
36
|
-
"align": "center",
|
|
37
|
-
"fill": "viewport",
|
|
38
|
-
"headline": "A working partnership with the teams building {what your market needs next}",
|
|
39
|
-
"body": "{One line on who you work with, and what they get from you that they cannot get elsewhere.}",
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"id": "community",
|
|
44
|
-
"type": "logoCloud",
|
|
45
|
-
"data":
|
|
46
|
-
{
|
|
47
|
-
"headline": "Our community",
|
|
48
|
-
"layout": "grid",
|
|
49
|
-
"treatment": "monochrome",
|
|
50
|
-
"logos":
|
|
51
|
-
[
|
|
52
|
-
{ "name": "{logo}", "src": "/logo-placeholder-1.svg" },
|
|
53
|
-
{ "name": "{logo}", "src": "/logo-placeholder-2.svg" },
|
|
54
|
-
{ "name": "{logo}", "src": "/logo-placeholder-3.svg" },
|
|
55
|
-
],
|
|
56
|
-
"actions":
|
|
57
|
-
[
|
|
58
|
-
{
|
|
59
|
-
"kind": "button",
|
|
60
|
-
"label": "Refer someone →",
|
|
61
|
-
"href": "/referral",
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"id": "reports-headline",
|
|
68
|
-
"type": "content-block",
|
|
69
|
-
"data":
|
|
70
|
-
{
|
|
71
|
-
"variant": "narrow",
|
|
72
|
-
"align": "center",
|
|
73
|
-
"fill": "viewport",
|
|
74
|
-
"headline": "Research on {your field}, and on where the next decade of it is going",
|
|
75
|
-
"body": "{One line on what a reader walks away with. Keep it to a single sentence.}",
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
"id": "special-reports",
|
|
80
|
-
"type": "reports-list",
|
|
81
|
-
"data":
|
|
82
|
-
{
|
|
83
|
-
"headline": "Special reports",
|
|
84
|
-
"variant": "list",
|
|
85
|
-
"tone": "on-dark",
|
|
86
|
-
"surface": "gradient-dark",
|
|
87
|
-
"reports":
|
|
88
|
-
[
|
|
89
|
-
{
|
|
90
|
-
"slug": "state-of-the-market-2026",
|
|
91
|
-
"title": "State of {Your Market} 2026",
|
|
92
|
-
"date": "May 2026",
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"slug": "platform-shift-2025",
|
|
96
|
-
"title": "The {Platform Shift} Report",
|
|
97
|
-
"date": "March 2025",
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"slug": "annual-letter-2024",
|
|
101
|
-
"title": "Annual Letter",
|
|
102
|
-
"date": "December 2024",
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"slug": "field-notes-2023",
|
|
106
|
-
"title": "Field Notes",
|
|
107
|
-
"date": "2023",
|
|
108
|
-
},
|
|
109
|
-
],
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"id": "favorites",
|
|
114
|
-
"type": "reports-list",
|
|
115
|
-
"data":
|
|
116
|
-
{
|
|
117
|
-
"headline": "Favorites",
|
|
118
|
-
"variant": "list",
|
|
119
|
-
"tone": "on-dark",
|
|
120
|
-
"surface": "gradient-dark",
|
|
121
|
-
"reports":
|
|
122
|
-
[
|
|
123
|
-
{ "slug": "state-of-the-market-2026", "title": "2026" },
|
|
124
|
-
{ "slug": "platform-shift-2025", "title": "2025" },
|
|
125
|
-
{ "slug": "annual-letter-2024", "title": "2024" },
|
|
126
|
-
{ "slug": "field-notes-2023", "title": "2023" },
|
|
127
|
-
],
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
"id": "services-headline",
|
|
132
|
-
"type": "content-block",
|
|
133
|
-
"data":
|
|
134
|
-
{
|
|
135
|
-
"variant": "narrow",
|
|
136
|
-
"align": "center",
|
|
137
|
-
"fill": "viewport",
|
|
138
|
-
"headline": "Trusted work for the people who carry {the outcome you deliver}",
|
|
139
|
-
"body": "{One line on how an engagement starts and what the first month looks like.}",
|
|
140
|
-
"cta": { "label": "Hire me →", "href": "/meet" },
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
"id": "partners",
|
|
145
|
-
"type": "team",
|
|
146
|
-
"data":
|
|
147
|
-
{
|
|
148
|
-
"headline": "Partners",
|
|
149
|
-
"variant": "with-large-images",
|
|
150
|
-
"hoverReveal": true,
|
|
151
|
-
"largePhotos": true,
|
|
152
|
-
"phoneColumns": 2,
|
|
153
|
-
"actions":
|
|
154
|
-
[{ "kind": "button", "label": "About us →", "href": "/about" }],
|
|
155
|
-
"members":
|
|
156
|
-
[
|
|
157
|
-
{
|
|
158
|
-
"name": "{Name One}",
|
|
159
|
-
"role": "{Role}",
|
|
160
|
-
"avatar":
|
|
161
|
-
{ "src": "/avatar-placeholder-1.svg", "alt": "{Name One}" },
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
"name": "{Name Two}",
|
|
165
|
-
"role": "{Role}",
|
|
166
|
-
"avatar":
|
|
167
|
-
{ "src": "/avatar-placeholder-2.svg", "alt": "{Name Two}" },
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
"name": "{Name Three}",
|
|
171
|
-
"role": "{Role}",
|
|
172
|
-
"avatar":
|
|
173
|
-
{ "src": "/avatar-placeholder-3.svg", "alt": "{Name Three}" },
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
"name": "{Name Four}",
|
|
177
|
-
"role": "{Role}",
|
|
178
|
-
"avatar":
|
|
179
|
-
{ "src": "/avatar-placeholder-4.svg", "alt": "{Name Four}" },
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"name": "{Name Five}",
|
|
183
|
-
"role": "{Role}",
|
|
184
|
-
"avatar":
|
|
185
|
-
{ "src": "/avatar-placeholder-5.svg", "alt": "{Name Five}" },
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"name": "{Name Six}",
|
|
189
|
-
"role": "{Role}",
|
|
190
|
-
"avatar":
|
|
191
|
-
{ "src": "/avatar-placeholder-6.svg", "alt": "{Name Six}" },
|
|
192
|
-
},
|
|
193
|
-
],
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"id": "closing",
|
|
198
|
-
"type": "cta",
|
|
199
|
-
"data":
|
|
200
|
-
{
|
|
201
|
-
"variant": "minimal",
|
|
202
|
-
"headline": "Your Company",
|
|
203
|
-
"primaryCta": { "label": "Contact me →", "href": "/contact" },
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
]
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
{/\*
|
|
210
|
-
The nine-slide deck (#5589). `layout.home: "deck"` on this template's
|
|
211
|
-
registry entry is what makes the locale-root route mount MarketingShell with
|
|
212
|
-
`snap="mandatory"` + `deckHero` (#5612 D3 / #5426 D7): every direct section
|
|
213
|
-
child above becomes one full-viewport snap target, in order, and the brand
|
|
214
|
-
mark is hidden on slide 1 and revealed from slide 2 on. Nothing here declares
|
|
215
|
-
that — a template declares layout, never a route.
|
|
216
|
-
|
|
217
|
-
Every line of copy is a placeholder of the reference's shape and length, not
|
|
218
|
-
the reference's own words. Replace all of it before you launch — including
|
|
219
|
-
the four sample reports, the three logo placeholders and the six portrait
|
|
220
|
-
placeholders.
|
|
221
|
-
|
|
222
|
-
Every slide now carries the full composition the template intends — #5691
|
|
223
|
-
landed the seven bounded section props the deck was waiting on, and this file
|
|
224
|
-
sets all seven without recomposing a single slide:
|
|
225
|
-
|
|
226
|
-
- slide 1 `landing` — `backdrop` paints `assets/hero-backdrop.svg`
|
|
227
|
-
(installed at `/hero-backdrop.svg`) full-bleed behind the copy. It is a
|
|
228
|
-
distinct slot from the hero's `image`, which counts as a stacked reveal,
|
|
229
|
-
so the 44px `scrollCue` survives it.
|
|
230
|
-
- slide 3 `community` and slide 8 `partners` — `actions` puts one
|
|
231
|
-
bottom-centered action at the 44px floor on each ("Refer someone →" →
|
|
232
|
-
/referral; "About us →" → /about).
|
|
233
|
-
- slides 2 `tagline`, 4 `reports-headline` and 7 `services-headline` —
|
|
234
|
-
`align: "center"` + `fill: "viewport"` centre the copy in the middle of
|
|
235
|
-
the snap panel instead of pinning it to the top.
|
|
236
|
-
- slides 5 `special-reports` and 6 `favorites` — `surface:
|
|
237
|
-
"gradient-dark"` is the dark ground `tone: "on-dark"` (#5562, shipped
|
|
238
|
-
for this template) was always meant to sit on.
|
|
239
|
-
- slide 8 `partners` — `phoneColumns: 2` puts the six-tile wall two-up at
|
|
240
|
-
390 instead of overflowing the snap panel one tile at a time. Slide 8 is
|
|
241
|
-
the only slide that renders through `CardGrid`: slide 3's logo strip is
|
|
242
|
-
a reflowing flex row, and `reports-list`'s `list` variant has no grid.
|
|
243
|
-
|
|
244
|
-
\*/}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#ededf0" />
|
|
5
|
-
<circle cx="200" cy="150" r="78" fill="#8c8c95" />
|
|
6
|
-
<path d="M 50 400 C 50 324, 50 254, 200 254 C 350 254, 350 324, 350 400 Z" fill="#8c8c95" />
|
|
7
|
-
</svg>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#e7e7ea" />
|
|
5
|
-
<circle cx="200" cy="158" r="66" fill="#95959d" />
|
|
6
|
-
<path d="M 72 400 C 72 320, 72 250, 200 250 C 328 250, 328 320, 328 400 Z" fill="#95959d" />
|
|
7
|
-
</svg>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#eaeaee" />
|
|
5
|
-
<circle cx="200" cy="162" r="62" fill="#8f8f98" />
|
|
6
|
-
<path d="M 80 400 C 80 320, 80 250, 200 250 C 320 250, 320 320, 320 400 Z" fill="#8f8f98" />
|
|
7
|
-
</svg>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#e9e9ec" />
|
|
5
|
-
<circle cx="200" cy="156" r="68" fill="#9a9aa2" />
|
|
6
|
-
<path d="M 66 400 C 66 320, 66 250, 200 250 C 334 250, 334 320, 334 400 Z" fill="#9a9aa2" />
|
|
7
|
-
</svg>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#ececef" />
|
|
5
|
-
<circle cx="200" cy="164" r="60" fill="#90909a" />
|
|
6
|
-
<path d="M 84 400 C 84 320, 84 250, 200 250 C 316 250, 316 320, 316 400 Z" fill="#90909a" />
|
|
7
|
-
</svg>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" role="img" aria-label="Placeholder portrait">
|
|
2
|
-
<title>Placeholder portrait</title>
|
|
3
|
-
<desc>Neutral monochrome placeholder. Replace with a real photograph before you launch.</desc>
|
|
4
|
-
<rect width="400" height="400" fill="#e8e8eb" />
|
|
5
|
-
<circle cx="200" cy="154" r="70" fill="#9696a0" />
|
|
6
|
-
<path d="M 60 400 C 60 320, 60 250, 200 250 C 340 250, 340 320, 340 400 Z" fill="#9696a0" />
|
|
7
|
-
</svg>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 900" width="1600" height="900" role="img" aria-label="Placeholder backdrop">
|
|
2
|
-
<title>Placeholder backdrop</title>
|
|
3
|
-
<desc>Neutral gradient placeholder. Replace with your own full-bleed photograph before you launch.</desc>
|
|
4
|
-
<defs>
|
|
5
|
-
<linearGradient id="backdrop" x1="0" y1="0" x2="0.35" y2="1">
|
|
6
|
-
<stop offset="0" stop-color="#f4f4f5" />
|
|
7
|
-
<stop offset="0.55" stop-color="#d9d9dd" />
|
|
8
|
-
<stop offset="1" stop-color="#b6b6bd" />
|
|
9
|
-
</linearGradient>
|
|
10
|
-
<radialGradient id="bloom" cx="0.5" cy="0.38" r="0.62">
|
|
11
|
-
<stop offset="0" stop-color="#ffffff" stop-opacity="0.75" />
|
|
12
|
-
<stop offset="1" stop-color="#ffffff" stop-opacity="0" />
|
|
13
|
-
</radialGradient>
|
|
14
|
-
</defs>
|
|
15
|
-
<rect width="1600" height="900" fill="url(#backdrop)" />
|
|
16
|
-
<rect width="1600" height="900" fill="url(#bloom)" />
|
|
17
|
-
</svg>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 40" width="160" height="40" role="img" aria-label="Placeholder logo">
|
|
2
|
-
<title>Placeholder logo</title>
|
|
3
|
-
<circle cx="20" cy="20" r="12" fill="none" stroke="#6b6b73" stroke-width="3" />
|
|
4
|
-
<rect x="42" y="14" width="96" height="5" rx="2.5" fill="#6b6b73" />
|
|
5
|
-
<rect x="42" y="24" width="62" height="5" rx="2.5" fill="#a3a3ab" />
|
|
6
|
-
</svg>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 40" width="160" height="40" role="img" aria-label="Placeholder logo">
|
|
2
|
-
<title>Placeholder logo</title>
|
|
3
|
-
<rect x="9" y="9" width="22" height="22" rx="4" fill="none" stroke="#6b6b73" stroke-width="3" />
|
|
4
|
-
<rect x="42" y="14" width="84" height="5" rx="2.5" fill="#6b6b73" />
|
|
5
|
-
<rect x="42" y="24" width="50" height="5" rx="2.5" fill="#a3a3ab" />
|
|
6
|
-
</svg>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 40" width="160" height="40" role="img" aria-label="Placeholder logo">
|
|
2
|
-
<title>Placeholder logo</title>
|
|
3
|
-
<path d="M20 7 L33 31 L7 31 Z" fill="none" stroke="#6b6b73" stroke-width="3" stroke-linejoin="round" />
|
|
4
|
-
<rect x="42" y="14" width="74" height="5" rx="2.5" fill="#6b6b73" />
|
|
5
|
-
<rect x="42" y="24" width="98" height="5" rx="2.5" fill="#a3a3ab" />
|
|
6
|
-
</svg>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-14 -14 1043 128" width="1043" height="128" role="img" aria-label="Placeholder wordmark">
|
|
2
|
-
<title>Placeholder wordmark</title>
|
|
3
|
-
<desc>Monoline "Your Company" wordmark, drawn as paths so it needs no font. Replace with your own logo lockup before you launch.</desc>
|
|
4
|
-
<g fill="none" stroke="#6b6b73" stroke-width="10" stroke-linecap="round" stroke-linejoin="round">
|
|
5
|
-
<!-- Y -->
|
|
6
|
-
<path d="M0 0 L35 55 L70 0 M35 55 L35 100" />
|
|
7
|
-
<!-- O -->
|
|
8
|
-
<ellipse cx="125" cy="50" rx="35" ry="50" />
|
|
9
|
-
<!-- U -->
|
|
10
|
-
<path d="M180 0 L180 65 A35 35 0 0 0 250 65 L250 0" />
|
|
11
|
-
<!-- R -->
|
|
12
|
-
<path d="M270 100 L270 0 L315 0 A27.5 27.5 0 0 1 315 55 L270 55 M312 55 L340 100" />
|
|
13
|
-
<!-- C -->
|
|
14
|
-
<path d="M462.5 11.7 A35 50 0 1 0 462.5 88.3" />
|
|
15
|
-
<!-- O -->
|
|
16
|
-
<ellipse cx="530" cy="50" rx="35" ry="50" />
|
|
17
|
-
<!-- M -->
|
|
18
|
-
<path d="M585 100 L585 0 L620 55 L655 0 L655 100" />
|
|
19
|
-
<!-- P -->
|
|
20
|
-
<path d="M675 100 L675 0 L717 0 A29 29 0 0 1 717 58 L675 58" />
|
|
21
|
-
<!-- A -->
|
|
22
|
-
<path d="M765 100 L800 0 L835 100 M779 72 L821 72" />
|
|
23
|
-
<!-- N -->
|
|
24
|
-
<path d="M855 100 L855 0 L925 100 L925 0" />
|
|
25
|
-
<!-- Y -->
|
|
26
|
-
<path d="M945 0 L980 55 L1015 0 M980 55 L980 100" />
|
|
27
|
-
</g>
|
|
28
|
-
</svg>
|