/* ============================================================
BLUEPRINTSENSES — PRO UNLOCK
One-time unlock per concept slot. Every lock in the app calls
askUnlock(reason) and lands on the same offer; after payment the
user stays on the step they were on, with every lock open.
Payment is simulated in this prototype (no card fields, no charge).
No student promotion for now.
============================================================ */
const { useState: useStateP } = React;
const ProContext = React.createContext({ pro: false, askUnlock: () => {} });
const usePro = () => React.useContext(ProContext);
/* small "Pro" pill */
function ProBadge({ dark }) {
return (
Pro
);
}
const LockIcon = ({ size = 13, color = "currentColor" }) => (
);
/* a compact locked strip: "Pro · what it adds" — shown but not in the way */
function LockedStrip({ title, items, reason, compact }) {
const { askUnlock } = usePro();
const { t } = useLang();
return (
);
}
/* blur a Pro preview and put the offer on top */
function LockedPreview({ children, title, sub, reason, height = 260 }) {
const { askUnlock } = usePro();
const { t } = useLang();
return (