import type { Preview } from "@storybook/nextjs-vite"; import { Geist, Geist_Mono, Inter, Manrope, Poppins } from "next/font/google"; import "../src/app/globals.css"; import React from "react"; import { PaymentPlacementProvider, TrialVariantSelectionProvider, } from "../src/entities/session/payment"; import type { IFunnelPaymentPlacement } from "../src/entities/session/funnel/types"; import { Currency } from "../src/shared/types"; const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"], }); const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"], }); const manrope = Manrope({ variable: "--font-manrope", subsets: ["latin", "cyrillic"], weight: ["200", "300", "400", "500", "600", "700", "800"], }); const inter = Inter({ variable: "--font-inter", subsets: ["latin", "cyrillic"], weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"], }); const poppins = Poppins({ variable: "--font-poppins", subsets: ["latin"], weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"], }); // Storybook mock placement to avoid network calls const storybookPlacement: IFunnelPaymentPlacement = { currency: Currency.USD, billingPeriod: "WEEK", billingInterval: 1, trialPeriod: "DAY", trialInterval: 7, placementId: "plc_story", paywallId: "pw_story", paymentUrl: "https://example.com/pay", variants: [ { id: "v1", key: "basic", type: "subscription", price: 1499, trialPrice: 100, title: "Basic" }, { id: "v2", key: "standard", type: "subscription", price: 1499, trialPrice: 499, title: "Standard" }, { id: "v3", key: "popular", type: "subscription", price: 1499, trialPrice: 899, title: "Popular", accent: true }, { id: "v4", key: "premium", type: "subscription", price: 1499, trialPrice: 1367, title: "Premium" }, ], }; const preview: Preview = { parameters: { controls: { matchers: { color: /(background|color)$/i, date: /Date$/i, }, }, a11y: { // 'todo' - show a11y violations in the test UI only // 'error' - fail CI on a11y violations // 'off' - skip a11y checks entirely test: "todo", }, layout: "padded", backgrounds: { options: { light: { name: "Light", value: "#fff" }, dark: { name: "Dark", value: "#333" }, }, }, }, decorators: [ (Story) => (
), ], }; export default preview;