@usetheo/ui 0.13.1 → 0.13.2
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.
- package/dist/{chunk-REFY5MLN.js → chunk-2NTEJRPA.js} +5 -5
- package/dist/{chunk-REFY5MLN.js.map → chunk-2NTEJRPA.js.map} +1 -1
- package/dist/{chunk-2EUKYGH5.js → chunk-357XIC2N.js} +3 -3
- package/dist/chunk-357XIC2N.js.map +1 -0
- package/dist/{chunk-RPZMFGYI.js → chunk-3YOPTHZH.js} +3 -3
- package/dist/{chunk-RPZMFGYI.js.map → chunk-3YOPTHZH.js.map} +1 -1
- package/dist/{chunk-KFUFTZLS.js → chunk-44ZNZZUS.js} +3 -3
- package/dist/{chunk-KFUFTZLS.js.map → chunk-44ZNZZUS.js.map} +1 -1
- package/dist/{chunk-PJUP4BJD.js → chunk-47IPOYLQ.js} +3 -3
- package/dist/{chunk-PJUP4BJD.js.map → chunk-47IPOYLQ.js.map} +1 -1
- package/dist/{chunk-OJPPSJMF.js → chunk-4XYFJIRC.js} +3 -3
- package/dist/{chunk-OJPPSJMF.js.map → chunk-4XYFJIRC.js.map} +1 -1
- package/dist/{chunk-SOJW47EZ.js → chunk-5YX76GH6.js} +3 -3
- package/dist/{chunk-SOJW47EZ.js.map → chunk-5YX76GH6.js.map} +1 -1
- package/dist/{chunk-7T4NK6W6.js → chunk-65YSFZAN.js} +3 -3
- package/dist/{chunk-7T4NK6W6.js.map → chunk-65YSFZAN.js.map} +1 -1
- package/dist/{chunk-3ZXZGZOX.js → chunk-6ORS6XOE.js} +3 -3
- package/dist/{chunk-3ZXZGZOX.js.map → chunk-6ORS6XOE.js.map} +1 -1
- package/dist/{chunk-2A3E5Y72.js → chunk-6V2LQEPT.js} +3 -3
- package/dist/{chunk-2A3E5Y72.js.map → chunk-6V2LQEPT.js.map} +1 -1
- package/dist/{chunk-5XCTTXC3.js → chunk-ACZNFEOZ.js} +3 -3
- package/dist/{chunk-5XCTTXC3.js.map → chunk-ACZNFEOZ.js.map} +1 -1
- package/dist/{chunk-GLEOUWPN.js → chunk-AJ2LNQUQ.js} +3 -3
- package/dist/{chunk-GLEOUWPN.js.map → chunk-AJ2LNQUQ.js.map} +1 -1
- package/dist/{chunk-SBKVVVYY.js → chunk-AX6P3SDS.js} +3 -3
- package/dist/{chunk-SBKVVVYY.js.map → chunk-AX6P3SDS.js.map} +1 -1
- package/dist/{chunk-VB53UMAL.js → chunk-B42EOFRD.js} +3 -3
- package/dist/{chunk-VB53UMAL.js.map → chunk-B42EOFRD.js.map} +1 -1
- package/dist/{chunk-GIXHBTHH.js → chunk-CFVSXYVT.js} +3 -3
- package/dist/{chunk-GIXHBTHH.js.map → chunk-CFVSXYVT.js.map} +1 -1
- package/dist/{chunk-KDE3NYTI.js → chunk-CX54TUTT.js} +3 -3
- package/dist/{chunk-KDE3NYTI.js.map → chunk-CX54TUTT.js.map} +1 -1
- package/dist/{chunk-BP4RQSX7.js → chunk-DJK6H3FD.js} +3 -3
- package/dist/{chunk-BP4RQSX7.js.map → chunk-DJK6H3FD.js.map} +1 -1
- package/dist/{chunk-4SMYNLTA.js → chunk-EOTSD2GL.js} +3 -3
- package/dist/{chunk-4SMYNLTA.js.map → chunk-EOTSD2GL.js.map} +1 -1
- package/dist/{chunk-YUFFAWNB.js → chunk-FELH4AAQ.js} +3 -3
- package/dist/{chunk-YUFFAWNB.js.map → chunk-FELH4AAQ.js.map} +1 -1
- package/dist/{chunk-NEMXW2LB.js → chunk-FM72LBCJ.js} +3 -3
- package/dist/{chunk-NEMXW2LB.js.map → chunk-FM72LBCJ.js.map} +1 -1
- package/dist/{chunk-VHTAVROO.js → chunk-FNQASFTK.js} +3 -3
- package/dist/{chunk-VHTAVROO.js.map → chunk-FNQASFTK.js.map} +1 -1
- package/dist/{chunk-Q2BAL2PF.js → chunk-FOE3XXBJ.js} +3 -3
- package/dist/{chunk-Q2BAL2PF.js.map → chunk-FOE3XXBJ.js.map} +1 -1
- package/dist/{chunk-7BGCWJQR.js → chunk-HKVOCYTN.js} +3 -3
- package/dist/{chunk-7BGCWJQR.js.map → chunk-HKVOCYTN.js.map} +1 -1
- package/dist/{chunk-JFKBFQA5.js → chunk-HNRFBJ25.js} +3 -3
- package/dist/{chunk-JFKBFQA5.js.map → chunk-HNRFBJ25.js.map} +1 -1
- package/dist/{chunk-QCQTTOMD.js → chunk-II5Q5RIO.js} +3 -3
- package/dist/{chunk-QCQTTOMD.js.map → chunk-II5Q5RIO.js.map} +1 -1
- package/dist/{chunk-QRXIYPWP.js → chunk-ITEIRMSH.js} +3 -3
- package/dist/{chunk-QRXIYPWP.js.map → chunk-ITEIRMSH.js.map} +1 -1
- package/dist/{chunk-JQTCCKZA.js → chunk-JP3SHERK.js} +3 -3
- package/dist/{chunk-JQTCCKZA.js.map → chunk-JP3SHERK.js.map} +1 -1
- package/dist/{chunk-VBEMLZGX.js → chunk-JS5T2CRO.js} +3 -3
- package/dist/{chunk-VBEMLZGX.js.map → chunk-JS5T2CRO.js.map} +1 -1
- package/dist/{chunk-VBQFE5RV.js → chunk-KXZH7BTX.js} +3 -3
- package/dist/{chunk-VBQFE5RV.js.map → chunk-KXZH7BTX.js.map} +1 -1
- package/dist/{chunk-MXB2GVEQ.js → chunk-LB4PMLCX.js} +3 -3
- package/dist/{chunk-MXB2GVEQ.js.map → chunk-LB4PMLCX.js.map} +1 -1
- package/dist/{chunk-CED2LKHI.js → chunk-LMGE2QEO.js} +3 -3
- package/dist/{chunk-CED2LKHI.js.map → chunk-LMGE2QEO.js.map} +1 -1
- package/dist/{chunk-PVCW4O37.js → chunk-MLEPCMTF.js} +3 -3
- package/dist/{chunk-PVCW4O37.js.map → chunk-MLEPCMTF.js.map} +1 -1
- package/dist/{chunk-H5QPJNVD.js → chunk-NSZEZTDO.js} +3 -3
- package/dist/{chunk-H5QPJNVD.js.map → chunk-NSZEZTDO.js.map} +1 -1
- package/dist/{chunk-AENNHS3S.js → chunk-QBSJM4XI.js} +3 -3
- package/dist/{chunk-AENNHS3S.js.map → chunk-QBSJM4XI.js.map} +1 -1
- package/dist/{chunk-XJA4B3F5.js → chunk-QCSMJTA6.js} +3 -3
- package/dist/{chunk-XJA4B3F5.js.map → chunk-QCSMJTA6.js.map} +1 -1
- package/dist/{chunk-G2WCT6PJ.js → chunk-QTG266XU.js} +3 -3
- package/dist/{chunk-G2WCT6PJ.js.map → chunk-QTG266XU.js.map} +1 -1
- package/dist/{chunk-RLWULF5B.js → chunk-RMJYXHBX.js} +3 -3
- package/dist/{chunk-RLWULF5B.js.map → chunk-RMJYXHBX.js.map} +1 -1
- package/dist/{chunk-P44UAK45.js → chunk-SPGNNN4R.js} +3 -3
- package/dist/{chunk-P44UAK45.js.map → chunk-SPGNNN4R.js.map} +1 -1
- package/dist/{chunk-CSEGVTKO.js → chunk-T4Z7HBZR.js} +3 -3
- package/dist/{chunk-CSEGVTKO.js.map → chunk-T4Z7HBZR.js.map} +1 -1
- package/dist/{chunk-PZGUZHI7.js → chunk-TW5I37AE.js} +3 -3
- package/dist/{chunk-PZGUZHI7.js.map → chunk-TW5I37AE.js.map} +1 -1
- package/dist/{chunk-AXNJFBYX.js → chunk-UJAWV6LM.js} +3 -3
- package/dist/{chunk-AXNJFBYX.js.map → chunk-UJAWV6LM.js.map} +1 -1
- package/dist/{chunk-4DTLUBRW.js → chunk-V2WCZBVE.js} +4 -4
- package/dist/{chunk-4DTLUBRW.js.map → chunk-V2WCZBVE.js.map} +1 -1
- package/dist/{chunk-YES6SPDT.js → chunk-V4LRBYOD.js} +3 -3
- package/dist/{chunk-YES6SPDT.js.map → chunk-V4LRBYOD.js.map} +1 -1
- package/dist/{chunk-4UBFLXS3.js → chunk-VFRFUU7A.js} +3 -3
- package/dist/{chunk-4UBFLXS3.js.map → chunk-VFRFUU7A.js.map} +1 -1
- package/dist/{chunk-BWIDDAR7.js → chunk-VLNFUEOR.js} +3 -3
- package/dist/{chunk-BWIDDAR7.js.map → chunk-VLNFUEOR.js.map} +1 -1
- package/dist/{chunk-ZJXOHLQE.js → chunk-VU7XKD4G.js} +3 -3
- package/dist/{chunk-ZJXOHLQE.js.map → chunk-VU7XKD4G.js.map} +1 -1
- package/dist/{chunk-V3HFDVZ3.js → chunk-W24RR5OD.js} +3 -3
- package/dist/{chunk-V3HFDVZ3.js.map → chunk-W24RR5OD.js.map} +1 -1
- package/dist/{chunk-A3OU6ICP.js → chunk-W743ORLA.js} +3 -3
- package/dist/{chunk-A3OU6ICP.js.map → chunk-W743ORLA.js.map} +1 -1
- package/dist/{chunk-TJLULCZW.js → chunk-WQVEJJV7.js} +3 -3
- package/dist/{chunk-TJLULCZW.js.map → chunk-WQVEJJV7.js.map} +1 -1
- package/dist/{chunk-ZAMPCRFJ.js → chunk-WX4Q4DTX.js} +3 -3
- package/dist/{chunk-ZAMPCRFJ.js.map → chunk-WX4Q4DTX.js.map} +1 -1
- package/dist/{chunk-U3AEEFVB.js → chunk-Y7JTBQUQ.js} +3 -3
- package/dist/{chunk-U3AEEFVB.js.map → chunk-Y7JTBQUQ.js.map} +1 -1
- package/dist/{chunk-K72DJOXR.js → chunk-ZAP4RIUL.js} +3 -3
- package/dist/{chunk-K72DJOXR.js.map → chunk-ZAP4RIUL.js.map} +1 -1
- package/dist/{chunk-BPJ3RN3U.js → chunk-ZEDDWVBB.js} +4 -4
- package/dist/{chunk-BPJ3RN3U.js.map → chunk-ZEDDWVBB.js.map} +1 -1
- package/dist/composites/agent-composer/index.js +2 -2
- package/dist/composites/agent-stream/index.js +8 -8
- package/dist/composites/agent-tool-renderer/index.js +5 -5
- package/dist/composites/approval-card/index.js +1 -1
- package/dist/composites/chat-composer/index.js +1 -1
- package/dist/composites/chat-message/index.js +6 -6
- package/dist/composites/choice-prompt/index.js +1 -1
- package/dist/composites/command-palette/index.js +2 -2
- package/dist/composites/confirm-dialog/index.js +2 -2
- package/dist/composites/confirm-prompt/index.js +1 -1
- package/dist/composites/cron-jobs-list/index.js +2 -2
- package/dist/composites/data-table/index.js +2 -2
- package/dist/composites/domain-config/index.js +1 -1
- package/dist/composites/env-var-editor/index.js +1 -1
- package/dist/composites/mcp-server-list/index.js +2 -2
- package/dist/composites/metric-card/index.js +2 -2
- package/dist/composites/multi-select-prompt/index.js +1 -1
- package/dist/composites/page-shell/index.js +3 -3
- package/dist/composites/permission-modal/index.js +2 -2
- package/dist/composites/preview-env-card/index.js +1 -1
- package/dist/composites/preview-panel/index.js +1 -1
- package/dist/composites/project-card/index.js +1 -1
- package/dist/composites/rollback-ui/index.js +1 -1
- package/dist/composites/skills-list/index.js +2 -2
- package/dist/composites/text-prompt/index.js +1 -1
- package/dist/index.js +53 -53
- package/dist/primitives/artifact-preview/index.js +1 -1
- package/dist/primitives/build-log-stream/index.js +1 -1
- package/dist/primitives/card/index.js +1 -1
- package/dist/primitives/channel-card/index.js +1 -1
- package/dist/primitives/cost-meter/index.js +1 -1
- package/dist/primitives/cron-job-card/index.js +1 -1
- package/dist/primitives/dialog/index.js +1 -1
- package/dist/primitives/diff-viewer/index.js +1 -1
- package/dist/primitives/empty-state/index.js +1 -1
- package/dist/primitives/folder-context-card/index.js +1 -1
- package/dist/primitives/hook-config/index.js +1 -1
- package/dist/primitives/hook-event-log/index.js +1 -1
- package/dist/primitives/mcp-server-card/index.js +1 -1
- package/dist/primitives/memory-editor/index.js +1 -1
- package/dist/primitives/metrics-panel/index.js +1 -1
- package/dist/primitives/model-card/index.js +1 -1
- package/dist/primitives/permission-matrix/index.js +1 -1
- package/dist/primitives/pin-input/index.js +1 -1
- package/dist/primitives/progress-checklist/index.js +1 -1
- package/dist/primitives/recent-folders-list/index.js +1 -1
- package/dist/primitives/running-tasks-panel/index.js +1 -1
- package/dist/primitives/session-timeline/index.js +1 -1
- package/dist/primitives/skill-card/index.js +1 -1
- package/dist/primitives/system-prompt-editor/index.js +1 -1
- package/dist/primitives/task-plan/index.js +1 -1
- package/dist/primitives/terminal-panel/index.js +1 -1
- package/dist/primitives/token-usage-chart/index.js +1 -1
- package/dist/primitives/tools-list/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2EUKYGH5.js.map +0 -1
|
@@ -27,7 +27,7 @@ var HookConfig = forwardRef(
|
|
|
27
27
|
{
|
|
28
28
|
"data-slot": "hook-config",
|
|
29
29
|
ref,
|
|
30
|
-
className: cn("rounded-xl border bg-card", className),
|
|
30
|
+
className: cn("rounded-xl border border-border bg-card", className),
|
|
31
31
|
...props,
|
|
32
32
|
children: [
|
|
33
33
|
/* @__PURE__ */ jsxs("header", { className: "flex items-baseline justify-between border-border/40 border-b px-4 py-3", children: [
|
|
@@ -148,5 +148,5 @@ var HookConfig = forwardRef(
|
|
|
148
148
|
HookConfig.displayName = "HookConfig";
|
|
149
149
|
|
|
150
150
|
export { HOOK_EVENTS, HookConfig };
|
|
151
|
-
//# sourceMappingURL=chunk-
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
151
|
+
//# sourceMappingURL=chunk-Y7JTBQUQ.js.map
|
|
152
|
+
//# sourceMappingURL=chunk-Y7JTBQUQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/hook-config/hook-config.tsx"],"names":[],"mappings":"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","file":"chunk-U3AEEFVB.js","sourcesContent":["\"use client\";\n\nimport { Plus, Trash2, Zap } from \"lucide-react\";\nimport { forwardRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport type HookEvent =\n | \"PreToolUse\"\n | \"PostToolUse\"\n | \"UserPromptSubmit\"\n | \"Stop\"\n | \"SessionStart\"\n | \"SessionEnd\";\n\nexport interface HookEntry {\n id: string;\n event: HookEvent;\n /** Tool matcher (e.g. \"Bash\", \"Write\", \"*\"). */\n matcher: string;\n /** Shell command to run. */\n command: string;\n enabled?: boolean;\n}\n\nconst HOOK_EVENTS: HookEvent[] = [\n \"PreToolUse\",\n \"PostToolUse\",\n \"UserPromptSubmit\",\n \"Stop\",\n \"SessionStart\",\n \"SessionEnd\",\n];\n\ninterface HookConfigProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\" | \"onToggle\"> {\n hooks: HookEntry[];\n onAdd?: (hook: Omit<HookEntry, \"id\">) => void;\n onRemove?: (id: string) => void;\n onToggle?: (id: string, enabled: boolean) => void;\n title?: ReactNode;\n}\n\n/**\n * HookConfig — editor for lifecycle hooks (PreToolUse, PostToolUse, Stop…).\n *\n * Mirrors Claude Code's settings.json hooks but visual. Each row is an\n * { event × matcher × command } triple with on/off toggle.\n */\nconst HookConfig = forwardRef<HTMLDivElement, HookConfigProps>(\n ({ className, hooks, onAdd, onRemove, onToggle, title = \"Hooks\", ...props }, ref) => {\n const [event, setEvent] = useState<HookEvent>(\"PreToolUse\");\n const [matcher, setMatcher] = useState(\"*\");\n const [command, setCommand] = useState(\"\");\n\n const submit = () => {\n if (!command.trim()) return;\n onAdd?.({ event, matcher: matcher.trim() || \"*\", command: command.trim() });\n setCommand(\"\");\n };\n\n return (\n <section\n data-slot=\"hook-config\"\n ref={ref}\n className={cn(\"rounded-xl border bg-card\", className)}\n {...props}\n >\n <header className=\"flex items-baseline justify-between border-border/40 border-b px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Zap className=\"size-4 text-primary\" aria-hidden=\"true\" />\n <h3 className=\"font-display text-title-md tracking-tight\">{title}</h3>\n </div>\n <span className=\"font-mono text-label text-muted-foreground\">\n {hooks.length} {hooks.length === 1 ? \"hook\" : \"hooks\"}\n </span>\n </header>\n\n {onAdd ? (\n <form\n className=\"grid grid-cols-[140px_140px_1fr_auto] items-center gap-2 border-border/40 border-b p-3\"\n onSubmit={(e) => {\n e.preventDefault();\n submit();\n }}\n >\n <select\n value={event}\n onChange={(e) => setEvent(e.target.value as HookEvent)}\n aria-label=\"Event\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm\"\n >\n {HOOK_EVENTS.map((evt) => (\n <option key={evt} value={evt}>\n {evt}\n </option>\n ))}\n </select>\n <input\n type=\"text\"\n value={matcher}\n onChange={(e) => setMatcher(e.target.value)}\n placeholder=\"matcher (Bash, Write, *)\"\n aria-label=\"Matcher\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <input\n type=\"text\"\n value={command}\n onChange={(e) => setCommand(e.target.value)}\n placeholder='command (e.g. \"./scripts/audit.sh\")'\n aria-label=\"Command\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <button\n type=\"submit\"\n className=\"inline-flex h-9 items-center gap-1 rounded-md bg-primary px-3 font-sans text-label text-primary-foreground hover:shadow-glow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Plus className=\"size-3.5\" /> Add\n </button>\n </form>\n ) : null}\n\n <ul className=\"divide-y divide-border/30\">\n {hooks.map((hook) => {\n const enabled = hook.enabled ?? true;\n return (\n <li\n key={hook.id}\n className={cn(\n \"grid grid-cols-[140px_140px_1fr_auto_auto] items-center gap-3 px-4 py-2.5\",\n !enabled && \"opacity-50\",\n )}\n >\n <span className=\"font-mono text-code-sm text-primary\">{hook.event}</span>\n <span className=\"font-mono text-code-sm text-muted-foreground\">{hook.matcher}</span>\n <span className=\"truncate font-mono text-code-sm text-foreground\">\n {hook.command}\n </span>\n {onToggle ? (\n <button\n type=\"button\"\n onClick={() => onToggle(hook.id, !enabled)}\n aria-pressed={enabled}\n className={cn(\n \"rounded-full border px-2.5 py-0.5 font-mono text-label uppercase\",\n enabled\n ? \"border-success/40 bg-success/15 text-success\"\n : \"border-border/40 bg-muted text-muted-foreground\",\n )}\n >\n {enabled ? \"On\" : \"Off\"}\n </button>\n ) : (\n <span />\n )}\n {onRemove ? (\n <button\n type=\"button\"\n onClick={() => onRemove(hook.id)}\n aria-label={`Remove hook ${hook.event} ${hook.matcher}`}\n className=\"rounded-md p-1.5 text-muted-foreground hover:bg-muted hover:text-destructive focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Trash2 className=\"size-3.5\" />\n </button>\n ) : (\n <span />\n )}\n </li>\n );\n })}\n {hooks.length === 0 ? (\n <li className=\"px-4 py-8 text-center font-sans text-body-sm text-muted-foreground\">\n No hooks configured.\n </li>\n ) : null}\n </ul>\n </section>\n );\n },\n);\nHookConfig.displayName = \"HookConfig\";\n\nexport { HookConfig, HOOK_EVENTS };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/hook-config/hook-config.tsx"],"names":[],"mappings":"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","file":"chunk-Y7JTBQUQ.js","sourcesContent":["\"use client\";\n\nimport { Plus, Trash2, Zap } from \"lucide-react\";\nimport { forwardRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport type HookEvent =\n | \"PreToolUse\"\n | \"PostToolUse\"\n | \"UserPromptSubmit\"\n | \"Stop\"\n | \"SessionStart\"\n | \"SessionEnd\";\n\nexport interface HookEntry {\n id: string;\n event: HookEvent;\n /** Tool matcher (e.g. \"Bash\", \"Write\", \"*\"). */\n matcher: string;\n /** Shell command to run. */\n command: string;\n enabled?: boolean;\n}\n\nconst HOOK_EVENTS: HookEvent[] = [\n \"PreToolUse\",\n \"PostToolUse\",\n \"UserPromptSubmit\",\n \"Stop\",\n \"SessionStart\",\n \"SessionEnd\",\n];\n\ninterface HookConfigProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\" | \"onToggle\"> {\n hooks: HookEntry[];\n onAdd?: (hook: Omit<HookEntry, \"id\">) => void;\n onRemove?: (id: string) => void;\n onToggle?: (id: string, enabled: boolean) => void;\n title?: ReactNode;\n}\n\n/**\n * HookConfig — editor for lifecycle hooks (PreToolUse, PostToolUse, Stop…).\n *\n * Mirrors Claude Code's settings.json hooks but visual. Each row is an\n * { event × matcher × command } triple with on/off toggle.\n */\nconst HookConfig = forwardRef<HTMLDivElement, HookConfigProps>(\n ({ className, hooks, onAdd, onRemove, onToggle, title = \"Hooks\", ...props }, ref) => {\n const [event, setEvent] = useState<HookEvent>(\"PreToolUse\");\n const [matcher, setMatcher] = useState(\"*\");\n const [command, setCommand] = useState(\"\");\n\n const submit = () => {\n if (!command.trim()) return;\n onAdd?.({ event, matcher: matcher.trim() || \"*\", command: command.trim() });\n setCommand(\"\");\n };\n\n return (\n <section\n data-slot=\"hook-config\"\n ref={ref}\n className={cn(\"rounded-xl border border-border bg-card\", className)}\n {...props}\n >\n <header className=\"flex items-baseline justify-between border-border/40 border-b px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Zap className=\"size-4 text-primary\" aria-hidden=\"true\" />\n <h3 className=\"font-display text-title-md tracking-tight\">{title}</h3>\n </div>\n <span className=\"font-mono text-label text-muted-foreground\">\n {hooks.length} {hooks.length === 1 ? \"hook\" : \"hooks\"}\n </span>\n </header>\n\n {onAdd ? (\n <form\n className=\"grid grid-cols-[140px_140px_1fr_auto] items-center gap-2 border-border/40 border-b p-3\"\n onSubmit={(e) => {\n e.preventDefault();\n submit();\n }}\n >\n <select\n value={event}\n onChange={(e) => setEvent(e.target.value as HookEvent)}\n aria-label=\"Event\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm\"\n >\n {HOOK_EVENTS.map((evt) => (\n <option key={evt} value={evt}>\n {evt}\n </option>\n ))}\n </select>\n <input\n type=\"text\"\n value={matcher}\n onChange={(e) => setMatcher(e.target.value)}\n placeholder=\"matcher (Bash, Write, *)\"\n aria-label=\"Matcher\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <input\n type=\"text\"\n value={command}\n onChange={(e) => setCommand(e.target.value)}\n placeholder='command (e.g. \"./scripts/audit.sh\")'\n aria-label=\"Command\"\n className=\"h-9 rounded-md border border-input bg-card px-2 font-mono text-code-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n <button\n type=\"submit\"\n className=\"inline-flex h-9 items-center gap-1 rounded-md bg-primary px-3 font-sans text-label text-primary-foreground hover:shadow-glow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Plus className=\"size-3.5\" /> Add\n </button>\n </form>\n ) : null}\n\n <ul className=\"divide-y divide-border/30\">\n {hooks.map((hook) => {\n const enabled = hook.enabled ?? true;\n return (\n <li\n key={hook.id}\n className={cn(\n \"grid grid-cols-[140px_140px_1fr_auto_auto] items-center gap-3 px-4 py-2.5\",\n !enabled && \"opacity-50\",\n )}\n >\n <span className=\"font-mono text-code-sm text-primary\">{hook.event}</span>\n <span className=\"font-mono text-code-sm text-muted-foreground\">{hook.matcher}</span>\n <span className=\"truncate font-mono text-code-sm text-foreground\">\n {hook.command}\n </span>\n {onToggle ? (\n <button\n type=\"button\"\n onClick={() => onToggle(hook.id, !enabled)}\n aria-pressed={enabled}\n className={cn(\n \"rounded-full border px-2.5 py-0.5 font-mono text-label uppercase\",\n enabled\n ? \"border-success/40 bg-success/15 text-success\"\n : \"border-border/40 bg-muted text-muted-foreground\",\n )}\n >\n {enabled ? \"On\" : \"Off\"}\n </button>\n ) : (\n <span />\n )}\n {onRemove ? (\n <button\n type=\"button\"\n onClick={() => onRemove(hook.id)}\n aria-label={`Remove hook ${hook.event} ${hook.matcher}`}\n className=\"rounded-md p-1.5 text-muted-foreground hover:bg-muted hover:text-destructive focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Trash2 className=\"size-3.5\" />\n </button>\n ) : (\n <span />\n )}\n </li>\n );\n })}\n {hooks.length === 0 ? (\n <li className=\"px-4 py-8 text-center font-sans text-body-sm text-muted-foreground\">\n No hooks configured.\n </li>\n ) : null}\n </ul>\n </section>\n );\n },\n);\nHookConfig.displayName = \"HookConfig\";\n\nexport { HookConfig, HOOK_EVENTS };\n"]}
|
|
@@ -20,7 +20,7 @@ var DiffViewer = forwardRef(
|
|
|
20
20
|
{
|
|
21
21
|
"data-slot": "diff-viewer",
|
|
22
22
|
ref,
|
|
23
|
-
className: cn("overflow-hidden rounded-xl border bg-card font-mono", className),
|
|
23
|
+
className: cn("overflow-hidden rounded-xl border border-border bg-card font-mono", className),
|
|
24
24
|
...props,
|
|
25
25
|
children: [
|
|
26
26
|
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between gap-3 border-border/40 border-b bg-muted/30 px-3 py-2", children: [
|
|
@@ -77,5 +77,5 @@ var DiffViewer = forwardRef(
|
|
|
77
77
|
DiffViewer.displayName = "DiffViewer";
|
|
78
78
|
|
|
79
79
|
export { DiffViewer };
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
80
|
+
//# sourceMappingURL=chunk-ZAP4RIUL.js.map
|
|
81
|
+
//# sourceMappingURL=chunk-ZAP4RIUL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/diff-viewer/diff-viewer.tsx"],"names":[],"mappings":";;;;AAoCA,IAAM,MAAA,GAAuC;AAAA,EAC3C,KAAA,EAAO,eAAA;AAAA,EACP,OAAA,EAAS,mBAAA;AAAA,EACT,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,IAAA,GAAqC;AAAA,EACzC,KAAA,EAAO,GAAA;AAAA,EACP,OAAA,EAAS,GAAA;AAAA,EACT,SAAA,EAAW,GAAA;AAAA,EACX,IAAA,EAAM;AACR,CAAA;AAaA,IAAM,UAAA,GAAa,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,OAAO,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5C,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/diff-viewer/diff-viewer.tsx"],"names":[],"mappings":";;;;AAoCA,IAAM,MAAA,GAAuC;AAAA,EAC3C,KAAA,EAAO,eAAA;AAAA,EACP,OAAA,EAAS,mBAAA;AAAA,EACT,SAAA,EAAW,EAAA;AAAA,EACX,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,IAAA,GAAqC;AAAA,EACzC,KAAA,EAAO,GAAA;AAAA,EACP,OAAA,EAAS,GAAA;AAAA,EACT,SAAA,EAAW,GAAA;AAAA,EACX,IAAA,EAAM;AACR,CAAA;AAaA,IAAM,UAAA,GAAa,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,OAAO,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5C,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,mEAAA,EAAqE,SAAS,CAAA;AAAA,MAC3F,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,QAAA,EAAA,EAAO,WAAU,yFAAA,EAChB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uCAAA,EAAyC,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UAC7D,KAAA,mBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EACd,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,cAAA,EAAe,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAAE,KAAA,CAAM;AAAA,aAAA,EAAM,CAAA;AAAA,YAAQ,GAAA;AAAA,4BACrD,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAmB,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAAE,KAAA,CAAM;AAAA,aAAA,EAAQ;AAAA,WAAA,EACrD,CAAA,GACE;AAAA,SAAA,EACN,CAAA;AAAA,wBACA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,cAAA,EACX,gBAAM,GAAA,CAAI,CAAC,IAAA,qBACV,GAAA,CAAC,QACE,QAAA,EAAA,IAAA,CAAK,SAAA,mBACJ,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,UAAO;AAAA,SAAA,EACrB,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,yBACJ,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oCAAA,EAAsC,QAAA,EAAA,IAAA,CAAK,QAAO,CAAA,GAC/D,IAAA;AAAA,0BACJ,GAAA,CAAC,WAAM,SAAA,EAAU,wBAAA,EAAyB,cAAY,CAAA,cAAA,EAAiB,IAAI,CAAA,CAAA,EACzE,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA,IAAA,CAAK,MAAM,GAAA,CAAI,CAAC,MAAM,GAAA,qBACrB,IAAA,CAAC,QAA6B,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,EACvD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,mEAAA,EACX,QAAA,EAAA,IAAA,CAAK,aAAa,EAAA,EACrB,CAAA;AAAA,gCACC,IAAA,EAAA,EAAG,SAAA,EAAU,mEAAA,EACX,QAAA,EAAA,IAAA,CAAK,aAAa,EAAA,EACrB,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,uBAAA;AAAA,kBACA,IAAA,CAAK,SAAS,OAAA,IAAW,cAAA;AAAA,kBACzB,IAAA,CAAK,SAAS,SAAA,IAAa,kBAAA;AAAA,kBAC3B,IAAA,CAAK,SAAS,MAAA,IAAU;AAAA,iBAC1B;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK,KAAK,IAAI;AAAA;AAAA,aACjB;AAAA,4BACA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,uBAAA;AAAA,kBACA,IAAA,CAAK,SAAS,OAAA,IAAW,cAAA;AAAA,kBACzB,IAAA,CAAK,SAAS,SAAA,IAAa;AAAA,iBAC7B;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,WAAA,EAAA,EAzBO,CAAA,EAAG,KAAK,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,CA0B1B,CACD,GACH,CAAA,EACF;AAAA,SAAA,EACF,CAAA,EAAA,EA3CK,IAAA,CAAK,EA6Cd,CACD,CAAA,EACH;AAAA;AAAA;AAAA;AAGN;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-ZAP4RIUL.js","sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport type DiffLineKind = \"added\" | \"removed\" | \"unchanged\" | \"meta\";\n\nexport interface DiffLine {\n kind: DiffLineKind;\n /** Original line number (left side); undefined for added lines. */\n oldNumber?: number;\n /** New line number (right side); undefined for removed lines. */\n newNumber?: number;\n content: string;\n}\n\nexport interface DiffHunk {\n id: string;\n /**\n * Optional header (e.g. \"@@ -42,7 +42,12 @@\"). Caller usually formats this.\n */\n header?: string;\n lines: DiffLine[];\n /**\n * If true, the hunk is rendered as a collapsed \"N unmodified lines\" placeholder.\n */\n collapsed?: boolean;\n}\n\ninterface DiffViewerProps extends HTMLAttributes<HTMLDivElement> {\n /** Path of the file being diffed. */\n path: string;\n /** Diff stats summary. */\n stats?: { added: number; removed: number };\n hunks: DiffHunk[];\n}\n\nconst lineBg: Record<DiffLineKind, string> = {\n added: \"bg-success/10\",\n removed: \"bg-destructive/10\",\n unchanged: \"\",\n meta: \"bg-muted/60 text-primary\",\n};\n\nconst sign: Record<DiffLineKind, string> = {\n added: \"+\",\n removed: \"-\",\n unchanged: \" \",\n meta: \"@\",\n};\n\n/**\n * DiffViewer — unified diff rendering, no external dep.\n *\n * Visual: two gutter columns (old/new line numbers) + sign + monospaced content.\n * Added/removed rows tinted in success/destructive. Collapsed hunks render as\n * a single muted row \"N unmodified lines\".\n *\n * For syntax highlighting, the consumer can render `content` via their own\n * highlighter and pass `unchanged` lines with already-highlighted strings (not\n * common; usually plain text is enough for the brutalist console aesthetic).\n */\nconst DiffViewer = forwardRef<HTMLDivElement, DiffViewerProps>(\n ({ className, path, stats, hunks, ...props }, ref) => (\n <div\n data-slot=\"diff-viewer\"\n ref={ref}\n className={cn(\"overflow-hidden rounded-xl border border-border bg-card font-mono\", className)}\n {...props}\n >\n <header className=\"flex items-center justify-between gap-3 border-border/40 border-b bg-muted/30 px-3 py-2\">\n <span className=\"truncate text-code-sm text-foreground\">{path}</span>\n {stats ? (\n <span className=\"font-mono text-code-sm\">\n <span className=\"text-success\">+{stats.added}</span>{\" \"}\n <span className=\"text-destructive\">-{stats.removed}</span>\n </span>\n ) : null}\n </header>\n <ol className=\"text-code-sm\">\n {hunks.map((hunk) => (\n <li key={hunk.id}>\n {hunk.collapsed ? (\n <div className=\"px-3 py-1 text-muted-foreground italic\">\n {hunk.lines.length} unmodified lines\n </div>\n ) : (\n <>\n {hunk.header ? (\n <div className=\"bg-muted/60 px-3 py-1 text-primary\">{hunk.header}</div>\n ) : null}\n <table className=\"w-full border-collapse\" aria-label={`Diff hunk for ${path}`}>\n <tbody>\n {hunk.lines.map((line, idx) => (\n <tr key={`${hunk.id}-${idx}`} className={lineBg[line.kind]}>\n <td className=\"select-none px-2 text-right text-muted-foreground/60 tabular-nums\">\n {line.oldNumber ?? \"\"}\n </td>\n <td className=\"select-none px-2 text-right text-muted-foreground/60 tabular-nums\">\n {line.newNumber ?? \"\"}\n </td>\n <td\n className={cn(\n \"select-none pr-1 pl-2\",\n line.kind === \"added\" && \"text-success\",\n line.kind === \"removed\" && \"text-destructive\",\n line.kind === \"meta\" && \"text-primary\",\n )}\n >\n {sign[line.kind]}\n </td>\n <td\n className={cn(\n \"w-full whitespace-pre\",\n line.kind === \"added\" && \"text-success\",\n line.kind === \"removed\" && \"text-destructive\",\n )}\n >\n {line.content}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n )}\n </li>\n ))}\n </ol>\n </div>\n ),\n);\nDiffViewer.displayName = \"DiffViewer\";\n\nexport { DiffViewer };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { EmptyState } from './chunk-
|
|
3
|
-
import { Card } from './chunk-
|
|
2
|
+
import { EmptyState } from './chunk-3YOPTHZH.js';
|
|
3
|
+
import { Card } from './chunk-UJAWV6LM.js';
|
|
4
4
|
import { ActionBar } from './chunk-ZEFOXF2I.js';
|
|
5
5
|
import { cn } from './chunk-EWDN56AS.js';
|
|
6
6
|
import { AlertCircle, Loader2 } from 'lucide-react';
|
|
@@ -108,5 +108,5 @@ var PageShell = forwardRef(
|
|
|
108
108
|
PageShell.displayName = "PageShell";
|
|
109
109
|
|
|
110
110
|
export { PageShell };
|
|
111
|
-
//# sourceMappingURL=chunk-
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-ZEDDWVBB.js.map
|
|
112
|
+
//# sourceMappingURL=chunk-ZEDDWVBB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/composites/page-shell/page-shell.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/composites/page-shell/page-shell.tsx"],"names":[],"mappings":"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","file":"chunk-ZEDDWVBB.js","sourcesContent":["\"use client\";\n\nimport { AlertCircle, Loader2 } from \"lucide-react\";\nimport { forwardRef, useEffect } from \"react\";\nimport type { ElementType, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport { ActionBar } from \"../../primitives/action-bar/index.js\";\nimport { Card } from \"../../primitives/card/index.js\";\nimport { EmptyState } from \"../../primitives/empty-state/index.js\";\n\n/**\n * PageShell — page-level scaffold composite.\n *\n * Renders title + optional description + optional ActionBar, then\n * one of four mutually-exclusive content states:\n * 1. loading (highest precedence)\n * 2. error\n * 3. empty\n * 4. children (default)\n *\n * Scope-narrowed per Brief #5 D3: PageShell does NOT manage\n * `document.title`. Use the optional `onTitleChange` callback to\n * wire your own hook (e.g. useSetPageTitle, react-helmet,\n * next/head).\n *\n * @example\n * <PageShell\n * title=\"Domains\"\n * description=\"Custom domains and DNS verification.\"\n * search={{ placeholder: \"Search…\", value: q, onChange: setQ }}\n * primaryAction={{ label: \"Add domain\", icon: Plus, onClick: openModal }}\n * loading={isLoading}\n * error={error ? { message: error.message, onRetry: refetch } : undefined}\n * empty={data?.length === 0 ? { title: \"No domains yet\" } : undefined}\n * >\n * <DataTable columns={…} data={data} />\n * </PageShell>\n */\nexport interface PageShellProps {\n title: string;\n description?: ReactNode;\n /** Optional callback invoked when `title` changes — wire to your own document.title hook. */\n onTitleChange?: (title: string) => void;\n primaryAction?: {\n label: ReactNode;\n icon?: ElementType;\n onClick: () => void;\n loading?: boolean;\n };\n search?: {\n placeholder: string;\n value: string;\n onChange: (v: string) => void;\n };\n onFilterClick?: () => void;\n loading?: boolean;\n /** Custom loading UI. Defaults to a centered spinner card. */\n loadingNode?: ReactNode;\n error?: {\n message: string;\n onRetry?: () => void;\n docsHref?: string;\n };\n empty?: {\n icon?: ElementType;\n title: string;\n description?: ReactNode;\n action?: { label: string; onClick: () => void };\n };\n children?: ReactNode;\n className?: string;\n}\n\nconst PageShell = forwardRef<HTMLElement, PageShellProps>(\n (\n {\n title,\n description,\n onTitleChange,\n primaryAction,\n search,\n onFilterClick,\n loading = false,\n loadingNode,\n error,\n empty,\n children,\n className,\n },\n ref,\n ) => {\n useEffect(() => {\n onTitleChange?.(title);\n }, [title, onTitleChange]);\n\n const hasActionBar =\n search !== undefined || primaryAction !== undefined || onFilterClick !== undefined;\n\n // State precedence: loading > error > empty > children\n let content: ReactNode;\n if (loading) {\n content = loadingNode ?? (\n <Card className=\"flex items-center justify-center gap-3 p-12 text-muted-foreground\">\n <Loader2 aria-hidden=\"true\" className=\"size-5 animate-spin\" />\n <span className=\"font-sans text-body-sm\">Loading…</span>\n </Card>\n );\n } else if (error) {\n content = (\n <Card className=\"flex flex-col items-center gap-3 p-8 text-center\">\n <AlertCircle aria-hidden=\"true\" className=\"size-8 text-destructive\" />\n <p className=\"font-sans text-body-sm text-foreground\">{error.message}</p>\n <div className=\"flex items-center gap-3\">\n {error.onRetry ? (\n <button\n type=\"button\"\n onClick={error.onRetry}\n className={cn(\n \"inline-flex items-center rounded-md border border-border/40 px-3 py-1.5\",\n \"font-sans text-body-sm text-foreground\",\n \"transition-colors hover:bg-muted\",\n )}\n >\n Retry\n </button>\n ) : null}\n {error.docsHref ? (\n <a\n href={error.docsHref}\n className=\"font-sans text-body-sm text-primary hover:underline\"\n >\n View docs\n </a>\n ) : null}\n </div>\n </Card>\n );\n } else if (empty) {\n const emptyAction = empty.action;\n content = (\n <EmptyState\n icon={empty.icon as Parameters<typeof EmptyState>[0][\"icon\"]}\n title={empty.title}\n description={empty.description}\n action={\n emptyAction ? (\n <button\n type=\"button\"\n onClick={emptyAction.onClick}\n className={cn(\n \"inline-flex items-center rounded-md bg-primary px-3 py-1.5\",\n \"font-medium font-sans text-body-sm text-primary-foreground\",\n \"transition-colors hover:bg-primary-deep\",\n )}\n >\n {emptyAction.label}\n </button>\n ) : undefined\n }\n />\n );\n } else {\n content = children;\n }\n\n return (\n <main\n data-slot=\"page-shell\"\n ref={ref}\n aria-busy={loading || undefined}\n className={cn(\"flex flex-col gap-6\", className)}\n >\n <header className=\"flex flex-col gap-1\">\n <h1 className=\"font-display font-semibold text-display-sm text-foreground tracking-tight\">\n {title}\n </h1>\n {description ? (\n <p className=\"font-sans text-body-md text-muted-foreground\">{description}</p>\n ) : null}\n </header>\n {hasActionBar ? (\n <ActionBar search={search} primaryAction={primaryAction} onFilterClick={onFilterClick} />\n ) : null}\n {/* Content slot: `flex flex-col gap-6` matches the outer <main> gap so\n * direct children (e.g. multiple <Card>s, a <Table>, an inline <Alert>)\n * automatically receive consistent section spacing. Without this,\n * pages with 2+ top-level children would render them flush against\n * each other — a regression observed in dashboard /memory landing\n * (5 sibling sections collided). Pages that already wrap their content\n * in a single grid/div are unaffected (gap only applies between siblings). */}\n <div className=\"flex flex-col gap-6\">{content}</div>\n </main>\n );\n },\n);\nPageShell.displayName = \"PageShell\";\n\nexport { PageShell };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { AgentComposer } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { AgentComposer } from '../../chunk-47IPOYLQ.js';
|
|
3
|
+
import '../../chunk-TW5I37AE.js';
|
|
4
4
|
import '../../chunk-HZ7Z22VW.js';
|
|
5
5
|
import '../../chunk-25KBUQEQ.js';
|
|
6
6
|
import '../../chunk-EWDN56AS.js';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export { AgentStream, mapAgentEventStatus, toAgentStreamItems } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
1
|
+
export { AgentStream, mapAgentEventStatus, toAgentStreamItems } from '../../chunk-V2WCZBVE.js';
|
|
2
|
+
import '../../chunk-357XIC2N.js';
|
|
3
|
+
import '../../chunk-FOE3XXBJ.js';
|
|
4
4
|
import '../../chunk-GDMCDW66.js';
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
5
|
+
import '../../chunk-2NTEJRPA.js';
|
|
6
|
+
import '../../chunk-DJK6H3FD.js';
|
|
7
7
|
import '../../chunk-VHK2OUCW.js';
|
|
8
8
|
import '../../chunk-VZX4HLBM.js';
|
|
9
9
|
import '../../chunk-KHBXI6AV.js';
|
|
10
|
-
import '../../chunk-
|
|
10
|
+
import '../../chunk-6ORS6XOE.js';
|
|
11
11
|
import '../../chunk-CGWIOIEO.js';
|
|
12
12
|
import '../../chunk-ZPURFK4C.js';
|
|
13
|
-
import '../../chunk-
|
|
13
|
+
import '../../chunk-ZAP4RIUL.js';
|
|
14
14
|
import '../../chunk-SXKGWHAM.js';
|
|
15
|
-
import '../../chunk-
|
|
15
|
+
import '../../chunk-3YOPTHZH.js';
|
|
16
16
|
import '../../chunk-Z6HZMGO2.js';
|
|
17
17
|
import '../../chunk-2NZYMQKT.js';
|
|
18
18
|
import '../../chunk-25KBUQEQ.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import '../../chunk-PJWYIOY4.js';
|
|
2
|
-
export { AgentToolRenderer, defaultClassifyTool, defaultToolRegistry, resolveToolRenderer } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { AgentToolRenderer, defaultClassifyTool, defaultToolRegistry, resolveToolRenderer } from '../../chunk-2NTEJRPA.js';
|
|
3
|
+
import '../../chunk-DJK6H3FD.js';
|
|
4
4
|
import '../../chunk-VHK2OUCW.js';
|
|
5
5
|
import '../../chunk-KHBXI6AV.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-6ORS6XOE.js';
|
|
7
7
|
import '../../chunk-CGWIOIEO.js';
|
|
8
8
|
import '../../chunk-ZPURFK4C.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-ZAP4RIUL.js';
|
|
10
10
|
import '../../chunk-SXKGWHAM.js';
|
|
11
|
-
import '../../chunk-
|
|
11
|
+
import '../../chunk-3YOPTHZH.js';
|
|
12
12
|
import '../../chunk-Z6HZMGO2.js';
|
|
13
13
|
import '../../chunk-2NZYMQKT.js';
|
|
14
14
|
import '../../chunk-UGKI466V.js';
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { ChatMessage, ChatMessageAction, ChatMessageActions, ChatMessageBranch, ChatMessageBranchContent, ChatMessageBranchNext, ChatMessageBranchPage, ChatMessageBranchPrevious, ChatMessageBranchSelector, ChatMessageContent, ChatMessageResponse, ChatMessageRoot, ChatMessageToolbar, DataPart, FilePart, ReasoningPart, SourceDocumentPart, SourceUrlPart, TextPart, renderPart } from '../../chunk-
|
|
2
|
+
export { ChatMessage, ChatMessageAction, ChatMessageActions, ChatMessageBranch, ChatMessageBranchContent, ChatMessageBranchNext, ChatMessageBranchPage, ChatMessageBranchPrevious, ChatMessageBranchSelector, ChatMessageContent, ChatMessageResponse, ChatMessageRoot, ChatMessageToolbar, DataPart, FilePart, ReasoningPart, SourceDocumentPart, SourceUrlPart, TextPart, renderPart } from '../../chunk-FOE3XXBJ.js';
|
|
3
3
|
import '../../chunk-GDMCDW66.js';
|
|
4
|
-
export { ToolCallPart } from '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
4
|
+
export { ToolCallPart } from '../../chunk-2NTEJRPA.js';
|
|
5
|
+
import '../../chunk-DJK6H3FD.js';
|
|
6
6
|
import '../../chunk-VHK2OUCW.js';
|
|
7
7
|
import '../../chunk-KHBXI6AV.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-6ORS6XOE.js';
|
|
9
9
|
import '../../chunk-CGWIOIEO.js';
|
|
10
10
|
import '../../chunk-ZPURFK4C.js';
|
|
11
|
-
import '../../chunk-
|
|
11
|
+
import '../../chunk-ZAP4RIUL.js';
|
|
12
12
|
import '../../chunk-SXKGWHAM.js';
|
|
13
|
-
import '../../chunk-
|
|
13
|
+
import '../../chunk-3YOPTHZH.js';
|
|
14
14
|
import '../../chunk-Z6HZMGO2.js';
|
|
15
15
|
import '../../chunk-2NZYMQKT.js';
|
|
16
16
|
import '../../chunk-25KBUQEQ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { CommandPalette } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { CommandPalette } from '../../chunk-W24RR5OD.js';
|
|
3
|
+
import '../../chunk-T4Z7HBZR.js';
|
|
4
4
|
import '../../chunk-EWDN56AS.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { ConfirmDialog } from '../../chunk-
|
|
2
|
+
export { ConfirmDialog } from '../../chunk-44ZNZZUS.js';
|
|
3
3
|
import '../../chunk-BYUWQ6OP.js';
|
|
4
|
-
import '../../chunk-
|
|
4
|
+
import '../../chunk-T4Z7HBZR.js';
|
|
5
5
|
import '../../chunk-25KBUQEQ.js';
|
|
6
6
|
import '../../chunk-EWDN56AS.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { CronJobsList } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { CronJobsList } from '../../chunk-LB4PMLCX.js';
|
|
2
|
+
import '../../chunk-SPGNNN4R.js';
|
|
3
3
|
import '../../chunk-EWDN56AS.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { DataTable } from '../../chunk-
|
|
2
|
+
export { DataTable } from '../../chunk-DJK6H3FD.js';
|
|
3
3
|
import '../../chunk-KHBXI6AV.js';
|
|
4
4
|
import '../../chunk-CGWIOIEO.js';
|
|
5
5
|
import '../../chunk-ZPURFK4C.js';
|
|
6
6
|
import '../../chunk-SXKGWHAM.js';
|
|
7
|
-
import '../../chunk-
|
|
7
|
+
import '../../chunk-3YOPTHZH.js';
|
|
8
8
|
import '../../chunk-UGKI466V.js';
|
|
9
9
|
import '../../chunk-EWDN56AS.js';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { MCPServerList } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { MCPServerList } from '../../chunk-WQVEJJV7.js';
|
|
3
|
+
import '../../chunk-RMJYXHBX.js';
|
|
4
4
|
import '../../chunk-EWDN56AS.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { MetricCard } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { MetricCard } from '../../chunk-CFVSXYVT.js';
|
|
2
|
+
import '../../chunk-UJAWV6LM.js';
|
|
3
3
|
import '../../chunk-EWDN56AS.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { PageShell } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
2
|
+
export { PageShell } from '../../chunk-ZEDDWVBB.js';
|
|
3
|
+
import '../../chunk-3YOPTHZH.js';
|
|
4
|
+
import '../../chunk-UJAWV6LM.js';
|
|
5
5
|
import '../../chunk-ZEFOXF2I.js';
|
|
6
6
|
import '../../chunk-EWDN56AS.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { PermissionModal } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { PermissionModal } from '../../chunk-KXZH7BTX.js';
|
|
3
|
+
import '../../chunk-T4Z7HBZR.js';
|
|
4
4
|
import '../../chunk-25KBUQEQ.js';
|
|
5
5
|
import '../../chunk-EWDN56AS.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { SkillsList } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
export { SkillsList } from '../../chunk-QTG266XU.js';
|
|
3
|
+
import '../../chunk-VLNFUEOR.js';
|
|
4
4
|
import '../../chunk-EWDN56AS.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|