"use client"
import { LocalBanner, SystemBanner } from "@/components/ui/banner"
import { MarketingBanner } from "@/components/ui/marketing-banner"
const VARIANTS = ["info", "warning", "error", "success", "promo"] as const
export function LocalBannerVariantsPreview() {
return (
{VARIANTS.map((variant) => (
Inline page message for {variant} states. Use LocalBanner inside a section, not for global shell alerts.
))}
)
}
export function LocalBannerActionsPreview() {
return (
{} }}>
We could not generate the CSV. Check your connection and try again.
{} }}
>
Coordinators can now bulk-assign sites from the placements hub.
)
}
export function SystemBannerProminentPreview() {
return (
{VARIANTS.map((variant) => (
{variant === "promo"
? "Schedule a walkthrough with your program coordinator."
: "Top-of-app strip above sidebar chrome. Pair with SystemBannerSlot."}
))}
)
}
export function SystemBannerSubtlePreview() {
return (
Read-only mode Sunday 2–4 AM ET.
12 students are missing compliance documents.
)
}
export function SystemBannerActionLayoutPreview() {
return (
{} }}
actionPosition="inline"
title="Placement season prep"
>
New coordinator checklist is ready in the library hub.
{} }}
actionPosition="bottom"
title="Product update"
>
Dashboard charts now support Leo plot insights on hover.
)
}
export function SystemBannerDismissPreview() {
return (
No pending approvals in this program.
)
}
/** Notion-style line-art placeholder — right column visual. */
function HeroLineArtVisual() {
return (
)
}
/** Alan-style photo cutout placeholder — overlaps card edges at lg+. */
function HeroPhotoVisual() {
return (
Student asked
Which immunizations are due this week?
)
}
import { FloatingMarketingBannerMedia } from "@/components/floating-marketing-banner-media"
/** In doc previews — static flow; motion disabled via data-motion. */
const FLOATING_DOC_PREVIEW_PROPS = {
className: "!static !bottom-auto !right-auto !left-auto",
"data-motion": "off" as const,
}
export function MarketingBannerHeroPreview() {
return (
}
primaryAction={{ label: "Reserve now", onClick: () => {} }}
dismissible={false}
>
Limited 30-minute sessions with certified placement consultants. Get help before they fill up.
}
primaryAction={{ label: "Talk to an advisor", onClick: () => {} }}
dismissible={false}
>
Clinical advisors available 7 days a week for compliance and placement questions.
)
}
export function MarketingBannerFloatingPreview() {
return (
Brand-gradient card — at runtime fixed at the viewport corner; same chrome as floating sheet.
}
primaryAction={{ label: "Open dashboard", onClick: () => {} }}
>
Ask Leo to explain chart trends — opt-in only.
)
}
export function MarketingBannerFloatingMediaPreview() {
return (
Full-bleed media header on brand gradient — image or video edge-to-edge above copy.
}
primaryAction={{ label: "Try it", onClick: () => {} }}
primaryActionFullWidth
>
Plot insights on hover — you stay in control.