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
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "LandingPage"
|
|
3
|
-
slug: "features"
|
|
4
|
-
title: "Medium length section heading goes here"
|
|
5
|
-
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."
|
|
6
|
-
sections:
|
|
7
|
-
[
|
|
8
|
-
{
|
|
9
|
-
"id": "core-features",
|
|
10
|
-
"type": "feature",
|
|
11
|
-
"data": {
|
|
12
|
-
"eyebrow": "Core Features",
|
|
13
|
-
"headline": "Medium length section heading goes here",
|
|
14
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
15
|
-
"features": [
|
|
16
|
-
{
|
|
17
|
-
"title": "Feature 1",
|
|
18
|
-
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
19
|
-
"link": {
|
|
20
|
-
"label": "Learn More",
|
|
21
|
-
"href": "/features"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"title": "Feature 2",
|
|
26
|
-
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
27
|
-
"link": {
|
|
28
|
-
"label": "Learn More",
|
|
29
|
-
"href": "/features"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"title": "Feature 4",
|
|
34
|
-
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
35
|
-
"link": {
|
|
36
|
-
"label": "Learn More",
|
|
37
|
-
"href": "/features"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"title": "Feature 3",
|
|
42
|
-
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
43
|
-
"link": {
|
|
44
|
-
"label": "Learn More",
|
|
45
|
-
"href": "/features"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"title": "Feature 5",
|
|
50
|
-
"description": "Explain what a feature enables your customers to do in plain English. Avoid industry jargon.",
|
|
51
|
-
"link": {
|
|
52
|
-
"label": "Learn More",
|
|
53
|
-
"href": "/features"
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"id": "integrations",
|
|
61
|
-
"type": "cta",
|
|
62
|
-
"data": {
|
|
63
|
-
"headline": "Direct integrations with your favorite tools",
|
|
64
|
-
"description": "Describe what these integrations help your customers do and impressive facts about how they work.",
|
|
65
|
-
"primaryCta": {
|
|
66
|
-
"label": "Get Started",
|
|
67
|
-
"href": "/contact"
|
|
68
|
-
},
|
|
69
|
-
"secondaryCta": {
|
|
70
|
-
"label": "See all Integrations",
|
|
71
|
-
"href": "/features",
|
|
72
|
-
"variant": "outline"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"id": "switch",
|
|
78
|
-
"type": "cta",
|
|
79
|
-
"data": {
|
|
80
|
-
"variant": "box",
|
|
81
|
-
"headline": "Switch to {your product} in {time amount} or less",
|
|
82
|
-
"description": "You shouldn't have to {experience a painful problem}. With {your product}, you can finally {achieve a value outcome or get a big improvement}.",
|
|
83
|
-
"chips": [
|
|
84
|
-
"No credit card required",
|
|
85
|
-
"Cancel any time",
|
|
86
|
-
"Live chat support"
|
|
87
|
-
],
|
|
88
|
-
"primaryCta": {
|
|
89
|
-
"label": "{Primary CTA}",
|
|
90
|
-
"href": "/contact"
|
|
91
|
-
},
|
|
92
|
-
"secondaryCta": {
|
|
93
|
-
"label": "{Secondary CTA}",
|
|
94
|
-
"href": "/pricing",
|
|
95
|
-
"variant": "outline"
|
|
96
|
-
},
|
|
97
|
-
"closingLine": "{Social Proof goes here}"
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
]
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
{/* Rendered from frontmatter `sections[]` by the generic `[slug]` route. Placeholder copy, verbatim from the reference — replace before you launch. */}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "LandingPage"
|
|
3
|
-
slug: "how-it-works"
|
|
4
|
-
title: "Get set up in {number} easy steps"
|
|
5
|
-
description: "Summarize the setup process briefly in a way that makes it seem approachable and quick."
|
|
6
|
-
sections:
|
|
7
|
-
[
|
|
8
|
-
{
|
|
9
|
-
"id": "hero",
|
|
10
|
-
"type": "hero",
|
|
11
|
-
"data":
|
|
12
|
-
{
|
|
13
|
-
"eyebrow": "How it Works",
|
|
14
|
-
"headline": "Get set up in {number} easy steps",
|
|
15
|
-
"subheadline": "Summarize the setup process briefly in a way that makes it seem approachable and quick.",
|
|
16
|
-
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
17
|
-
"secondaryCta":
|
|
18
|
-
{
|
|
19
|
-
"label": "{Secondary CTA}",
|
|
20
|
-
"href": "/pricing",
|
|
21
|
-
"variant": "outline",
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"id": "steps",
|
|
27
|
-
"type": "feature",
|
|
28
|
-
"data":
|
|
29
|
-
{
|
|
30
|
-
"variant": "alternating",
|
|
31
|
-
"numbered": true,
|
|
32
|
-
"headline": "",
|
|
33
|
-
"features":
|
|
34
|
-
[
|
|
35
|
-
{
|
|
36
|
-
"title": "The first thing they need to do to get the outcome they want",
|
|
37
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"title": "The second thing they need to do to get the outcome they want",
|
|
41
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"title": "The third thing they need to do to get the outcome they want",
|
|
45
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"id": "logo-cloud",
|
|
52
|
-
"type": "logoCloud",
|
|
53
|
-
"data":
|
|
54
|
-
{
|
|
55
|
-
"headline": "Don’t just take our word for it",
|
|
56
|
-
"logos":
|
|
57
|
-
[
|
|
58
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
59
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
60
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
61
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
62
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
63
|
-
{ "name": "Placeholder logo", "src": "/logomark.svg" },
|
|
64
|
-
],
|
|
65
|
-
"layout": "inline",
|
|
66
|
-
"treatment": "monochrome",
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "testimonial",
|
|
71
|
-
"type": "testimonials",
|
|
72
|
-
"data":
|
|
73
|
-
{
|
|
74
|
-
"variant": "featured",
|
|
75
|
-
"items":
|
|
76
|
-
[
|
|
77
|
-
{
|
|
78
|
-
"quote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
|
|
79
|
-
"author": "John Smith",
|
|
80
|
-
"role": "CEO, Google",
|
|
81
|
-
},
|
|
82
|
-
],
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"id": "switch",
|
|
87
|
-
"type": "cta",
|
|
88
|
-
"data":
|
|
89
|
-
{
|
|
90
|
-
"variant": "box",
|
|
91
|
-
"headline": "Switch to {your product} in {time amount} or less",
|
|
92
|
-
"description": "You shouldn't have to {experience a painful problem}. With {your product}, you can finally {achieve a value outcome or get a big improvement}.",
|
|
93
|
-
"chips":
|
|
94
|
-
["No credit card required", "Cancel any time", "Live chat support"],
|
|
95
|
-
"primaryCta": { "label": "{Primary CTA}", "href": "/contact" },
|
|
96
|
-
"secondaryCta":
|
|
97
|
-
{
|
|
98
|
-
"label": "{Secondary CTA}",
|
|
99
|
-
"href": "/pricing",
|
|
100
|
-
"variant": "outline",
|
|
101
|
-
},
|
|
102
|
-
"closingLine": "{Social Proof goes here}",
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"id": "faq",
|
|
107
|
-
"type": "faq",
|
|
108
|
-
"data":
|
|
109
|
-
{
|
|
110
|
-
"headline": "FAQs",
|
|
111
|
-
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
|
|
112
|
-
"supportLink": { "label": "Contact", "href": "/contact" },
|
|
113
|
-
"presentation": "accordion",
|
|
114
|
-
"initialOpen": "first",
|
|
115
|
-
"items":
|
|
116
|
-
[
|
|
117
|
-
{
|
|
118
|
-
"question": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa?",
|
|
119
|
-
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"question": "Dolorem consectetur quia maxime sunt ut sint. Fuga optio dolorem animi voluptatem laudantium error. Quis accusamus deleniti rer?",
|
|
123
|
-
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"question": "Totam nihil esse. Itaque optio temporibus adipisci. Rerum nisi aperiam aliquid doloremque aliquam?",
|
|
127
|
-
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"question": "Delectus minus officiis et. Perspiciatis illum nisi vitae. Sed consequuntur animi corrupti distinctio ipsam accusamus?",
|
|
131
|
-
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"question": "Aperiam perferendis voluptatem est sit enim sed eaque perspiciatis enim. Est explicabo ea explicabo et et dignissimos aliquid?",
|
|
135
|
-
"answer": "Vel odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa odio odit voluptatum ut veritatis. Ex rerum aspernatur voluptas unde officia. Dolorem officiis laboriosa.",
|
|
136
|
-
},
|
|
137
|
-
],
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
]
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
{/* Rendered from frontmatter `sections[]` by the generic `[slug]` route (`app/[locale]/[slug]/page.tsx`). It emits the LandingPage builder's `WebPage` JSON-LD (the scaffold's structured-data gate accepts nothing else for a LandingPage). Placeholder copy, verbatim from the reference — replace before you launch. */}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "ReturnsPolicyPage"
|
|
3
|
-
slug: "returns"
|
|
4
|
-
title: "Returns & Refunds"
|
|
5
|
-
description: "How to return an order from this site, how long you have, and how refunds are issued."
|
|
6
|
-
updatedAt: "2026-09-17"
|
|
7
|
-
sections:
|
|
8
|
-
[
|
|
9
|
-
{
|
|
10
|
-
"id": "returns-document",
|
|
11
|
-
"type": "document-chassis",
|
|
12
|
-
"data":
|
|
13
|
-
{
|
|
14
|
-
"headline": "Returns & Refunds",
|
|
15
|
-
"backHref": "/",
|
|
16
|
-
"backLabel": "Back home",
|
|
17
|
-
"navGroupLabel": "Contents",
|
|
18
|
-
"stats":
|
|
19
|
-
[
|
|
20
|
-
{ "label": "Last updated", "sublabel": "17 September 2026" },
|
|
21
|
-
{ "label": "Applies to", "sublabel": "Orders placed on this site" },
|
|
22
|
-
],
|
|
23
|
-
"sections":
|
|
24
|
-
[
|
|
25
|
-
{
|
|
26
|
-
"id": "intro",
|
|
27
|
-
"heading": "Returns & Refunds",
|
|
28
|
-
"blocks":
|
|
29
|
-
[
|
|
30
|
-
{
|
|
31
|
-
"kind": "paragraph",
|
|
32
|
-
"text": "This page explains how returns and refunds work on this site. Replace the starter copy below with the policy you actually operate — the headings are the ones a customer and an agent both look for, so keep them and fill in your own terms.",
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "return-window",
|
|
38
|
-
"heading": "How long you have",
|
|
39
|
-
"blocks":
|
|
40
|
-
[
|
|
41
|
-
{
|
|
42
|
-
"kind": "paragraph",
|
|
43
|
-
"text": "State the return window in days, counted from a date a customer can verify — delivery, not dispatch. If different products carry different windows, say which, and say plainly which items cannot be returned at all.",
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "condition",
|
|
49
|
-
"heading": "What condition an item must be in",
|
|
50
|
-
"blocks":
|
|
51
|
-
[
|
|
52
|
-
{
|
|
53
|
-
"kind": "paragraph",
|
|
54
|
-
"text": "Describe the condition an item must come back in — unused, original packaging, tags attached, or whatever your standard is. Name anything that voids a return, such as a removed seal on a digital product or a personalised item.",
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"id": "how-to-return",
|
|
60
|
-
"heading": "How to start a return",
|
|
61
|
-
"blocks":
|
|
62
|
-
[
|
|
63
|
-
{
|
|
64
|
-
"kind": "paragraph",
|
|
65
|
-
"text": "Give the customer one route to start a return and the information they need to hand: an order number, the item, and the reason. If you issue a return label, say who pays for it; if you do not, say that too.",
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "refunds",
|
|
71
|
-
"heading": "How refunds are issued",
|
|
72
|
-
"blocks":
|
|
73
|
-
[
|
|
74
|
-
{
|
|
75
|
-
"kind": "paragraph",
|
|
76
|
-
"text": "Say what a customer gets back — the item price, the original shipping, or both — and how long the refund takes to reach the payment method it came from. If you offer store credit or an exchange instead, describe when each applies.",
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "exchanges",
|
|
82
|
-
"heading": "Exchanges and faulty items",
|
|
83
|
-
"blocks":
|
|
84
|
-
[
|
|
85
|
-
{
|
|
86
|
-
"kind": "paragraph",
|
|
87
|
-
"text": "A faulty or incorrectly shipped item is usually not an ordinary return. Set out how those are handled, and say whether the return window above applies to them.",
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": "contact",
|
|
93
|
-
"heading": "Questions about a return",
|
|
94
|
-
"blocks":
|
|
95
|
-
[
|
|
96
|
-
{
|
|
97
|
-
"kind": "paragraph",
|
|
98
|
-
"text": "Point to the one place a customer should write, and say roughly how quickly you answer. A returns policy nobody can ask a question about is a policy that generates disputes.",
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
]
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. The JSON-LD for this page — a WebPage wrapping a MerchantReturnPolicy — is emitted by `buildReturnsPolicyPage` (#5947), not hand-rolled here. */}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "ShippingPolicyPage"
|
|
3
|
-
slug: "shipping"
|
|
4
|
-
title: "Shipping Policy"
|
|
5
|
-
description: "Where orders from this site ship, how long delivery takes, what it costs, and what happens when a parcel goes missing."
|
|
6
|
-
updatedAt: "2026-09-17"
|
|
7
|
-
sections:
|
|
8
|
-
[
|
|
9
|
-
{
|
|
10
|
-
"id": "shipping-document",
|
|
11
|
-
"type": "document-chassis",
|
|
12
|
-
"data":
|
|
13
|
-
{
|
|
14
|
-
"headline": "Shipping Policy",
|
|
15
|
-
"backHref": "/",
|
|
16
|
-
"backLabel": "Back home",
|
|
17
|
-
"navGroupLabel": "Contents",
|
|
18
|
-
"stats":
|
|
19
|
-
[
|
|
20
|
-
{ "label": "Last updated", "sublabel": "17 September 2026" },
|
|
21
|
-
{ "label": "Applies to", "sublabel": "Orders shipped from this site" },
|
|
22
|
-
],
|
|
23
|
-
"sections":
|
|
24
|
-
[
|
|
25
|
-
{
|
|
26
|
-
"id": "intro",
|
|
27
|
-
"heading": "Shipping Policy",
|
|
28
|
-
"blocks":
|
|
29
|
-
[
|
|
30
|
-
{
|
|
31
|
-
"kind": "paragraph",
|
|
32
|
-
"text": "This page explains how orders from this site are shipped. Replace the starter copy below with the policy you actually operate — the headings are the ones a customer and an agent both look for, so keep them and fill in your own terms.",
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "destinations",
|
|
38
|
-
"heading": "Where we ship",
|
|
39
|
-
"blocks":
|
|
40
|
-
[
|
|
41
|
-
{
|
|
42
|
-
"kind": "paragraph",
|
|
43
|
-
"text": "List the countries or regions you ship to, and say plainly where you do not. If some products are restricted to a subset of those destinations, say which.",
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "processing-and-transit",
|
|
49
|
-
"heading": "How long it takes",
|
|
50
|
-
"blocks":
|
|
51
|
-
[
|
|
52
|
-
{
|
|
53
|
-
"kind": "paragraph",
|
|
54
|
-
"text": "Give processing time and transit time as two separate figures, in business days, per shipping option. A single blended estimate is the one thing customers most often read as a promise you did not make.",
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"id": "costs",
|
|
60
|
-
"heading": "What shipping costs",
|
|
61
|
-
"blocks":
|
|
62
|
-
[
|
|
63
|
-
{
|
|
64
|
-
"kind": "paragraph",
|
|
65
|
-
"text": "Set out the cost of each shipping option and any threshold above which it is free. Say whether the figure shown at checkout is final, and whether duties and import taxes are included or collected on delivery.",
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "tracking",
|
|
71
|
-
"heading": "Tracking your order",
|
|
72
|
-
"blocks":
|
|
73
|
-
[
|
|
74
|
-
{
|
|
75
|
-
"kind": "paragraph",
|
|
76
|
-
"text": "Say when tracking information is sent, where it comes from, and what a customer should do if it has not updated for a while.",
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "lost-or-damaged",
|
|
82
|
-
"heading": "Lost or damaged parcels",
|
|
83
|
-
"blocks":
|
|
84
|
-
[
|
|
85
|
-
{
|
|
86
|
-
"kind": "paragraph",
|
|
87
|
-
"text": "Describe how long a parcel must be missing before you treat it as lost, what you do then, and what you need from the customer — photographs for damage, a written report for a loss. Returns of damaged goods are the returns policy's business; link to it rather than restating it here.",
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": "contact",
|
|
93
|
-
"heading": "Questions about a delivery",
|
|
94
|
-
"blocks":
|
|
95
|
-
[
|
|
96
|
-
{
|
|
97
|
-
"kind": "paragraph",
|
|
98
|
-
"text": "Point to the one place a customer should write, and say roughly how quickly you answer.",
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
],
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
]
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
{/* Rendered from frontmatter `sections[]`; the MDX body is not read by the section-catalog renderer. `OfferShippingDetails` is offer-scoped, not page-scoped, so this page emits a plain WebPage (#5947, D3) — real rates belong on an Offer, or reach this page's JSON-LD through the `schema:` escape hatch. */}
|