@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.
Files changed (162) hide show
  1. package/dist/{chunk-REFY5MLN.js → chunk-2NTEJRPA.js} +5 -5
  2. package/dist/{chunk-REFY5MLN.js.map → chunk-2NTEJRPA.js.map} +1 -1
  3. package/dist/{chunk-2EUKYGH5.js → chunk-357XIC2N.js} +3 -3
  4. package/dist/chunk-357XIC2N.js.map +1 -0
  5. package/dist/{chunk-RPZMFGYI.js → chunk-3YOPTHZH.js} +3 -3
  6. package/dist/{chunk-RPZMFGYI.js.map → chunk-3YOPTHZH.js.map} +1 -1
  7. package/dist/{chunk-KFUFTZLS.js → chunk-44ZNZZUS.js} +3 -3
  8. package/dist/{chunk-KFUFTZLS.js.map → chunk-44ZNZZUS.js.map} +1 -1
  9. package/dist/{chunk-PJUP4BJD.js → chunk-47IPOYLQ.js} +3 -3
  10. package/dist/{chunk-PJUP4BJD.js.map → chunk-47IPOYLQ.js.map} +1 -1
  11. package/dist/{chunk-OJPPSJMF.js → chunk-4XYFJIRC.js} +3 -3
  12. package/dist/{chunk-OJPPSJMF.js.map → chunk-4XYFJIRC.js.map} +1 -1
  13. package/dist/{chunk-SOJW47EZ.js → chunk-5YX76GH6.js} +3 -3
  14. package/dist/{chunk-SOJW47EZ.js.map → chunk-5YX76GH6.js.map} +1 -1
  15. package/dist/{chunk-7T4NK6W6.js → chunk-65YSFZAN.js} +3 -3
  16. package/dist/{chunk-7T4NK6W6.js.map → chunk-65YSFZAN.js.map} +1 -1
  17. package/dist/{chunk-3ZXZGZOX.js → chunk-6ORS6XOE.js} +3 -3
  18. package/dist/{chunk-3ZXZGZOX.js.map → chunk-6ORS6XOE.js.map} +1 -1
  19. package/dist/{chunk-2A3E5Y72.js → chunk-6V2LQEPT.js} +3 -3
  20. package/dist/{chunk-2A3E5Y72.js.map → chunk-6V2LQEPT.js.map} +1 -1
  21. package/dist/{chunk-5XCTTXC3.js → chunk-ACZNFEOZ.js} +3 -3
  22. package/dist/{chunk-5XCTTXC3.js.map → chunk-ACZNFEOZ.js.map} +1 -1
  23. package/dist/{chunk-GLEOUWPN.js → chunk-AJ2LNQUQ.js} +3 -3
  24. package/dist/{chunk-GLEOUWPN.js.map → chunk-AJ2LNQUQ.js.map} +1 -1
  25. package/dist/{chunk-SBKVVVYY.js → chunk-AX6P3SDS.js} +3 -3
  26. package/dist/{chunk-SBKVVVYY.js.map → chunk-AX6P3SDS.js.map} +1 -1
  27. package/dist/{chunk-VB53UMAL.js → chunk-B42EOFRD.js} +3 -3
  28. package/dist/{chunk-VB53UMAL.js.map → chunk-B42EOFRD.js.map} +1 -1
  29. package/dist/{chunk-GIXHBTHH.js → chunk-CFVSXYVT.js} +3 -3
  30. package/dist/{chunk-GIXHBTHH.js.map → chunk-CFVSXYVT.js.map} +1 -1
  31. package/dist/{chunk-KDE3NYTI.js → chunk-CX54TUTT.js} +3 -3
  32. package/dist/{chunk-KDE3NYTI.js.map → chunk-CX54TUTT.js.map} +1 -1
  33. package/dist/{chunk-BP4RQSX7.js → chunk-DJK6H3FD.js} +3 -3
  34. package/dist/{chunk-BP4RQSX7.js.map → chunk-DJK6H3FD.js.map} +1 -1
  35. package/dist/{chunk-4SMYNLTA.js → chunk-EOTSD2GL.js} +3 -3
  36. package/dist/{chunk-4SMYNLTA.js.map → chunk-EOTSD2GL.js.map} +1 -1
  37. package/dist/{chunk-YUFFAWNB.js → chunk-FELH4AAQ.js} +3 -3
  38. package/dist/{chunk-YUFFAWNB.js.map → chunk-FELH4AAQ.js.map} +1 -1
  39. package/dist/{chunk-NEMXW2LB.js → chunk-FM72LBCJ.js} +3 -3
  40. package/dist/{chunk-NEMXW2LB.js.map → chunk-FM72LBCJ.js.map} +1 -1
  41. package/dist/{chunk-VHTAVROO.js → chunk-FNQASFTK.js} +3 -3
  42. package/dist/{chunk-VHTAVROO.js.map → chunk-FNQASFTK.js.map} +1 -1
  43. package/dist/{chunk-Q2BAL2PF.js → chunk-FOE3XXBJ.js} +3 -3
  44. package/dist/{chunk-Q2BAL2PF.js.map → chunk-FOE3XXBJ.js.map} +1 -1
  45. package/dist/{chunk-7BGCWJQR.js → chunk-HKVOCYTN.js} +3 -3
  46. package/dist/{chunk-7BGCWJQR.js.map → chunk-HKVOCYTN.js.map} +1 -1
  47. package/dist/{chunk-JFKBFQA5.js → chunk-HNRFBJ25.js} +3 -3
  48. package/dist/{chunk-JFKBFQA5.js.map → chunk-HNRFBJ25.js.map} +1 -1
  49. package/dist/{chunk-QCQTTOMD.js → chunk-II5Q5RIO.js} +3 -3
  50. package/dist/{chunk-QCQTTOMD.js.map → chunk-II5Q5RIO.js.map} +1 -1
  51. package/dist/{chunk-QRXIYPWP.js → chunk-ITEIRMSH.js} +3 -3
  52. package/dist/{chunk-QRXIYPWP.js.map → chunk-ITEIRMSH.js.map} +1 -1
  53. package/dist/{chunk-JQTCCKZA.js → chunk-JP3SHERK.js} +3 -3
  54. package/dist/{chunk-JQTCCKZA.js.map → chunk-JP3SHERK.js.map} +1 -1
  55. package/dist/{chunk-VBEMLZGX.js → chunk-JS5T2CRO.js} +3 -3
  56. package/dist/{chunk-VBEMLZGX.js.map → chunk-JS5T2CRO.js.map} +1 -1
  57. package/dist/{chunk-VBQFE5RV.js → chunk-KXZH7BTX.js} +3 -3
  58. package/dist/{chunk-VBQFE5RV.js.map → chunk-KXZH7BTX.js.map} +1 -1
  59. package/dist/{chunk-MXB2GVEQ.js → chunk-LB4PMLCX.js} +3 -3
  60. package/dist/{chunk-MXB2GVEQ.js.map → chunk-LB4PMLCX.js.map} +1 -1
  61. package/dist/{chunk-CED2LKHI.js → chunk-LMGE2QEO.js} +3 -3
  62. package/dist/{chunk-CED2LKHI.js.map → chunk-LMGE2QEO.js.map} +1 -1
  63. package/dist/{chunk-PVCW4O37.js → chunk-MLEPCMTF.js} +3 -3
  64. package/dist/{chunk-PVCW4O37.js.map → chunk-MLEPCMTF.js.map} +1 -1
  65. package/dist/{chunk-H5QPJNVD.js → chunk-NSZEZTDO.js} +3 -3
  66. package/dist/{chunk-H5QPJNVD.js.map → chunk-NSZEZTDO.js.map} +1 -1
  67. package/dist/{chunk-AENNHS3S.js → chunk-QBSJM4XI.js} +3 -3
  68. package/dist/{chunk-AENNHS3S.js.map → chunk-QBSJM4XI.js.map} +1 -1
  69. package/dist/{chunk-XJA4B3F5.js → chunk-QCSMJTA6.js} +3 -3
  70. package/dist/{chunk-XJA4B3F5.js.map → chunk-QCSMJTA6.js.map} +1 -1
  71. package/dist/{chunk-G2WCT6PJ.js → chunk-QTG266XU.js} +3 -3
  72. package/dist/{chunk-G2WCT6PJ.js.map → chunk-QTG266XU.js.map} +1 -1
  73. package/dist/{chunk-RLWULF5B.js → chunk-RMJYXHBX.js} +3 -3
  74. package/dist/{chunk-RLWULF5B.js.map → chunk-RMJYXHBX.js.map} +1 -1
  75. package/dist/{chunk-P44UAK45.js → chunk-SPGNNN4R.js} +3 -3
  76. package/dist/{chunk-P44UAK45.js.map → chunk-SPGNNN4R.js.map} +1 -1
  77. package/dist/{chunk-CSEGVTKO.js → chunk-T4Z7HBZR.js} +3 -3
  78. package/dist/{chunk-CSEGVTKO.js.map → chunk-T4Z7HBZR.js.map} +1 -1
  79. package/dist/{chunk-PZGUZHI7.js → chunk-TW5I37AE.js} +3 -3
  80. package/dist/{chunk-PZGUZHI7.js.map → chunk-TW5I37AE.js.map} +1 -1
  81. package/dist/{chunk-AXNJFBYX.js → chunk-UJAWV6LM.js} +3 -3
  82. package/dist/{chunk-AXNJFBYX.js.map → chunk-UJAWV6LM.js.map} +1 -1
  83. package/dist/{chunk-4DTLUBRW.js → chunk-V2WCZBVE.js} +4 -4
  84. package/dist/{chunk-4DTLUBRW.js.map → chunk-V2WCZBVE.js.map} +1 -1
  85. package/dist/{chunk-YES6SPDT.js → chunk-V4LRBYOD.js} +3 -3
  86. package/dist/{chunk-YES6SPDT.js.map → chunk-V4LRBYOD.js.map} +1 -1
  87. package/dist/{chunk-4UBFLXS3.js → chunk-VFRFUU7A.js} +3 -3
  88. package/dist/{chunk-4UBFLXS3.js.map → chunk-VFRFUU7A.js.map} +1 -1
  89. package/dist/{chunk-BWIDDAR7.js → chunk-VLNFUEOR.js} +3 -3
  90. package/dist/{chunk-BWIDDAR7.js.map → chunk-VLNFUEOR.js.map} +1 -1
  91. package/dist/{chunk-ZJXOHLQE.js → chunk-VU7XKD4G.js} +3 -3
  92. package/dist/{chunk-ZJXOHLQE.js.map → chunk-VU7XKD4G.js.map} +1 -1
  93. package/dist/{chunk-V3HFDVZ3.js → chunk-W24RR5OD.js} +3 -3
  94. package/dist/{chunk-V3HFDVZ3.js.map → chunk-W24RR5OD.js.map} +1 -1
  95. package/dist/{chunk-A3OU6ICP.js → chunk-W743ORLA.js} +3 -3
  96. package/dist/{chunk-A3OU6ICP.js.map → chunk-W743ORLA.js.map} +1 -1
  97. package/dist/{chunk-TJLULCZW.js → chunk-WQVEJJV7.js} +3 -3
  98. package/dist/{chunk-TJLULCZW.js.map → chunk-WQVEJJV7.js.map} +1 -1
  99. package/dist/{chunk-ZAMPCRFJ.js → chunk-WX4Q4DTX.js} +3 -3
  100. package/dist/{chunk-ZAMPCRFJ.js.map → chunk-WX4Q4DTX.js.map} +1 -1
  101. package/dist/{chunk-U3AEEFVB.js → chunk-Y7JTBQUQ.js} +3 -3
  102. package/dist/{chunk-U3AEEFVB.js.map → chunk-Y7JTBQUQ.js.map} +1 -1
  103. package/dist/{chunk-K72DJOXR.js → chunk-ZAP4RIUL.js} +3 -3
  104. package/dist/{chunk-K72DJOXR.js.map → chunk-ZAP4RIUL.js.map} +1 -1
  105. package/dist/{chunk-BPJ3RN3U.js → chunk-ZEDDWVBB.js} +4 -4
  106. package/dist/{chunk-BPJ3RN3U.js.map → chunk-ZEDDWVBB.js.map} +1 -1
  107. package/dist/composites/agent-composer/index.js +2 -2
  108. package/dist/composites/agent-stream/index.js +8 -8
  109. package/dist/composites/agent-tool-renderer/index.js +5 -5
  110. package/dist/composites/approval-card/index.js +1 -1
  111. package/dist/composites/chat-composer/index.js +1 -1
  112. package/dist/composites/chat-message/index.js +6 -6
  113. package/dist/composites/choice-prompt/index.js +1 -1
  114. package/dist/composites/command-palette/index.js +2 -2
  115. package/dist/composites/confirm-dialog/index.js +2 -2
  116. package/dist/composites/confirm-prompt/index.js +1 -1
  117. package/dist/composites/cron-jobs-list/index.js +2 -2
  118. package/dist/composites/data-table/index.js +2 -2
  119. package/dist/composites/domain-config/index.js +1 -1
  120. package/dist/composites/env-var-editor/index.js +1 -1
  121. package/dist/composites/mcp-server-list/index.js +2 -2
  122. package/dist/composites/metric-card/index.js +2 -2
  123. package/dist/composites/multi-select-prompt/index.js +1 -1
  124. package/dist/composites/page-shell/index.js +3 -3
  125. package/dist/composites/permission-modal/index.js +2 -2
  126. package/dist/composites/preview-env-card/index.js +1 -1
  127. package/dist/composites/preview-panel/index.js +1 -1
  128. package/dist/composites/project-card/index.js +1 -1
  129. package/dist/composites/rollback-ui/index.js +1 -1
  130. package/dist/composites/skills-list/index.js +2 -2
  131. package/dist/composites/text-prompt/index.js +1 -1
  132. package/dist/index.js +53 -53
  133. package/dist/primitives/artifact-preview/index.js +1 -1
  134. package/dist/primitives/build-log-stream/index.js +1 -1
  135. package/dist/primitives/card/index.js +1 -1
  136. package/dist/primitives/channel-card/index.js +1 -1
  137. package/dist/primitives/cost-meter/index.js +1 -1
  138. package/dist/primitives/cron-job-card/index.js +1 -1
  139. package/dist/primitives/dialog/index.js +1 -1
  140. package/dist/primitives/diff-viewer/index.js +1 -1
  141. package/dist/primitives/empty-state/index.js +1 -1
  142. package/dist/primitives/folder-context-card/index.js +1 -1
  143. package/dist/primitives/hook-config/index.js +1 -1
  144. package/dist/primitives/hook-event-log/index.js +1 -1
  145. package/dist/primitives/mcp-server-card/index.js +1 -1
  146. package/dist/primitives/memory-editor/index.js +1 -1
  147. package/dist/primitives/metrics-panel/index.js +1 -1
  148. package/dist/primitives/model-card/index.js +1 -1
  149. package/dist/primitives/permission-matrix/index.js +1 -1
  150. package/dist/primitives/pin-input/index.js +1 -1
  151. package/dist/primitives/progress-checklist/index.js +1 -1
  152. package/dist/primitives/recent-folders-list/index.js +1 -1
  153. package/dist/primitives/running-tasks-panel/index.js +1 -1
  154. package/dist/primitives/session-timeline/index.js +1 -1
  155. package/dist/primitives/skill-card/index.js +1 -1
  156. package/dist/primitives/system-prompt-editor/index.js +1 -1
  157. package/dist/primitives/task-plan/index.js +1 -1
  158. package/dist/primitives/terminal-panel/index.js +1 -1
  159. package/dist/primitives/token-usage-chart/index.js +1 -1
  160. package/dist/primitives/tools-list/index.js +1 -1
  161. package/package.json +1 -1
  162. 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-U3AEEFVB.js.map
