create-ailk 0.6.0 → 0.7.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 +44 -5
- package/component-catalog.json +146 -21
- package/component-catalog.md +9 -6
- package/dist/add-module-core.d.ts +22 -0
- package/dist/add-module-core.js +50 -0
- package/dist/add-module.d.ts +89 -0
- package/dist/add-module.js +334 -0
- package/dist/category-profile.d.ts +126 -0
- package/dist/category-profile.js +262 -0
- package/dist/cli.js +124 -13
- package/dist/copy.d.ts +14 -0
- package/dist/copy.js +38 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +6 -1
- package/dist/lib/extract-module-bundle.d.ts +76 -2
- package/dist/lib/extract-module-bundle.js +219 -8
- package/dist/lib/license-key-files.d.ts +15 -0
- package/dist/lib/license-key-files.js +102 -0
- package/dist/lib/module-license-gate.d.ts +6 -1
- package/dist/lib/module-license-gate.js +6 -1
- package/dist/lib/pro-callout.d.ts +16 -10
- package/dist/lib/pro-callout.js +27 -4
- package/dist/license-set.d.ts +34 -0
- package/dist/license-set.js +194 -0
- package/dist/module-architecture.d.ts +20 -0
- package/dist/module-architecture.js +77 -19
- package/dist/modules/commerce/0.6.0.tar.gz +0 -0
- package/dist/modules/commerce/0.6.1.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.0.tar.gz +0 -0
- package/dist/modules/docs-blog/0.6.1.tar.gz +0 -0
- package/dist/modules/marketing-site/0.6.1.tar.gz +0 -0
- package/dist/modules/minimalism-site/0.6.1.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.0.tar.gz +0 -0
- package/dist/modules/multi-tenant/0.6.1.tar.gz +0 -0
- package/dist/modules/saas-product/0.6.1.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.0.tar.gz +0 -0
- package/dist/modules/scheduling/0.6.1.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.0.tar.gz +0 -0
- package/dist/modules/signal-collectors/0.6.1.tar.gz +0 -0
- package/dist/modules/simple-service/0.6.1.tar.gz +0 -0
- package/dist/modules/workspace/0.6.0.tar.gz +0 -0
- package/dist/modules/workspace/0.6.1.tar.gz +0 -0
- package/dist/parse-args.d.ts +7 -0
- package/dist/parse-args.js +23 -1
- package/dist/programmatic.d.ts +46 -0
- package/dist/programmatic.js +144 -19
- package/dist/site-chrome.d.ts +18 -7
- package/dist/site-chrome.js +32 -14
- package/dist/site-roster.d.ts +127 -0
- package/dist/site-roster.js +494 -0
- package/dist/surfaces.d.ts +20 -7
- package/dist/surfaces.js +149 -28
- package/dist/sync-routes.d.ts +9 -0
- package/dist/sync-routes.js +2 -2
- package/dist/template-manifest.d.ts +58 -2
- package/dist/template-manifest.js +196 -69
- package/package.json +6 -4
- package/site-templates/_base/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/_base/content/en/GlossaryList/glossary.mdx +66 -0
- package/site-templates/_base/content/en/NewsletterSignup/newsletter.mdx +68 -0
- package/site-templates/_base/content/en/Pricing/pricing.mdx +71 -62
- package/site-templates/_base/content/en/PrivacyPage/privacy.mdx +2 -3
- package/site-templates/_base/content/en/TermsPage/terms.mdx +2 -3
- package/site-templates/_base/content/en/UseCase/first-use-case.mdx +23 -0
- package/site-templates/_base/content/en/UseCase/second-use-case.mdx +23 -0
- package/site-templates/_base/content/en/UseCase/third-use-case.mdx +23 -0
- package/site-templates/designs/minimalism/DESIGN.md +162 -0
- package/site-templates/designs/standard/DESIGN.md +162 -0
- package/site-templates/marketing-site/DESIGN.md +162 -0
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.json +312 -57
- package/site-templates/marketing-site/TEMPLATE-MANIFEST.md +209 -90
- package/site-templates/marketing-site/ailk-template.json +1 -0
- package/site-templates/marketing-site-free/DESIGN.md +162 -0
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.json +260 -66
- package/site-templates/marketing-site-free/TEMPLATE-MANIFEST.md +294 -114
- package/site-templates/marketing-site-free/ailk-template.json +3 -2
- package/site-templates/minimalism-site/DESIGN.md +162 -0
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.json +246 -19
- package/site-templates/minimalism-site/TEMPLATE-MANIFEST.md +185 -51
- package/site-templates/minimalism-site/ailk-template.json +3 -2
- package/site-templates/minimalism-site/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/minimalism-site/content/en/ContactPage/contact.mdx +3 -37
- package/site-templates/minimalism-site/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
- package/site-templates/saas-product/DESIGN.md +162 -0
- package/site-templates/simple-service/DESIGN.md +162 -0
- package/site-templates/simple-service/TEMPLATE-MANIFEST.json +135 -26
- package/site-templates/simple-service/TEMPLATE-MANIFEST.md +114 -59
- package/site-templates/simple-service/ailk-template.json +4 -3
- package/site-templates/simple-service/content/en/BookCall/book-call.mdx +53 -0
- package/site-templates/simple-service/content/en/ContactPage/contact.mdx +1 -36
- package/site-templates/simple-service/content/en/PurchasePolicyPage/purchase-policy.mdx +124 -0
- package/templates/.claude/settings.json +15 -0
- package/templates/.claude/skills/README.md +8 -8
- package/templates/.claude/skills/{scaffold-auth → add-auth}/SKILL.md +7 -7
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/env-vars.md +2 -2
- package/templates/.claude/skills/{scaffold-auth → add-auth}/references/oauth-app-setup.md +3 -3
- package/templates/.claude/skills/{scaffold-page → add-page}/SKILL.md +76 -62
- package/templates/.claude/skills/add-page/references/page-types.md +111 -0
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/content.mdx.tmpl +4 -4
- package/templates/.claude/skills/{scaffold-page → add-page}/templates/route.tsx.tmpl +1 -1
- package/templates/.claude/skills/{audit-site → check-site}/SKILL.md +16 -17
- package/templates/.claude/skills/{audit-site → check-site}/references/common-errors.md +3 -3
- package/templates/.claude/skills/{audit-site → check-site}/references/findings-glossary.md +16 -14
- package/templates/.claude/skills/{audit-site → check-site}/references/severity-levels.md +1 -1
- package/templates/.claude/skills/fill-page/SKILL.md +180 -0
- package/templates/.claude/skills/fill-page/profiles/plumbing.yaml +80 -0
- package/templates/.claude/skills/fill-page/references/section-sources.md +41 -0
- package/templates/.claude/skills/{provision-config → setup-deploy}/SKILL.md +8 -8
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/env-vars-template.md +2 -2
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/runbook-template.md +8 -8
- package/templates/.claude/skills/{provision-config → setup-deploy}/references/vercel-json-template.md +1 -1
- package/templates/.claude/skills/upgrade-plan/SKILL.md +117 -0
- package/templates/.claude/skills/upgrade-plan/references/options.md +24 -0
- package/templates/.claude/skills/upgrade-plan/scripts/upgrade-plan.ts +527 -0
- package/templates/.github/workflows/ci.yml +5 -0
- package/templates/CLAUDE.md +10 -5
- package/templates/DESIGN.md +162 -0
- package/templates/README.md +134 -38
- package/templates/apps/api/.env.example +2 -1
- package/templates/apps/api/package.json +1 -1
- package/templates/apps/api/src/config/__tests__/index.test.ts +37 -2
- package/templates/apps/api/src/config/index.ts +19 -6
- package/templates/apps/api/src/lib/license-key-store.ts +45 -0
- package/templates/apps/api/src/lib/site.ts +5 -3
- package/templates/apps/api/src/middleware/__tests__/auth.database-not-configured.test.ts +97 -0
- package/templates/apps/api/src/middleware/auth.ts +9 -0
- package/templates/apps/api/src/routes/content/__tests__/get-page.test.ts +127 -5
- package/templates/apps/api/src/routes/content/get-page.ts +86 -2
- package/templates/apps/api/src/server.ts +6 -0
- package/templates/apps/mcp/__tests__/audit-single-page.test.ts +75 -1
- package/templates/apps/mcp/__tests__/lib/audit-single-page-readiness-scan.test.ts +57 -9
- package/templates/apps/mcp/package.json +2 -1
- package/templates/apps/mcp/src/index.ts +7 -0
- package/templates/apps/mcp/src/lib/audit-single-page.ts +36 -10
- package/templates/apps/mcp/src/lib/license-key-store.ts +45 -0
- package/templates/apps/web/PRODUCT.md +86 -0
- package/templates/apps/web/__tests__/setup.ts +18 -0
- package/templates/apps/web/app/[locale]/(auth)/forgot-password/forgot-password-card.tsx +10 -2
- package/templates/apps/web/app/[locale]/(auth)/layout.tsx +2 -2
- package/templates/apps/web/app/[locale]/(auth)/reset-password/reset-password-card.tsx +10 -4
- package/templates/apps/web/app/[locale]/(auth)/sign-in/sign-in-card.tsx +22 -14
- package/templates/apps/web/app/[locale]/(auth)/sign-up/sign-up-card.tsx +26 -18
- package/templates/apps/web/app/[locale]/(authed)/account/page.tsx +12 -4
- package/templates/apps/web/app/[locale]/[slug]/__tests__/page.test.tsx +35 -4
- package/templates/apps/web/app/[locale]/[slug]/page.tsx +49 -9
- package/templates/apps/web/app/[locale]/book-a-call/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/careers/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/case-studies/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/clients/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/contact/ContactForm.tsx +94 -33
- package/templates/apps/web/app/[locale]/contact/ConversationalIntakeWrapper.tsx +53 -23
- package/templates/apps/web/app/[locale]/contact/__tests__/ContactForm.test.tsx +96 -0
- package/templates/apps/web/app/[locale]/contact/__tests__/ConversationalIntakeWrapper.test.tsx +84 -2
- package/templates/apps/web/app/[locale]/contact/__tests__/page-renderer-migration.test.tsx +5 -6
- package/templates/apps/web/app/[locale]/contact/page.tsx +25 -7
- package/templates/apps/web/app/[locale]/courses/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/downloads/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/events/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/glossary/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/how-to/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/how-to/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/integrations/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/layout.tsx +113 -51
- package/templates/apps/web/app/[locale]/newsletter/page.tsx +50 -0
- package/templates/apps/web/app/[locale]/partners/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/products/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/projects/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/{shipping → purchase-policy}/page.tsx +15 -10
- package/templates/apps/web/app/[locale]/resources/__tests__/page-renderer-migration.test.tsx +4 -5
- package/templates/apps/web/app/[locale]/services/__tests__/page-renderer-migration.test.tsx +3 -3
- package/templates/apps/web/app/[locale]/software/[slug]/page.tsx +14 -1
- package/templates/apps/web/app/[locale]/software/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/software/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/tech-articles/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/tech-articles/page.tsx +25 -15
- package/templates/apps/web/app/[locale]/testimonials/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/[slug]/page.tsx +48 -0
- package/templates/apps/web/app/[locale]/use-cases/__tests__/page-renderer-migration.test.tsx +3 -4
- package/templates/apps/web/app/[locale]/use-cases/page.tsx +15 -2
- package/templates/apps/web/app/[locale]/whitepapers/__tests__/page-renderer-migration.test.tsx +1 -1
- package/templates/apps/web/app/[locale]/whitepapers/page.tsx +25 -15
- package/templates/apps/web/app/error-fallback.tsx +17 -45
- package/templates/apps/web/app/not-found.tsx +14 -38
- package/templates/apps/web/app/og/route.tsx +6 -0
- package/templates/apps/web/eslint.config.mjs +3 -0
- package/templates/apps/web/instrumentation.ts +14 -0
- package/templates/apps/web/lib/__tests__/site-theme.test.ts +135 -20
- package/templates/apps/web/lib/__tests__/structured-data.test.tsx +38 -0
- package/templates/apps/web/lib/license-key-store.ts +52 -0
- package/templates/apps/web/lib/nav-config.ts +64 -12
- package/templates/apps/web/lib/prisma-for-auth.ts +9 -6
- package/templates/apps/web/lib/site-brand.tsx +4 -8
- package/templates/apps/web/lib/site-chrome.ts +3 -3
- package/templates/apps/web/lib/site-identity.ts +134 -0
- package/templates/apps/web/lib/site-theme.ts +11 -0
- package/templates/apps/web/messages/en.json +52 -37
- package/templates/apps/web/middleware.ts +1 -1
- package/templates/apps/web/public/android-chrome-192x192.png +0 -0
- package/templates/apps/web/public/android-chrome-512x512.png +0 -0
- package/templates/apps/web/public/apple-touch-icon.png +0 -0
- package/templates/apps/web/public/favicon-16x16.png +0 -0
- package/templates/apps/web/public/favicon-32x32.png +0 -0
- package/templates/apps/web/public/favicon.ico +0 -0
- package/templates/apps/web/public/favicon.svg +3 -3
- package/templates/apps/web/public/logomark.svg +6 -3
- package/templates/apps/web/public/logos/ai-launch-kit-light.svg +4 -0
- package/templates/apps/web/public/logos/ai-launch-kit.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent-light.svg +4 -0
- package/templates/apps/web/public/logos/atomic-agent.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth-light.svg +4 -0
- package/templates/apps/web/public/logos/salessmyth.svg +4 -0
- package/templates/apps/web/public/site.webmanifest +4 -4
- package/templates/apps/web/public/wordmark-light.svg +4 -0
- package/templates/apps/web/public/wordmark.svg +3 -3
- package/templates/apps/web/security-headers.config.ts +5 -1
- package/templates/apps/web/src/lib/commerce-sections.ts +35 -3
- package/templates/content/_site.mdx +41 -3
- package/templates/content/en/AboutPage/about.mdx +150 -144
- package/templates/content/en/BlogList/blog.mdx +105 -0
- package/templates/content/en/ContactPage/contact.mdx +44 -85
- package/templates/content/en/FAQPage/faq.mdx +86 -57
- package/templates/content/en/HomePage/home.mdx +276 -217
- package/templates/content/en/PurchasePolicyPage/purchase-policy.mdx +182 -0
- package/templates/content/en/SoftwareProduct/product.mdx +175 -0
- package/templates/content/en/UseCasesList/use-cases.mdx +170 -0
- package/templates/database/CHANGELOG.md +14 -0
- package/templates/database/package.json +3 -2
- package/templates/package.json +3 -1
- package/templates/tools/lint-architecture.ts +315 -0
- package/templates/tools/tsconfig.json +14 -0
- package/versions.json +33 -33
- package/templates/.claude/skills/add-schema/SKILL.md +0 -277
- package/templates/.claude/skills/add-schema/references/conflict-handling.md +0 -200
- package/templates/.claude/skills/add-schema/references/file-finding.md +0 -123
- package/templates/.claude/skills/add-schema/references/schema-types.md +0 -234
- package/templates/.claude/skills/scaffold-page/references/page-types.md +0 -169
- package/templates/.claude/skills/suggest-site-pages/SKILL.md +0 -242
- package/templates/.claude/skills/suggest-site-pages/references/categories.md +0 -287
- package/templates/apps/web/app/[locale]/cancellation/page.tsx +0 -44
- package/templates/apps/web/app/[locale]/returns/page.tsx +0 -44
- package/templates/apps/web/public/logo-dark.svg +0 -21
- package/templates/apps/web/public/logo-light.svg +0 -21
- package/templates/content/en/CancellationPolicyPage/cancellation.mdx +0 -108
- package/templates/content/en/LandingPage/blog.mdx +0 -83
- package/templates/content/en/LandingPage/features.mdx +0 -103
- package/templates/content/en/LandingPage/how-it-works.mdx +0 -143
- package/templates/content/en/ReturnsPolicyPage/returns.mdx +0 -108
- package/templates/content/en/ShippingPolicyPage/shipping.mdx +0 -108
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Standard
|
|
3
|
+
description: The standard design — the black-on-white foundation any shape wears by default: full navigation, a multi-column footer, the document-scroll home.
|
|
4
|
+
colors:
|
|
5
|
+
bg: "#ffffff"
|
|
6
|
+
fg: "#000000"
|
|
7
|
+
surface: "#ffffff"
|
|
8
|
+
surface-secondary: "#ffffff"
|
|
9
|
+
border: "#000000"
|
|
10
|
+
text-muted: "#333333"
|
|
11
|
+
brand: "#000000"
|
|
12
|
+
fg-on-brand: "#ffffff"
|
|
13
|
+
accent: "#000000"
|
|
14
|
+
bg-dark: "#000000"
|
|
15
|
+
fg-dark: "#ffffff"
|
|
16
|
+
border-dark: "#ffffff"
|
|
17
|
+
brand-dark: "#ffffff"
|
|
18
|
+
typography:
|
|
19
|
+
display:
|
|
20
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
21
|
+
fontSize: "3.5rem"
|
|
22
|
+
fontWeight: 700
|
|
23
|
+
lineHeight: 1.1
|
|
24
|
+
letterSpacing: "normal"
|
|
25
|
+
heading-section:
|
|
26
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
27
|
+
fontSize: "3rem"
|
|
28
|
+
fontWeight: 700
|
|
29
|
+
lineHeight: 1.1
|
|
30
|
+
letterSpacing: "normal"
|
|
31
|
+
heading-item:
|
|
32
|
+
fontSize: "2rem"
|
|
33
|
+
fontWeight: 700
|
|
34
|
+
lineHeight: 1.375
|
|
35
|
+
letterSpacing: "normal"
|
|
36
|
+
body:
|
|
37
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
38
|
+
fontSize: "1.125rem"
|
|
39
|
+
fontWeight: 400
|
|
40
|
+
lineHeight: 1.5
|
|
41
|
+
eyebrow:
|
|
42
|
+
fontSize: "0.875rem"
|
|
43
|
+
fontWeight: 600
|
|
44
|
+
lineHeight: 1.4
|
|
45
|
+
letterSpacing: "0.05em"
|
|
46
|
+
rounded:
|
|
47
|
+
button: "0.5rem"
|
|
48
|
+
card: "0.75rem"
|
|
49
|
+
spacing:
|
|
50
|
+
section: "7rem"
|
|
51
|
+
section-mobile: "4rem"
|
|
52
|
+
card: "1.5rem"
|
|
53
|
+
grid: "1.5rem"
|
|
54
|
+
container: "1280px"
|
|
55
|
+
measure: "36rem"
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
<!--
|
|
59
|
+
Source template: saas-product
|
|
60
|
+
Design: standard
|
|
61
|
+
Version: create-ailk {{CREATE_AILK_VERSION}}
|
|
62
|
+
|
|
63
|
+
This is the `standard` design's DESIGN.md. Its one authored source is
|
|
64
|
+
create-ailk's site-templates/designs/standard/DESIGN.md; every template on
|
|
65
|
+
this design ships a copy of it that differs only in the "Source template"
|
|
66
|
+
line above, and a template installed with `--template <name>` replaces the
|
|
67
|
+
base scaffold's DESIGN.md with its own. The impeccable design skill reads
|
|
68
|
+
it at the start of every design session, so an agent building a new page
|
|
69
|
+
stays on-system.
|
|
70
|
+
Edit the canonical file, never a copy — a test holds every copy to it.
|
|
71
|
+
|
|
72
|
+
The tokens above describe what the site RENDERS today. Colours come from
|
|
73
|
+
content/_site.mdx (`theme.colors`); type, radius and spacing are platform
|
|
74
|
+
defaults a site cannot override yet — see "Where this is heading" below.
|
|
75
|
+
-->
|
|
76
|
+
|
|
77
|
+
# Standard
|
|
78
|
+
|
|
79
|
+
## Overview
|
|
80
|
+
|
|
81
|
+
The foundation reads like a well-made wireframe: nothing on the page but the words, black on white, with rules where other sites use shadows and colour. It is the look of a site whose owner has not chosen a brand yet and does not pretend otherwise — every placeholder reads as a placeholder, and the structure of the argument is what the visitor sees. A brand is applied on top of it; it is not one.
|
|
82
|
+
|
|
83
|
+
Every page is composed from the AI Launch Kit component library (`@working-theory/ui`). Nothing is hand-built: a page is a list of registered sections, each with a bounded set of variants. Each section is one full-width band with a lot of air around it.
|
|
84
|
+
|
|
85
|
+
## Colors
|
|
86
|
+
|
|
87
|
+
### Primary
|
|
88
|
+
|
|
89
|
+
**Black** (`brand` `#000000`) fills the primary button; its label is white. The secondary button is white with a black hairline and black label.
|
|
90
|
+
|
|
91
|
+
### Neutral
|
|
92
|
+
|
|
93
|
+
Pure white ground (`bg` `#ffffff`), pure black ink for headings (`fg` `#000000`), and near-black `#333333` for body copy — well above AA on white. **Borders are black** (`#000000`): card outlines, the rule under the navigation, the rules between sections and the rule above the footer are all 1px black lines. Cards are white, not tinted (`surface-secondary` is white too). There is no accent colour — `accent` is black.
|
|
94
|
+
|
|
95
|
+
Dark mode inverts: black ground, white ink, white rules, white primary button with black label.
|
|
96
|
+
|
|
97
|
+
### Named Rules
|
|
98
|
+
|
|
99
|
+
- **Rules, not fills.** A container is drawn with a black hairline on the white ground. Grey fills are reserved for image placeholders.
|
|
100
|
+
|
|
101
|
+
## Typography
|
|
102
|
+
|
|
103
|
+
System sans throughout; no web font.
|
|
104
|
+
|
|
105
|
+
### Hierarchy
|
|
106
|
+
|
|
107
|
+
| Role | Size | Weight | Notes |
|
|
108
|
+
| --------------- | -------- | ------ | ------------------------------------------------------------------------------------- |
|
|
109
|
+
| Hero headline | 3.5rem | 700 | Normal tracking, line-height 1.1; 2.5rem below 1024px |
|
|
110
|
+
| Section heading | 3rem | 700 | Normal tracking, line-height 1.1; 2.25rem below 1024px, always under the hero |
|
|
111
|
+
| Item heading | 2rem | 700 | Card, feature and step titles; 1.5rem below 1024px |
|
|
112
|
+
| Body | 1.125rem | 400 | `#333333`, line-height 1.5; section copy capped at 36rem (about 70 characters a line) |
|
|
113
|
+
| Section label | 0.875rem | 600 | Uppercase, +0.05em tracking today — the small label above a section heading |
|
|
114
|
+
|
|
115
|
+
Measured from the rendered scaffold (1440px and 390px wide), not transcribed from tokens. Bold headings at normal tracking follow the foundation's pinned direction (#6493).
|
|
116
|
+
|
|
117
|
+
The small label above a section heading is **kept** as part of this foundation's voice (operator-disposed 2026-09-22) and is headed toward the treatment below.
|
|
118
|
+
|
|
119
|
+
## Layout
|
|
120
|
+
|
|
121
|
+
Full navigation; a multi-column footer; the default home. The home-only announcement banner is off by default (`layout.announcementBanner`). Every page this site carries is listed in its roster of record, `.ailk-site-manifest.json` at the site root. Shared foundation: a 1280px container, sections at 7rem (4rem below 1024px), card grids at 1.5rem, breakpoints 320 / 768 / 1024 / 1440.
|
|
122
|
+
|
|
123
|
+
## Shapes
|
|
124
|
+
|
|
125
|
+
Square corners everywhere (`theme.corners: square`) — buttons, cards, the auth card, image placeholders; the tokens above are the base foundation's defaults a site overrides.
|
|
126
|
+
|
|
127
|
+
## Components
|
|
128
|
+
|
|
129
|
+
### Buttons
|
|
130
|
+
|
|
131
|
+
Primary: black fill, white label, 0.5rem corners. Secondary: transparent with a black 1px outline and black label. Both are the library `Button`.
|
|
132
|
+
|
|
133
|
+
### Cards / Containers
|
|
134
|
+
|
|
135
|
+
White panels with a black 1px outline, 0.75rem corners, `card` (1.5rem) padding. The one exception today: the "how it works" steps render as dark filled cards (see below).
|
|
136
|
+
|
|
137
|
+
### Navigation
|
|
138
|
+
|
|
139
|
+
Full navigation: wordmark left, page links, an outlined and a filled button at the far right. A black hairline separates it from the page. Page links are 16px at weight 400. The two buttons are 42px tall on a 44px touch target and keep the 0.5rem button radius; square corners arrive with the platform radius change below, not in the nav alone (#6508). The Product link opens, on hover or keyboard, a 640px two-column panel whose items each show an icon, a title and a one-line description.
|
|
140
|
+
|
|
141
|
+
## Where this is heading
|
|
142
|
+
|
|
143
|
+
The foundation's pinned direction is the pacing of a classic wireframe marketing kit — `standardissue.webflow.io` is the reference for rhythm, type scale, spacing density and section pacing only; no image, copy or code is taken from it. The four traits this section used to list as blocked now ship as settings, so the rendered site matches the reference:
|
|
144
|
+
|
|
145
|
+
| Trait | How it is set |
|
|
146
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| Square corners on buttons, cards and inputs | `theme.corners: square` in `_site.mdx` |
|
|
148
|
+
| Section label in sentence case, bold, no tracking | `theme.eyebrowCase: sentence` |
|
|
149
|
+
| Solid grey image placeholders, no outline | `theme.placeholders: fill` |
|
|
150
|
+
| Bare check and cross marks, no circle badge | `theme.checkmarks: plain` |
|
|
151
|
+
| Plain, uncarded feature and step items | per section: `itemStyle: plain`, and `variant: steps` for an image beside a numbered list |
|
|
152
|
+
| A left hero whose headline wraps at half the container | `measure: narrow` on the hero (pricing); `gapBelow: tight` where a list follows the hero directly |
|
|
153
|
+
| A three-up post grid on the blog index | `blog-list` `variant: grid` (cover · date · read time · title · excerpt · Read more) |
|
|
154
|
+
| A plans section that leads its page | drop the hero; the pricing section owns the `<h1>` (`ownsPageTitle`) |
|
|
155
|
+
|
|
156
|
+
## Do's and Don'ts
|
|
157
|
+
|
|
158
|
+
- **Do** keep every page built from registered sections. If a section you need does not exist, request it rather than writing one-off markup.
|
|
159
|
+
- **Do** change colours in `content/_site.mdx` `theme.colors`; they reach every section.
|
|
160
|
+
- **Don't** add a colour accent. The foundation's one idea is black on white; a brand pass adds colour deliberately, through the theme.
|
|
161
|
+
- **Don't** replace a black rule with a shadow or a grey fill.
|
|
162
|
+
- **Don't** hard-code the "heading toward" values above into a page. They arrive through the platform, or not at all.
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Standard
|
|
3
|
+
description: The standard design — the black-on-white foundation any shape wears by default: full navigation, a multi-column footer, the document-scroll home.
|
|
4
|
+
colors:
|
|
5
|
+
bg: "#ffffff"
|
|
6
|
+
fg: "#000000"
|
|
7
|
+
surface: "#ffffff"
|
|
8
|
+
surface-secondary: "#ffffff"
|
|
9
|
+
border: "#000000"
|
|
10
|
+
text-muted: "#333333"
|
|
11
|
+
brand: "#000000"
|
|
12
|
+
fg-on-brand: "#ffffff"
|
|
13
|
+
accent: "#000000"
|
|
14
|
+
bg-dark: "#000000"
|
|
15
|
+
fg-dark: "#ffffff"
|
|
16
|
+
border-dark: "#ffffff"
|
|
17
|
+
brand-dark: "#ffffff"
|
|
18
|
+
typography:
|
|
19
|
+
display:
|
|
20
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
21
|
+
fontSize: "3.5rem"
|
|
22
|
+
fontWeight: 700
|
|
23
|
+
lineHeight: 1.1
|
|
24
|
+
letterSpacing: "normal"
|
|
25
|
+
heading-section:
|
|
26
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
27
|
+
fontSize: "3rem"
|
|
28
|
+
fontWeight: 700
|
|
29
|
+
lineHeight: 1.1
|
|
30
|
+
letterSpacing: "normal"
|
|
31
|
+
heading-item:
|
|
32
|
+
fontSize: "2rem"
|
|
33
|
+
fontWeight: 700
|
|
34
|
+
lineHeight: 1.375
|
|
35
|
+
letterSpacing: "normal"
|
|
36
|
+
body:
|
|
37
|
+
fontFamily: "system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, sans-serif"
|
|
38
|
+
fontSize: "1.125rem"
|
|
39
|
+
fontWeight: 400
|
|
40
|
+
lineHeight: 1.5
|
|
41
|
+
eyebrow:
|
|
42
|
+
fontSize: "0.875rem"
|
|
43
|
+
fontWeight: 600
|
|
44
|
+
lineHeight: 1.4
|
|
45
|
+
letterSpacing: "0.05em"
|
|
46
|
+
rounded:
|
|
47
|
+
button: "0.5rem"
|
|
48
|
+
card: "0.75rem"
|
|
49
|
+
spacing:
|
|
50
|
+
section: "7rem"
|
|
51
|
+
section-mobile: "4rem"
|
|
52
|
+
card: "1.5rem"
|
|
53
|
+
grid: "1.5rem"
|
|
54
|
+
container: "1280px"
|
|
55
|
+
measure: "36rem"
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
<!--
|
|
59
|
+
Source template: simple-service
|
|
60
|
+
Design: standard
|
|
61
|
+
Version: create-ailk {{CREATE_AILK_VERSION}}
|
|
62
|
+
|
|
63
|
+
This is the `standard` design's DESIGN.md. Its one authored source is
|
|
64
|
+
create-ailk's site-templates/designs/standard/DESIGN.md; every template on
|
|
65
|
+
this design ships a copy of it that differs only in the "Source template"
|
|
66
|
+
line above, and a template installed with `--template <name>` replaces the
|
|
67
|
+
base scaffold's DESIGN.md with its own. The impeccable design skill reads
|
|
68
|
+
it at the start of every design session, so an agent building a new page
|
|
69
|
+
stays on-system.
|
|
70
|
+
Edit the canonical file, never a copy — a test holds every copy to it.
|
|
71
|
+
|
|
72
|
+
The tokens above describe what the site RENDERS today. Colours come from
|
|
73
|
+
content/_site.mdx (`theme.colors`); type, radius and spacing are platform
|
|
74
|
+
defaults a site cannot override yet — see "Where this is heading" below.
|
|
75
|
+
-->
|
|
76
|
+
|
|
77
|
+
# Standard
|
|
78
|
+
|
|
79
|
+
## Overview
|
|
80
|
+
|
|
81
|
+
The foundation reads like a well-made wireframe: nothing on the page but the words, black on white, with rules where other sites use shadows and colour. It is the look of a site whose owner has not chosen a brand yet and does not pretend otherwise — every placeholder reads as a placeholder, and the structure of the argument is what the visitor sees. A brand is applied on top of it; it is not one.
|
|
82
|
+
|
|
83
|
+
Every page is composed from the AI Launch Kit component library (`@working-theory/ui`). Nothing is hand-built: a page is a list of registered sections, each with a bounded set of variants. Each section is one full-width band with a lot of air around it.
|
|
84
|
+
|
|
85
|
+
## Colors
|
|
86
|
+
|
|
87
|
+
### Primary
|
|
88
|
+
|
|
89
|
+
**Black** (`brand` `#000000`) fills the primary button; its label is white. The secondary button is white with a black hairline and black label.
|
|
90
|
+
|
|
91
|
+
### Neutral
|
|
92
|
+
|
|
93
|
+
Pure white ground (`bg` `#ffffff`), pure black ink for headings (`fg` `#000000`), and near-black `#333333` for body copy — well above AA on white. **Borders are black** (`#000000`): card outlines, the rule under the navigation, the rules between sections and the rule above the footer are all 1px black lines. Cards are white, not tinted (`surface-secondary` is white too). There is no accent colour — `accent` is black.
|
|
94
|
+
|
|
95
|
+
Dark mode inverts: black ground, white ink, white rules, white primary button with black label.
|
|
96
|
+
|
|
97
|
+
### Named Rules
|
|
98
|
+
|
|
99
|
+
- **Rules, not fills.** A container is drawn with a black hairline on the white ground. Grey fills are reserved for image placeholders.
|
|
100
|
+
|
|
101
|
+
## Typography
|
|
102
|
+
|
|
103
|
+
System sans throughout; no web font.
|
|
104
|
+
|
|
105
|
+
### Hierarchy
|
|
106
|
+
|
|
107
|
+
| Role | Size | Weight | Notes |
|
|
108
|
+
| --------------- | -------- | ------ | ------------------------------------------------------------------------------------- |
|
|
109
|
+
| Hero headline | 3.5rem | 700 | Normal tracking, line-height 1.1; 2.5rem below 1024px |
|
|
110
|
+
| Section heading | 3rem | 700 | Normal tracking, line-height 1.1; 2.25rem below 1024px, always under the hero |
|
|
111
|
+
| Item heading | 2rem | 700 | Card, feature and step titles; 1.5rem below 1024px |
|
|
112
|
+
| Body | 1.125rem | 400 | `#333333`, line-height 1.5; section copy capped at 36rem (about 70 characters a line) |
|
|
113
|
+
| Section label | 0.875rem | 600 | Uppercase, +0.05em tracking today — the small label above a section heading |
|
|
114
|
+
|
|
115
|
+
Measured from the rendered scaffold (1440px and 390px wide), not transcribed from tokens. Bold headings at normal tracking follow the foundation's pinned direction (#6493).
|
|
116
|
+
|
|
117
|
+
The small label above a section heading is **kept** as part of this foundation's voice (operator-disposed 2026-09-22) and is headed toward the treatment below.
|
|
118
|
+
|
|
119
|
+
## Layout
|
|
120
|
+
|
|
121
|
+
Full navigation; a multi-column footer; the default home. The home-only announcement banner is off by default (`layout.announcementBanner`). Every page this site carries is listed in its roster of record, `.ailk-site-manifest.json` at the site root. Shared foundation: a 1280px container, sections at 7rem (4rem below 1024px), card grids at 1.5rem, breakpoints 320 / 768 / 1024 / 1440.
|
|
122
|
+
|
|
123
|
+
## Shapes
|
|
124
|
+
|
|
125
|
+
Square corners everywhere (`theme.corners: square`) — buttons, cards, the auth card, image placeholders; the tokens above are the base foundation's defaults a site overrides.
|
|
126
|
+
|
|
127
|
+
## Components
|
|
128
|
+
|
|
129
|
+
### Buttons
|
|
130
|
+
|
|
131
|
+
Primary: black fill, white label, 0.5rem corners. Secondary: transparent with a black 1px outline and black label. Both are the library `Button`.
|
|
132
|
+
|
|
133
|
+
### Cards / Containers
|
|
134
|
+
|
|
135
|
+
White panels with a black 1px outline, 0.75rem corners, `card` (1.5rem) padding. The one exception today: the "how it works" steps render as dark filled cards (see below).
|
|
136
|
+
|
|
137
|
+
### Navigation
|
|
138
|
+
|
|
139
|
+
Full navigation: wordmark left, page links, an outlined and a filled button at the far right. A black hairline separates it from the page. Page links are 16px at weight 400. The two buttons are 42px tall on a 44px touch target and keep the 0.5rem button radius; square corners arrive with the platform radius change below, not in the nav alone (#6508). The Product link opens, on hover or keyboard, a 640px two-column panel whose items each show an icon, a title and a one-line description.
|
|
140
|
+
|
|
141
|
+
## Where this is heading
|
|
142
|
+
|
|
143
|
+
The foundation's pinned direction is the pacing of a classic wireframe marketing kit — `standardissue.webflow.io` is the reference for rhythm, type scale, spacing density and section pacing only; no image, copy or code is taken from it. The four traits this section used to list as blocked now ship as settings, so the rendered site matches the reference:
|
|
144
|
+
|
|
145
|
+
| Trait | How it is set |
|
|
146
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| Square corners on buttons, cards and inputs | `theme.corners: square` in `_site.mdx` |
|
|
148
|
+
| Section label in sentence case, bold, no tracking | `theme.eyebrowCase: sentence` |
|
|
149
|
+
| Solid grey image placeholders, no outline | `theme.placeholders: fill` |
|
|
150
|
+
| Bare check and cross marks, no circle badge | `theme.checkmarks: plain` |
|
|
151
|
+
| Plain, uncarded feature and step items | per section: `itemStyle: plain`, and `variant: steps` for an image beside a numbered list |
|
|
152
|
+
| A left hero whose headline wraps at half the container | `measure: narrow` on the hero (pricing); `gapBelow: tight` where a list follows the hero directly |
|
|
153
|
+
| A three-up post grid on the blog index | `blog-list` `variant: grid` (cover · date · read time · title · excerpt · Read more) |
|
|
154
|
+
| A plans section that leads its page | drop the hero; the pricing section owns the `<h1>` (`ownsPageTitle`) |
|
|
155
|
+
|
|
156
|
+
## Do's and Don'ts
|
|
157
|
+
|
|
158
|
+
- **Do** keep every page built from registered sections. If a section you need does not exist, request it rather than writing one-off markup.
|
|
159
|
+
- **Do** change colours in `content/_site.mdx` `theme.colors`; they reach every section.
|
|
160
|
+
- **Don't** add a colour accent. The foundation's one idea is black on white; a brand pass adds colour deliberately, through the theme.
|
|
161
|
+
- **Don't** replace a black rule with a shadow or a grey fill.
|
|
162
|
+
- **Don't** hard-code the "heading toward" values above into a page. They arrive through the platform, or not at all.
|
|
@@ -2,16 +2,49 @@
|
|
|
2
2
|
"template": "simple-service",
|
|
3
3
|
"requires": ["marketing", "scheduling", "commerce"],
|
|
4
4
|
"categories": ["landscaping"],
|
|
5
|
-
"
|
|
5
|
+
"shape": "local-business-service",
|
|
6
|
+
"design": "standard",
|
|
7
|
+
"generatedHash": "4aa55fe994472262e9e8f47566729699f3d9eff95267ecf9d8a7da5dcea5602a",
|
|
6
8
|
"layout": {
|
|
7
9
|
"nav": "full",
|
|
8
10
|
"footer": "columns",
|
|
9
|
-
"announcementBanner":
|
|
11
|
+
"announcementBanner": false,
|
|
10
12
|
"home": "default"
|
|
11
13
|
},
|
|
14
|
+
"theme": {
|
|
15
|
+
"corners": "square",
|
|
16
|
+
"eyebrowCase": "sentence",
|
|
17
|
+
"placeholders": "fill",
|
|
18
|
+
"checkmarks": "plain",
|
|
19
|
+
"colors": {
|
|
20
|
+
"light": {
|
|
21
|
+
"bg": "#ffffff",
|
|
22
|
+
"bgMuted": "#ffffff",
|
|
23
|
+
"surface": "#ffffff",
|
|
24
|
+
"border": "#000000",
|
|
25
|
+
"text": "#000000",
|
|
26
|
+
"textMuted": "#333333",
|
|
27
|
+
"primary": "#000000",
|
|
28
|
+
"primaryFg": "#ffffff",
|
|
29
|
+
"accent": "#000000"
|
|
30
|
+
},
|
|
31
|
+
"dark": {
|
|
32
|
+
"bg": "#000000",
|
|
33
|
+
"bgMuted": "#000000",
|
|
34
|
+
"surface": "#000000",
|
|
35
|
+
"border": "#ffffff",
|
|
36
|
+
"text": "#ffffff",
|
|
37
|
+
"textMuted": "#cccccc",
|
|
38
|
+
"primary": "#ffffff",
|
|
39
|
+
"primaryFg": "#000000",
|
|
40
|
+
"accent": "#ffffff"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
12
44
|
"rows": [
|
|
13
45
|
{
|
|
14
46
|
"route": "/",
|
|
47
|
+
"kind": "page",
|
|
15
48
|
"pageType": "HomePage",
|
|
16
49
|
"schema": "HomePage",
|
|
17
50
|
"shell": "MarketingShell",
|
|
@@ -23,7 +56,10 @@
|
|
|
23
56
|
},
|
|
24
57
|
{
|
|
25
58
|
"type": "items",
|
|
26
|
-
"component": "Items"
|
|
59
|
+
"component": "Items",
|
|
60
|
+
"options": {
|
|
61
|
+
"columns": 3
|
|
62
|
+
}
|
|
27
63
|
},
|
|
28
64
|
{
|
|
29
65
|
"type": "cta",
|
|
@@ -33,6 +69,7 @@
|
|
|
33
69
|
},
|
|
34
70
|
{
|
|
35
71
|
"route": "/services",
|
|
72
|
+
"kind": "page",
|
|
36
73
|
"pageType": "ServicesList",
|
|
37
74
|
"schema": "ServicesList",
|
|
38
75
|
"shell": "MarketingShell",
|
|
@@ -44,7 +81,10 @@
|
|
|
44
81
|
},
|
|
45
82
|
{
|
|
46
83
|
"type": "items",
|
|
47
|
-
"component": "Items"
|
|
84
|
+
"component": "Items",
|
|
85
|
+
"options": {
|
|
86
|
+
"columns": 3
|
|
87
|
+
}
|
|
48
88
|
},
|
|
49
89
|
{
|
|
50
90
|
"type": "cta",
|
|
@@ -54,14 +94,22 @@
|
|
|
54
94
|
},
|
|
55
95
|
{
|
|
56
96
|
"route": "/services/[slug]",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
97
|
+
"kind": "page",
|
|
98
|
+
"contentDir": "content/en/Service",
|
|
99
|
+
"seeds": [
|
|
100
|
+
"content/en/Service/landscape-design.mdx",
|
|
101
|
+
"content/en/Service/lawn-maintenance.mdx",
|
|
102
|
+
"content/en/Service/seasonal-cleanup.mdx"
|
|
103
|
+
],
|
|
104
|
+
"pageType": "Service",
|
|
105
|
+
"schema": "Service",
|
|
59
106
|
"shell": "MarketingShell",
|
|
60
107
|
"chrome": "on",
|
|
61
108
|
"sections": []
|
|
62
109
|
},
|
|
63
110
|
{
|
|
64
111
|
"route": "/about",
|
|
112
|
+
"kind": "page",
|
|
65
113
|
"pageType": "AboutPage",
|
|
66
114
|
"schema": "AboutPage",
|
|
67
115
|
"shell": "MarketingShell",
|
|
@@ -79,6 +127,7 @@
|
|
|
79
127
|
},
|
|
80
128
|
{
|
|
81
129
|
"route": "/contact",
|
|
130
|
+
"kind": "page",
|
|
82
131
|
"pageType": "ContactPage",
|
|
83
132
|
"schema": "ContactPage",
|
|
84
133
|
"shell": "MarketingShell",
|
|
@@ -88,10 +137,6 @@
|
|
|
88
137
|
"type": "hero",
|
|
89
138
|
"component": "Hero"
|
|
90
139
|
},
|
|
91
|
-
{
|
|
92
|
-
"type": "contact-form",
|
|
93
|
-
"component": "ContactForm"
|
|
94
|
-
},
|
|
95
140
|
{
|
|
96
141
|
"type": "cta",
|
|
97
142
|
"component": "CTA"
|
|
@@ -100,6 +145,7 @@
|
|
|
100
145
|
},
|
|
101
146
|
{
|
|
102
147
|
"route": "/faq",
|
|
148
|
+
"kind": "page",
|
|
103
149
|
"pageType": "FAQPage",
|
|
104
150
|
"schema": "FAQPage",
|
|
105
151
|
"shell": "MarketingShell",
|
|
@@ -116,46 +162,86 @@
|
|
|
116
162
|
]
|
|
117
163
|
},
|
|
118
164
|
{
|
|
119
|
-
"route": "/
|
|
120
|
-
"
|
|
121
|
-
"
|
|
165
|
+
"route": "/glossary",
|
|
166
|
+
"kind": "page",
|
|
167
|
+
"pageType": "GlossaryList",
|
|
168
|
+
"schema": "GlossaryList",
|
|
122
169
|
"shell": "MarketingShell",
|
|
123
170
|
"chrome": "on",
|
|
124
171
|
"sections": [
|
|
125
172
|
{
|
|
126
|
-
"type": "
|
|
127
|
-
"component": "
|
|
173
|
+
"type": "hero",
|
|
174
|
+
"component": "Hero"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"type": "glossary-index",
|
|
178
|
+
"component": "GlossaryIndex"
|
|
128
179
|
}
|
|
129
180
|
]
|
|
130
181
|
},
|
|
131
182
|
{
|
|
132
|
-
"route": "/
|
|
133
|
-
"
|
|
134
|
-
"
|
|
183
|
+
"route": "/newsletter",
|
|
184
|
+
"kind": "page",
|
|
185
|
+
"pageType": "NewsletterSignup",
|
|
186
|
+
"schema": "NewsletterSignup",
|
|
135
187
|
"shell": "MarketingShell",
|
|
136
188
|
"chrome": "on",
|
|
137
189
|
"sections": [
|
|
138
190
|
{
|
|
139
|
-
"type": "
|
|
140
|
-
"component": "
|
|
191
|
+
"type": "hero",
|
|
192
|
+
"component": "Hero"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "newsletter",
|
|
196
|
+
"component": "Newsletter"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"type": "faq",
|
|
200
|
+
"component": "FAQ"
|
|
141
201
|
}
|
|
142
202
|
]
|
|
143
203
|
},
|
|
144
204
|
{
|
|
145
|
-
"route": "/
|
|
146
|
-
"
|
|
147
|
-
"
|
|
205
|
+
"route": "/book-a-call",
|
|
206
|
+
"kind": "page",
|
|
207
|
+
"pageType": "BookCall",
|
|
208
|
+
"schema": "BookCall",
|
|
209
|
+
"shell": "MarketingShell",
|
|
210
|
+
"chrome": "on",
|
|
211
|
+
"sections": [
|
|
212
|
+
{
|
|
213
|
+
"type": "hero",
|
|
214
|
+
"component": "Hero"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"type": "items",
|
|
218
|
+
"component": "Items",
|
|
219
|
+
"options": {
|
|
220
|
+
"columns": 3
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"route": "/purchase-policy",
|
|
227
|
+
"kind": "page",
|
|
228
|
+
"pageType": "PurchasePolicyPage",
|
|
229
|
+
"schema": "PurchasePolicyPage",
|
|
148
230
|
"shell": "MarketingShell",
|
|
149
231
|
"chrome": "on",
|
|
150
232
|
"sections": [
|
|
151
233
|
{
|
|
152
234
|
"type": "document-chassis",
|
|
153
|
-
"component": "DocumentChassis"
|
|
235
|
+
"component": "DocumentChassis",
|
|
236
|
+
"options": {
|
|
237
|
+
"layout": "article"
|
|
238
|
+
}
|
|
154
239
|
}
|
|
155
240
|
]
|
|
156
241
|
},
|
|
157
242
|
{
|
|
158
243
|
"route": "/privacy",
|
|
244
|
+
"kind": "page",
|
|
159
245
|
"pageType": "PrivacyPage",
|
|
160
246
|
"schema": "PrivacyPage",
|
|
161
247
|
"shell": "MarketingShell",
|
|
@@ -163,12 +249,16 @@
|
|
|
163
249
|
"sections": [
|
|
164
250
|
{
|
|
165
251
|
"type": "document-chassis",
|
|
166
|
-
"component": "DocumentChassis"
|
|
252
|
+
"component": "DocumentChassis",
|
|
253
|
+
"options": {
|
|
254
|
+
"layout": "article"
|
|
255
|
+
}
|
|
167
256
|
}
|
|
168
257
|
]
|
|
169
258
|
},
|
|
170
259
|
{
|
|
171
260
|
"route": "/terms",
|
|
261
|
+
"kind": "page",
|
|
172
262
|
"pageType": "TermsPage",
|
|
173
263
|
"schema": "TermsPage",
|
|
174
264
|
"shell": "MarketingShell",
|
|
@@ -176,12 +266,16 @@
|
|
|
176
266
|
"sections": [
|
|
177
267
|
{
|
|
178
268
|
"type": "document-chassis",
|
|
179
|
-
"component": "DocumentChassis"
|
|
269
|
+
"component": "DocumentChassis",
|
|
270
|
+
"options": {
|
|
271
|
+
"layout": "article"
|
|
272
|
+
}
|
|
180
273
|
}
|
|
181
274
|
]
|
|
182
275
|
},
|
|
183
276
|
{
|
|
184
277
|
"route": "/account",
|
|
278
|
+
"kind": "route",
|
|
185
279
|
"pageType": null,
|
|
186
280
|
"schema": null,
|
|
187
281
|
"shell": "MarketingShell",
|
|
@@ -190,6 +284,7 @@
|
|
|
190
284
|
},
|
|
191
285
|
{
|
|
192
286
|
"route": "/purchase/success",
|
|
287
|
+
"kind": "route",
|
|
193
288
|
"pageType": null,
|
|
194
289
|
"schema": null,
|
|
195
290
|
"shell": "MarketingShell",
|
|
@@ -198,6 +293,16 @@
|
|
|
198
293
|
},
|
|
199
294
|
{
|
|
200
295
|
"route": "/purchase/cancel",
|
|
296
|
+
"kind": "route",
|
|
297
|
+
"pageType": null,
|
|
298
|
+
"schema": null,
|
|
299
|
+
"shell": "MarketingShell",
|
|
300
|
+
"chrome": "on",
|
|
301
|
+
"sections": []
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"route": "/thanks/[slug]",
|
|
305
|
+
"kind": "route",
|
|
201
306
|
"pageType": null,
|
|
202
307
|
"schema": null,
|
|
203
308
|
"shell": "MarketingShell",
|
|
@@ -206,6 +311,7 @@
|
|
|
206
311
|
},
|
|
207
312
|
{
|
|
208
313
|
"route": "/meet",
|
|
314
|
+
"kind": "route",
|
|
209
315
|
"pageType": null,
|
|
210
316
|
"schema": null,
|
|
211
317
|
"shell": "MarketingShell",
|
|
@@ -214,6 +320,7 @@
|
|
|
214
320
|
},
|
|
215
321
|
{
|
|
216
322
|
"route": "/meet/[slug]",
|
|
323
|
+
"kind": "route",
|
|
217
324
|
"pageType": null,
|
|
218
325
|
"schema": null,
|
|
219
326
|
"shell": "MarketingShell",
|
|
@@ -222,6 +329,7 @@
|
|
|
222
329
|
},
|
|
223
330
|
{
|
|
224
331
|
"route": "/meet/confirmed",
|
|
332
|
+
"kind": "route",
|
|
225
333
|
"pageType": null,
|
|
226
334
|
"schema": null,
|
|
227
335
|
"shell": "MarketingShell",
|
|
@@ -230,6 +338,7 @@
|
|
|
230
338
|
},
|
|
231
339
|
{
|
|
232
340
|
"route": "/appointments",
|
|
341
|
+
"kind": "route",
|
|
233
342
|
"pageType": null,
|
|
234
343
|
"schema": null,
|
|
235
344
|
"shell": "MarketingShell",
|