create-ailk 0.13.0 → 0.14.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 +247 -33
- package/component-catalog.md +10 -6
- package/dist/apply-design.d.ts +21 -2
- package/dist/apply-design.js +120 -19
- package/dist/cli.js +1 -0
- 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 +223 -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 +1 -0
- package/dist/lib/design-checks.d.ts +12 -1
- package/dist/lib/design-checks.js +38 -2
- package/dist/lib/module-license-gate.d.ts +9 -0
- package/dist/lib/module-license-gate.js +18 -0
- package/dist/programmatic.js +70 -26
- package/dist/site-chrome.d.ts +38 -0
- package/dist/site-chrome.js +109 -2
- package/dist/site-fonts.d.ts +21 -0
- package/dist/site-fonts.js +54 -0
- 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/team-profiles.d.ts +29 -0
- package/dist/team-profiles.js +43 -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 +164 -34
- 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 +4 -1
- package/templates/apps/mcp/package.json +1 -1
- package/templates/apps/web/CLAUDE.md +11 -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]/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__/site-contact-lines.test.ts +69 -0
- package/templates/apps/web/app/[locale]/contact/site-contact-lines.ts +64 -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 +156 -53
- 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]/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]/whitepapers/__tests__/page-renderer-migration.test.tsx +2 -2
- package/templates/apps/web/app/not-found.tsx +47 -0
- package/templates/apps/web/lib/__tests__/profile-back-link.test.ts +95 -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/profile-back-link.ts +51 -0
- package/templates/apps/web/lib/site-chrome.ts +12 -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/messages/en.json +7 -1
- package/templates/database/CHANGELOG.md +7 -0
- package/templates/database/package.json +1 -1
- package/versions.json +34 -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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "HomePage"
|
|
3
|
+
slug: "home"
|
|
4
|
+
title: "Your Company"
|
|
5
|
+
description: "The minimalism design's home arc for the organization-product shape — landing, who we are, proof, how we work, what we offer, why us. Every line is a placeholder; replace it before you launch."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "landing",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"surface": "none",
|
|
14
|
+
"headline": "{Your Company}",
|
|
15
|
+
"primaryCta": { "label": "{One action}", "href": "/contact" },
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "who-we-are",
|
|
20
|
+
"type": "content-block",
|
|
21
|
+
"data": { "surface": "none", "headline": "{Who you are, in one line}" },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "proof",
|
|
25
|
+
"type": "logoCloud",
|
|
26
|
+
"data":
|
|
27
|
+
{
|
|
28
|
+
"surface": "solid-dark",
|
|
29
|
+
"headline": "{Who already trusts you}",
|
|
30
|
+
"logos": [],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "how-we-work",
|
|
35
|
+
"type": "content-block",
|
|
36
|
+
"data":
|
|
37
|
+
{
|
|
38
|
+
"surface": "none",
|
|
39
|
+
"headline": "{How a customer gets started, in one line}",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "what-we-offer",
|
|
44
|
+
"type": "items",
|
|
45
|
+
"data":
|
|
46
|
+
{
|
|
47
|
+
"surface": "solid-dark",
|
|
48
|
+
"headline": "{What we offer}",
|
|
49
|
+
"items":
|
|
50
|
+
[
|
|
51
|
+
{
|
|
52
|
+
"title": "{First feature}",
|
|
53
|
+
"description": "{One line on what it is}",
|
|
54
|
+
"link":
|
|
55
|
+
{ "label": "{Read more}", "href": "/features/feature-1" },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"title": "{Second feature}",
|
|
59
|
+
"description": "{One line on what it is}",
|
|
60
|
+
"link":
|
|
61
|
+
{ "label": "{Read more}", "href": "/features/feature-2" },
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"title": "{Third feature}",
|
|
65
|
+
"description": "{One line on what it is}",
|
|
66
|
+
"link":
|
|
67
|
+
{ "label": "{Read more}", "href": "/features/feature-3" },
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "why-us",
|
|
74
|
+
"type": "content-block",
|
|
75
|
+
"data":
|
|
76
|
+
{
|
|
77
|
+
"surface": "none",
|
|
78
|
+
"headline": "{Why a client should choose you, in one line}",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "people",
|
|
83
|
+
"type": "team",
|
|
84
|
+
"data":
|
|
85
|
+
{
|
|
86
|
+
"surface": "none",
|
|
87
|
+
"headline": "{The people behind the work}",
|
|
88
|
+
"members":
|
|
89
|
+
[
|
|
90
|
+
{
|
|
91
|
+
"name": "{First team member's name}",
|
|
92
|
+
"role": "{Their title}",
|
|
93
|
+
"links":
|
|
94
|
+
[
|
|
95
|
+
{
|
|
96
|
+
"type": "page",
|
|
97
|
+
"url": "/team/first-member",
|
|
98
|
+
"label": "{View profile}",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "{Second team member's name}",
|
|
104
|
+
"role": "{Their title}",
|
|
105
|
+
"links":
|
|
106
|
+
[
|
|
107
|
+
{
|
|
108
|
+
"type": "page",
|
|
109
|
+
"url": "/team/second-member",
|
|
110
|
+
"label": "{View profile}",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "{Third team member's name}",
|
|
116
|
+
"role": "{Their title}",
|
|
117
|
+
"links":
|
|
118
|
+
[
|
|
119
|
+
{
|
|
120
|
+
"type": "page",
|
|
121
|
+
"url": "/team/third-member",
|
|
122
|
+
"label": "{View profile}",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
]
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
Placeholder copy. The minimalism design seeded this home: every headline and line on it is a placeholder — replace them before you launch.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "HomePage"
|
|
3
|
+
slug: "home"
|
|
4
|
+
title: "Your Company"
|
|
5
|
+
description: "The minimalism design's home arc for the organization-service shape — landing, who we are, how we work, what we offer, why us. Every line is a placeholder; replace it before you launch."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "landing",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"surface": "none",
|
|
14
|
+
"headline": "{Your Company}",
|
|
15
|
+
"primaryCta": { "label": "{One action}", "href": "/contact" },
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "who-we-are",
|
|
20
|
+
"type": "content-block",
|
|
21
|
+
"data": { "surface": "none", "headline": "{Who you are, in one line}" },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "how-we-work",
|
|
25
|
+
"type": "content-block",
|
|
26
|
+
"data":
|
|
27
|
+
{
|
|
28
|
+
"surface": "none",
|
|
29
|
+
"headline": "{How you work with a client, in one line}",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "what-we-offer",
|
|
34
|
+
"type": "items",
|
|
35
|
+
"data":
|
|
36
|
+
{
|
|
37
|
+
"surface": "solid-dark",
|
|
38
|
+
"headline": "{What we offer}",
|
|
39
|
+
"items":
|
|
40
|
+
[
|
|
41
|
+
{
|
|
42
|
+
"title": "{First engagement}",
|
|
43
|
+
"description": "{One line on what it is}",
|
|
44
|
+
"link":
|
|
45
|
+
{
|
|
46
|
+
"label": "{Read more}",
|
|
47
|
+
"href": "/services/first-engagement",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"title": "{Second engagement}",
|
|
52
|
+
"description": "{One line on what it is}",
|
|
53
|
+
"link":
|
|
54
|
+
{
|
|
55
|
+
"label": "{Read more}",
|
|
56
|
+
"href": "/services/second-engagement",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"title": "{Third engagement}",
|
|
61
|
+
"description": "{One line on what it is}",
|
|
62
|
+
"link":
|
|
63
|
+
{
|
|
64
|
+
"label": "{Read more}",
|
|
65
|
+
"href": "/services/third-engagement",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "why-us",
|
|
73
|
+
"type": "content-block",
|
|
74
|
+
"data":
|
|
75
|
+
{
|
|
76
|
+
"surface": "none",
|
|
77
|
+
"headline": "{Why a client should choose you, in one line}",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "people",
|
|
82
|
+
"type": "team",
|
|
83
|
+
"data":
|
|
84
|
+
{
|
|
85
|
+
"surface": "none",
|
|
86
|
+
"headline": "{The people behind the work}",
|
|
87
|
+
"members":
|
|
88
|
+
[
|
|
89
|
+
{
|
|
90
|
+
"name": "{First team member's name}",
|
|
91
|
+
"role": "{Their title}",
|
|
92
|
+
"links":
|
|
93
|
+
[
|
|
94
|
+
{
|
|
95
|
+
"type": "page",
|
|
96
|
+
"url": "/team/first-member",
|
|
97
|
+
"label": "{View profile}",
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "{Second team member's name}",
|
|
103
|
+
"role": "{Their title}",
|
|
104
|
+
"links":
|
|
105
|
+
[
|
|
106
|
+
{
|
|
107
|
+
"type": "page",
|
|
108
|
+
"url": "/team/second-member",
|
|
109
|
+
"label": "{View profile}",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "{Third team member's name}",
|
|
115
|
+
"role": "{Their title}",
|
|
116
|
+
"links":
|
|
117
|
+
[
|
|
118
|
+
{
|
|
119
|
+
"type": "page",
|
|
120
|
+
"url": "/team/third-member",
|
|
121
|
+
"label": "{View profile}",
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
]
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
Placeholder copy. The minimalism design seeded this home: every headline and line on it is a placeholder — replace them before you launch.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "HomePage"
|
|
3
|
+
slug: "home"
|
|
4
|
+
title: "Your Name"
|
|
5
|
+
description: "The minimalism design's home arc for the person-service shape — landing, who we are, how we work, what we offer, why us, the person. Every line is a placeholder; replace it before you launch."
|
|
6
|
+
sections:
|
|
7
|
+
[
|
|
8
|
+
{
|
|
9
|
+
"id": "landing",
|
|
10
|
+
"type": "hero",
|
|
11
|
+
"data":
|
|
12
|
+
{
|
|
13
|
+
"surface": "none",
|
|
14
|
+
"headline": "{Your Name}",
|
|
15
|
+
"primaryCta": { "label": "{One action}", "href": "/contact" },
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "who-we-are",
|
|
20
|
+
"type": "content-block",
|
|
21
|
+
"data": { "surface": "none", "headline": "{Who you are, in one line}" },
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "how-we-work",
|
|
25
|
+
"type": "content-block",
|
|
26
|
+
"data":
|
|
27
|
+
{
|
|
28
|
+
"surface": "none",
|
|
29
|
+
"headline": "{How you work with a client, in one line}",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "what-we-offer",
|
|
34
|
+
"type": "items",
|
|
35
|
+
"data":
|
|
36
|
+
{
|
|
37
|
+
"surface": "solid-dark",
|
|
38
|
+
"headline": "{What I offer}",
|
|
39
|
+
"items":
|
|
40
|
+
[
|
|
41
|
+
{
|
|
42
|
+
"title": "{First engagement}",
|
|
43
|
+
"description": "{One line on what it is}",
|
|
44
|
+
"link":
|
|
45
|
+
{
|
|
46
|
+
"label": "{Read more}",
|
|
47
|
+
"href": "/services/first-engagement",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"title": "{Second engagement}",
|
|
52
|
+
"description": "{One line on what it is}",
|
|
53
|
+
"link":
|
|
54
|
+
{
|
|
55
|
+
"label": "{Read more}",
|
|
56
|
+
"href": "/services/second-engagement",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"title": "{Third engagement}",
|
|
61
|
+
"description": "{One line on what it is}",
|
|
62
|
+
"link":
|
|
63
|
+
{
|
|
64
|
+
"label": "{Read more}",
|
|
65
|
+
"href": "/services/third-engagement",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "why-us",
|
|
73
|
+
"type": "content-block",
|
|
74
|
+
"data":
|
|
75
|
+
{
|
|
76
|
+
"surface": "none",
|
|
77
|
+
"headline": "{Why a client should choose you, in one line}",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "people",
|
|
82
|
+
"type": "team",
|
|
83
|
+
"data":
|
|
84
|
+
{
|
|
85
|
+
"surface": "none",
|
|
86
|
+
"headline": "{Who you will work with}",
|
|
87
|
+
"members":
|
|
88
|
+
[
|
|
89
|
+
{
|
|
90
|
+
"name": "{Your Name}",
|
|
91
|
+
"role": "{What you do}",
|
|
92
|
+
"links":
|
|
93
|
+
[{ "type": "page", "url": "/about", "label": "{About you}" }],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
]
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
Placeholder copy. The minimalism design seeded this home: every headline and line on it is a placeholder — replace them before you launch.
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"shape": "organization-product",
|
|
19
19
|
"design": "standard",
|
|
20
|
-
"generatedHash": "
|
|
20
|
+
"generatedHash": "971a929b8fe9feb35845c69fc7af93fb01ff9b1e408b8a6abedb5fd5ddbdf26f",
|
|
21
21
|
"layout": {
|
|
22
22
|
"nav": "full",
|
|
23
23
|
"footer": "columns",
|
|
@@ -602,6 +602,39 @@
|
|
|
602
602
|
"chrome": "on",
|
|
603
603
|
"sections": []
|
|
604
604
|
},
|
|
605
|
+
{
|
|
606
|
+
"route": "/team",
|
|
607
|
+
"kind": "page",
|
|
608
|
+
"pageType": "TeamList",
|
|
609
|
+
"schema": "TeamList",
|
|
610
|
+
"shell": "MarketingShell",
|
|
611
|
+
"chrome": "on",
|
|
612
|
+
"sections": [
|
|
613
|
+
{
|
|
614
|
+
"type": "hero",
|
|
615
|
+
"component": "Hero"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"type": "team",
|
|
619
|
+
"component": "Team"
|
|
620
|
+
}
|
|
621
|
+
]
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"route": "/team/[slug]",
|
|
625
|
+
"kind": "page",
|
|
626
|
+
"contentDir": "content/en/TeamMember",
|
|
627
|
+
"seeds": [
|
|
628
|
+
"content/en/TeamMember/first-member.mdx",
|
|
629
|
+
"content/en/TeamMember/second-member.mdx",
|
|
630
|
+
"content/en/TeamMember/third-member.mdx"
|
|
631
|
+
],
|
|
632
|
+
"pageType": "TeamMember",
|
|
633
|
+
"schema": "TeamMember",
|
|
634
|
+
"shell": "MarketingShell",
|
|
635
|
+
"chrome": "on",
|
|
636
|
+
"sections": []
|
|
637
|
+
},
|
|
605
638
|
{
|
|
606
639
|
"route": "/blog",
|
|
607
640
|
"kind": "page",
|
|
@@ -450,6 +450,24 @@ Spec 6892 D3 — a signal-collectors module sample: the referral magnet, whose C
|
|
|
450
450
|
_Detail route over `content/en/PortfolioItem/` — 4 seed pages: `sample-four.mdx`, `sample-one.mdx`, `sample-three.mdx`, `sample-two.mdx`._
|
|
451
451
|
<!-- generated:end -->
|
|
452
452
|
|
|
453
|
+
`/team`:
|
|
454
|
+
|
|
455
|
+
<!-- generated:begin page=/team -->
|
|
456
|
+
|
|
457
|
+
| # | Section | Component | Copy (first line) |
|
|
458
|
+
| --- | --------------------------------------- | --------- | ----------------------------- |
|
|
459
|
+
| 1 | `hero` (default · eyebrow "{Team}") | `Hero` | {The people behind the work.} |
|
|
460
|
+
| 2 | `team` (with-large-images · members ×3) | `Team` | {First team member's name} |
|
|
461
|
+
|
|
462
|
+
<!-- generated:end -->
|
|
463
|
+
|
|
464
|
+
`/team/[slug]`:
|
|
465
|
+
|
|
466
|
+
<!-- generated:begin page=/team/[slug] -->
|
|
467
|
+
|
|
468
|
+
_Detail route over `content/en/TeamMember/` — 3 seed pages: `first-member.mdx`, `second-member.mdx`, `third-member.mdx`._
|
|
469
|
+
<!-- generated:end -->
|
|
470
|
+
|
|
453
471
|
## 2a. State and persistence — Pro delta
|
|
454
472
|
|
|
455
473
|
Everything in the Free manifest § 2a applies. Pro adds:
|
|
@@ -501,6 +519,8 @@ marketing-site:
|
|
|
501
519
|
- { route: "/referral", kind: page, content: ["content/en/LandingPage/referral.mdx"] }
|
|
502
520
|
- { route: "/portfolio", kind: page, content: ["content/en/PortfolioList/portfolio.mdx"] }
|
|
503
521
|
- { route: "/portfolio/[slug]", kind: page, contentDir: "content/en/PortfolioItem" }
|
|
522
|
+
- { route: "/team", kind: page, content: ["content/en/TeamList/team.mdx"] }
|
|
523
|
+
- { route: "/team/[slug]", kind: page, contentDir: "content/en/TeamMember" }
|
|
504
524
|
- { route: "/blog", kind: page, content: ["apps/web/content/en/blog/index.mdx", "apps/web/content/en/blog/01-8-things-that-prove-coding-skills-are-directly-linked-to-successfully-assembling-ikea-furniture.mdx", "apps/web/content/en/blog/02-5-ways-to-guarantee-your-startup-goes-nowhere-fast.mdx", "apps/web/content/en/blog/03-10-ideas-that-will-guarantee-1000x-growth.mdx", "apps/web/content/en/blog/04-7-keys-to-saas-success-the-elite-doesnt-want-you-to-know.mdx", "apps/web/content/en/blog/launching-ailk.mdx"] }
|
|
505
525
|
- { route: "/docs", kind: page, content: ["apps/web/content/en/docs/getting-started.mdx", "apps/web/content/en/docs/configure.mdx", "apps/web/content/en/docs/deploy.mdx"] }
|
|
506
526
|
- { route: "/meet", kind: route }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"categories": ["accounting", "legal", "technology"],
|
|
5
5
|
"shape": "organization-product",
|
|
6
6
|
"design": "standard",
|
|
7
|
-
"generatedHash": "
|
|
7
|
+
"generatedHash": "518cd610a8b86cf4d520c8691a52dc5a0f53a07bf5b44a8515ef4fb1ec84aa92",
|
|
8
8
|
"layout": {
|
|
9
9
|
"nav": "full",
|
|
10
10
|
"footer": "columns",
|
|
@@ -579,6 +579,39 @@
|
|
|
579
579
|
"shell": "MarketingShell",
|
|
580
580
|
"chrome": "on",
|
|
581
581
|
"sections": []
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"route": "/team",
|
|
585
|
+
"kind": "page",
|
|
586
|
+
"pageType": "TeamList",
|
|
587
|
+
"schema": "TeamList",
|
|
588
|
+
"shell": "MarketingShell",
|
|
589
|
+
"chrome": "on",
|
|
590
|
+
"sections": [
|
|
591
|
+
{
|
|
592
|
+
"type": "hero",
|
|
593
|
+
"component": "Hero"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"type": "team",
|
|
597
|
+
"component": "Team"
|
|
598
|
+
}
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"route": "/team/[slug]",
|
|
603
|
+
"kind": "page",
|
|
604
|
+
"contentDir": "content/en/TeamMember",
|
|
605
|
+
"seeds": [
|
|
606
|
+
"content/en/TeamMember/first-member.mdx",
|
|
607
|
+
"content/en/TeamMember/second-member.mdx",
|
|
608
|
+
"content/en/TeamMember/third-member.mdx"
|
|
609
|
+
],
|
|
610
|
+
"pageType": "TeamMember",
|
|
611
|
+
"schema": "TeamMember",
|
|
612
|
+
"shell": "MarketingShell",
|
|
613
|
+
"chrome": "on",
|
|
614
|
+
"sections": []
|
|
582
615
|
}
|
|
583
616
|
]
|
|
584
617
|
}
|
|
@@ -355,6 +355,24 @@ One `before-after` comparison per page, seeded from `site-templates/_base/conten
|
|
|
355
355
|
_Detail route over `content/en/PortfolioItem/` — 4 seed pages: `sample-four.mdx`, `sample-one.mdx`, `sample-three.mdx`, `sample-two.mdx`._
|
|
356
356
|
<!-- generated:end -->
|
|
357
357
|
|
|
358
|
+
`/team`:
|
|
359
|
+
|
|
360
|
+
<!-- generated:begin page=/team -->
|
|
361
|
+
|
|
362
|
+
| # | Section | Component | Copy (first line) |
|
|
363
|
+
| --- | --------------------------------------- | --------- | ----------------------------- |
|
|
364
|
+
| 1 | `hero` (default · eyebrow "{Team}") | `Hero` | {The people behind the work.} |
|
|
365
|
+
| 2 | `team` (with-large-images · members ×3) | `Team` | {First team member's name} |
|
|
366
|
+
|
|
367
|
+
<!-- generated:end -->
|
|
368
|
+
|
|
369
|
+
`/team/[slug]`:
|
|
370
|
+
|
|
371
|
+
<!-- generated:begin page=/team/[slug] -->
|
|
372
|
+
|
|
373
|
+
_Detail route over `content/en/TeamMember/` — 3 seed pages: `first-member.mdx`, `second-member.mdx`, `third-member.mdx`._
|
|
374
|
+
<!-- generated:end -->
|
|
375
|
+
|
|
358
376
|
### `/thanks/<slug>` — per-form confirmation (InstrumentDeliveryPage) · chrome on
|
|
359
377
|
|
|
360
378
|
Not a hub page by design (#3960). Free ships none because the contact form confirms inline. Listed so nobody re-files it.
|
|
@@ -424,11 +442,13 @@ marketing-site-free:
|
|
|
424
442
|
- { route: "/meet/[slug]", kind: page, content: ["content/en/BookCall/book-a-call.mdx", "content/en/BookCall/onsite-estimate.mdx", "content/en/BookCall/start-project.mdx", "content/en/BookCall/onsite-service.mdx"] }
|
|
425
443
|
- { route: "/portfolio", kind: page, content: ["content/en/PortfolioList/portfolio.mdx"] }
|
|
426
444
|
- { route: "/portfolio/[slug]", kind: page, contentDir: "content/en/PortfolioItem" }
|
|
445
|
+
- { route: "/team", kind: page, content: ["content/en/TeamList/team.mdx"] }
|
|
446
|
+
- { route: "/team/[slug]", kind: page, contentDir: "content/en/TeamMember" }
|
|
427
447
|
```
|
|
428
448
|
|
|
429
449
|
<!-- generated:end -->
|
|
430
450
|
|
|
431
|
-
All twenty rows are declared on the registry — the `organization-product` shape roster in `src/starter-grid.ts`: `TEMPLATE_BASE_ROSTER` + the `/blog` teaser row + the two portfolio rows (#5469 D3/D4, re-derived by #6658, portfolio added by #6753), so the template is one declared page set whichever mechanism scaffolds each: the always-copied overlay for the core pages, `site-templates/_base/content/**` for the module-less ones and the three use cases. The scaffold carries this roster as `.ailk-site-manifest.json` at its root (#6658 D7); this Markdown stays in the template.
|
|
451
|
+
All twenty-three rows are declared on the registry — the `organization-product` shape roster in `src/starter-grid.ts`: `TEMPLATE_BASE_ROSTER` + the `/blog` teaser row + the two portfolio rows + the two team rows (#5469 D3/D4, re-derived by #6658, portfolio added by #6753, team by #7744), so the template is one declared page set whichever mechanism scaffolds each: the always-copied overlay for the core pages, `site-templates/_base/content/**` for the module-less ones and the three use cases. The scaffold carries this roster as `.ailk-site-manifest.json` at its root (#6658 D7); this Markdown stays in the template.
|
|
432
452
|
|
|
433
453
|
### 3a. Deviations from the standard roster (recorded, #6658)
|
|
434
454
|
|
|
@@ -464,6 +484,7 @@ reversed (`docs/decisions/starter-roster-page-set.md` D4, D7).
|
|
|
464
484
|
| `BlogList` (the `/blog` teaser) | the standard's `convert` goal carries no blog (`blog_enabled: false`); the Free teaser stays by operator ruling 2026-09-24, and where the docs-blog module is present its own `BlogList` serves `/blog` instead |
|
|
465
485
|
| `/software`, `/sign-in`, `/sign-up` | code routes (`kind: route`): the product listing and the two auth pages carry no page type of their own |
|
|
466
486
|
| `PortfolioList`, `PortfolioItem` (`/portfolio`, `/portfolio/[slug]`) | portfolio belongs to the shape, Free included (roadmap § 4, operator 2026-09-25, reversing #6687's "Pro and up"; #6753). `pnpm starter:check` R3.2 counts two more missing anchor captures for these routes — the pre-existing, non-CI anchor gap, now 14 |
|
|
487
|
+
| `TeamList`, `TeamMember` (`/team`, `/team/[slug]`) | team profile pages belong to the organization shapes (checklist D1, #7744). `pnpm starter:check` R3.2 counts two more missing anchor captures for these routes — the pre-existing, non-CI anchor gap, now 16 |
|
|
467
488
|
|
|
468
489
|
### 3b. Site entity (operator-disposed 2026-09-24)
|
|
469
490
|
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"provenance.json": ".ailk-template.json",
|
|
7
7
|
"TEMPLATE-MANIFEST.json": ".ailk-site-manifest.json"
|
|
8
8
|
},
|
|
9
|
-
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy, /terms, /glossary, /newsletter and three /
|
|
9
|
+
"postInstall": "Template marketing-site-free installed. Its /pricing, /privacy, /terms, /glossary, /newsletter, three /for/<slug>, /team and three /team/<slug> seed pages came with the base layer it extends (content/en/); /meet and its four /meet/<slug> pages came with the always-copied overlay - replace the placeholder copy before you launch."
|
|
10
10
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
],
|
|
12
12
|
"shape": "local-business-service",
|
|
13
13
|
"design": "standard",
|
|
14
|
-
"generatedHash": "
|
|
14
|
+
"generatedHash": "2884b9e5535e253b067f60bef990f66a97651c366f0484fa1699c0cd54cd4f75",
|
|
15
15
|
"layout": {
|
|
16
16
|
"nav": "full",
|
|
17
17
|
"footer": "columns",
|
|
@@ -473,6 +473,39 @@
|
|
|
473
473
|
"shell": "MarketingShell",
|
|
474
474
|
"chrome": "on",
|
|
475
475
|
"sections": []
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"route": "/team",
|
|
479
|
+
"kind": "page",
|
|
480
|
+
"pageType": "TeamList",
|
|
481
|
+
"schema": "TeamList",
|
|
482
|
+
"shell": "MarketingShell",
|
|
483
|
+
"chrome": "on",
|
|
484
|
+
"sections": [
|
|
485
|
+
{
|
|
486
|
+
"type": "hero",
|
|
487
|
+
"component": "Hero"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"type": "team",
|
|
491
|
+
"component": "Team"
|
|
492
|
+
}
|
|
493
|
+
]
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"route": "/team/[slug]",
|
|
497
|
+
"kind": "page",
|
|
498
|
+
"contentDir": "content/en/TeamMember",
|
|
499
|
+
"seeds": [
|
|
500
|
+
"content/en/TeamMember/first-member.mdx",
|
|
501
|
+
"content/en/TeamMember/second-member.mdx",
|
|
502
|
+
"content/en/TeamMember/third-member.mdx"
|
|
503
|
+
],
|
|
504
|
+
"pageType": "TeamMember",
|
|
505
|
+
"schema": "TeamMember",
|
|
506
|
+
"shell": "MarketingShell",
|
|
507
|
+
"chrome": "on",
|
|
508
|
+
"sections": []
|
|
476
509
|
}
|
|
477
510
|
]
|
|
478
511
|
}
|