@drawnagency/primitives 0.1.67 → 0.1.68

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 (44) hide show
  1. package/dist/chunk-4YEOTFVU.js +14 -0
  2. package/dist/{chunk-VU3XR362.js → chunk-6UDYJQL6.js} +1 -1
  3. package/dist/{chunk-7IMQVDDJ.js → chunk-EWKCEPMW.js} +1 -1
  4. package/dist/{chunk-XNGG5AGI.js → chunk-KWBM27UR.js} +1 -1
  5. package/dist/{chunk-TEYTLQVH.js → chunk-QKOIEWZ4.js} +33 -1
  6. package/dist/{chunk-4VMAZZXT.js → chunk-TYYCKVAW.js} +4 -4
  7. package/dist/{chunk-KM6HOW4H.js → chunk-VVK6ZRCN.js} +2 -2
  8. package/dist/{chunk-AFK45HX2.js → chunk-WNPMBFD6.js} +1 -1
  9. package/dist/{chunk-WJ7RZ6CC.js → chunk-WXVKX6PY.js} +1 -1
  10. package/dist/components/chat/ChatPanel.d.ts +31 -0
  11. package/dist/components/chat/ChatPanel.d.ts.map +1 -0
  12. package/dist/components/chat/ChatWidget.d.ts +11 -0
  13. package/dist/components/chat/ChatWidget.d.ts.map +1 -0
  14. package/dist/components/primitives/index.js +5 -5
  15. package/dist/components/sections/brand-guide.js +5 -5
  16. package/dist/components/sections/register-schemas.js +7 -7
  17. package/dist/components/sections/register.js +7 -7
  18. package/dist/components/shell/ChatbotConfigModal.d.ts +13 -0
  19. package/dist/components/shell/ChatbotConfigModal.d.ts.map +1 -0
  20. package/dist/components/shell/EditorShell.d.ts +2 -1
  21. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  22. package/dist/index.js +12 -5
  23. package/dist/lib/index.d.ts +1 -0
  24. package/dist/lib/index.d.ts.map +1 -1
  25. package/dist/lib/index.js +6 -3
  26. package/dist/lib/platform-broker.d.ts +7 -0
  27. package/dist/lib/platform-broker.d.ts.map +1 -1
  28. package/dist/lib/platform-broker.js +27 -1
  29. package/dist/media/index.js +3 -3
  30. package/dist/schemas/index.js +6 -2
  31. package/dist/schemas/site-config.d.ts +30 -0
  32. package/dist/schemas/site-config.d.ts.map +1 -1
  33. package/dist/types/database.d.ts +48 -0
  34. package/dist/types/database.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/components/chat/ChatPanel.tsx +152 -0
  37. package/src/components/chat/ChatWidget.tsx +38 -0
  38. package/src/components/shell/ChatbotConfigModal.tsx +152 -0
  39. package/src/components/shell/EditorShell.tsx +28 -1
  40. package/src/lib/index.ts +1 -0
  41. package/src/lib/platform-broker.ts +36 -0
  42. package/src/schemas/site-config.ts +36 -0
  43. package/src/types/database.ts +48 -0
  44. package/dist/chunk-ZGFAYZWB.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAO5D,eAAO,MAAM,cAAc,0DAA2D,CAAC;AAEvF,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;iBASrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AA0C9C,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6CtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAqB3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAO5D,eAAO,MAAM,cAAc,0DAA2D,CAAC;AAEvF,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;iBASrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AA0C9C,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6CtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAMD,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAgB5B,CAAC;AACL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -143,6 +143,41 @@ export type Database = {
143
143
  }
144
144
  ];
145
145
  };
