/* global React */ const { useState } = React; // Helper — shape glyphs (matches mastery legend) const Shape = ({ kind, mastery = "mastered", size = 12 }) => { const fill = mastery === "frontier" ? "var(--accent)" : mastery === "mastered" ? "var(--ink)" : "none"; const stroke = mastery === "locked" ? "var(--ink-4)" : mastery === "review" ? "var(--ink-3)" : "var(--ink)"; const sw = 1.5; const dash = mastery === "locked" ? "2,2" : "0"; if (kind === "def") return ( ); if (kind === "thm" || kind === "lem") return ( ); if (kind === "ax") return ( ); if (kind === "proc") return ( ); return null; }; // ─── Peek primitive ───────────────────────────────────── // pattern: 'drawer' | 'popover' | 'inline' function Peek({ pattern = "drawer", entity, anchor, onClose, scope }) { if (!entity) return null; const card = (
e.stopPropagation()}>
{entity.kindLabel} {entity.name} {entity.id}
{entity.statement}
{entity.uses && (
{entity.uses.map((u, i) => ( {u} ))}
)}
); if (pattern === "drawer") { return
{card}
; } if (pattern === "popover") { return (
{card}
); } return
{card}
; } // Cite — clickable entity reference function Cite({ entity, onPeek }) { return ( { e.preventDefault(); onPeek(entity); }} href="#"> {entity.short || entity.name} ); } // Demo entity registry const ENT = { productRule: { id: "thm.calc.product_rule", kind: "thm", kindLabel: "Theorem", name: "Product rule", short: "product rule", mastery: "mastered", statement: "If f and g are differentiable at x, then (fg)′(x) = f′(x)·g(x) + f(x)·g′(x).", uses: ["lim.calc.0", "def.calc.derivative"] }, derivative: { id: "def.calc.derivative", kind: "def", kindLabel: "Definition", name: "Derivative", short: "derivative", mastery: "frontier", statement: "f′(x) = lim_{h→0} [f(x+h) − f(x)] / h, when the limit exists.", uses: ["def.calc.limit"] }, limit: { id: "def.calc.limit", kind: "def", kindLabel: "Definition", name: "Limit", short: "limit", mastery: "mastered", statement: "lim_{x→a} f(x) = L iff ∀ε>0 ∃δ>0 such that 0 < |x−a| < δ ⟹ |f(x)−L| < ε.", uses: [] }, composition: { id: "def.calc.composition", kind: "def", kindLabel: "Definition", name: "Function composition", short: "composition", mastery: "mastered", statement: "(f ∘ g)(x) = f(g(x)).", uses: [] }, diffAtPoint: { id: "def.calc.diff_at_point", kind: "def", kindLabel: "Definition", name: "Differentiable at a point", short: "differentiable", mastery: "mastered", statement: "f is differentiable at a iff f′(a) exists.", uses: ["def.calc.derivative"] }, }; window.Shape = Shape; window.Peek = Peek; window.Cite = Cite; window.ENT = ENT;