init project

This commit is contained in:
root
2026-06-25 19:06:59 -04:00
parent c5dfee6efb
commit 5d017f533a
349 changed files with 31330 additions and 0 deletions
@@ -0,0 +1,26 @@
export type Locale = "en" | "fr" | "ar";
export type Direction = "ltr" | "rtl";
export type EvidenceStatus = "approved" | "illustrative" | "pending" | "expired" | "rejected";
export type ThemePreference = "light" | "dark" | "system";
export interface LinkModel { id: string; label: string; href: string; external?: boolean; }
export interface SiteHeaderProps { locale: Locale; direction: Direction; links: LinkModel[]; login?: LinkModel; onDemo(): void; }
export interface DrawerProps extends SiteHeaderProps { open: boolean; onOpenChange(open: boolean): void; returnFocusRef?: HTMLElement | null; }
export interface LocaleSelectorProps { locale: Locale; routeId: string; hash?: string; onLocaleChange(locale: Locale): void; }
export interface ThemeSelectorProps { preference: ThemePreference; onPreferenceChange(value: ThemePreference): void; }
export interface HeroModel { eyebrow: string; title: string; body: string; primaryLabel: string; secondaryLabel: string; }
export interface ProductPreviewModel { status: EvidenceStatus; caption: string; locale: Locale; direction: Direction; theme: "light"|"dark"; assetId?: string; }
export interface LifecycleItem { id: string; title: string; description: string; icon: string; }
export interface ComparisonModel { title: string; body: string; before: { title: string; items: string[] }; after: { title: string; items: string[] }; }
export interface WorkflowStep { id: string; ordinal: string; title: string; description: string; }
export interface RoleCard { id: string; title: string; description: string; }
export interface ModuleCard { id: string; title: string; description: string; evidenceStatus: EvidenceStatus; }
export interface MetricDefinition { id: string; title: string; definition: string; publishedValue?: never; }
export interface IntegrationCategory { id: string; label: string; verifiedPartners?: never; }
export interface SecurityCheck { id: string; title: string; description: string; certificationBadge?: never; }
export interface PricingModel { mode: "quote-only" | "approved-pricing"; title: string; body: string; factors: string[]; note: string; }
export interface FaqItem { id: string; question: string; answer: string; }
export interface DemoFormValues { fullName: string; workEmail: string; company: string; fleetSize: string; market?: string; preferredLanguage?: Locale; message?: string; }
export type DemoFormState = "idle"|"validating"|"submitting"|"success"|"recoverable_error"|"terminal_error";
export interface DemoFormProps { state: DemoFormState; values: DemoFormValues; fieldErrors: Partial<Record<keyof DemoFormValues,string>>; formError?: string; onSubmit(values: DemoFormValues): Promise<void>; }
export interface TourProps { steps: WorkflowStep[]; activeIndex: number; open: boolean; onOpenChange(open:boolean): void; onStepChange(index:number): void; }