146
+ chat_usage: {
147
+ Row: {
148
+ day: string;
149
+ input_tokens: number;
150
+ output_tokens: number;
151
+ requests: number;
152
+ site_id: string;
153
+ updated_at: string;
154
+ };
155
+ Insert: {
156
+ day: string;
157
+ input_tokens?: number;
158
+ output_tokens?: number;
159
+ requests?: number;
160
+ site_id: string;
161
+ updated_at?: string;
162
+ };
163
+ Update: {
164
+ day?: string;
165
+ input_tokens?: number;
166
+ output_tokens?: number;
167
+ requests?: number;
168
+ site_id?: string;
169
+ updated_at?: string;
170
+ };
171
+ Relationships: [
172
+ {
173
+ foreignKeyName: "chat_usage_site_id_fkey";
174
+ columns: ["site_id"];
175
+ isOneToOne: false;
176
+ referencedRelation: "sites";
177
+ referencedColumns: ["id"];
178
+ }
179
+ ];
180
+ };
146
181
  deploy_status: {
147
182
  Row: {
148
183
  commit_sha: string | null;
@@ -528,6 +563,7 @@ export type Database = {
528
563
  };
529
564
  sites: {
530
565
  Row: {
566
+ chatbot_enabled: boolean;
531
567
  created_at: string | null;
532
568
  custom_domain: string | null;
533
569
  failed_step: string | null;
@@ -543,6 +579,7 @@ export type Database = {
543
579
  subdomain: string | null;
544
580
  };
545
581
  Insert: {
582
+ chatbot_enabled?: boolean;
546
583
  created_at?: string | null;
547
584
  custom_domain?: string | null;
548
585
  failed_step?: string | null;
@@ -558,6 +595,7 @@ export type Database = {
558
595
  subdomain?: string | null;
559
596
  };
560
597
  Update: {
598
+ chatbot_enabled?: boolean;
561
599
  created_at?: string | null;
562
600
  custom_domain?: string | null;
563
601
  failed_step?: string | null;
@@ -635,6 +673,16 @@ export type Database = {
635
673
  [_ in never]: never;
636
674
  };
637
675
  Functions: {
676
+ chat_usage_hit: {
677
+ Args: {
678
+ p_day: string;
679
+ p_input_tokens: number;
680
+ p_output_tokens: number;
681
+ p_requests: number;
682
+ p_site_id: string;
683
+ };
684
+ Returns: undefined;
685
+ };
638
686
  get_user_id_by_email: {
639
687
  Args: {
640
688
  lookup_email: string;
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/types/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/types/database.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawnagency/primitives",
3
- "version": "0.1.67",
3
+ "version": "0.1.68",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -0,0 +1,152 @@
1
+ import { useRef, useState } from "react";
2
+ import { cn } from "../../lib/cn";
3
+
4
+ export interface ChatMessage { role: "user" | "assistant"; content: string }
5
+
6
+ const SESSION_KEY = "bp-chat-session";
7
+
8
+ function sessionId(): string {
9
+ let id = window.localStorage.getItem(SESSION_KEY);
10
+ if (!id) {
11
+ id = crypto.randomUUID();
12
+ window.localStorage.setItem(SESSION_KEY, id);
13
+ }
14
+ return id;
15
+ }
16
+
17
+ const ERROR_COPY: Record<string, string> = {
18
+ rate_limited: "You've hit the message limit — try again in a minute.",
19
+ disabled: "Chat isn't available right now.",
20
+ not_authorized: "You don't have access to chat on this site.",
21
+ upstream_error: "Something went wrong — please try again.",
22
+ };
23
+
24
+ /** Parse our /api/chat SSE frames out of a fetch body. Exported for tests. */
25
+ export async function streamChat(
26
+ body: { messages: ChatMessage[]; sessionId: string; taskId?: string; draftChatbot?: unknown },
27
+ onText: (text: string) => void,
28
+ ): Promise<{ ok: true; truncated: boolean } | { ok: false; error: string; retryAfterMs?: number }> {
29
+ try {
30
+ const res = await fetch("/api/chat", {
31
+ method: "POST",
32
+ headers: { "Content-Type": "application/json" },
33
+ body: JSON.stringify(body),
34
+ });
35
+ if (!res.ok || !res.body) {
36
+ const err = await res.json().catch(() => ({ error: "upstream_error" }));
37
+ return { ok: false, error: err.error ?? "upstream_error", retryAfterMs: err.retryAfterMs };
38
+ }
39
+ const reader = res.body.getReader();
40
+ const decoder = new TextDecoder();
41
+ let buffer = "";
42
+ let truncated = false;
43
+ let errored: string | null = null;
44
+ for (;;) {
45
+ const { done, value } = await reader.read();
46
+ if (done) break;
47
+ buffer += decoder.decode(value, { stream: true });
48
+ let sep: number;
49
+ while ((sep = buffer.indexOf("\n\n")) !== -1) {
50
+ const frame = buffer.slice(0, sep);
51
+ buffer = buffer.slice(sep + 2);
52
+ const event = /^event: (.+)$/m.exec(frame)?.[1];
53
+ const dataRaw = /^data: (.+)$/m.exec(frame)?.[1];
54
+ if (!event || !dataRaw) continue;
55
+ try {
56
+ const data = JSON.parse(dataRaw);
57
+ if (event === "text") onText(data.text);
58
+ else if (event === "done") truncated = data.truncated === true;
59
+ else if (event === "error") errored = data.error ?? "upstream_error";
60
+ } catch { /* malformed frame — skip */ }
61
+ }
62
+ }
63
+ return errored ? { ok: false, error: errored } : { ok: true, truncated };
64
+ } catch {
65
+ // Network failure or a mid-stream reader rejection (upstream abort) — never
66
+ // let this propagate out of send(), or `busy` sticks true forever.
67
+ return { ok: false, error: "upstream_error" };
68
+ }
69
+ }
70
+
71
+ export default function ChatPanel({ open, onClose, siteName, tasks, isEditor, draftChatbot }: {
72
+ open: boolean;
73
+ onClose: () => void;
74
+ siteName: string;
75
+ tasks: { id: string; label: string }[];
76
+ isEditor?: boolean;
77
+ /** Set only by the configurator's test panel. */
78
+ draftChatbot?: unknown;
79
+ }) {
80
+ const [messages, setMessages] = useState<ChatMessage[]>([]);
81
+ const [taskId, setTaskId] = useState<string>("");
82
+ const [input, setInput] = useState("");
83
+ const [busy, setBusy] = useState(false);
84
+ const [notice, setNotice] = useState<string | null>(null);
85
+ const streamingRef = useRef("");
86
+
87
+ async function send() {
88
+ const text = input.trim();
89
+ if (!text || busy) return;
90
+ setNotice(null);
91
+ setInput("");
92
+ setBusy(true);
93
+ const history: ChatMessage[] = [...messages, { role: "user", content: text }];
94
+ setMessages([...history, { role: "assistant", content: "" }]);
95
+ streamingRef.current = "";
96
+ const result = await streamChat(
97
+ { messages: history, sessionId: sessionId(), ...(taskId ? { taskId } : {}), ...(draftChatbot !== undefined ? { draftChatbot } : {}) },
98
+ (delta) => {
99
+ streamingRef.current += delta;
100
+ const streamed = streamingRef.current;
101
+ setMessages([...history, { role: "assistant", content: streamed }]);
102
+ },
103
+ );
104
+ setBusy(false);
105
+ if (!result.ok) {
106
+ setMessages(history); // drop the empty assistant stub
107
+ setNotice(ERROR_COPY[result.error] ?? ERROR_COPY.upstream_error);
108
+ } else if (result.truncated) {
109
+ setNotice("Some brand content didn't fit — answers may be incomplete.");
110
+ }
111
+ }
112
+
113
+ if (!open) return null;
114
+
115
+ return (
116
+ <div role="dialog" aria-label={`Chat with ${siteName}`}
117
+ className="fixed bottom-20 right-4 z-40 flex h-[28rem] w-80 flex-col rounded-lg border border-base-200 bg-base shadow-xl">
118
+ <div className="flex items-center justify-between gap-2 border-b border-base-200 px-3 py-2">
119
+ <span className="text-sm font-medium text-base-contrast">{siteName} assistant</span>
120
+ {tasks.length > 0 && (
121
+ <select aria-label="Task" value={taskId} onChange={(e) => setTaskId(e.target.value)}
122
+ className="max-w-36 rounded border border-base-200 bg-base-accent px-1 py-0.5 text-xs">
123
+ <option value="">General</option>
124
+ {tasks.map((t) => <option key={t.id} value={t.id}>{t.label}</option>)}
125
+ </select>
126
+ )}
127
+ <button type="button" aria-label="Close chat" onClick={onClose} className="text-base-contrast-light hover:text-base-contrast">×</button>
128
+ </div>
129
+ <div className="flex-1 space-y-2 overflow-y-auto p-3">
130
+ {messages.map((m, i) => (
131
+ <div key={i} className={cn("max-w-[85%] whitespace-pre-wrap rounded-lg px-3 py-2 text-sm",
132
+ m.role === "user" ? "ml-auto bg-primary text-primary-contrast" : "bg-base-accent text-base-contrast")}>
133
+ {m.content || (busy && i === messages.length - 1 ? "…" : m.content)}
134
+ </div>
135
+ ))}
136
+ {notice && <p className="text-xs text-base-contrast-light">{notice}</p>}
137
+ </div>
138
+ <form className="flex gap-2 border-t border-base-200 p-2" onSubmit={(e) => { e.preventDefault(); void send(); }}>
139
+ <input
140
+ value={input}
141
+ onChange={(e) => setInput(e.target.value)}
142
+ placeholder={`Ask about ${siteName}…`}
143
+ maxLength={4000}
144
+ className="min-w-0 flex-1 rounded border border-base-200 bg-base px-2 py-1 text-sm text-base-contrast"
145
+ />
146
+ <button type="submit" aria-label="Send" disabled={busy}
147
+ className="rounded bg-primary px-3 py-1 text-sm text-primary-contrast disabled:opacity-50">→</button>
148
+ </form>
149
+ {isEditor && <p className="border-t border-base-200 px-3 py-1 text-[10px] text-base-contrast-light">Editor view — answers ground on published content.</p>}
150
+ </div>
151
+ );
152
+ }
@@ -0,0 +1,38 @@
1
+ // Viewer-facing chat launcher. Renders ONLY the floating button until first
2
+ // open; the panel (and its code) loads lazily so viewers who never click pay
3
+ // almost nothing. Browser-safe: no node imports, no process.env.
4
+ import { lazy, Suspense, useState } from "react";
5
+
6
+ const ChatPanel = lazy(() => import("./ChatPanel"));
7
+
8
+ export interface ChatWidgetProps {
9
+ siteName: string;
10
+ /** Already audience-filtered server-side — never pass unfiltered config tasks. */
11
+ tasks: { id: string; label: string }[];
12
+ isEditor?: boolean;
13
+ }
14
+
15
+ export default function ChatWidget({ siteName, tasks, isEditor }: ChatWidgetProps) {
16
+ const [open, setOpen] = useState(false);
17
+ const [everOpened, setEverOpened] = useState(false);
18
+
19
+ return (
20
+ <>
21
+ <button
22
+ type="button"
23
+ aria-label={`Chat with ${siteName}`}
24
+ onClick={() => { setOpen((o) => !o); setEverOpened(true); }}
25
+ className="fixed bottom-4 right-4 z-40 flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-contrast shadow-lg hover:opacity-90 transition-opacity"
26
+ >
27
+ <svg xmlns="http://www.w3.org/2000/svg" className="h-6 w-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
28
+ <path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" />
29
+ </svg>
30
+ </button>
31
+ {everOpened && (
32
+ <Suspense fallback={null}>
33
+ <ChatPanel open={open} onClose={() => setOpen(false)} siteName={siteName} tasks={tasks} isEditor={isEditor} />
34
+ </Suspense>
35
+ )}
36
+ </>
37
+ );
38
+ }
@@ -0,0 +1,152 @@
1
+ import { useState } from "react";
2
+ import { EditorModal } from "./EditorModal";
3
+ import { Button } from "../shared/Button";
4
+ import { cn } from "../../lib/cn";
5
+ import ChatPanel from "../chat/ChatPanel";
6
+ import type { SiteConfig, ChatbotConfig, ChatbotTask } from "../../schemas/site-config";
7
+ import type { Audience } from "../../auth/types";
8
+
9
+ interface Props {
10
+ isOpen: boolean;
11
+ onClose: () => void;
12
+ siteConfig: SiteConfig;
13
+ onSiteConfigChange: (config: SiteConfig) => void;
14
+ audiences: Audience[];
15
+ platformEnabled: boolean;
16
+ }
17
+
18
+ function slugify(label: string): string {
19
+ return label.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 32) || "task";
20
+ }
21
+
22
+ function AudienceChips({ audiences, selected, onToggle }: { audiences: Audience[]; selected: string[]; onToggle: (name: string) => void }) {
23
+ return (
24
+ <div className="flex flex-wrap gap-1">
25
+ {audiences.map((a) => (
26
+ <button key={a.name} type="button" onClick={() => onToggle(a.name)}
27
+ className={cn("rounded-full border px-2 py-0.5 text-xs",
28
+ selected.includes(a.name) ? "border-primary bg-primary text-primary-contrast" : "border-base-200 bg-base-accent text-base-contrast")}
29
+ style={a.color && selected.includes(a.name) ? { backgroundColor: a.color, borderColor: a.color } : undefined}>
30
+ {a.displayName}
31
+ </button>
32
+ ))}
33
+ {audiences.length === 0 && <span className="text-xs text-base-contrast-light">No audiences configured</span>}
34
+ </div>
35
+ );
36
+ }
37
+
38
+ export function ChatbotConfigModal({ isOpen, onClose, siteConfig, onSiteConfigChange, audiences, platformEnabled }: Props) {
39
+ const chatbot = siteConfig.chatbot;
40
+ const [newTaskLabel, setNewTaskLabel] = useState("");
41
+ const [showTest, setShowTest] = useState(false);
42
+
43
+ const patch = (p: Partial<ChatbotConfig>) =>
44
+ onSiteConfigChange({ ...siteConfig, chatbot: { ...chatbot, ...p } });
45
+
46
+ const patchTask = (i: number, p: Partial<ChatbotTask>) =>
47
+ patch({ tasks: chatbot.tasks.map((t, idx) => (idx === i ? { ...t, ...p } : t)) });
48
+
49
+ function addTask() {
50
+ const label = newTaskLabel.trim();
51
+ if (!label || chatbot.tasks.length >= 20) return;
52
+ let id = slugify(label);
53
+ if (chatbot.tasks.some((t) => t.id === id)) {
54
+ for (let n = 2; ; n++) {
55
+ const suffix = `-${n}`;
56
+ const candidate = `${id.slice(0, 32 - suffix.length)}${suffix}`;
57
+ if (!chatbot.tasks.some((t) => t.id === candidate)) {
58
+ id = candidate;
59
+ break;
60
+ }
61
+ }
62
+ }
63
+ patch({ tasks: [...chatbot.tasks, { id, label, prompt: "", access: [] }] });
64
+ setNewTaskLabel("");
65
+ }
66
+
67
+ const toggleName = (list: string[], name: string) =>
68
+ list.includes(name) ? list.filter((n) => n !== name) : [...list, name];
69
+
70
+ return (
71
+ <EditorModal isOpen={isOpen} onClose={onClose} title="Chatbot" size="settings" noPadding>
72
+ <div className="flex flex-1 flex-col gap-4 overflow-y-auto px-6 py-4">
73
+ {!platformEnabled && (
74
+ <div className="rounded border border-base-200 bg-base-accent px-3 py-2 text-sm text-base-contrast">
75
+ Chat is not enabled for this site — contact Drawn Agency. You can still edit the
76
+ configuration below; it activates when chat is switched on.
77
+ </div>
78
+ )}
79
+
80
+ <label className="flex items-center gap-2 text-sm text-base-contrast">
81
+ <input type="checkbox" aria-label="Enable chatbot" checked={chatbot.enabled}
82
+ onChange={(e) => patch({ enabled: e.target.checked })} />
83
+ Show the chat widget to viewers
84
+ </label>
85
+
86
+ <div>
87
+ <p className="mb-1 text-sm font-medium text-base-contrast">Audiences</p>
88
+ <p className="mb-2 text-xs text-base-contrast-light">Who sees the widget. None selected = all audiences.</p>
89
+ <AudienceChips audiences={audiences} selected={chatbot.audiences} onToggle={(n) => patch({ audiences: toggleName(chatbot.audiences, n) })} />
90
+ </div>
91
+
92
+ <div>
93
+ <label htmlFor="chatbot-system-prompt" className="mb-1 block text-sm font-medium text-base-contrast">System prompt</label>
94
+ <textarea id="chatbot-system-prompt" aria-label="System prompt" rows={5} maxLength={8000}
95
+ value={chatbot.systemPrompt}
96
+ onChange={(e) => patch({ systemPrompt: e.target.value })}
97
+ placeholder="Describe the brand's voice and how the assistant should behave — e.g. “Speak warmly and concisely; always reference our color names, never hex codes.”"
98
+ className="w-full rounded border border-base-200 bg-base px-2 py-1 text-sm text-base-contrast" />
99
+ <p className="text-right text-xs text-base-contrast-light">{chatbot.systemPrompt.length}/8000</p>
100
+ </div>
101
+
102
+ <div>
103
+ <p className="mb-1 text-sm font-medium text-base-contrast">Tasks</p>
104
+ <p className="mb-2 text-xs text-base-contrast-light">Goal presets shown as a dropdown in the widget. Each task layers its own instructions onto the system prompt.</p>
105
+ <div className="space-y-3">
106
+ {chatbot.tasks.map((t, i) => (
107
+ <div key={t.id} className="rounded border border-base-200 p-2">
108
+ <div className="mb-1 flex items-center justify-between gap-2">
109
+ <input aria-label={`Task ${t.id} label`} value={t.label} maxLength={60}
110
+ onChange={(e) => patchTask(i, { label: e.target.value })}
111
+ className="min-w-0 flex-1 rounded border border-base-200 bg-base px-2 py-1 text-sm" />
112
+ <Button type="button" variant="destructive"
113
+ onClick={() => patch({ tasks: chatbot.tasks.filter((_, idx) => idx !== i) })}>
114
+ Remove
115
+ </Button>
116
+ </div>
117
+ <textarea aria-label={`Task ${t.id} prompt`} rows={2} maxLength={4000} value={t.prompt}
118
+ onChange={(e) => patchTask(i, { prompt: e.target.value })}
119
+ placeholder="Instructions for this task…"
120
+ className="mb-1 w-full rounded border border-base-200 bg-base px-2 py-1 text-sm" />
121
+ <AudienceChips audiences={audiences} selected={t.access} onToggle={(n) => patchTask(i, { access: toggleName(t.access, n) })} />
122
+ </div>
123
+ ))}
124
+ </div>
125
+ <div className="mt-2 flex gap-2">
126
+ <input aria-label="New task label" value={newTaskLabel} maxLength={60}
127
+ onChange={(e) => setNewTaskLabel(e.target.value)}
128
+ placeholder="e.g. Draft a social post"
129
+ className="min-w-0 flex-1 rounded border border-base-200 bg-base px-2 py-1 text-sm" />
130
+ <Button type="button" onClick={addTask}>Add task</Button>
131
+ </div>
132
+ </div>
133
+
134
+ <div>
135
+ <Button type="button" onClick={() => setShowTest((s) => !s)} disabled={!platformEnabled}>
136
+ {showTest ? "Hide test chat" : "Test with current draft"}
137
+ </Button>
138
+ <p className="mt-1 text-xs text-base-contrast-light">
139
+ Tests your unsaved prompt and tasks. Answers ground on published content.
140
+ </p>
141
+ {showTest && platformEnabled && (
142
+ <ChatPanel
143
+ open onClose={() => setShowTest(false)} siteName={siteConfig.siteName}
144
+ tasks={chatbot.tasks.map((t) => ({ id: t.id, label: t.label }))}
145
+ isEditor draftChatbot={chatbot}
146
+ />
147
+ )}
148
+ </div>
149
+ </div>
150
+ </EditorModal>
151
+ );
152
+ }
@@ -19,6 +19,7 @@ import type { BlockMove } from "../../lib/block-move";
19
19
  import { EditorModalProvider, useEditorModal } from "./EditorModalContext";
20
20
  import { EditorModal } from "./EditorModal";
21
21
  import { SiteSettingsModal } from "./SiteSettingsModal";
22
+ import { ChatbotConfigModal } from "./ChatbotConfigModal";
22
23
  import { MediaLibraryModal } from "./MediaLibraryModal";
23
24
  import { MediaLibraryContext } from "./MediaLibraryContext";
24
25
  import { ProcessingIndicator } from "./ProcessingIndicator";
@@ -72,7 +73,7 @@ import { IconButton } from "../shared/IconButton";
72
73
  import { SegmentedControl } from "../shared/SegmentedControl";
73
74
  import { computeDisplaySections } from "./view-branch";
74
75
  import { SettingsIcon } from "../shared/icons";
75
- import { ImageIcon, ListOrderedIcon, FilesIcon, X } from "lucide-react";
76
+ import { ImageIcon, ListOrderedIcon, FilesIcon, MessageCircleIcon, X } from "lucide-react";
76
77
  import { ErrorBoundary } from "../shared/ErrorBoundary";
77
78
  import { HistoryToolbar } from "./HistoryToolbar";
78
79
  import { RestoreModal } from "./RestoreModal";
@@ -104,6 +105,10 @@ interface Props {
104
105
  passwordToggle: boolean;
105
106
  };
106
107
  currentUser: { email: string; role: "owner" | "editor" } | null;
108
+ // Whether the platform (admin) has enabled the chatbot for this site.
109
+ // Controls the configurator's banner + test panel; the config UI itself
110
+ // always works so editors can prepare before activation.
111
+ chatbotPlatformEnabled?: boolean;
107
112
  }
108
113
 
109
114
  export default function EditorShell({
@@ -113,6 +118,7 @@ export default function EditorShell({
113
118
  audiences: initialAudiences,
114
119
  capabilities,
115
120
  currentUser,
121
+ chatbotPlatformEnabled = false,
116
122
  }: Props) {
117
123
  const [shellState, setShellState] = useState<ShellState>({ phase: "loading-content" });
118
124
  const [sections, setSections] = useState<LoadedSection[]>([]);
@@ -143,6 +149,7 @@ export default function EditorShell({
143
149
  const [showRestoreModal, setShowRestoreModal] = useState(false);
144
150
  const [showOrderingModal, setShowOrderingModal] = useState(false);
145
151
  const [showPagesModal, setShowPagesModal] = useState(false);
152
+ const [showChatbotConfig, setShowChatbotConfig] = useState(false);
146
153
  const [isRestoring, setIsRestoring] = useState(false);
147
154
  const [rejectedUploads, setRejectedUploads] = useState<{ name: string; reason: "size" | "type" }[]>([]);
148
155
  const [activePageId, setActivePageId] = useState<string | null>(null);
@@ -887,6 +894,7 @@ export default function EditorShell({
887
894
  onRestoreClick={() => setShowRestoreModal(true)}
888
895
  onOrderingClick={() => setShowOrderingModal(true)}
889
896
  onPagesClick={() => setShowPagesModal(true)}
897
+ onChatbotClick={() => setShowChatbotConfig(true)}
890
898
  />
891
899
 
892
900
  {/* Bug reports persist via Supabase. On the password-only (zero-Supabase)
@@ -937,6 +945,16 @@ export default function EditorShell({
937
945
  capabilities={capabilities}
938
946
  currentUser={currentUser}
939
947
  />
948
+ {siteConfig && (
949
+ <ChatbotConfigModal
950
+ isOpen={showChatbotConfig}
951
+ onClose={() => setShowChatbotConfig(false)}
952
+ siteConfig={siteConfig}
953
+ onSiteConfigChange={handleSiteConfigChange}
954
+ audiences={audiences}
955
+ platformEnabled={chatbotPlatformEnabled}
956
+ />
957
+ )}
940
958
  <EditorModal
941
959
  isOpen={pendingDeleteSectionId !== null}
942
960
  onClose={() => setPendingDeleteSectionId(null)}
@@ -1522,6 +1540,7 @@ function EditorToolbar({
1522
1540
  onRestoreClick,
1523
1541
  onOrderingClick,
1524
1542
  onPagesClick,
1543
+ onChatbotClick,
1525
1544
  }: {
1526
1545
  buttonState: "synced" | "publish" | "saveAndPublish";
1527
1546
  localChangesExist: boolean;
@@ -1540,6 +1559,7 @@ function EditorToolbar({
1540
1559
  onRestoreClick: () => void;
1541
1560
  onOrderingClick: () => void;
1542
1561
  onPagesClick: () => void;
1562
+ onChatbotClick: () => void;
1543
1563
  }) {
1544
1564
  const { isEditMode, viewBranch, setViewBranch, toggleEditMode, historyState, setHistoryState } = useEditorContext();
1545
1565
 
@@ -1625,6 +1645,13 @@ function EditorToolbar({
1625
1645
  onClick={onPagesClick}
1626
1646
  className="border border-base-200 bg-base-accent"
1627
1647
  />
1648
+ <IconButton
1649
+ icon={<MessageCircleIcon size={16} />}
1650
+ label="Chatbot"
1651
+ size="md"
1652
+ onClick={onChatbotClick}
1653
+ className="border border-base-200 bg-base-accent"
1654
+ />
1628
1655
  <IconButton
1629
1656
  icon={<SettingsIcon size={16} />}
1630
1657
  label="Site settings"
package/src/lib/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { env } from "./env";
2
2
  export { cn } from "./cn";
3
+ export { audiencePasses } from "./pages";
3
4
  export { generateNavLinks, toSectionId, type NavItem } from "./nav";
4
5
  export { deriveContrast } from "./contrast";
5
6
  export { sanitizeHtml, ensureSanitizer } from "./sanitize";