152
- //# sourceMappingURL=chunk-U3AEEFVB.js.map
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-K72DJOXR.js.map
81
- //# sourceMappingURL=chunk-K72DJOXR.js.map
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":"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","file":"chunk-K72DJOXR.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 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
+ {"version":3,"sources":["../src/components/primitives/diff-viewer/diff-viewer.tsx"],"names":[],"mappings":"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","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-RPZMFGYI.js';
3
- import { Card } from './chunk-AXNJFBYX.js';
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-BPJ3RN3U.js.map
112
- //# sourceMappingURL=chunk-BPJ3RN3U.js.map
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-BPJ3RN3U.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
+ {"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-PJUP4BJD.js';
3
- import '../../chunk-PZGUZHI7.js';
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-4DTLUBRW.js';
2
- import '../../chunk-2EUKYGH5.js';
3
- import '../../chunk-Q2BAL2PF.js';
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-REFY5MLN.js';
6
- import '../../chunk-BP4RQSX7.js';
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-3ZXZGZOX.js';
10
+ import '../../chunk-6ORS6XOE.js';
11
11
  import '../../chunk-CGWIOIEO.js';
12
12
  import '../../chunk-ZPURFK4C.js';
13
- import '../../chunk-K72DJOXR.js';
13
+ import '../../chunk-ZAP4RIUL.js';
14
14
  import '../../chunk-SXKGWHAM.js';
15
- import '../../chunk-RPZMFGYI.js';
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-REFY5MLN.js';
3
- import '../../chunk-BP4RQSX7.js';
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-3ZXZGZOX.js';
6
+ import '../../chunk-6ORS6XOE.js';
7
7
  import '../../chunk-CGWIOIEO.js';
8
8
  import '../../chunk-ZPURFK4C.js';
9
- import '../../chunk-K72DJOXR.js';
9
+ import '../../chunk-ZAP4RIUL.js';
10
10
  import '../../chunk-SXKGWHAM.js';
11
- import '../../chunk-RPZMFGYI.js';
11
+ import '../../chunk-3YOPTHZH.js';
12
12
  import '../../chunk-Z6HZMGO2.js';
13
13
  import '../../chunk-2NZYMQKT.js';
14
14
  import '../../chunk-UGKI466V.js';
@@ -1,4 +1,4 @@
1
- export { ApprovalCard } from '../../chunk-2EUKYGH5.js';
1
+ export { ApprovalCard } from '../../chunk-357XIC2N.js';
2
2
  import '../../chunk-25KBUQEQ.js';
3
3
  import '../../chunk-EWDN56AS.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import '../../chunk-ZXPDS6DH.js';
2
- export { ChatComposer } from '../../chunk-PZGUZHI7.js';
2
+ export { ChatComposer } from '../../chunk-TW5I37AE.js';
3
3
  import '../../chunk-25KBUQEQ.js';
4
4
  import '../../chunk-EWDN56AS.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -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-Q2BAL2PF.js';
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-REFY5MLN.js';
5
- import '../../chunk-BP4RQSX7.js';
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-3ZXZGZOX.js';
8
+ import '../../chunk-6ORS6XOE.js';
9
9
  import '../../chunk-CGWIOIEO.js';
10
10
  import '../../chunk-ZPURFK4C.js';
11
- import '../../chunk-K72DJOXR.js';
11
+ import '../../chunk-ZAP4RIUL.js';
12
12
  import '../../chunk-SXKGWHAM.js';
13
- import '../../chunk-RPZMFGYI.js';
13
+ import '../../chunk-3YOPTHZH.js';
14
14
  import '../../chunk-Z6HZMGO2.js';
15
15
  import '../../chunk-2NZYMQKT.js';
16
16
  import '../../chunk-25KBUQEQ.js';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { ChoicePrompt } from '../../chunk-5XCTTXC3.js';
2
+ export { ChoicePrompt } from '../../chunk-ACZNFEOZ.js';
3
3
  import '../../chunk-T2OKGV6M.js';
4
4
  import '../../chunk-GC52HWIL.js';
5
5
  import '../../chunk-BYUWQ6OP.js';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- export { CommandPalette } from '../../chunk-V3HFDVZ3.js';
3
- import '../../chunk-CSEGVTKO.js';
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-KFUFTZLS.js';
2
+ export { ConfirmDialog } from '../../chunk-44ZNZZUS.js';
3
3
  import '../../chunk-BYUWQ6OP.js';
4
- import '../../chunk-CSEGVTKO.js';
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
1
  "use client";
2
- export { ConfirmPrompt } from '../../chunk-OJPPSJMF.js';
2
+ export { ConfirmPrompt } from '../../chunk-4XYFJIRC.js';
3
3
  import '../../chunk-624AATQZ.js';
4
4
  import '../../chunk-25KBUQEQ.js';
5
5
  import '../../chunk-EWDN56AS.js';
@@ -1,5 +1,5 @@
1
- export { CronJobsList } from '../../chunk-MXB2GVEQ.js';
2
- import '../../chunk-P44UAK45.js';
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-BP4RQSX7.js';
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-RPZMFGYI.js';
7
+ import '../../chunk-3YOPTHZH.js';
8
8
  import '../../chunk-UGKI466V.js';
9
9
  import '../../chunk-EWDN56AS.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { DomainConfig } from '../../chunk-JFKBFQA5.js';
2
+ export { DomainConfig } from '../../chunk-HNRFBJ25.js';
3
3
  import '../../chunk-BYUWQ6OP.js';
4
4
  import '../../chunk-624AATQZ.js';
5
5
  import '../../chunk-25KBUQEQ.js';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { EnvVarEditor } from '../../chunk-PVCW4O37.js';
2
+ export { EnvVarEditor } from '../../chunk-MLEPCMTF.js';
3
3
  import '../../chunk-BYUWQ6OP.js';
4
4
  import '../../chunk-624AATQZ.js';
5
5
  import '../../chunk-ML7WLNIK.js';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- export { MCPServerList } from '../../chunk-TJLULCZW.js';
3
- import '../../chunk-RLWULF5B.js';
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-GIXHBTHH.js';
2
- import '../../chunk-AXNJFBYX.js';
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,5 +1,5 @@
1
1
  "use client";
2
- export { MultiSelectPrompt } from '../../chunk-7T4NK6W6.js';
2
+ export { MultiSelectPrompt } from '../../chunk-65YSFZAN.js';
3
3
  import '../../chunk-T2OKGV6M.js';
4
4
  import '../../chunk-BYUWQ6OP.js';
5
5
  import '../../chunk-TY6NTWN5.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- export { PageShell } from '../../chunk-BPJ3RN3U.js';
3
- import '../../chunk-RPZMFGYI.js';
4
- import '../../chunk-AXNJFBYX.js';
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-VBQFE5RV.js';
3
- import '../../chunk-CSEGVTKO.js';
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,4 +1,4 @@
1
- export { PreviewEnvCard } from '../../chunk-QRXIYPWP.js';
1
+ export { PreviewEnvCard } from '../../chunk-ITEIRMSH.js';
2
2
  import '../../chunk-GDMCDW66.js';
3
3
  import '../../chunk-624AATQZ.js';
4
4
  import '../../chunk-EWDN56AS.js';
@@ -1,4 +1,4 @@
1
- export { PreviewPanel } from '../../chunk-4UBFLXS3.js';
1
+ export { PreviewPanel } from '../../chunk-VFRFUU7A.js';
2
2
  import '../../chunk-B2FL7KBJ.js';
3
3
  import '../../chunk-EWDN56AS.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { ProjectCard } from '../../chunk-SBKVVVYY.js';
1
+ export { ProjectCard } from '../../chunk-AX6P3SDS.js';
2
2
  import '../../chunk-GDMCDW66.js';
3
3
  import '../../chunk-624AATQZ.js';
4
4
  import '../../chunk-EWDN56AS.js';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { RollbackUI } from '../../chunk-GLEOUWPN.js';
2
+ export { RollbackUI } from '../../chunk-AJ2LNQUQ.js';
3
3
  import '../../chunk-624AATQZ.js';
4
4
  import '../../chunk-25KBUQEQ.js';
5
5
  import '../../chunk-EWDN56AS.js';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- export { SkillsList } from '../../chunk-G2WCT6PJ.js';
3
- import '../../chunk-BWIDDAR7.js';
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
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { TextPrompt } from '../../chunk-NEMXW2LB.js';
2
+ export { TextPrompt } from '../../chunk-FM72LBCJ.js';
3
3
  import '../../chunk-ESJUISWY.js';
4
4
  import '../../chunk-BYUWQ6OP.js';
5
5
  import '../../chunk-TY6NTWN5.js';