import type { FunctionComponent } from 'react'; import { funnelManifest, type FunnelStepId } from '@/config/funnel.manifest'; import { stepRegistry } from '@/runtime/step-registry'; import type { FunnelStepMeta } from '@funnelsgrove/runtime'; export const steps = funnelManifest.steps.map((step) => { return stepRegistry[step.componentKey].meta; }) as FunnelStepMeta[]; export type StepId = FunnelStepId; export const stepById: Record = Object.fromEntries( funnelManifest.steps.map((step) => [step.id, stepRegistry[step.componentKey].meta] as const), ) as Record; export const stepComponentById: Record< StepId, FunctionComponent> > = Object.fromEntries( funnelManifest.steps.map((step) => [step.id, stepRegistry[step.componentKey].component] as const), ) as Record>>; export const paywallStepIds: StepId[] = funnelManifest.steps .filter((step) => 'kind' in step && step.kind === 'paywall') .map((step) => step.id as StepId);