init project
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
# Phase 13 Component Variant Update
|
||||
|
||||
## ProductPreview semantic heading level
|
||||
|
||||
`ProductPreview` now accepts an optional `headingLevel` prop using the existing `HeadingLevel` type. The default remains level 3, preserving all Phase 12 consumers. Phase 13 passes level 2 in the hero so the document outline moves from the page level-1 heading to the preview heading without skipping a semantic level.
|
||||
|
||||
This is a backward-compatible semantic variant. It does not add styling, raw tokens, duplicate components, or page-specific behavior to the component.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Phase 13 Homepage Content Model
|
||||
|
||||
## Purpose
|
||||
|
||||
`src/content/homepage-model.ts` converts each locale catalog into one typed route-level object. The route consumes component semantics rather than translation-array positions or presentation-only flags.
|
||||
|
||||
## Inputs
|
||||
|
||||
- `src/content/locales/{en,fr,ar}/homepage.json`
|
||||
- `src/content/locales/{en,fr,ar}/shell.json`
|
||||
- Phase 12 component contracts for icons, preview rows, actions, cards, workflow, comparison, and CTA behavior
|
||||
|
||||
## Main types
|
||||
|
||||
- `HomepageContent`: complete route composition contract.
|
||||
- `HomepageAction`: action label plus mandatory unavailable reason for unresolved destinations.
|
||||
- `TitledDescription`: stable ID, title, description, and optional approved icon.
|
||||
- `HomepageWorkflowStep`: stable ID, ordinal, title, and description.
|
||||
- `HomepageFaqItem`: stable ID, question, and answer.
|
||||
|
||||
## Content transformation rules
|
||||
|
||||
1. Catalog messages remain complete localized strings. No runtime concatenation creates translatable sentences.
|
||||
2. Pair and triple helpers fail closed when required tuple content is absent.
|
||||
3. Product preview rows use fictional operational fixtures already present in locale catalogs.
|
||||
4. Vehicle identifiers remain separate `secondary` fields so `ProductPreview` isolates them with `BidiText`.
|
||||
5. Demo, tour, pricing, and sales actions remain disabled and carry localized reasons from the shell contract.
|
||||
6. Outcome metrics are represented as measurement definitions and methodology, not invented numeric values.
|
||||
7. Integrations, security certifications, pricing values, customer names, logos, and testimonials remain absent until governed approval exists.
|
||||
|
||||
## Route responsibilities
|
||||
|
||||
`src/app/[locale]/page.tsx` owns section order, headings, anchors, and composition. Components remain content-independent. Locale prefixes are generated with `localizedPath`; raw or guessed destinations are not permitted.
|
||||
|
||||
## Validation
|
||||
|
||||
- `tests/unit/homepage-content.test.ts` verifies locale completeness, unresolved destination behavior, and identifier isolation.
|
||||
- `scripts/validate-phase13-homepage.mjs` verifies approved composition, anchors, semantic tokens, route helpers, and required test artifacts.
|
||||
- Browser, accessibility, and visual scenarios are authored under `tests/browser`, `tests/a11y`, and `tests/visual`.
|
||||
@@ -0,0 +1,13 @@
|
||||
Order,Section,Anchor,Primary_components,Content_source,Evidence_policy,Destination_policy,Responsive_notes,Status
|
||||
1,Hero,product,"Heading; Text; ActionLink; ProductPreview",homepage.hero and homepage.preview,Illustrative preview only; no production capture,Demo and tour actions disabled until approved,"Two-column to single-column; 320px safe",Implemented
|
||||
2,Operational coverage,,"SectionHeader; FeatureGrid; FeatureCard",homepage.trust,Describes workflow coverage; not customer proof,None,"Four-card responsive grid",Implemented
|
||||
3,Fragmented versus connected,,"SectionHeader; Comparison",homepage.comparison,No quantified claims,None,"Two columns stack below 768px",Implemented
|
||||
4,Rental workflow,workflow,"SectionHeader; Workflow",homepage.workflow,No performance claims,None,"Horizontal adaptive workflow; stacked mobile",Implemented
|
||||
5,Operating roles,,"SectionHeader; FeatureGrid; FeatureCard",homepage.roles,No market-size claim,None,"Four-card responsive grid",Implemented
|
||||
6,Product modules,modules,"SectionHeader; FeatureGrid; FeatureCard",homepage.modules,Capability wording remains subject to product approval,None,"Six-card responsive grid",Implemented
|
||||
7,Measurement framework,,"SectionHeader; FeatureGrid; FeatureCard; Callout",homepage.results,Definitions and methodology only; no outcome values,None,"Cards reflow; methodology remains readable",Implemented
|
||||
8,Integrations,,"SectionHeader; Card; Icon list",homepage.integrations,Named partners suppressed until verified,None,"Two-column split to single-column",Implemented
|
||||
9,Security evaluation,,"SectionHeader; FeatureGrid; FeatureCard",homepage.security,No certification or SLA claims,None,"Four-card responsive grid",Implemented
|
||||
10,Pricing preview,pricing,"SectionHeader; Card; ActionLink",homepage.pricing,No public prices or discounts,Request-pricing action disabled until destination approval,"Two-column split to single-column",Implemented
|
||||
11,FAQ,faq,"SectionHeader; Accordion",homepage.faq,Answers preserve open qualification language,None,"Native details disclosures; reading-width container",Implemented
|
||||
12,Final CTA,,CTA,homepage.final,No unsupported conversion promise,Demo and sales actions disabled until approved,"Actions stack full-width on mobile",Implemented
|
||||
|
Reference in New Issue
Block a user