/* store-mockups.jsx — elegant mini product previews used in cards, hero collage,
and gallery. Each fills its parent width; keep them light and on-palette.
Exported to window. */
function L({ w = "100%", h = 5, c = "#e9edf5", mb = 5, r = 9999 }) {
return
;
}
function Sheet({ children, pad = 14, bg = "#fff" }) {
return (
);
}
/* 1. Business Planner — weekly spread */
function MkPlanner() {
return (
{[0, 1, 2, 3].map((i) => (
))}
);
}
/* 2. Invoice */
function MkInvoice() {
return (
{[0, 1, 2].map((i) => (
Item {i + 1} ${(120 * (i + 1)).toFixed(2)}
))}
Total $720.00
);
}
/* 3. Content Calendar */
function MkCalendar() {
return (
Content Calendar
{Array.from({ length: 28 }).map((_, i) => {
const on = [3, 8, 12, 17, 22, 25].includes(i);
return
;
})}
);
}
/* 4. Social Media Kit — post grid */
function MkSocial() {
const grads = ["linear-gradient(135deg,#c9b6f5,#533afd)", "linear-gradient(135deg,#f7b986,#ea2261)", "linear-gradient(135deg,#b9b9f9,#665efd)", "linear-gradient(135deg,#f96bee,#533afd)"];
return (
Social Kit
);
}
/* 5. Resume */
function MkResume() {
return (
Alex Rivera
Product Designer
);
}
/* 6. Budget Tracker — chart */
function MkBudget() {
const bars = [50, 72, 40, 88, 64, 96, 58];
return (
$8,240
);
}
/* 7. Media Kit */
function MkMediaKit() {
return (
Media Kit
{[["48K", "reach"], ["6.2%", "eng."], ["120", "posts"]].map(([v, l]) => (
))}
);
}
/* 8. Client Onboarding — checklist */
function MkOnboarding() {
const check = ;
return (
Welcome Pack
{[1, 1, 1, 0].map((done, i) => (
{done ? check : null}
))}
);
}
/* 9. Productivity Dashboard */
function MkDashboard() {
return (
Fluvex
{[1, 0, 0, 0].map((a, i) =>
)}
);
}
/* 10. Business Card pair */
function MkCard() {
return (
);
}
/* 11. Wedding Invitation — formal invitation card, densely composed */
function MkWedding() {
return (
{/* rose gold inner frame */}
Rose
&
Ethan
Sept · 08 · 2026
);
}
/* 11b. Wedding Invitation — compact bundle version (smaller typography) */
function MkWeddingBundle() {
return (
Rose
&
Ethan
Sept · 08 · 2026
);
}
/* 12. Floral Wedding Invitation — soft floral corners, densely composed */
function MkFloralWedding() {
const petal = (bg) => ({ position: "absolute", width: 10, height: 10, borderRadius: "60% 40% 60% 40%", background: bg, opacity: 0.85 });
return (
{/* floral clusters */}
Save the date
Lily
&
Noah
May · 22 · 2026
Garden Chapel
);
}
/* 13. AI Prompts for Students — stacked prompt cards, filled composition */
function MkAIPrompts() {
const prompts = [
{ c: "Essay", t: "Outline my argument", b: "#eae4ff", d: "#533afd" },
{ c: "Study", t: "14-day revision plan", b: "#ffe9d9", d: "#f7a35b" },
{ c: "Research", t: "Summarise this paper", b: "#e0f2ec", d: "#1f8a5b" },
{ c: "Writing", t: "Improve this paragraph", b: "#fde3ee", d: "#c94b7d" },
];
return (
{prompts.map((p, i) => (
))}
);
}
/* 14. Cover Letter — clean ATS letter */
function MkCoverLetter() {
return (
Alex Morgan
Product Designer · Cover Letter
Dear Hiring Team,
);
}
/* 13b. AI Prompts — compact bundle version with prominent rounded-square icon */
function MkAIPromptsBundle() {
return (
AI Prompt Pack
43 prompts
);
}
const MOCKS = { MkPlanner, MkInvoice, MkCalendar, MkSocial, MkResume, MkBudget, MkMediaKit, MkOnboarding, MkDashboard, MkCard, MkWedding, MkWeddingBundle, MkFloralWedding, MkAIPrompts, MkAIPromptsBundle, MkCoverLetter };
Object.assign(window, MOCKS, { MOCKS });