@agent-native/core 0.49.20 → 0.49.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"wireframe-kit.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe-kit.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useSyncExternalStore,\n type CSSProperties,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport rough from \"roughjs\";\nimport type {\n WireframeElName,\n WireframeNode,\n WireframeTone,\n} from \"./wireframe.config.js\";\n\n/**\n * Shared wireframe \"kit\" — hand-drawn low-fi primitives, the el → component node\n * registry, the rough.js sketch overlay, and the viewer-level sketchy/clean\n * style preference. Ported verbatim (geometry-wise) from the plan template's\n * `app/components/plan/wireframe/kit/*` so any app can render wireframe blocks.\n *\n * DECOUPLING: the only behavioral change from the plan copy is theme detection —\n * core blocks read `document.documentElement.classList.contains(\"dark\")` (the\n * MermaidBlock precedent) instead of importing `next-themes`. Everything else\n * (the `.plan-wf` / `[data-rough]` class contract the rough overlay measures,\n * the `--wf-*` / `--ink` / `--paper` token names every primitive reads) is\n * preserved exactly, so the kit looks identical in plan and renders correctly in\n * any app once the matching tokens exist in `core/styles/blocks.css`.\n */\n\n/* ========================================================================== */\n/* Viewer-level wireframe style preference (localStorage) */\n/* ========================================================================== */\n\nexport type WireframeStyle = \"sketchy\" | \"clean\";\n\nconst STYLE_STORAGE_KEY = \"plan-wireframe-style\";\nconst styleListeners = new Set<() => void>();\n\nfunction readStoredStyle(): WireframeStyle {\n if (typeof localStorage === \"undefined\") return \"sketchy\";\n try {\n return localStorage.getItem(STYLE_STORAGE_KEY) === \"clean\"\n ? \"clean\"\n : \"sketchy\";\n } catch {\n return \"sketchy\";\n }\n}\n\nlet currentStyle: WireframeStyle = readStoredStyle();\n\nexport function setWireframeStyle(style: WireframeStyle): void {\n if (style === currentStyle) return;\n currentStyle = style;\n try {\n localStorage.setItem(STYLE_STORAGE_KEY, style);\n } catch {\n // ignore (private mode / disabled storage)\n }\n for (const listener of styleListeners) listener();\n}\n\nexport function toggleWireframeStyle(): void {\n setWireframeStyle(currentStyle === \"sketchy\" ? \"clean\" : \"sketchy\");\n}\n\nfunction subscribeStyle(callback: () => void): () => void {\n styleListeners.add(callback);\n const onStorage = (event: StorageEvent) => {\n if (event.key === STYLE_STORAGE_KEY) {\n currentStyle = readStoredStyle();\n callback();\n }\n };\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"storage\", onStorage);\n }\n return () => {\n styleListeners.delete(callback);\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"storage\", onStorage);\n }\n };\n}\n\nexport function useWireframeStyle(): WireframeStyle {\n return useSyncExternalStore(\n subscribeStyle,\n () => currentStyle,\n () => \"sketchy\",\n );\n}\n\n/** Read the live dark-mode flag from the document root (next-themes-free). */\nexport function useIsDark(): boolean {\n const [isDark, setIsDark] = useState(false);\n useEffect(() => {\n if (typeof document === \"undefined\") return;\n const root = document.documentElement;\n const read = () => setIsDark(root.classList.contains(\"dark\"));\n read();\n const observer = new MutationObserver(read);\n observer.observe(root, { attributes: true, attributeFilter: [\"class\"] });\n return () => observer.disconnect();\n }, []);\n return isDark;\n}\n\n/* ========================================================================== */\n/* Primitives (ported from kit/primitives.tsx) */\n/* ========================================================================== */\n\n/**\n * Frame-level config threaded to every Screen so skeleton / theme / sketch-vs-\n * clean reach the kit no matter which path renders the root Screen.\n */\nexport const KitConfigContext = createContext<{\n skeleton?: boolean;\n sketch?: number;\n theme?: \"light\" | \"dark\";\n style?: \"sketchy\" | \"clean\";\n}>({});\n\nconst V = {\n ink: \"var(--ink)\",\n soft: \"var(--ink-soft)\",\n line: \"var(--line)\",\n paper: \"var(--paper)\",\n card: \"var(--card)\",\n accent: \"var(--accent)\",\n accentSoft: \"var(--accent-soft)\",\n warn: \"var(--warn)\",\n warnSoft: \"var(--warn-soft)\",\n ok: \"var(--ok)\",\n okSoft: \"var(--ok-soft)\",\n stroke: \"var(--stroke)\",\n radius: \"var(--radius)\",\n gap: \"var(--gap)\",\n pad: \"var(--pad)\",\n fs: \"var(--fs)\",\n hand: \"var(--font-hand)\",\n script: \"var(--font-script)\",\n} as const;\n\ntype ToneColors = { fg: string; bg: string; bd: string };\n\nfunction toneColors(tone: WireframeTone = \"default\"): ToneColors {\n switch (tone) {\n case \"accent\":\n return { fg: V.accent, bg: V.accentSoft, bd: V.accent };\n case \"warn\":\n return { fg: V.warn, bg: V.warnSoft, bd: V.warn };\n case \"ok\":\n return { fg: V.ok, bg: V.okSoft, bd: V.ok };\n case \"muted\":\n return { fg: V.soft, bg: \"transparent\", bd: V.soft };\n default:\n return { fg: V.ink, bg: \"transparent\", bd: V.ink };\n }\n}\n\nfunction toneInk(tone?: WireframeTone): string {\n return toneColors(tone).fg;\n}\n\nfunction fontWeight(weight?: \"normal\" | \"medium\" | \"bold\"): number {\n if (weight === \"bold\") return 700;\n if (weight === \"medium\") return 600;\n return 400;\n}\n\nexport function Screen({\n children,\n pad = 0,\n sketch,\n density,\n theme,\n skeleton = false,\n style = {},\n}: {\n children?: ReactNode;\n pad?: number | string;\n sketch?: number;\n density?: \"compact\" | \"regular\" | \"roomy\";\n theme?: \"light\" | \"dark\";\n skeleton?: boolean;\n style?: CSSProperties;\n}) {\n const cfg = useContext(KitConfigContext);\n const isSkeleton = skeleton || Boolean(cfg.skeleton);\n const wfStyle = cfg.style ?? \"sketchy\";\n const wfTheme = theme ?? cfg.theme ?? \"light\";\n void sketch;\n return (\n <div\n className=\"plan-wf\"\n data-density={density ?? \"regular\"}\n data-theme={wfTheme}\n data-skeleton={isSkeleton ? \"true\" : undefined}\n data-style={wfStyle}\n style={{\n position: \"relative\",\n width: \"100%\",\n // `minHeight` (not a fixed `height: 100%`) so the screen fills an\n // auto-height artboard's floor yet grows with its content instead of\n // clipping. The frame shell (`ArtboardFrame`) owns the height policy; a\n // caller can still override via `style.height` for a fixed canvas.\n minHeight: \"100%\",\n background: V.paper,\n color: V.ink,\n fontFamily: V.hand,\n fontSize: V.fs,\n lineHeight: 1.25,\n display: \"flex\",\n flexDirection: \"column\",\n padding: pad,\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Hand({\n children,\n size,\n weight = 400,\n color = V.ink,\n script = false,\n style = {},\n}: {\n children?: ReactNode;\n size?: number | string;\n weight?: number;\n color?: string;\n script?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <span\n style={{\n fontFamily: script ? V.script : V.hand,\n fontSize: size ?? V.fs,\n fontWeight: weight,\n color,\n minWidth: 0,\n overflowWrap: \"break-word\",\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Bar({\n w = 80,\n h,\n color = V.line,\n r = 4,\n style = {},\n}: {\n w?: number | string;\n h?: number | string;\n color?: string;\n r?: number | string;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n width: w,\n height: h ?? \"calc(var(--fs) * 0.72)\",\n background: color,\n borderRadius: r,\n flex: \"0 0 auto\",\n ...style,\n }}\n />\n );\n}\n\nexport function Lines({\n n = 2,\n gap = 6,\n widths,\n color = V.line,\n style = {},\n}: {\n n?: number;\n gap?: number;\n widths?: Array<number | string>;\n color?: string;\n style?: CSSProperties;\n}) {\n const ws =\n widths ??\n Array.from({ length: n }, (_, i) => (i === n - 1 ? \"55%\" : \"100%\"));\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap, ...style }}>\n {ws.map((w, i) => (\n <Bar key={i} w={typeof w === \"number\" ? `${w}%` : w} color={color} />\n ))}\n </div>\n );\n}\n\nexport function Box({\n children,\n pad = V.pad,\n fill = V.card,\n dashed = false,\n style = {},\n}: {\n children?: ReactNode;\n pad?: number | string;\n fill?: string;\n dashed?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n border: `${V.stroke} ${dashed ? \"dashed\" : \"solid\"} ${V.ink}`,\n borderRadius: V.radius,\n background: fill,\n padding: pad,\n boxSizing: \"border-box\",\n minWidth: 0,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Check({\n done = false,\n shape = \"square\",\n size = 18,\n}: {\n done?: boolean;\n shape?: \"square\" | \"circle\";\n size?: number;\n}) {\n const r = shape === \"circle\" ? \"50%\" : \"calc(var(--radius) * 0.5)\";\n return (\n <div\n data-rough={shape === \"circle\" ? \"ellipse\" : \"rect\"}\n style={{\n [\"--rough-stroke\" as string]: done ? V.accent : V.ink,\n width: size,\n height: size,\n flex: \"0 0 auto\",\n borderRadius: r,\n border: `${V.stroke} solid ${done ? V.accent : V.ink}`,\n background: done ? V.accent : \"transparent\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {done && (\n <svg\n width={size * 0.6}\n height={size * 0.6}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"#fff\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2 6.5l2.5 2.5L10 3\" />\n </svg>\n )}\n </div>\n );\n}\n\nexport function Pill({\n children,\n tone = \"default\",\n style = {},\n}: {\n children?: ReactNode;\n tone?: WireframeTone;\n style?: CSSProperties;\n}) {\n const c = toneColors(tone);\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n border: `${V.stroke} solid ${c.bd}`,\n background: c.bg,\n color: c.fg,\n borderRadius: 999,\n padding: \"2px 9px\",\n fontSize: \"calc(var(--fs) * 0.82)\",\n fontFamily: V.hand,\n maxWidth: \"100%\",\n minWidth: 0,\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n lineHeight: 1.3,\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Prio({ level = 2, label }: { level?: number; label?: string }) {\n const fill = level === 1 ? V.warn : level === 2 ? V.soft : \"transparent\";\n const bd = level === 3 ? V.soft : \"transparent\";\n return (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 5 }}>\n <span\n style={{\n width: 9,\n height: 9,\n borderRadius: \"50%\",\n background: fill,\n border: `${V.stroke} solid ${bd}`,\n flex: \"0 0 auto\",\n }}\n />\n {label && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {label}\n </Hand>\n )}\n </span>\n );\n}\n\nexport function Btn({\n children,\n solid = false,\n full = false,\n size = \"md\",\n tone = \"default\",\n style = {},\n}: {\n children?: ReactNode;\n solid?: boolean;\n full?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n tone?: WireframeTone;\n style?: CSSProperties;\n}) {\n const pad =\n size === \"sm\" ? \"4px 10px\" : size === \"lg\" ? \"10px 18px\" : \"7px 14px\";\n const c = toneColors(tone === \"default\" ? \"accent\" : tone);\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: solid ? c.bd : V.ink,\n display: full ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n border: `${V.stroke} solid ${solid ? c.bd : V.ink}`,\n background: solid ? c.bd : \"transparent\",\n color: solid ? \"#fff\" : V.ink,\n borderRadius: V.radius,\n padding: pad,\n fontFamily: V.hand,\n fontSize: V.fs,\n fontWeight: 700,\n width: full ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n minWidth: 0,\n boxSizing: \"border-box\",\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n textAlign: \"center\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Chip({\n children,\n active = false,\n style = {},\n}: {\n children?: ReactNode;\n active?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 5,\n border: `${V.stroke} solid ${active ? V.accent : V.ink}`,\n background: active ? V.accentSoft : \"transparent\",\n color: active ? V.accent : V.ink,\n borderRadius: 999,\n padding: \"4px 12px\",\n fontSize: \"calc(var(--fs) * 0.88)\",\n fontFamily: V.hand,\n fontWeight: active ? 700 : 400,\n maxWidth: \"100%\",\n minWidth: 0,\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Field({\n label,\n value,\n placeholder,\n h,\n area = false,\n right,\n style = {},\n}: {\n label?: string;\n value?: string;\n placeholder?: number | string;\n h?: number | string;\n area?: boolean;\n right?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 5, ...style }}>\n {label && (\n <Hand size=\"calc(var(--fs) * 0.86)\" color={V.soft} weight={700}>\n {label}\n </Hand>\n )}\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n border: `${V.stroke} solid ${V.ink}`,\n borderRadius: V.radius,\n background: V.card,\n padding: \"calc(var(--pad) * 0.8)\",\n minHeight: h ?? (area ? 64 : \"auto\"),\n display: \"flex\",\n alignItems: area ? \"flex-start\" : \"center\",\n justifyContent: \"space-between\",\n minWidth: 0,\n gap: 8,\n }}\n >\n {value ? (\n <Hand style={{ minWidth: 0, overflowWrap: \"anywhere\" }}>{value}</Hand>\n ) : area ? (\n <Lines n={2} widths={[\"85%\", \"60%\"]} />\n ) : (\n <Bar w={placeholder ?? 110} />\n )}\n {right}\n </div>\n </div>\n );\n}\n\nexport function StatusBar() {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"9px 18px 2px\",\n flex: \"0 0 auto\",\n }}\n >\n <Hand size=\"calc(var(--fs) * 0.82)\" weight={700}>\n 9:41\n </Hand>\n <div style={{ display: \"flex\", gap: 5, alignItems: \"center\" }}>\n <Bar w={16} h={8} color={V.soft} r={2} />\n <Bar w={12} h={8} color={V.soft} r={2} />\n <Bar w={20} h={9} color={V.soft} r={2} />\n </div>\n </div>\n );\n}\n\nexport function Fab({ icon = \"+\" }: { icon?: string }) {\n return (\n <div\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.accent,\n position: \"absolute\",\n right: 18,\n bottom: 22,\n width: 52,\n height: 52,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.accent}`,\n background: V.accent,\n color: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontFamily: V.hand,\n fontSize: 28,\n fontWeight: 700,\n lineHeight: 1,\n boxShadow: \"0 4px 12px rgba(0,0,0,0.16)\",\n zIndex: 4,\n }}\n >\n {icon}\n </div>\n );\n}\n\nexport function BrowserBar({\n title = \"todo\",\n children,\n}: {\n title?: string;\n children?: ReactNode;\n}) {\n return (\n <div\n data-rough=\"line:bottom\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: \"9px 14px\",\n borderBottom: `${V.stroke} solid ${V.ink}`,\n flex: \"0 0 auto\",\n background: V.card,\n }}\n >\n <div style={{ display: \"flex\", gap: 6 }}>\n {[0, 1, 2].map((i) => (\n <span\n key={i}\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width: 11,\n height: 11,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.ink}`,\n }}\n />\n ))}\n </div>\n <div\n style={{\n flex: 1,\n border: `${V.stroke} solid ${V.soft}`,\n borderRadius: 999,\n padding: \"3px 12px\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n }}\n >\n <Bar w={12} h={10} color={V.soft} r={3} />\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {title}.app\n </Hand>\n </div>\n {children}\n </div>\n );\n}\n\nexport function SectionLabel({\n children,\n right,\n tone = \"muted\",\n}: {\n children?: ReactNode;\n right?: ReactNode;\n tone?: WireframeTone;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\",\n minWidth: 0,\n gap: 8,\n }}\n >\n <Hand\n size=\"calc(var(--fs) * 0.9)\"\n weight={700}\n color={toneInk(tone)}\n style={{\n letterSpacing: 0.3,\n minWidth: 0,\n overflowWrap: \"anywhere\",\n }}\n >\n {children}\n </Hand>\n {right}\n </div>\n );\n}\n\nexport function Avatar({ size = 26 }: { size?: number }) {\n return (\n <div\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width: size,\n height: size,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.ink}`,\n background: V.accentSoft,\n flex: \"0 0 auto\",\n }}\n />\n );\n}\n\nexport function IconSquare({\n size = 18,\n active = false,\n}: {\n size?: number;\n active?: boolean;\n}) {\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: active ? V.accent : V.soft,\n width: size,\n height: size,\n flex: \"0 0 auto\",\n borderRadius: \"calc(var(--radius) * 0.5)\",\n border: `${V.stroke} solid ${active ? V.accent : V.soft}`,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <div\n style={{\n width: \"55%\",\n height: \"55%\",\n borderRadius: 2,\n background: active ? V.accent : V.line,\n }}\n />\n </div>\n );\n}\n\nexport function NavItem({\n label,\n count,\n active = false,\n dot = false,\n tone = \"accent\",\n}: {\n label?: string;\n count?: number;\n active?: boolean;\n dot?: boolean;\n tone?: WireframeTone;\n}) {\n const dotColor = toneInk(tone);\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 9,\n padding: \"5px 8px\",\n borderRadius: V.radius,\n background: active ? V.accentSoft : \"transparent\",\n minWidth: 0,\n }}\n >\n {dot ? (\n <span\n style={{\n width: 10,\n height: 10,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${dotColor}`,\n background: dotColor,\n flex: \"0 0 auto\",\n }}\n />\n ) : (\n <IconSquare size={15} active={active} />\n )}\n <Hand\n color={active ? V.accent : V.ink}\n weight={active ? 700 : 400}\n style={{ flex: 1, minWidth: 0 }}\n >\n {label}\n </Hand>\n {count != null && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {count}\n </Hand>\n )}\n </div>\n );\n}\n\nexport function Sidebar({\n children,\n width = 196,\n style = {},\n}: {\n children?: ReactNode;\n width?: number;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"line:right\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width,\n flex: \"0 0 auto\",\n borderRight: `${V.stroke} solid ${V.ink}`,\n background: V.card,\n padding: V.pad,\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n minHeight: 0,\n minWidth: 0,\n alignSelf: \"stretch\",\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Main({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n padding: \"18px 24px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Row({\n children,\n full = false,\n style = {},\n}: {\n children?: ReactNode;\n full?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n gap: V.gap,\n minWidth: 0,\n minHeight: 0,\n maxWidth: \"100%\",\n flex: full ? 1 : undefined,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Col({\n children,\n full = false,\n style = {},\n}: {\n children?: ReactNode;\n full?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n minWidth: 0,\n minHeight: 0,\n flex: full ? 1 : undefined,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function TaskRow({\n title,\n note,\n due,\n dueTone = \"default\",\n prio,\n done = false,\n}: {\n title?: string;\n note?: string;\n due?: string;\n dueTone?: WireframeTone;\n prio?: number;\n done?: boolean;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: V.gap,\n padding: \"calc(var(--pad) * 0.55) 0\",\n minWidth: 0,\n }}\n >\n <div style={{ marginTop: 1 }}>\n <Check done={done} />\n </div>\n <div\n style={{\n flex: 1,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 4,\n }}\n >\n <Hand\n color={done ? V.soft : V.ink}\n style={done ? { textDecoration: \"line-through\" } : undefined}\n >\n {title}\n </Hand>\n {note && (\n <Hand size=\"calc(var(--fs) * 0.85)\" color={V.soft}>\n {note}\n </Hand>\n )}\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n gap: 8,\n flex: \"0 0 auto\",\n }}\n >\n {due && <Pill tone={dueTone}>{due}</Pill>}\n {prio ? <Prio level={prio} /> : null}\n </div>\n </div>\n );\n}\n\nexport function Card({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <Box\n pad=\"calc(var(--pad) * 0.9)\"\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n background: V.card,\n minWidth: 0,\n maxWidth: \"100%\",\n ...style,\n }}\n >\n {children}\n </Box>\n );\n}\n\nexport function Column({\n title,\n count,\n tone = \"muted\",\n width = 232,\n children,\n}: {\n title?: string;\n count?: number;\n tone?: WireframeTone;\n width?: number;\n children?: ReactNode;\n}) {\n return (\n <div\n style={{\n width,\n flex: \"0 0 auto\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span\n style={{\n width: 9,\n height: 9,\n borderRadius: \"50%\",\n background: toneInk(tone),\n flex: \"0 0 auto\",\n }}\n />\n <Hand weight={700} style={{ whiteSpace: \"nowrap\" }}>\n {title}\n </Hand>\n {count != null && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {count}\n </Hand>\n )}\n <div style={{ flex: 1 }} />\n <Hand color={V.soft} weight={700}>\n +\n </Hand>\n </div>\n {children}\n </div>\n );\n}\n\nexport function Toolbar({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"line:bottom\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: V.gap,\n padding: \"12px 22px\",\n borderBottom: `${V.stroke} solid ${V.ink}`,\n background: V.card,\n flex: \"0 0 auto\",\n minWidth: 0,\n flexWrap: \"wrap\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Tabs({\n items = [],\n}: {\n items?: Array<{ label: string; active?: boolean }>;\n}) {\n return (\n <div style={{ display: \"flex\", gap: 7, flexWrap: \"wrap\" }}>\n {items.map((item, i) => (\n <Chip key={i} active={item.active}>\n {item.label}\n </Chip>\n ))}\n </div>\n );\n}\n\nexport function KV({ rows = [] }: { rows?: Array<{ k: string; v: string }> }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {rows.map((row, i) => (\n <div\n key={i}\n style={{\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n <Hand size=\"calc(var(--fs) * 0.88)\" color={V.soft}>\n {row.k}\n </Hand>\n <Hand\n style={{ textAlign: \"right\", minWidth: 0, wordBreak: \"break-word\" }}\n >\n {row.v}\n </Hand>\n </div>\n ))}\n </div>\n );\n}\n\nexport function SearchBar({\n placeholder = \"Search\",\n}: {\n placeholder?: string;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n border: `${V.stroke} solid ${V.soft}`,\n borderRadius: 999,\n padding: \"5px 11px\",\n background: V.card,\n }}\n >\n <Bar w={11} h={11} color={V.soft} r={3} />\n <Hand size=\"calc(var(--fs) * 0.85)\" color={V.soft}>\n {placeholder}\n </Hand>\n </div>\n );\n}\n\nexport function Divider({ style = {} }: { style?: CSSProperties }) {\n return (\n <div\n style={{\n height: V.stroke,\n background: V.line,\n flex: \"0 0 auto\",\n margin: \"3px 0\",\n ...style,\n }}\n />\n );\n}\n\nexport function Title({\n text,\n script = false,\n size = \"calc(var(--fs) * 2)\",\n color = V.ink,\n}: {\n text?: string;\n script?: boolean;\n size?: number | string;\n color?: string;\n}) {\n return (\n <Hand script={script} size={size} weight={700} color={color}>\n {text}\n </Hand>\n );\n}\n\nexport function Text({\n value,\n color,\n weight,\n script = false,\n}: {\n value?: string;\n color?: WireframeTone;\n weight?: \"normal\" | \"medium\" | \"bold\";\n script?: boolean;\n}) {\n return (\n <Hand color={toneInk(color)} weight={fontWeight(weight)} script={script}>\n {value}\n </Hand>\n );\n}\n\n/* ========================================================================== */\n/* Node registry (ported from kit/registry.tsx) */\n/* ========================================================================== */\n\ntype NodeRenderer = (node: WireframeNode, children: ReactNode) => ReactNode;\n\nconst REGISTRY: Record<WireframeElName, NodeRenderer> = {\n // --- Frame / structure -------------------------------------------------\n screen: (n) => {\n const kids = n.children ?? [];\n const lead = kids[0]?.el;\n if (lead === \"browserBar\") {\n return (\n <Screen pad={0}>\n {renderNode(kids[0], kids[0].id ?? \"browserbar\")}\n {renderScreenBodyNodes(kids.slice(1))}\n </Screen>\n );\n }\n if (lead === \"statusBar\") {\n return (\n <Screen pad={0}>\n {renderNode(kids[0], kids[0].id ?? \"statusbar\")}\n <div\n style={{\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"var(--gap)\",\n padding: \"calc(var(--pad) * 1.1)\",\n }}\n >\n {renderScreenBodyNodes(kids.slice(1))}\n </div>\n </Screen>\n );\n }\n return (\n <Screen pad=\"calc(var(--pad) * 1.35)\">\n {renderScreenBodyNodes(kids)}\n </Screen>\n );\n },\n browserBar: (n, children) => (\n <BrowserBar title={n.title ?? n.text}>{children}</BrowserBar>\n ),\n statusBar: () => <StatusBar />,\n toolbar: (_n, children) => <Toolbar>{children}</Toolbar>,\n row: (n, children) => <Row full={n.full}>{children}</Row>,\n col: (n, children) => <Col full={n.full}>{children}</Col>,\n sidebar: (_n, children) => <Sidebar>{children}</Sidebar>,\n main: (_n, children) => <Main>{children}</Main>,\n box: (n, children) => <Box dashed={n.dashed}>{children}</Box>,\n card: (_n, children) => <Card>{children}</Card>,\n column: (n, children) => (\n <Column title={n.title ?? n.text} count={n.count} tone={n.tone}>\n {children}\n </Column>\n ),\n divider: () => <Divider />,\n\n // --- Text --------------------------------------------------------------\n title: (n) => <Title text={n.text} script={n.script} />,\n text: (n) => (\n <Text\n value={n.value ?? n.text}\n color={n.color}\n weight={n.weight}\n script={n.script}\n />\n ),\n lines: (n) => <Lines n={n.n} widths={n.widths} />,\n section: (n) => (\n <SectionLabel tone={n.tone}>{n.label ?? n.text}</SectionLabel>\n ),\n\n // --- List / task -------------------------------------------------------\n navItem: (n) => (\n <NavItem\n label={n.label ?? n.text}\n count={n.count}\n active={n.active}\n dot={n.dot}\n tone={n.tone}\n />\n ),\n taskRow: (n) => (\n <TaskRow\n title={n.title ?? n.text}\n note={n.note}\n due={n.due}\n dueTone={n.dueTone}\n prio={n.prio}\n done={n.done}\n />\n ),\n\n // --- Controls ----------------------------------------------------------\n chips: (n) => <Tabs items={n.items ?? []} />,\n chip: (n) => <Chip active={n.active}>{n.label ?? n.text}</Chip>,\n pill: (n) => <Pill tone={n.tone}>{n.label ?? n.text}</Pill>,\n check: (n) => <Check done={n.done} shape={n.shape} />,\n field: (n) => (\n <Field\n label={n.label}\n value={n.value}\n placeholder={n.placeholder}\n area={n.area}\n />\n ),\n btn: (n) => (\n <Btn solid={n.solid} full={n.full} tone={n.tone}>\n {n.label ?? n.text}\n </Btn>\n ),\n fab: (n) => <Fab icon={n.icon} />,\n searchBar: (n) => <SearchBar placeholder={n.placeholder} />,\n\n // --- Atoms -------------------------------------------------------------\n avatar: () => <Avatar />,\n iconSquare: (n) => <IconSquare active={n.active} />,\n kv: (n) => <KV rows={n.rows ?? []} />,\n};\n\nfunction renderScreenBodyNode(\n node: WireframeNode,\n key?: string | number,\n): ReactNode {\n const shouldFill =\n node.full !== false &&\n (node.el === \"row\" || node.el === \"col\" || node.el === \"main\");\n return renderNode(shouldFill ? { ...node, full: true } : node, key);\n}\n\nfunction renderScreenBodyNodes(nodes: WireframeNode[]): ReactNode {\n return nodes.map((node, i) =>\n renderScreenBodyNode(node, node.id ?? `screen-body-${i}`),\n );\n}\n\n/** Render a single kit-tree node (and its children, recursively). */\nexport function renderNode(\n node: WireframeNode,\n key?: string | number,\n): ReactNode {\n const renderer = REGISTRY[node.el];\n const children = node.children?.length ? renderNodes(node.children) : null;\n if (!renderer) {\n return children ? <div key={key}>{children}</div> : null;\n }\n const rendered = renderer(node, children);\n return <KeyedNode key={key ?? node.id}>{rendered}</KeyedNode>;\n}\n\n/** Render an array of nodes. */\nexport function renderNodes(nodes: WireframeNode[]): ReactNode {\n return nodes.map((node, i) => renderNode(node, node.id ?? i));\n}\n\n/** Lightweight keyed wrapper that does not introduce extra DOM. */\nfunction KeyedNode({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n\n/** Whether an `el` name has a registered renderer. */\nexport function hasRenderer(el: string): el is WireframeElName {\n return el in REGISTRY;\n}\n\nexport { REGISTRY as NODE_REGISTRY, V as WFV, toneColors, toneInk, fontWeight };\n\n/* ========================================================================== */\n/* Rough overlay (ported from kit/rough.tsx) */\n/* ========================================================================== */\n\nconst gen = rough.generator();\n\ntype RoughPath = { d: string; stroke: string; strokeWidth: number };\n\n/** The default selector used for HTML mockups: bordered/box-like elements. */\nexport const HTML_ROUGH_SELECTOR =\n \"[data-rough],button,input,textarea,select,.wf-card,.wf-box,hr,.wf-frame-target\";\n\n/** Stable per-element seed so a frame doesn't re-wobble on every measure. */\nfunction seedFrom(...parts: Array<string | number>): number {\n const value = parts.join(\":\");\n let hash = 2166136261;\n for (let i = 0; i < value.length; i++) {\n hash ^= value.charCodeAt(i);\n hash = Math.imul(hash, 16777619);\n }\n return ((hash >>> 0) % 2147483646) + 1;\n}\n\n/** Map the 0–100 sketch slider to a rough.js roughness (calm + legible). */\nexport function sketchRoughness(sketch: number): number {\n const s = Math.max(0, Math.min(100, Number.isFinite(sketch) ? sketch : 0));\n return Number((0.32 + (s / 100) * 1.15).toFixed(2));\n}\n\nfunction sketchBowing(sketch: number): number {\n const s = Math.max(0, Math.min(100, Number.isFinite(sketch) ? sketch : 0));\n return Number((0.4 + (s / 100) * 0.5).toFixed(2));\n}\n\nfunction readVar(el: Element, name: string): string {\n return getComputedStyle(el).getPropertyValue(name).trim();\n}\n\n/** Normalize a CSS color (hex or rgb[a]) to \"r,g,b\" for equality comparison. */\nfunction toRgbKey(color: string): string | null {\n const c = color.trim();\n const hex = c.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);\n if (hex) {\n const h = hex[1];\n const full =\n h.length === 3\n ? h\n .split(\"\")\n .map((d) => d + d)\n .join(\"\")\n : h;\n const n = parseInt(full, 16);\n return `${(n >> 16) & 255},${(n >> 8) & 255},${n & 255}`;\n }\n const rgb = c.match(/rgba?\\(([^)]+)\\)/i);\n if (rgb) {\n const [r, g, b] = rgb[1].split(\",\").map((v) => parseInt(v.trim(), 10));\n return `${r},${g},${b}`;\n }\n return null;\n}\n\n/** True when two CSS colors resolve to the same RGB (hex vs rgb tolerant). */\nfunction sameColor(a: string, b: string): boolean {\n const ka = toRgbKey(a);\n const kb = toRgbKey(b);\n return ka !== null && ka === kb;\n}\n\n/** A rounded-rect SVG path (so the frame stroke follows the artboard radius). */\nfunction roundedRectPath(\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n): string {\n const rad = Math.max(0, Math.min(r, w / 2, h / 2));\n return [\n `M${x + rad},${y}`,\n `H${x + w - rad}`,\n `A${rad},${rad} 0 0 1 ${x + w},${y + rad}`,\n `V${y + h - rad}`,\n `A${rad},${rad} 0 0 1 ${x + w - rad},${y + h}`,\n `H${x + rad}`,\n `A${rad},${rad} 0 0 1 ${x},${y + h - rad}`,\n `V${y + rad}`,\n `A${rad},${rad} 0 0 1 ${x + rad},${y}`,\n \"Z\",\n ].join(\" \");\n}\n\nfunction elementStroke(node: Element, fallback: string): string {\n const explicit = readVar(node, \"--rough-stroke\");\n if (explicit) return explicit;\n const cs = getComputedStyle(node);\n for (const side of [\n \"borderTopColor\",\n \"borderLeftColor\",\n \"borderBottomColor\",\n \"borderRightColor\",\n ] as const) {\n const width = parseFloat(\n cs.getPropertyValue(side.replace(\"Color\", \"Width\")),\n );\n const color = cs[side];\n if (width > 0 && color && color !== \"rgba(0, 0, 0, 0)\") return color;\n }\n return fallback;\n}\n\nfunction build(\n scope: HTMLElement,\n opts: {\n roughness: number;\n bowing: number;\n frameRadius: number;\n drawFrame: boolean;\n selector: string;\n },\n): { paths: RoughPath[]; w: number; h: number } {\n const base = scope.getBoundingClientRect();\n const layoutW = scope.offsetWidth;\n const layoutH = scope.offsetHeight;\n if (!layoutW || !layoutH) return { paths: [], w: 0, h: 0 };\n const zoom = base.width / layoutW || 1;\n\n const themed =\n (scope.matches(\".plan-wf, .plan-html-frame, .plan-diagram-frame\")\n ? scope\n : scope.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )) ?? scope;\n const ink =\n readVar(themed, \"--ink\") || readVar(themed, \"--wf-ink\") || \"#34322e\";\n const sketch = readVar(themed, \"--wf-sketch\") || ink;\n const line = readVar(themed, \"--wf-line\") || readVar(themed, \"--line\") || \"\";\n\n const paths: RoughPath[] = [];\n let index = 0;\n const push = (drawable: unknown, stroke: string, sw: number) => {\n for (const p of gen.toPaths(\n drawable as Parameters<typeof gen.toPaths>[0],\n )) {\n paths.push({\n d: p.d,\n stroke: p.stroke && p.stroke !== \"none\" ? p.stroke : stroke,\n strokeWidth: p.strokeWidth || sw,\n });\n }\n };\n const makeOpts = (stroke: string, sw: number, seed: number) => ({\n seed,\n roughness: opts.roughness,\n bowing: opts.bowing,\n stroke,\n strokeWidth: sw,\n preserveVertices: true,\n });\n\n if (opts.drawFrame) {\n const sw = 2;\n push(\n gen.path(\n roundedRectPath(2, 2, layoutW - 4, layoutH - 4, opts.frameRadius),\n {\n ...makeOpts(sketch, sw, seedFrom(\"frame\", layoutW, layoutH)),\n roughness: opts.roughness + 0.35,\n bowing: opts.bowing + 0.18,\n },\n ),\n sketch,\n sw,\n );\n }\n\n scope.querySelectorAll<HTMLElement>(opts.selector).forEach((node) => {\n const r = node.getBoundingClientRect();\n const x = (r.left - base.left) / zoom;\n const y = (r.top - base.top) / zoom;\n const w = r.width / zoom;\n const h = r.height / zoom;\n if (w < 2 || h < 2) return;\n const kind = node.getAttribute(\"data-rough\") || \"rect\";\n const rawStroke = elementStroke(node, sketch);\n const stroke =\n sameColor(rawStroke, ink) || (line !== \"\" && sameColor(rawStroke, line))\n ? sketch\n : rawStroke;\n const sw = Number(readVar(node, \"--rough-w\")) || 1.4;\n const seed = seedFrom(\n kind,\n Math.round(x),\n Math.round(y),\n Math.round(w),\n Math.round(h),\n index++,\n );\n const o = makeOpts(stroke, sw, seed);\n let drawable: unknown;\n if (kind === \"ellipse\") {\n drawable = gen.ellipse(x + w / 2, y + h / 2, w, h, o);\n } else if (kind === \"line:right\") {\n drawable = gen.line(x + w, y, x + w, y + h, o);\n } else if (kind === \"line:bottom\") {\n drawable = gen.line(x, y + h, x + w, y + h, o);\n } else if (kind === \"line:top\" || node.tagName === \"HR\") {\n drawable = gen.line(x, y + h / 2, x + w, y + h / 2, o);\n } else {\n const cr = parseFloat(getComputedStyle(node).borderTopLeftRadius) || 0;\n const radius = Math.min(cr / zoom, w / 2, h / 2);\n drawable =\n radius > 1\n ? gen.path(roundedRectPath(x + 1, y + 1, w - 2, h - 2, radius), o)\n : gen.rectangle(x + 1, y + 1, w - 2, h - 2, o);\n }\n push(drawable, stroke, sw);\n });\n\n return { paths, w: layoutW, h: layoutH };\n}\n\n/**\n * Renders the rough overlay for a frame. `scopeRef` points at the frame root.\n * When `enabled` is false (skeleton / clean register) it renders nothing and the\n * crisp CSS borders stay visible.\n */\nexport function RoughOverlay({\n scopeRef,\n sketch = 52,\n enabled = true,\n drawFrame = true,\n frameRadius = 14,\n selector = \"[data-rough]\",\n}: {\n scopeRef: RefObject<HTMLElement | null>;\n sketch?: number;\n enabled?: boolean;\n drawFrame?: boolean;\n frameRadius?: number;\n selector?: string;\n}) {\n const [state, setState] = useState<{\n paths: RoughPath[];\n w: number;\n h: number;\n }>({ paths: [], w: 0, h: 0 });\n const rafRef = useRef(0);\n\n useEffect(() => {\n const el = scopeRef.current;\n if (!el || !enabled) {\n el?.removeAttribute(\"data-rough-ready\");\n el?.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )?.removeAttribute(\"data-rough-ready\");\n setState({ paths: [], w: 0, h: 0 });\n return;\n }\n const roughness = sketchRoughness(sketch);\n const bowing = sketchBowing(sketch);\n const measure = () => {\n clearTimeout(rafRef.current);\n rafRef.current = window.setTimeout(() => {\n const next = build(el, {\n roughness,\n bowing,\n frameRadius,\n drawFrame,\n selector,\n });\n if (next.w && next.h) {\n el.setAttribute(\"data-rough-ready\", \"true\");\n (\n el.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n ) ?? el\n ).setAttribute(\"data-rough-ready\", \"true\");\n setState(next);\n }\n }, 0);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n el.querySelectorAll(selector).forEach((node) => ro.observe(node));\n const mo = new MutationObserver((mutations) => {\n if (mutations.every(isRoughOverlayMutation)) return;\n measure();\n });\n mo.observe(el, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n el.addEventListener(\"plan-prototype-runtime:rendered\", measure);\n let cancelled = false;\n if (typeof document !== \"undefined\" && \"fonts\" in document) {\n void document.fonts.ready.then(() => {\n if (!cancelled) measure();\n });\n }\n return () => {\n cancelled = true;\n ro.disconnect();\n mo.disconnect();\n el.removeEventListener(\"plan-prototype-runtime:rendered\", measure);\n clearTimeout(rafRef.current);\n el.removeAttribute(\"data-rough-ready\");\n el.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )?.removeAttribute(\"data-rough-ready\");\n };\n }, [scopeRef, sketch, enabled, drawFrame, frameRadius, selector]);\n\n if (!enabled || !state.paths.length) return null;\n return (\n <svg\n aria-hidden\n className=\"plan-rough-overlay\"\n width=\"100%\"\n height=\"100%\"\n viewBox={`0 0 ${state.w} ${state.h}`}\n preserveAspectRatio=\"none\"\n style={{\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\",\n zIndex: 3,\n }}\n >\n {state.paths.map((p, i) => (\n <path\n key={i}\n d={p.d}\n fill=\"none\"\n stroke={p.stroke}\n strokeWidth={p.strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))}\n </svg>\n );\n}\n\nfunction isRoughOverlayMutation(mutation: MutationRecord) {\n if (nodeIsRoughOverlay(mutation.target)) return true;\n\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n return changedNodes.length > 0 && changedNodes.every(nodeIsRoughOverlay);\n}\n\nfunction nodeIsRoughOverlay(node: Node) {\n const element = node instanceof Element ? node : node.parentElement;\n return Boolean(\n element?.classList.contains(\"plan-rough-overlay\") ||\n element?.closest(\".plan-rough-overlay\"),\n );\n}\n"]}
1
+ {"version":3,"file":"wireframe-kit.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe-kit.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useSyncExternalStore,\n type CSSProperties,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport rough from \"roughjs\";\nimport type {\n WireframeElName,\n WireframeNode,\n WireframeTone,\n} from \"./wireframe.config.js\";\n\n/**\n * Shared wireframe \"kit\" — hand-drawn low-fi primitives, the el → component node\n * registry, the rough.js sketch overlay, and the viewer-level sketchy/clean\n * style preference. Ported verbatim (geometry-wise) from the plan template's\n * `app/components/plan/wireframe/kit/*` so any app can render wireframe blocks.\n *\n * DECOUPLING: the only behavioral change from the plan copy is theme detection —\n * core blocks read `document.documentElement.classList.contains(\"dark\")` (the\n * MermaidBlock precedent) instead of importing `next-themes`. Everything else\n * (the `.plan-wf` / `[data-rough]` class contract the rough overlay measures,\n * the `--wf-*` / `--ink` / `--paper` token names every primitive reads) is\n * preserved exactly, so the kit looks identical in plan and renders correctly in\n * any app once the matching tokens exist in `core/styles/blocks.css`.\n */\n\n/* ========================================================================== */\n/* Viewer-level wireframe style preference (localStorage) */\n/* ========================================================================== */\n\nexport type WireframeStyle = \"sketchy\" | \"clean\";\n\nconst STYLE_STORAGE_KEY = \"plan-wireframe-style\";\nconst styleListeners = new Set<() => void>();\n\nfunction readStoredStyle(): WireframeStyle {\n if (typeof localStorage === \"undefined\") return \"sketchy\";\n try {\n return localStorage.getItem(STYLE_STORAGE_KEY) === \"clean\"\n ? \"clean\"\n : \"sketchy\";\n } catch {\n return \"sketchy\";\n }\n}\n\nlet currentStyle: WireframeStyle = readStoredStyle();\n\nexport function setWireframeStyle(style: WireframeStyle): void {\n if (style === currentStyle) return;\n currentStyle = style;\n try {\n localStorage.setItem(STYLE_STORAGE_KEY, style);\n } catch {\n // ignore (private mode / disabled storage)\n }\n for (const listener of styleListeners) listener();\n}\n\nexport function toggleWireframeStyle(): void {\n setWireframeStyle(currentStyle === \"sketchy\" ? \"clean\" : \"sketchy\");\n}\n\nfunction subscribeStyle(callback: () => void): () => void {\n styleListeners.add(callback);\n const onStorage = (event: StorageEvent) => {\n if (event.key === STYLE_STORAGE_KEY) {\n currentStyle = readStoredStyle();\n callback();\n }\n };\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"storage\", onStorage);\n }\n return () => {\n styleListeners.delete(callback);\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"storage\", onStorage);\n }\n };\n}\n\nexport function useWireframeStyle(): WireframeStyle {\n return useSyncExternalStore(\n subscribeStyle,\n () => currentStyle,\n () => \"sketchy\",\n );\n}\n\n/** Read the live dark-mode flag from the document root (next-themes-free). */\nexport function useIsDark(): boolean {\n const [isDark, setIsDark] = useState(false);\n useEffect(() => {\n if (typeof document === \"undefined\") return;\n const root = document.documentElement;\n const read = () => setIsDark(root.classList.contains(\"dark\"));\n read();\n const observer = new MutationObserver(read);\n observer.observe(root, { attributes: true, attributeFilter: [\"class\"] });\n return () => observer.disconnect();\n }, []);\n return isDark;\n}\n\n/* ========================================================================== */\n/* Primitives (ported from kit/primitives.tsx) */\n/* ========================================================================== */\n\n/**\n * Frame-level config threaded to every Screen so skeleton / theme / sketch-vs-\n * clean reach the kit no matter which path renders the root Screen.\n */\nexport const KitConfigContext = createContext<{\n skeleton?: boolean;\n sketch?: number;\n theme?: \"light\" | \"dark\";\n style?: \"sketchy\" | \"clean\";\n}>({});\n\nconst V = {\n ink: \"var(--ink)\",\n soft: \"var(--ink-soft)\",\n line: \"var(--line)\",\n paper: \"var(--paper)\",\n card: \"var(--card)\",\n accent: \"var(--accent)\",\n accentSoft: \"var(--accent-soft)\",\n warn: \"var(--warn)\",\n warnSoft: \"var(--warn-soft)\",\n ok: \"var(--ok)\",\n okSoft: \"var(--ok-soft)\",\n stroke: \"var(--stroke)\",\n radius: \"var(--radius)\",\n gap: \"var(--gap)\",\n pad: \"var(--pad)\",\n fs: \"var(--fs)\",\n hand: \"var(--font-hand)\",\n script: \"var(--font-script)\",\n} as const;\n\ntype ToneColors = { fg: string; bg: string; bd: string };\n\nfunction toneColors(tone: WireframeTone = \"default\"): ToneColors {\n switch (tone) {\n case \"accent\":\n return { fg: V.accent, bg: V.accentSoft, bd: V.accent };\n case \"warn\":\n return { fg: V.warn, bg: V.warnSoft, bd: V.warn };\n case \"ok\":\n return { fg: V.ok, bg: V.okSoft, bd: V.ok };\n case \"muted\":\n return { fg: V.soft, bg: \"transparent\", bd: V.soft };\n default:\n return { fg: V.ink, bg: \"transparent\", bd: V.ink };\n }\n}\n\nfunction toneInk(tone?: WireframeTone): string {\n return toneColors(tone).fg;\n}\n\nfunction fontWeight(weight?: \"normal\" | \"medium\" | \"bold\"): number {\n if (weight === \"bold\") return 700;\n if (weight === \"medium\") return 600;\n return 400;\n}\n\nexport function Screen({\n children,\n pad = 0,\n sketch,\n density,\n theme,\n skeleton = false,\n style = {},\n}: {\n children?: ReactNode;\n pad?: number | string;\n sketch?: number;\n density?: \"compact\" | \"regular\" | \"roomy\";\n theme?: \"light\" | \"dark\";\n skeleton?: boolean;\n style?: CSSProperties;\n}) {\n const cfg = useContext(KitConfigContext);\n const isSkeleton = skeleton || Boolean(cfg.skeleton);\n const wfStyle = cfg.style ?? \"sketchy\";\n const wfTheme = theme ?? cfg.theme ?? \"light\";\n void sketch;\n return (\n <div\n className=\"plan-wf\"\n data-density={density ?? \"regular\"}\n data-theme={wfTheme}\n data-skeleton={isSkeleton ? \"true\" : undefined}\n data-style={wfStyle}\n style={{\n position: \"relative\",\n width: \"100%\",\n // `minHeight` (not a fixed `height: 100%`) so the screen fills an\n // auto-height artboard's floor yet grows with its content instead of\n // clipping. The frame shell (`ArtboardFrame`) owns the height policy; a\n // caller can still override via `style.height` for a fixed canvas.\n minHeight: \"100%\",\n background: V.paper,\n color: V.ink,\n fontFamily: V.hand,\n fontSize: V.fs,\n lineHeight: 1.25,\n display: \"flex\",\n flexDirection: \"column\",\n padding: pad,\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Hand({\n children,\n size,\n weight = 400,\n color = V.ink,\n script = false,\n style = {},\n}: {\n children?: ReactNode;\n size?: number | string;\n weight?: number;\n color?: string;\n script?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <span\n style={{\n fontFamily: script ? V.script : V.hand,\n fontSize: size ?? V.fs,\n fontWeight: weight,\n color,\n minWidth: 0,\n overflowWrap: \"break-word\",\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Bar({\n w = 80,\n h,\n color = V.line,\n r = 4,\n style = {},\n}: {\n w?: number | string;\n h?: number | string;\n color?: string;\n r?: number | string;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n width: w,\n height: h ?? \"calc(var(--fs) * 0.72)\",\n background: color,\n borderRadius: r,\n flex: \"0 0 auto\",\n ...style,\n }}\n />\n );\n}\n\nexport function Lines({\n n = 2,\n gap = 6,\n widths,\n color = V.line,\n style = {},\n}: {\n n?: number;\n gap?: number;\n widths?: Array<number | string>;\n color?: string;\n style?: CSSProperties;\n}) {\n const ws =\n widths ??\n Array.from({ length: n }, (_, i) => (i === n - 1 ? \"55%\" : \"100%\"));\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap, ...style }}>\n {ws.map((w, i) => (\n <Bar key={i} w={typeof w === \"number\" ? `${w}%` : w} color={color} />\n ))}\n </div>\n );\n}\n\nexport function Box({\n children,\n pad = V.pad,\n fill = V.card,\n dashed = false,\n style = {},\n}: {\n children?: ReactNode;\n pad?: number | string;\n fill?: string;\n dashed?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n border: `${V.stroke} ${dashed ? \"dashed\" : \"solid\"} ${V.ink}`,\n borderRadius: V.radius,\n background: fill,\n padding: pad,\n boxSizing: \"border-box\",\n minWidth: 0,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Check({\n done = false,\n shape = \"square\",\n size = 18,\n}: {\n done?: boolean;\n shape?: \"square\" | \"circle\";\n size?: number;\n}) {\n const r = shape === \"circle\" ? \"50%\" : \"calc(var(--radius) * 0.5)\";\n return (\n <div\n data-rough={shape === \"circle\" ? \"ellipse\" : \"rect\"}\n style={{\n [\"--rough-stroke\" as string]: done ? V.accent : V.ink,\n width: size,\n height: size,\n flex: \"0 0 auto\",\n borderRadius: r,\n border: `${V.stroke} solid ${done ? V.accent : V.ink}`,\n background: done ? V.accent : \"transparent\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {done && (\n <svg\n width={size * 0.6}\n height={size * 0.6}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"#fff\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2 6.5l2.5 2.5L10 3\" />\n </svg>\n )}\n </div>\n );\n}\n\nexport function Pill({\n children,\n tone = \"default\",\n style = {},\n}: {\n children?: ReactNode;\n tone?: WireframeTone;\n style?: CSSProperties;\n}) {\n const c = toneColors(tone);\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n border: `${V.stroke} solid ${c.bd}`,\n background: c.bg,\n color: c.fg,\n borderRadius: 999,\n padding: \"2px 9px\",\n fontSize: \"calc(var(--fs) * 0.82)\",\n fontFamily: V.hand,\n maxWidth: \"100%\",\n minWidth: 0,\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n lineHeight: 1.3,\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Prio({ level = 2, label }: { level?: number; label?: string }) {\n const fill = level === 1 ? V.warn : level === 2 ? V.soft : \"transparent\";\n const bd = level === 3 ? V.soft : \"transparent\";\n return (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 5 }}>\n <span\n style={{\n width: 9,\n height: 9,\n borderRadius: \"50%\",\n background: fill,\n border: `${V.stroke} solid ${bd}`,\n flex: \"0 0 auto\",\n }}\n />\n {label && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {label}\n </Hand>\n )}\n </span>\n );\n}\n\nexport function Btn({\n children,\n solid = false,\n full = false,\n size = \"md\",\n tone = \"default\",\n style = {},\n}: {\n children?: ReactNode;\n solid?: boolean;\n full?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n tone?: WireframeTone;\n style?: CSSProperties;\n}) {\n const pad =\n size === \"sm\" ? \"4px 10px\" : size === \"lg\" ? \"10px 18px\" : \"7px 14px\";\n const c = toneColors(tone === \"default\" ? \"accent\" : tone);\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: solid ? c.bd : V.ink,\n display: full ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n border: `${V.stroke} solid ${solid ? c.bd : V.ink}`,\n background: solid ? c.bd : \"transparent\",\n color: solid ? \"#fff\" : V.ink,\n borderRadius: V.radius,\n padding: pad,\n fontFamily: V.hand,\n fontSize: V.fs,\n fontWeight: 700,\n width: full ? \"100%\" : \"auto\",\n maxWidth: \"100%\",\n minWidth: 0,\n boxSizing: \"border-box\",\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n textAlign: \"center\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Chip({\n children,\n active = false,\n style = {},\n}: {\n children?: ReactNode;\n active?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 5,\n border: `${V.stroke} solid ${active ? V.accent : V.ink}`,\n background: active ? V.accentSoft : \"transparent\",\n color: active ? V.accent : V.ink,\n borderRadius: 999,\n padding: \"4px 12px\",\n fontSize: \"calc(var(--fs) * 0.88)\",\n fontFamily: V.hand,\n fontWeight: active ? 700 : 400,\n maxWidth: \"100%\",\n minWidth: 0,\n whiteSpace: \"normal\",\n overflowWrap: \"anywhere\",\n ...style,\n }}\n >\n {children}\n </span>\n );\n}\n\nexport function Field({\n label,\n value,\n placeholder,\n h,\n area = false,\n right,\n style = {},\n}: {\n label?: string;\n value?: string;\n placeholder?: number | string;\n h?: number | string;\n area?: boolean;\n right?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 5, ...style }}>\n {label && (\n <Hand size=\"calc(var(--fs) * 0.86)\" color={V.soft} weight={700}>\n {label}\n </Hand>\n )}\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n border: `${V.stroke} solid ${V.ink}`,\n borderRadius: V.radius,\n background: V.card,\n padding: \"calc(var(--pad) * 0.8)\",\n minHeight: h ?? (area ? 64 : \"auto\"),\n display: \"flex\",\n alignItems: area ? \"flex-start\" : \"center\",\n justifyContent: \"space-between\",\n minWidth: 0,\n gap: 8,\n }}\n >\n {value ? (\n <Hand style={{ minWidth: 0, overflowWrap: \"anywhere\" }}>{value}</Hand>\n ) : area ? (\n <Lines n={2} widths={[\"85%\", \"60%\"]} />\n ) : (\n <Bar w={placeholder ?? 110} />\n )}\n {right}\n </div>\n </div>\n );\n}\n\nexport function StatusBar() {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"9px 18px 2px\",\n flex: \"0 0 auto\",\n }}\n >\n <Hand size=\"calc(var(--fs) * 0.82)\" weight={700}>\n 9:41\n </Hand>\n <div style={{ display: \"flex\", gap: 5, alignItems: \"center\" }}>\n <Bar w={16} h={8} color={V.soft} r={2} />\n <Bar w={12} h={8} color={V.soft} r={2} />\n <Bar w={20} h={9} color={V.soft} r={2} />\n </div>\n </div>\n );\n}\n\nexport function Fab({ icon = \"+\" }: { icon?: string }) {\n return (\n <div\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.accent,\n position: \"absolute\",\n right: 18,\n bottom: 22,\n width: 52,\n height: 52,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.accent}`,\n background: V.accent,\n color: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontFamily: V.hand,\n fontSize: 28,\n fontWeight: 700,\n lineHeight: 1,\n boxShadow: \"0 4px 12px rgba(0,0,0,0.16)\",\n zIndex: 4,\n }}\n >\n {icon}\n </div>\n );\n}\n\nexport function BrowserBar({\n title = \"todo\",\n children,\n}: {\n title?: string;\n children?: ReactNode;\n}) {\n return (\n <div\n data-rough=\"line:bottom\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: \"9px 14px\",\n borderBottom: `${V.stroke} solid ${V.ink}`,\n flex: \"0 0 auto\",\n background: V.card,\n }}\n >\n <div style={{ display: \"flex\", gap: 6 }}>\n {[0, 1, 2].map((i) => (\n <span\n key={i}\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width: 11,\n height: 11,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.ink}`,\n }}\n />\n ))}\n </div>\n <div\n style={{\n flex: 1,\n border: `${V.stroke} solid ${V.soft}`,\n borderRadius: 999,\n padding: \"3px 12px\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n }}\n >\n <Bar w={12} h={10} color={V.soft} r={3} />\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {title}.app\n </Hand>\n </div>\n {children}\n </div>\n );\n}\n\nexport function SectionLabel({\n children,\n right,\n tone = \"muted\",\n}: {\n children?: ReactNode;\n right?: ReactNode;\n tone?: WireframeTone;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\",\n minWidth: 0,\n gap: 8,\n }}\n >\n <Hand\n size=\"calc(var(--fs) * 0.9)\"\n weight={700}\n color={toneInk(tone)}\n style={{\n letterSpacing: 0.3,\n minWidth: 0,\n overflowWrap: \"anywhere\",\n }}\n >\n {children}\n </Hand>\n {right}\n </div>\n );\n}\n\nexport function Avatar({ size = 26 }: { size?: number }) {\n return (\n <div\n data-rough=\"ellipse\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width: size,\n height: size,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${V.ink}`,\n background: V.accentSoft,\n flex: \"0 0 auto\",\n }}\n />\n );\n}\n\nexport function IconSquare({\n size = 18,\n active = false,\n}: {\n size?: number;\n active?: boolean;\n}) {\n return (\n <div\n data-rough=\"rect\"\n style={{\n [\"--rough-stroke\" as string]: active ? V.accent : V.soft,\n width: size,\n height: size,\n flex: \"0 0 auto\",\n borderRadius: \"calc(var(--radius) * 0.5)\",\n border: `${V.stroke} solid ${active ? V.accent : V.soft}`,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <div\n style={{\n width: \"55%\",\n height: \"55%\",\n borderRadius: 2,\n background: active ? V.accent : V.line,\n }}\n />\n </div>\n );\n}\n\nexport function NavItem({\n label,\n count,\n active = false,\n dot = false,\n tone = \"accent\",\n}: {\n label?: string;\n count?: number;\n active?: boolean;\n dot?: boolean;\n tone?: WireframeTone;\n}) {\n const dotColor = toneInk(tone);\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 9,\n padding: \"5px 8px\",\n borderRadius: V.radius,\n background: active ? V.accentSoft : \"transparent\",\n minWidth: 0,\n }}\n >\n {dot ? (\n <span\n style={{\n width: 10,\n height: 10,\n borderRadius: \"50%\",\n border: `${V.stroke} solid ${dotColor}`,\n background: dotColor,\n flex: \"0 0 auto\",\n }}\n />\n ) : (\n <IconSquare size={15} active={active} />\n )}\n <Hand\n color={active ? V.accent : V.ink}\n weight={active ? 700 : 400}\n style={{ flex: 1, minWidth: 0 }}\n >\n {label}\n </Hand>\n {count != null && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {count}\n </Hand>\n )}\n </div>\n );\n}\n\nexport function Sidebar({\n children,\n width = 196,\n style = {},\n}: {\n children?: ReactNode;\n width?: number;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"line:right\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n width,\n flex: \"0 0 auto\",\n borderRight: `${V.stroke} solid ${V.ink}`,\n background: V.card,\n padding: V.pad,\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n minHeight: 0,\n minWidth: 0,\n alignSelf: \"stretch\",\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Main({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n padding: \"18px 24px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n overflow: \"hidden\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Row({\n children,\n full = false,\n style = {},\n}: {\n children?: ReactNode;\n full?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n gap: V.gap,\n minWidth: 0,\n minHeight: 0,\n maxWidth: \"100%\",\n flex: full ? 1 : undefined,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Col({\n children,\n full = false,\n style = {},\n}: {\n children?: ReactNode;\n full?: boolean;\n style?: CSSProperties;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n minWidth: 0,\n minHeight: 0,\n flex: full ? 1 : undefined,\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function TaskRow({\n title,\n note,\n due,\n dueTone = \"default\",\n prio,\n done = false,\n}: {\n title?: string;\n note?: string;\n due?: string;\n dueTone?: WireframeTone;\n prio?: number;\n done?: boolean;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: V.gap,\n padding: \"calc(var(--pad) * 0.55) 0\",\n minWidth: 0,\n }}\n >\n <div style={{ marginTop: 1 }}>\n <Check done={done} />\n </div>\n <div\n style={{\n flex: 1,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 4,\n }}\n >\n <Hand\n color={done ? V.soft : V.ink}\n style={done ? { textDecoration: \"line-through\" } : undefined}\n >\n {title}\n </Hand>\n {note && (\n <Hand size=\"calc(var(--fs) * 0.85)\" color={V.soft}>\n {note}\n </Hand>\n )}\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n gap: 8,\n flex: \"0 0 auto\",\n }}\n >\n {due && <Pill tone={dueTone}>{due}</Pill>}\n {prio ? <Prio level={prio} /> : null}\n </div>\n </div>\n );\n}\n\nexport function Card({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <Box\n pad=\"calc(var(--pad) * 0.9)\"\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n background: V.card,\n minWidth: 0,\n maxWidth: \"100%\",\n ...style,\n }}\n >\n {children}\n </Box>\n );\n}\n\nexport function Column({\n title,\n count,\n tone = \"muted\",\n width = 232,\n children,\n}: {\n title?: string;\n count?: number;\n tone?: WireframeTone;\n width?: number;\n children?: ReactNode;\n}) {\n return (\n <div\n style={{\n width,\n flex: \"0 0 auto\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: V.gap,\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span\n style={{\n width: 9,\n height: 9,\n borderRadius: \"50%\",\n background: toneInk(tone),\n flex: \"0 0 auto\",\n }}\n />\n <Hand weight={700} style={{ whiteSpace: \"nowrap\" }}>\n {title}\n </Hand>\n {count != null && (\n <Hand size=\"calc(var(--fs) * 0.82)\" color={V.soft}>\n {count}\n </Hand>\n )}\n <div style={{ flex: 1 }} />\n <Hand color={V.soft} weight={700}>\n +\n </Hand>\n </div>\n {children}\n </div>\n );\n}\n\nexport function Toolbar({\n children,\n style = {},\n}: {\n children?: ReactNode;\n style?: CSSProperties;\n}) {\n return (\n <div\n data-rough=\"line:bottom\"\n style={{\n [\"--rough-stroke\" as string]: V.ink,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: V.gap,\n padding: \"12px 22px\",\n borderBottom: `${V.stroke} solid ${V.ink}`,\n background: V.card,\n flex: \"0 0 auto\",\n minWidth: 0,\n flexWrap: \"wrap\",\n ...style,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport function Tabs({\n items = [],\n}: {\n items?: Array<{ label: string; active?: boolean }>;\n}) {\n return (\n <div style={{ display: \"flex\", gap: 7, flexWrap: \"wrap\" }}>\n {items.map((item, i) => (\n <Chip key={i} active={item.active}>\n {item.label}\n </Chip>\n ))}\n </div>\n );\n}\n\nexport function KV({ rows = [] }: { rows?: Array<{ k: string; v: string }> }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {rows.map((row, i) => (\n <div\n key={i}\n style={{\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n <Hand size=\"calc(var(--fs) * 0.88)\" color={V.soft}>\n {row.k}\n </Hand>\n <Hand\n style={{ textAlign: \"right\", minWidth: 0, wordBreak: \"break-word\" }}\n >\n {row.v}\n </Hand>\n </div>\n ))}\n </div>\n );\n}\n\nexport function SearchBar({\n placeholder = \"Search\",\n}: {\n placeholder?: string;\n}) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n border: `${V.stroke} solid ${V.soft}`,\n borderRadius: 999,\n padding: \"5px 11px\",\n background: V.card,\n }}\n >\n <Bar w={11} h={11} color={V.soft} r={3} />\n <Hand size=\"calc(var(--fs) * 0.85)\" color={V.soft}>\n {placeholder}\n </Hand>\n </div>\n );\n}\n\nexport function Divider({ style = {} }: { style?: CSSProperties }) {\n return (\n <div\n style={{\n height: V.stroke,\n background: V.line,\n flex: \"0 0 auto\",\n margin: \"3px 0\",\n ...style,\n }}\n />\n );\n}\n\nexport function Title({\n text,\n script = false,\n size = \"calc(var(--fs) * 2)\",\n color = V.ink,\n}: {\n text?: string;\n script?: boolean;\n size?: number | string;\n color?: string;\n}) {\n return (\n <Hand script={script} size={size} weight={700} color={color}>\n {text}\n </Hand>\n );\n}\n\nexport function Text({\n value,\n color,\n weight,\n script = false,\n}: {\n value?: string;\n color?: WireframeTone;\n weight?: \"normal\" | \"medium\" | \"bold\";\n script?: boolean;\n}) {\n return (\n <Hand color={toneInk(color)} weight={fontWeight(weight)} script={script}>\n {value}\n </Hand>\n );\n}\n\n/* ========================================================================== */\n/* Node registry (ported from kit/registry.tsx) */\n/* ========================================================================== */\n\ntype NodeRenderer = (node: WireframeNode, children: ReactNode) => ReactNode;\n\nconst REGISTRY: Record<WireframeElName, NodeRenderer> = {\n // --- Frame / structure -------------------------------------------------\n screen: (n) => {\n const kids = n.children ?? [];\n const lead = kids[0]?.el;\n if (lead === \"browserBar\") {\n return (\n <Screen pad={0}>\n {renderNode(kids[0], kids[0].id ?? \"browserbar\")}\n {renderScreenBodyNodes(kids.slice(1))}\n </Screen>\n );\n }\n if (lead === \"statusBar\") {\n return (\n <Screen pad={0}>\n {renderNode(kids[0], kids[0].id ?? \"statusbar\")}\n <div\n style={{\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"var(--gap)\",\n padding: \"calc(var(--pad) * 1.1)\",\n }}\n >\n {renderScreenBodyNodes(kids.slice(1))}\n </div>\n </Screen>\n );\n }\n return (\n <Screen pad=\"calc(var(--pad) * 1.35)\">\n {renderScreenBodyNodes(kids)}\n </Screen>\n );\n },\n browserBar: (n, children) => (\n <BrowserBar title={n.title ?? n.text}>{children}</BrowserBar>\n ),\n statusBar: () => <StatusBar />,\n toolbar: (_n, children) => <Toolbar>{children}</Toolbar>,\n row: (n, children) => <Row full={n.full}>{children}</Row>,\n col: (n, children) => <Col full={n.full}>{children}</Col>,\n sidebar: (_n, children) => <Sidebar>{children}</Sidebar>,\n main: (_n, children) => <Main>{children}</Main>,\n box: (n, children) => <Box dashed={n.dashed}>{children}</Box>,\n card: (_n, children) => <Card>{children}</Card>,\n column: (n, children) => (\n <Column title={n.title ?? n.text} count={n.count} tone={n.tone}>\n {children}\n </Column>\n ),\n divider: () => <Divider />,\n\n // --- Text --------------------------------------------------------------\n title: (n) => <Title text={n.text} script={n.script} />,\n text: (n) => (\n <Text\n value={n.value ?? n.text}\n color={n.color}\n weight={n.weight}\n script={n.script}\n />\n ),\n lines: (n) => <Lines n={n.n} widths={n.widths} />,\n section: (n) => (\n <SectionLabel tone={n.tone}>{n.label ?? n.text}</SectionLabel>\n ),\n\n // --- List / task -------------------------------------------------------\n navItem: (n) => (\n <NavItem\n label={n.label ?? n.text}\n count={n.count}\n active={n.active}\n dot={n.dot}\n tone={n.tone}\n />\n ),\n taskRow: (n) => (\n <TaskRow\n title={n.title ?? n.text}\n note={n.note}\n due={n.due}\n dueTone={n.dueTone}\n prio={n.prio}\n done={n.done}\n />\n ),\n\n // --- Controls ----------------------------------------------------------\n chips: (n) => <Tabs items={n.items ?? []} />,\n chip: (n) => <Chip active={n.active}>{n.label ?? n.text}</Chip>,\n pill: (n) => <Pill tone={n.tone}>{n.label ?? n.text}</Pill>,\n check: (n) => <Check done={n.done} shape={n.shape} />,\n field: (n) => (\n <Field\n label={n.label}\n value={n.value}\n placeholder={n.placeholder}\n area={n.area}\n />\n ),\n btn: (n) => (\n <Btn solid={n.solid} full={n.full} tone={n.tone}>\n {n.label ?? n.text}\n </Btn>\n ),\n fab: (n) => <Fab icon={n.icon} />,\n searchBar: (n) => <SearchBar placeholder={n.placeholder} />,\n\n // --- Atoms -------------------------------------------------------------\n avatar: () => <Avatar />,\n iconSquare: (n) => <IconSquare active={n.active} />,\n kv: (n) => <KV rows={n.rows ?? []} />,\n};\n\nfunction renderScreenBodyNode(\n node: WireframeNode,\n key?: string | number,\n): ReactNode {\n const shouldFill =\n node.full !== false &&\n (node.el === \"row\" || node.el === \"col\" || node.el === \"main\");\n return renderNode(shouldFill ? { ...node, full: true } : node, key);\n}\n\nfunction renderScreenBodyNodes(nodes: WireframeNode[]): ReactNode {\n return nodes.map((node, i) =>\n renderScreenBodyNode(node, node.id ?? `screen-body-${i}`),\n );\n}\n\n/** Render a single kit-tree node (and its children, recursively). */\nexport function renderNode(\n node: WireframeNode,\n key?: string | number,\n): ReactNode {\n const renderer = REGISTRY[node.el];\n const children = node.children?.length ? renderNodes(node.children) : null;\n if (!renderer) {\n return children ? <div key={key}>{children}</div> : null;\n }\n const rendered = renderer(node, children);\n return <KeyedNode key={key ?? node.id}>{rendered}</KeyedNode>;\n}\n\n/** Render an array of nodes. */\nexport function renderNodes(nodes: WireframeNode[]): ReactNode {\n return nodes.map((node, i) => renderNode(node, node.id ?? i));\n}\n\n/** Lightweight keyed wrapper that does not introduce extra DOM. */\nfunction KeyedNode({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n\n/** Whether an `el` name has a registered renderer. */\nexport function hasRenderer(el: string): el is WireframeElName {\n return el in REGISTRY;\n}\n\nexport { REGISTRY as NODE_REGISTRY, V as WFV, toneColors, toneInk, fontWeight };\n\n/* ========================================================================== */\n/* Rough overlay (ported from kit/rough.tsx) */\n/* ========================================================================== */\n\nconst gen = rough.generator();\n\ntype RoughPath = { d: string; stroke: string; strokeWidth: number };\n\n/** The default selector used for HTML mockups: bordered/box-like elements. */\nexport const HTML_ROUGH_SELECTOR =\n \"[data-rough],button,input,textarea,select,.wf-card,.wf-box,hr,.wf-frame-target\";\n\n/** Stable per-element seed so a frame doesn't re-wobble on every measure. */\nfunction seedFrom(...parts: Array<string | number>): number {\n const value = parts.join(\":\");\n let hash = 2166136261;\n for (let i = 0; i < value.length; i++) {\n hash ^= value.charCodeAt(i);\n hash = Math.imul(hash, 16777619);\n }\n return ((hash >>> 0) % 2147483646) + 1;\n}\n\n/** Map the 0–100 sketch slider to a rough.js roughness (calm + legible). */\nexport function sketchRoughness(sketch: number): number {\n const s = Math.max(0, Math.min(100, Number.isFinite(sketch) ? sketch : 0));\n return Number((0.32 + (s / 100) * 1.15).toFixed(2));\n}\n\nfunction sketchBowing(sketch: number): number {\n const s = Math.max(0, Math.min(100, Number.isFinite(sketch) ? sketch : 0));\n return Number((0.4 + (s / 100) * 0.5).toFixed(2));\n}\n\nfunction readVar(el: Element, name: string): string {\n return getComputedStyle(el).getPropertyValue(name).trim();\n}\n\n/** Normalize a CSS color (hex or rgb[a]) to \"r,g,b\" for equality comparison. */\nfunction toRgbKey(color: string): string | null {\n const c = color.trim();\n const hex = c.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);\n if (hex) {\n const h = hex[1];\n const full =\n h.length === 3\n ? h\n .split(\"\")\n .map((d) => d + d)\n .join(\"\")\n : h;\n const n = parseInt(full, 16);\n return `${(n >> 16) & 255},${(n >> 8) & 255},${n & 255}`;\n }\n const rgb = c.match(/rgba?\\(([^)]+)\\)/i);\n if (rgb) {\n const [r, g, b] = rgb[1].split(\",\").map((v) => parseInt(v.trim(), 10));\n return `${r},${g},${b}`;\n }\n return null;\n}\n\n/** True when two CSS colors resolve to the same RGB (hex vs rgb tolerant). */\nfunction sameColor(a: string, b: string): boolean {\n const ka = toRgbKey(a);\n const kb = toRgbKey(b);\n return ka !== null && ka === kb;\n}\n\n/** A rounded-rect SVG path (so the frame stroke follows the artboard radius). */\nfunction roundedRectPath(\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n): string {\n const rad = Math.max(0, Math.min(r, w / 2, h / 2));\n return [\n `M${x + rad},${y}`,\n `H${x + w - rad}`,\n `A${rad},${rad} 0 0 1 ${x + w},${y + rad}`,\n `V${y + h - rad}`,\n `A${rad},${rad} 0 0 1 ${x + w - rad},${y + h}`,\n `H${x + rad}`,\n `A${rad},${rad} 0 0 1 ${x},${y + h - rad}`,\n `V${y + rad}`,\n `A${rad},${rad} 0 0 1 ${x + rad},${y}`,\n \"Z\",\n ].join(\" \");\n}\n\nfunction elementStroke(node: Element, fallback: string): string {\n const explicit = readVar(node, \"--rough-stroke\");\n if (explicit) return explicit;\n const cs = getComputedStyle(node);\n for (const side of [\n \"borderTopColor\",\n \"borderLeftColor\",\n \"borderBottomColor\",\n \"borderRightColor\",\n ] as const) {\n const width = parseFloat(\n cs.getPropertyValue(side.replace(\"Color\", \"Width\")),\n );\n const color = cs[side];\n if (width > 0 && color && color !== \"rgba(0, 0, 0, 0)\") return color;\n }\n return fallback;\n}\n\nfunction build(\n scope: HTMLElement,\n opts: {\n roughness: number;\n bowing: number;\n frameRadius: number;\n drawFrame: boolean;\n selector: string;\n },\n): { paths: RoughPath[]; w: number; h: number } {\n const base = scope.getBoundingClientRect();\n const layoutW = scope.offsetWidth;\n const layoutH = scope.offsetHeight;\n if (!layoutW || !layoutH) return { paths: [], w: 0, h: 0 };\n const zoom = base.width / layoutW || 1;\n\n const themed =\n (scope.matches(\".plan-wf, .plan-html-frame, .plan-diagram-frame\")\n ? scope\n : scope.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )) ?? scope;\n const ink =\n readVar(themed, \"--ink\") || readVar(themed, \"--wf-ink\") || \"#34322e\";\n const sketch = readVar(themed, \"--wf-sketch\") || ink;\n const line = readVar(themed, \"--wf-line\") || readVar(themed, \"--line\") || \"\";\n\n const paths: RoughPath[] = [];\n let index = 0;\n const push = (drawable: unknown, stroke: string, sw: number) => {\n for (const p of gen.toPaths(\n drawable as Parameters<typeof gen.toPaths>[0],\n )) {\n paths.push({\n d: p.d,\n stroke: p.stroke && p.stroke !== \"none\" ? p.stroke : stroke,\n strokeWidth: p.strokeWidth || sw,\n });\n }\n };\n const makeOpts = (stroke: string, sw: number, seed: number) => ({\n seed,\n roughness: opts.roughness,\n bowing: opts.bowing,\n stroke,\n strokeWidth: sw,\n preserveVertices: true,\n });\n\n if (opts.drawFrame) {\n const sw = 2;\n push(\n gen.path(\n roundedRectPath(2, 2, layoutW - 4, layoutH - 4, opts.frameRadius),\n {\n ...makeOpts(sketch, sw, seedFrom(\"frame\", layoutW, layoutH)),\n roughness: opts.roughness + 0.35,\n bowing: opts.bowing + 0.18,\n },\n ),\n sketch,\n sw,\n );\n }\n\n scope.querySelectorAll<HTMLElement>(opts.selector).forEach((node) => {\n if (node.getAttribute(\"data-rough\") === \"none\") return;\n if (readVar(node, \"--rough-skip\") === \"1\") return;\n const r = node.getBoundingClientRect();\n const x = (r.left - base.left) / zoom;\n const y = (r.top - base.top) / zoom;\n const w = r.width / zoom;\n const h = r.height / zoom;\n if (w < 2 || h < 2) return;\n const kind = node.getAttribute(\"data-rough\") || \"rect\";\n const rawStroke = elementStroke(node, sketch);\n const stroke =\n sameColor(rawStroke, ink) || (line !== \"\" && sameColor(rawStroke, line))\n ? sketch\n : rawStroke;\n const sw = Number(readVar(node, \"--rough-w\")) || 1.4;\n const seed = seedFrom(\n kind,\n Math.round(x),\n Math.round(y),\n Math.round(w),\n Math.round(h),\n index++,\n );\n const o = makeOpts(stroke, sw, seed);\n let drawable: unknown;\n if (kind === \"ellipse\") {\n drawable = gen.ellipse(x + w / 2, y + h / 2, w, h, o);\n } else if (kind === \"line:right\") {\n drawable = gen.line(x + w, y, x + w, y + h, o);\n } else if (kind === \"line:bottom\") {\n drawable = gen.line(x, y + h, x + w, y + h, o);\n } else if (kind === \"line:top\" || node.tagName === \"HR\") {\n drawable = gen.line(x, y + h / 2, x + w, y + h / 2, o);\n } else {\n const cr = parseFloat(getComputedStyle(node).borderTopLeftRadius) || 0;\n const radius = Math.min(cr / zoom, w / 2, h / 2);\n drawable =\n radius > 1\n ? gen.path(roundedRectPath(x + 1, y + 1, w - 2, h - 2, radius), o)\n : gen.rectangle(x + 1, y + 1, w - 2, h - 2, o);\n }\n push(drawable, stroke, sw);\n });\n\n return { paths, w: layoutW, h: layoutH };\n}\n\n/**\n * Renders the rough overlay for a frame. `scopeRef` points at the frame root.\n * When `enabled` is false (skeleton / clean register) it renders nothing and the\n * crisp CSS borders stay visible.\n */\nexport function RoughOverlay({\n scopeRef,\n sketch = 52,\n enabled = true,\n drawFrame = true,\n frameRadius = 14,\n selector = \"[data-rough]\",\n}: {\n scopeRef: RefObject<HTMLElement | null>;\n sketch?: number;\n enabled?: boolean;\n drawFrame?: boolean;\n frameRadius?: number;\n selector?: string;\n}) {\n const [state, setState] = useState<{\n paths: RoughPath[];\n w: number;\n h: number;\n }>({ paths: [], w: 0, h: 0 });\n const rafRef = useRef(0);\n\n useEffect(() => {\n const el = scopeRef.current;\n if (!el || !enabled) {\n el?.removeAttribute(\"data-rough-ready\");\n el?.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )?.removeAttribute(\"data-rough-ready\");\n setState({ paths: [], w: 0, h: 0 });\n return;\n }\n const roughness = sketchRoughness(sketch);\n const bowing = sketchBowing(sketch);\n const measure = () => {\n clearTimeout(rafRef.current);\n rafRef.current = window.setTimeout(() => {\n const next = build(el, {\n roughness,\n bowing,\n frameRadius,\n drawFrame,\n selector,\n });\n if (next.w && next.h) {\n el.setAttribute(\"data-rough-ready\", \"true\");\n (\n el.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n ) ?? el\n ).setAttribute(\"data-rough-ready\", \"true\");\n setState(next);\n }\n }, 0);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n el.querySelectorAll(selector).forEach((node) => ro.observe(node));\n const mo = new MutationObserver((mutations) => {\n if (mutations.every(isRoughOverlayMutation)) return;\n measure();\n });\n mo.observe(el, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n el.addEventListener(\"plan-prototype-runtime:rendered\", measure);\n let cancelled = false;\n if (typeof document !== \"undefined\" && \"fonts\" in document) {\n void document.fonts.ready.then(() => {\n if (!cancelled) measure();\n });\n }\n return () => {\n cancelled = true;\n ro.disconnect();\n mo.disconnect();\n el.removeEventListener(\"plan-prototype-runtime:rendered\", measure);\n clearTimeout(rafRef.current);\n el.removeAttribute(\"data-rough-ready\");\n el.querySelector(\n \".plan-wf, .plan-html-frame, .plan-diagram-frame\",\n )?.removeAttribute(\"data-rough-ready\");\n };\n }, [scopeRef, sketch, enabled, drawFrame, frameRadius, selector]);\n\n if (!enabled || !state.paths.length) return null;\n return (\n <svg\n aria-hidden\n className=\"plan-rough-overlay\"\n width=\"100%\"\n height=\"100%\"\n viewBox={`0 0 ${state.w} ${state.h}`}\n preserveAspectRatio=\"none\"\n style={{\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\",\n zIndex: 3,\n }}\n >\n {state.paths.map((p, i) => (\n <path\n key={i}\n d={p.d}\n fill=\"none\"\n stroke={p.stroke}\n strokeWidth={p.strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))}\n </svg>\n );\n}\n\nfunction isRoughOverlayMutation(mutation: MutationRecord) {\n if (nodeIsRoughOverlay(mutation.target)) return true;\n\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n return changedNodes.length > 0 && changedNodes.every(nodeIsRoughOverlay);\n}\n\nfunction nodeIsRoughOverlay(node: Node) {\n const element = node instanceof Element ? node : node.parentElement;\n return Boolean(\n element?.classList.contains(\"plan-rough-overlay\") ||\n element?.closest(\".plan-rough-overlay\"),\n );\n}\n"]}
@@ -4,16 +4,11 @@ export interface DevDatabaseLinkProps {
4
4
  to?: string;
5
5
  }
6
6
  /**
7
- * Code-mode-only entry point to the database admin.
8
- *
9
- * Renders a compact footer link (designed to sit next to `FeedbackButton` /
10
- * `OrgSwitcher` in a template's sidebar footer) ONLY when the app can toggle
11
- * into Code mode (`useCodeMode().canToggle`). When it can't, it renders
12
- * nothing, so it is safe to drop into every template's chrome unconditionally.
7
+ * Hidden compatibility component for templates that still include the old
8
+ * database admin footer affordance.
13
9
  *
14
10
  * The page it links to (`/database`) and its backing routes are independently
15
- * gated on the server, so this is purely a convenience affordance — never a
16
- * security boundary.
11
+ * gated on the server; this component only controls the sidebar chrome.
17
12
  */
18
- export declare function DevDatabaseLink({ className, to, }: DevDatabaseLinkProps): import("react/jsx-runtime").JSX.Element | null;
13
+ export declare function DevDatabaseLink(_props: DevDatabaseLinkProps): null;
19
14
  //# sourceMappingURL=DevDatabaseLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevDatabaseLink.d.ts","sourceRoot":"","sources":["../../../src/client/db-admin/DevDatabaseLink.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,EAAgB,GACjB,EAAE,oBAAoB,kDAmBtB"}
1
+ {"version":3,"file":"DevDatabaseLink.d.ts","sourceRoot":"","sources":["../../../src/client/db-admin/DevDatabaseLink.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,oBAAoB,QAE3D"}
@@ -1,25 +1,11 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Link } from "react-router";
3
- import { IconDatabase } from "@tabler/icons-react";
4
- import { useCodeMode } from "../use-dev-mode.js";
5
- import { appPath } from "../api-path.js";
6
- import { cn } from "../utils.js";
7
1
  /**
8
- * Code-mode-only entry point to the database admin.
9
- *
10
- * Renders a compact footer link (designed to sit next to `FeedbackButton` /
11
- * `OrgSwitcher` in a template's sidebar footer) ONLY when the app can toggle
12
- * into Code mode (`useCodeMode().canToggle`). When it can't, it renders
13
- * nothing, so it is safe to drop into every template's chrome unconditionally.
2
+ * Hidden compatibility component for templates that still include the old
3
+ * database admin footer affordance.
14
4
  *
15
5
  * The page it links to (`/database`) and its backing routes are independently
16
- * gated on the server, so this is purely a convenience affordance — never a
17
- * security boundary.
6
+ * gated on the server; this component only controls the sidebar chrome.
18
7
  */
19
- export function DevDatabaseLink({ className, to = "/database", }) {
20
- const { canToggle } = useCodeMode();
21
- if (!canToggle)
22
- return null;
23
- return (_jsxs(Link, { to: appPath(to), title: "Database admin \u2014 Code mode only", className: cn("flex w-full items-center gap-2 rounded-md border border-border/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring", className), children: [_jsx(IconDatabase, { className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "flex-1 truncate text-left", children: "Database" }), _jsx("span", { className: "rounded bg-muted px-1 py-0.5 text-[9px] uppercase tracking-wide text-muted-foreground", children: "code" })] }));
8
+ export function DevDatabaseLink(_props) {
9
+ return null;
24
10
  }
25
11
  //# sourceMappingURL=DevDatabaseLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevDatabaseLink.js","sourceRoot":"","sources":["../../../src/client/db-admin/DevDatabaseLink.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAQjC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,EAAE,GAAG,WAAW,GACK;IACrB,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CACL,MAAC,IAAI,IACH,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EACf,KAAK,EAAC,sCAAiC,EACvC,SAAS,EAAE,EAAE,CACX,oOAAoO,EACpO,SAAS,CACV,aAED,KAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACjD,eAAM,SAAS,EAAC,2BAA2B,yBAAgB,EAC3D,eAAM,SAAS,EAAC,uFAAuF,qBAEhG,IACF,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { Link } from \"react-router\";\nimport { IconDatabase } from \"@tabler/icons-react\";\nimport { useCodeMode } from \"../use-dev-mode.js\";\nimport { appPath } from \"../api-path.js\";\nimport { cn } from \"../utils.js\";\n\nexport interface DevDatabaseLinkProps {\n className?: string;\n /** Route path for the DB admin page. Defaults to `/database`. */\n to?: string;\n}\n\n/**\n * Code-mode-only entry point to the database admin.\n *\n * Renders a compact footer link (designed to sit next to `FeedbackButton` /\n * `OrgSwitcher` in a template's sidebar footer) ONLY when the app can toggle\n * into Code mode (`useCodeMode().canToggle`). When it can't, it renders\n * nothing, so it is safe to drop into every template's chrome unconditionally.\n *\n * The page it links to (`/database`) and its backing routes are independently\n * gated on the server, so this is purely a convenience affordance — never a\n * security boundary.\n */\nexport function DevDatabaseLink({\n className,\n to = \"/database\",\n}: DevDatabaseLinkProps) {\n const { canToggle } = useCodeMode();\n if (!canToggle) return null;\n return (\n <Link\n to={appPath(to)}\n title=\"Database admin — Code mode only\"\n className={cn(\n \"flex w-full items-center gap-2 rounded-md border border-border/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n className,\n )}\n >\n <IconDatabase className=\"h-3.5 w-3.5 shrink-0\" />\n <span className=\"flex-1 truncate text-left\">Database</span>\n <span className=\"rounded bg-muted px-1 py-0.5 text-[9px] uppercase tracking-wide text-muted-foreground\">\n code\n </span>\n </Link>\n );\n}\n"]}
1
+ {"version":3,"file":"DevDatabaseLink.js","sourceRoot":"","sources":["../../../src/client/db-admin/DevDatabaseLink.tsx"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAA4B;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["export interface DevDatabaseLinkProps {\n className?: string;\n /** Route path for the DB admin page. Defaults to `/database`. */\n to?: string;\n}\n\n/**\n * Hidden compatibility component for templates that still include the old\n * database admin footer affordance.\n *\n * The page it links to (`/database`) and its backing routes are independently\n * gated on the server; this component only controls the sidebar chrome.\n */\nexport function DevDatabaseLink(_props: DevDatabaseLinkProps) {\n return null;\n}\n"]}
@@ -1249,6 +1249,17 @@
1249
1249
 
1250
1250
  .plan-diagram-frame-content {
1251
1251
  width: 100%;
1252
+ padding: 8px 0;
1253
+ }
1254
+
1255
+ .plan-diagram-frame-content
1256
+ > :is(.diagram-panel, .diagram-card, .diagram-box):not([data-rough]):not(
1257
+ [data-diagram-frame]
1258
+ ) {
1259
+ --rough-skip: 1;
1260
+ background: transparent;
1261
+ border-color: transparent;
1262
+ box-shadow: none;
1252
1263
  }
1253
1264
 
1254
1265
  .plan-diagram-frame svg {
@@ -294,7 +294,7 @@ Actions in `templates/plan/actions/`:
294
294
  - **Reading & editing** — `get-visual-plan`, `update-visual-plan`, `list-visual-plans`, `import-visual-plan-source`, `patch-visual-plan-source`, `read-visual-plan-source`, `export-visual-plan`
295
295
  - **Publishing & sharing** — `publish-visual-plan`
296
296
  - **Versions** — `list-plan-versions`, `get-plan-version`, `restore-plan-version`
297
- - **Comments & feedback** — `get-plan-feedback`, `reply-to-plan-comment`, `resolve-plan-comment`, `consume-plan-feedback`
297
+ - **Comments & feedback** — `get-plan-feedback`, `reply-to-plan-comment`, `resolve-plan-comment`, `consume-plan-feedback`, `delete-plan-comment`
298
298
  - **Prototype** — `convert-visual-plan-to-prototype`, `create-prototype-plan`
299
299
  - **Context & navigation** — `view-screen`, `navigate`
300
300
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.49.20",
3
+ "version": "0.49.22",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"