@schlessera/brain-ui-react 0.4.0 → 0.5.1

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 (45) hide show
  1. package/dist/components/chat/chat-page.d.ts.map +1 -1
  2. package/dist/components/chat/chat-page.js +10 -5
  3. package/dist/components/chat/chat-page.js.map +1 -1
  4. package/dist/components/layout/mobile-tab-bar.d.ts.map +1 -1
  5. package/dist/components/layout/mobile-tab-bar.js +41 -4
  6. package/dist/components/layout/mobile-tab-bar.js.map +1 -1
  7. package/dist/components/layout/side-rail.js +3 -3
  8. package/dist/components/layout/side-rail.js.map +1 -1
  9. package/dist/components/settings/models-tab.d.ts +11 -0
  10. package/dist/components/settings/models-tab.d.ts.map +1 -0
  11. package/dist/components/settings/models-tab.js +116 -0
  12. package/dist/components/settings/models-tab.js.map +1 -0
  13. package/dist/components/settings/passkey-tab.d.ts +13 -0
  14. package/dist/components/settings/passkey-tab.d.ts.map +1 -0
  15. package/dist/components/settings/{passkey-panel.js → passkey-tab.js} +14 -11
  16. package/dist/components/settings/passkey-tab.js.map +1 -0
  17. package/dist/components/settings/settings-panel.d.ts +10 -0
  18. package/dist/components/settings/settings-panel.d.ts.map +1 -0
  19. package/dist/components/settings/settings-panel.js +24 -0
  20. package/dist/components/settings/settings-panel.js.map +1 -0
  21. package/dist/lib/api-client.d.ts +7 -1
  22. package/dist/lib/api-client.d.ts.map +1 -1
  23. package/dist/lib/api-client.js +9 -0
  24. package/dist/lib/api-client.js.map +1 -1
  25. package/dist/stores/provider-store.d.ts.map +1 -1
  26. package/dist/stores/provider-store.js +10 -1
  27. package/dist/stores/provider-store.js.map +1 -1
  28. package/dist/stores/ui-store.d.ts +9 -3
  29. package/dist/stores/ui-store.d.ts.map +1 -1
  30. package/dist/stores/ui-store.js +6 -3
  31. package/dist/stores/ui-store.js.map +1 -1
  32. package/dist/styles.css +1 -1
  33. package/package.json +2 -2
  34. package/src/components/chat/chat-page.tsx +13 -7
  35. package/src/components/layout/mobile-tab-bar.tsx +95 -8
  36. package/src/components/layout/side-rail.tsx +6 -6
  37. package/src/components/settings/models-tab.tsx +214 -0
  38. package/src/components/settings/{passkey-panel.tsx → passkey-tab.tsx} +74 -79
  39. package/src/components/settings/settings-panel.tsx +61 -0
  40. package/src/lib/api-client.ts +15 -0
  41. package/src/stores/provider-store.ts +12 -1
  42. package/src/stores/ui-store.ts +18 -7
  43. package/dist/components/settings/passkey-panel.d.ts +0 -10
  44. package/dist/components/settings/passkey-panel.d.ts.map +0 -1
  45. package/dist/components/settings/passkey-panel.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chat-page.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-page.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,QAAQ,gCAqwBvB"}
1
+ {"version":3,"file":"chat-page.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-page.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,QAAQ,gCA2wBvB"}
@@ -12,7 +12,7 @@ import { MessageBubble } from "./message-bubble.js";
12
12
  import { WelcomeState } from "./welcome-state.js";
13
13
  import { CommandPalette } from "./command-palette.js";
14
14
  import { SessionDrawer } from "./session-drawer.js";
15
- import { PasskeyPanel } from "../settings/passkey-panel.js";
15
+ import { SettingsPanel } from "../settings/settings-panel.js";
16
16
  import { StreamingPanel } from "../quick-actions/streaming-modal.js";
17
17
  import { WhatsupPanel } from "../quick-actions/whatsup-modal.js";
18
18
  import { FilePanel } from "../files/file-panel.js";
@@ -81,8 +81,8 @@ export function ChatPage() {
81
81
  const setWhatsupPanelOpen = useUIStore((s) => s.setWhatsupPanelOpen);
82
82
  const filePanelOpen = useUIStore((s) => s.filePanelOpen);
83
83
  const setFilePanelOpen = useUIStore((s) => s.setFilePanelOpen);
84
- const securityPanelOpen = useUIStore((s) => s.securityPanelOpen);
85
- const setSecurityPanelOpen = useUIStore((s) => s.setSecurityPanelOpen);
84
+ const settingsPanelOpen = useUIStore((s) => s.settingsPanelOpen);
85
+ const setSettingsPanelOpen = useUIStore((s) => s.setSettingsPanelOpen);
86
86
  // Voice dictation state
87
87
  const voiceMode = useVoiceStore((s) => s.mode);
88
88
  const reviewText = useVoiceStore((s) => s.reviewText);
@@ -390,6 +390,11 @@ export function ChatPage() {
390
390
  ? pinnedProviderId ?? selectedProviderId
391
391
  : selectedProviderId;
392
392
  const displayProvider = providers.find((p) => p.id === displayProviderId);
393
+ // A session can be pinned to a profile the user has since hidden — it is gone
394
+ // from the picker but still running the turn. Show its id rather than
395
+ // claiming "Default model", which would name a different model than the one
396
+ // actually answering.
397
+ const displayProviderLabel = displayProvider?.label ?? displayProviderId ?? "Default model";
393
398
  const showProviderPicker = providers.length > 1;
394
399
  // What happens if the user sends into the currently-running session.
395
400
  const displayBackendId = displayProvider?.backendId;
@@ -401,7 +406,7 @@ export function ChatPage() {
401
406
  ? "Follows up live"
402
407
  : "Will queue"
403
408
  : null;
404
- return (_jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [_jsx(SessionDrawer, { open: sessionPanelOpen, onClose: () => setSessionPanelOpen(false), onResume: handleSessionResume }), _jsx(PasskeyPanel, { open: securityPanelOpen, onClose: () => setSecurityPanelOpen(false) }), _jsx(StreamingPanel, { open: syncPanelOpen, onClose: () => setSyncPanelOpen(false), title: "Brain Sync", endpoint: getBackendUrl("/api/brain/sync") }), _jsx(WhatsupPanel, { open: whatsupPanelOpen, onClose: () => setWhatsupPanelOpen(false) }), _jsx(FilePanel, { open: filePanelOpen, onClose: () => setFilePanelOpen(false) }), _jsxs("div", { className: "relative flex-1 overflow-hidden", children: [messages.length === 0 ? (_jsx("div", { className: "h-full overflow-y-auto", children: _jsx(WelcomeState, { onAction: handleWelcomeAction }) })) : (_jsx("div", { ref: scrollRef, className: "h-full overflow-y-auto px-4 md:px-6", children: _jsx("div", { className: "mx-auto max-w-3xl divide-y divide-border/20", children: messages.map((msg) => (_jsx(MessageBubble, { message: msg, onToolApproval: handleToolApproval, onAskUserSubmit: handleAskUserSubmit, onAskUserCancel: handleAskUserCancel }, msg.id))) }) })), showScrollButton && (_jsx("button", { type: "button", onClick: scrollToBottom, title: "Scroll to bottom", className: "absolute bottom-4 left-1/2 -translate-x-1/2 flex h-8 w-8 items-center justify-center rounded-full border border-border bg-surface shadow-md text-muted-foreground transition-all duration-150 hover:text-foreground", children: _jsx(ArrowDown, { className: "h-4 w-4" }) }))] }), _jsx(DictationSheet, { open: voiceMode === "dictate", onStop: () => dictation.stop(true), onCancel: () => dictation.cancel() }), _jsx("div", { className: "px-4 pt-2 pb-4 md:px-6 md:pb-6", children: _jsxs("div", { className: "mx-auto max-w-3xl", children: [_jsx(ReviewCard, { text: reviewText, onSend: handleVoiceSend, onEdit: handleVoiceEdit, onDiscard: clearReview, onAppend: handleVoiceAppend }), attachErrors.length > 0 && (_jsxs("div", { className: "mb-2 flex items-start gap-2 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2 text-[11px] text-destructive", children: [_jsx("div", { className: "flex-1 space-y-0.5", children: attachErrors.map((e, i) => (_jsx("div", { children: e }, i))) }), _jsx("button", { type: "button", onClick: () => setAttachErrors([]), title: "Dismiss", className: "shrink-0 rounded p-0.5 transition-colors hover:text-foreground", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] })), attachments.length > 0 && (_jsx("div", { className: "mb-2 flex flex-wrap gap-2", children: attachments.map((a, i) => (_jsxs("div", { className: "relative h-16 w-16 shrink-0", children: [_jsx("img", { src: a.previewUrl, alt: a.name, className: "h-16 w-16 rounded-lg border border-border object-cover" }), _jsx("button", { type: "button", onClick: () => removeAttachment(i), title: "Remove", className: "absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full border border-border bg-surface text-muted-foreground shadow transition-colors hover:text-destructive", children: _jsx(X, { className: "h-3 w-3" }) })] }, i))) })), _jsxs("div", { className: cn("relative rounded-2xl border border-border bg-surface shadow-lg transition-all duration-200", "focus-within:border-primary/40 focus-within:shadow-[0_0_20px_rgba(224,159,62,0.05)]"), children: [showCommandPalette && (_jsx(CommandPalette, { filter: input.slice(1), onSelect: handleCommand })), _jsx("input", { ref: libraryInputRef, type: "file", accept: "image/*", multiple: true, hidden: true, onChange: onFilePick }), _jsx("input", { ref: cameraInputRef, type: "file", accept: "image/*", capture: "environment", hidden: true, onChange: onFilePick }), _jsx("textarea", { ref: textareaRef, value: input, onChange: (e) => setInput(e.target.value), onPaste: (e) => {
409
+ return (_jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [_jsx(SessionDrawer, { open: sessionPanelOpen, onClose: () => setSessionPanelOpen(false), onResume: handleSessionResume }), _jsx(SettingsPanel, { open: settingsPanelOpen, onClose: () => setSettingsPanelOpen(false) }), _jsx(StreamingPanel, { open: syncPanelOpen, onClose: () => setSyncPanelOpen(false), title: "Brain Sync", endpoint: getBackendUrl("/api/brain/sync") }), _jsx(WhatsupPanel, { open: whatsupPanelOpen, onClose: () => setWhatsupPanelOpen(false) }), _jsx(FilePanel, { open: filePanelOpen, onClose: () => setFilePanelOpen(false) }), _jsxs("div", { className: "relative flex-1 overflow-hidden", children: [messages.length === 0 ? (_jsx("div", { className: "h-full overflow-y-auto", children: _jsx(WelcomeState, { onAction: handleWelcomeAction }) })) : (_jsx("div", { ref: scrollRef, className: "h-full overflow-y-auto px-4 md:px-6", children: _jsx("div", { className: "mx-auto max-w-3xl divide-y divide-border/20", children: messages.map((msg) => (_jsx(MessageBubble, { message: msg, onToolApproval: handleToolApproval, onAskUserSubmit: handleAskUserSubmit, onAskUserCancel: handleAskUserCancel }, msg.id))) }) })), showScrollButton && (_jsx("button", { type: "button", onClick: scrollToBottom, title: "Scroll to bottom", className: "absolute bottom-4 left-1/2 -translate-x-1/2 flex h-8 w-8 items-center justify-center rounded-full border border-border bg-surface shadow-md text-muted-foreground transition-all duration-150 hover:text-foreground", children: _jsx(ArrowDown, { className: "h-4 w-4" }) }))] }), _jsx(DictationSheet, { open: voiceMode === "dictate", onStop: () => dictation.stop(true), onCancel: () => dictation.cancel() }), _jsx("div", { className: "px-4 pt-2 pb-4 md:px-6 md:pb-6", children: _jsxs("div", { className: "mx-auto max-w-3xl", children: [_jsx(ReviewCard, { text: reviewText, onSend: handleVoiceSend, onEdit: handleVoiceEdit, onDiscard: clearReview, onAppend: handleVoiceAppend }), attachErrors.length > 0 && (_jsxs("div", { className: "mb-2 flex items-start gap-2 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2 text-[11px] text-destructive", children: [_jsx("div", { className: "flex-1 space-y-0.5", children: attachErrors.map((e, i) => (_jsx("div", { children: e }, i))) }), _jsx("button", { type: "button", onClick: () => setAttachErrors([]), title: "Dismiss", className: "shrink-0 rounded p-0.5 transition-colors hover:text-foreground", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] })), attachments.length > 0 && (_jsx("div", { className: "mb-2 flex flex-wrap gap-2", children: attachments.map((a, i) => (_jsxs("div", { className: "relative h-16 w-16 shrink-0", children: [_jsx("img", { src: a.previewUrl, alt: a.name, className: "h-16 w-16 rounded-lg border border-border object-cover" }), _jsx("button", { type: "button", onClick: () => removeAttachment(i), title: "Remove", className: "absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full border border-border bg-surface text-muted-foreground shadow transition-colors hover:text-destructive", children: _jsx(X, { className: "h-3 w-3" }) })] }, i))) })), _jsxs("div", { className: cn("relative rounded-2xl border border-border bg-surface shadow-lg transition-all duration-200", "focus-within:border-primary/40 focus-within:shadow-[0_0_20px_rgba(224,159,62,0.05)]"), children: [showCommandPalette && (_jsx(CommandPalette, { filter: input.slice(1), onSelect: handleCommand })), _jsx("input", { ref: libraryInputRef, type: "file", accept: "image/*", multiple: true, hidden: true, onChange: onFilePick }), _jsx("input", { ref: cameraInputRef, type: "file", accept: "image/*", capture: "environment", hidden: true, onChange: onFilePick }), _jsx("textarea", { ref: textareaRef, value: input, onChange: (e) => setInput(e.target.value), onPaste: (e) => {
405
410
  const files = e.clipboardData?.files;
406
411
  if (files && files.length > 0) {
407
412
  const images = Array.from(files).filter((f) => f.type.startsWith("image/"));
@@ -432,7 +437,7 @@ export function ChatPage() {
432
437
  ? "Provider is fixed for this conversation"
433
438
  : "Choose model", className: cn("flex max-w-[9rem] items-center gap-1 rounded-lg px-2 py-1 text-[11px] transition-colors md:max-w-[14rem]", providerLocked
434
439
  ? "cursor-default text-muted-foreground/60"
435
- : "text-muted-foreground hover:bg-surface-raised hover:text-foreground"), children: [providerLocked && (_jsx(Lock, { className: "h-3 w-3 shrink-0 opacity-70" })), _jsx("span", { className: "truncate", children: displayProvider?.label ?? "Default model" }), !providerLocked && (_jsx(ChevronDown, { className: "h-3 w-3 shrink-0 opacity-70" }))] }), providerMenuOpen && !providerLocked && (_jsx("div", { role: "menu", className: "absolute bottom-full left-0 z-50 mb-1 min-w-[14rem] overflow-hidden rounded-xl border border-border bg-surface-overlay py-1 shadow-2xl", children: providers.map((p) => (_jsxs("button", { role: "menuitem", type: "button", onClick: () => {
440
+ : "text-muted-foreground hover:bg-surface-raised hover:text-foreground"), children: [providerLocked && (_jsx(Lock, { className: "h-3 w-3 shrink-0 opacity-70" })), _jsx("span", { className: "truncate", children: displayProviderLabel }), !providerLocked && (_jsx(ChevronDown, { className: "h-3 w-3 shrink-0 opacity-70" }))] }), providerMenuOpen && !providerLocked && (_jsx("div", { role: "menu", className: "absolute bottom-full left-0 z-50 mb-1 min-w-[14rem] overflow-hidden rounded-xl border border-border bg-surface-overlay py-1 shadow-2xl", children: providers.map((p) => (_jsxs("button", { role: "menuitem", type: "button", onClick: () => {
436
441
  setSelectedProvider(p.id);
437
442
  setProviderMenuOpen(false);
438
443
  }, className: "flex w-full items-center gap-2 px-3 py-2 text-left text-xs text-foreground transition-colors hover:bg-surface-raised", children: [_jsx(Check, { className: cn("h-3.5 w-3.5 shrink-0 text-primary", p.id === selectedProviderId
@@ -1 +1 @@
1
- {"version":3,"file":"chat-page.js","sourceRoot":"","sources":["../../../src/components/chat/chat-page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-page.js","sourceRoot":"","sources":["../../../src/components/chat/chat-page.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-tab-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/mobile-tab-bar.tsx"],"names":[],"mappings":"AAWA,wBAAgB,YAAY,gCAiB3B"}
1
+ {"version":3,"file":"mobile-tab-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/mobile-tab-bar.tsx"],"names":[],"mappings":"AAcA,wBAAgB,YAAY,gCA+E3B"}
@@ -1,16 +1,53 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Brain, Newspaper, RefreshCw, History, KeyRound, FolderTree, } from "lucide-react";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { Brain, RefreshCw, History, SlidersHorizontal, FolderTree, SquarePen, MoreHorizontal, } from "lucide-react";
3
4
  import { useUIStore } from "../../stores/ui-store.js";
5
+ import { useChatStore } from "../../stores/chat-store.js";
4
6
  import { cn } from "../../lib/utils.js";
5
7
  export function MobileTabBar() {
6
8
  const toggleSessionPanel = useUIStore((s) => s.toggleSessionPanel);
7
9
  const toggleSyncPanel = useUIStore((s) => s.toggleSyncPanel);
8
- const toggleWhatsupPanel = useUIStore((s) => s.toggleWhatsupPanel);
9
10
  const toggleFilePanel = useUIStore((s) => s.toggleFilePanel);
10
- const toggleSecurityPanel = useUIStore((s) => s.toggleSecurityPanel);
11
- return (_jsxs("nav", { className: "md:hidden fixed bottom-0 inset-x-0 z-30 flex h-14 items-center justify-around border-t border-border bg-surface px-1 pb-[env(safe-area-inset-bottom)]", children: [_jsx(TabIcon, { icon: Brain, label: "Chat", active: true }), _jsx(TabIcon, { icon: Newspaper, label: "Brief", onClick: toggleWhatsupPanel }), _jsx(TabIcon, { icon: FolderTree, label: "Files", onClick: toggleFilePanel }), _jsx(TabIcon, { icon: RefreshCw, label: "Sync", onClick: toggleSyncPanel }), _jsx(TabIcon, { icon: History, label: "History", onClick: toggleSessionPanel }), _jsx(TabIcon, { icon: KeyRound, label: "Security", onClick: toggleSecurityPanel })] }));
11
+ const toggleSettingsPanel = useUIStore((s) => s.toggleSettingsPanel);
12
+ const clearMessages = useChatStore((s) => s.clearMessages);
13
+ const [moreOpen, setMoreOpen] = useState(false);
14
+ const moreRef = useRef(null);
15
+ useEffect(() => {
16
+ if (!moreOpen)
17
+ return;
18
+ function onDocClick(e) {
19
+ if (!moreRef.current?.contains(e.target))
20
+ setMoreOpen(false);
21
+ }
22
+ function onKey(e) {
23
+ if (e.key === "Escape")
24
+ setMoreOpen(false);
25
+ }
26
+ document.addEventListener("mousedown", onDocClick);
27
+ document.addEventListener("keydown", onKey);
28
+ return () => {
29
+ document.removeEventListener("mousedown", onDocClick);
30
+ document.removeEventListener("keydown", onKey);
31
+ };
32
+ }, [moreOpen]);
33
+ return (_jsxs("nav", { className: "md:hidden fixed bottom-0 inset-x-0 z-30 flex h-14 items-center justify-around border-t border-border bg-surface px-1 pb-[env(safe-area-inset-bottom)]", children: [_jsx(TabIcon, { icon: Brain, label: "Chat", active: true }), _jsx(TabIcon, { icon: SquarePen, label: "New chat", onClick: () => {
34
+ setMoreOpen(false);
35
+ clearMessages();
36
+ } }), _jsx(TabIcon, { icon: FolderTree, label: "Files", onClick: toggleFilePanel }), _jsxs("div", { ref: moreRef, className: "relative", children: [_jsx(TabIcon, { icon: MoreHorizontal, label: "More", active: moreOpen, onClick: () => setMoreOpen((v) => !v) }), moreOpen && (_jsxs("div", { role: "menu", className: "absolute bottom-full right-0 z-50 mb-2 min-w-[10rem] overflow-hidden rounded-xl border border-border bg-surface-overlay py-1 shadow-2xl", children: [_jsx(MoreItem, { icon: RefreshCw, label: "Sync", onClick: () => {
37
+ setMoreOpen(false);
38
+ toggleSyncPanel();
39
+ } }), _jsx(MoreItem, { icon: History, label: "History", onClick: () => {
40
+ setMoreOpen(false);
41
+ toggleSessionPanel();
42
+ } }), _jsx(MoreItem, { icon: SlidersHorizontal, label: "Settings", onClick: () => {
43
+ setMoreOpen(false);
44
+ toggleSettingsPanel();
45
+ } })] }))] })] }));
12
46
  }
13
47
  function TabIcon({ icon: Icon, label, active, onClick, }) {
14
48
  return (_jsxs("button", { onClick: onClick, className: cn("flex flex-col items-center gap-0.5 px-2 py-1 text-[10px]", active ? "text-primary" : "text-muted-foreground"), children: [_jsx(Icon, { className: "h-5 w-5" }), label] }));
15
49
  }
50
+ function MoreItem({ icon: Icon, label, onClick, }) {
51
+ return (_jsxs("button", { role: "menuitem", type: "button", onClick: onClick, className: "flex w-full items-center gap-2.5 px-3 py-2.5 text-left text-xs text-foreground transition-colors hover:bg-surface-raised", children: [_jsx(Icon, { className: "h-4 w-4 shrink-0 text-muted-foreground" }), label] }));
52
+ }
16
53
  //# sourceMappingURL=mobile-tab-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-tab-bar.js","sourceRoot":"","sources":["../../../src/components/layout/mobile-tab-bar.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,UAAU,YAAY;IAC1B,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAErE,OAAO,CACL,eAAK,SAAS,EAAC,uJAAuJ,aACpK,KAAC,OAAO,IAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,EAAC,MAAM,SAAG,EAC5C,KAAC,OAAO,IAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,kBAAkB,GAAI,EACvE,KAAC,OAAO,IAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,eAAe,GAAI,EACrE,KAAC,OAAO,IAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,eAAe,GAAI,EACnE,KAAC,OAAO,IAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,kBAAkB,GAAI,EACvE,KAAC,OAAO,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,mBAAmB,GAAI,IACtE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EACL,MAAM,EACN,OAAO,GAMR;IACC,OAAO,CACL,kBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAClD,aAED,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAC3B,KAAK,IACC,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mobile-tab-bar.js","sourceRoot":"","sources":["../../../src/components/layout/mobile-tab-bar.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Brain, RefreshCw, Newspaper, History, KeyRound, SquarePen, FolderTree, } from "lucide-react";
2
+ import { Brain, RefreshCw, Newspaper, History, SlidersHorizontal, SquarePen, FolderTree, } from "lucide-react";
3
3
  import { useConnectionStore } from "../../stores/connection-store.js";
4
4
  import { useUIStore } from "../../stores/ui-store.js";
5
5
  import { useChatStore, activeChat } from "../../stores/chat-store.js";
@@ -10,11 +10,11 @@ export function SideRail() {
10
10
  const toggleSyncPanel = useUIStore((s) => s.toggleSyncPanel);
11
11
  const toggleWhatsupPanel = useUIStore((s) => s.toggleWhatsupPanel);
12
12
  const toggleFilePanel = useUIStore((s) => s.toggleFilePanel);
13
- const toggleSecurityPanel = useUIStore((s) => s.toggleSecurityPanel);
13
+ const toggleSettingsPanel = useUIStore((s) => s.toggleSettingsPanel);
14
14
  const clearMessages = useChatStore((s) => s.clearMessages);
15
15
  const hasMessages = useChatStore((s) => activeChat(s).messages.length > 0);
16
16
  const isStreaming = useChatStore((s) => activeChat(s).isStreaming);
17
- return (_jsxs("nav", { className: "hidden md:flex w-16 shrink-0 flex-col items-center border-r border-border bg-surface py-4 gap-1", children: [_jsx("div", { className: "mb-4", children: _jsx(Brain, { className: "h-7 w-7 text-primary" }) }), hasMessages && (_jsx(RailButton, { icon: SquarePen, label: "New chat", onClick: clearMessages })), _jsx("div", { className: "my-2 h-px w-8 bg-border" }), _jsx(RailButton, { icon: RefreshCw, label: "Sync", onClick: toggleSyncPanel, disabled: isStreaming }), _jsx(RailButton, { icon: Newspaper, label: "Whatsup", onClick: toggleWhatsupPanel, disabled: isStreaming }), _jsx(RailButton, { icon: FolderTree, label: "Files", onClick: toggleFilePanel }), _jsx("div", { className: "flex-1" }), _jsx(RailButton, { icon: History, label: "Sessions", onClick: toggleSessionPanel }), _jsx(RailButton, { icon: KeyRound, label: "Security", onClick: toggleSecurityPanel }), _jsxs("div", { className: "mt-2 flex flex-col items-center gap-1", children: [_jsx("span", { className: cn("inline-block h-2 w-2 rounded-full", wsStatus === "connected" && "bg-green-500", wsStatus === "connecting" && "bg-primary animate-pulse", wsStatus === "disconnected" && "bg-destructive") }), _jsx("span", { className: "text-[10px] text-muted-foreground", children: wsStatus === "connected"
17
+ return (_jsxs("nav", { className: "hidden md:flex w-16 shrink-0 flex-col items-center border-r border-border bg-surface py-4 gap-1", children: [_jsx("div", { className: "mb-4", children: _jsx(Brain, { className: "h-7 w-7 text-primary" }) }), hasMessages && (_jsx(RailButton, { icon: SquarePen, label: "New chat", onClick: clearMessages })), _jsx("div", { className: "my-2 h-px w-8 bg-border" }), _jsx(RailButton, { icon: RefreshCw, label: "Sync", onClick: toggleSyncPanel, disabled: isStreaming }), _jsx(RailButton, { icon: Newspaper, label: "Whatsup", onClick: toggleWhatsupPanel, disabled: isStreaming }), _jsx(RailButton, { icon: FolderTree, label: "Files", onClick: toggleFilePanel }), _jsx("div", { className: "flex-1" }), _jsx(RailButton, { icon: History, label: "Sessions", onClick: toggleSessionPanel }), _jsx(RailButton, { icon: SlidersHorizontal, label: "Settings", onClick: toggleSettingsPanel }), _jsxs("div", { className: "mt-2 flex flex-col items-center gap-1", children: [_jsx("span", { className: cn("inline-block h-2 w-2 rounded-full", wsStatus === "connected" && "bg-green-500", wsStatus === "connecting" && "bg-primary animate-pulse", wsStatus === "disconnected" && "bg-destructive") }), _jsx("span", { className: "text-[10px] text-muted-foreground", children: wsStatus === "connected"
18
18
  ? "Live"
19
19
  : wsStatus === "connecting"
20
20
  ? "..."
@@ -1 +1 @@
1
- {"version":3,"file":"side-rail.js","sourceRoot":"","sources":["../../../src/components/layout/side-rail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"side-rail.js","sourceRoot":"","sources":["../../../src/components/layout/side-rail.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The model picker's contents, and which of them to show.
3
+ *
4
+ * The roster comes from the server (Anthropic model discovery plus any
5
+ * host-declared profiles), so this tab never hardcodes model names. Hiding is
6
+ * presentation only — a session already pinned to a hidden model keeps running.
7
+ */
8
+ export declare function ModelsTab({ active }: {
9
+ active: boolean;
10
+ }): import("react").JSX.Element;
11
+ //# sourceMappingURL=models-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models-tab.d.ts","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,+BAiJxD"}
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Eye, EyeOff, Loader2, RefreshCw } from "lucide-react";
4
+ import { api } from "../../lib/api-client.js";
5
+ import { useProviderStore } from "../../stores/provider-store.js";
6
+ import { cn } from "../../lib/utils.js";
7
+ /**
8
+ * The model picker's contents, and which of them to show.
9
+ *
10
+ * The roster comes from the server (Anthropic model discovery plus any
11
+ * host-declared profiles), so this tab never hardcodes model names. Hiding is
12
+ * presentation only — a session already pinned to a hidden model keeps running.
13
+ */
14
+ export function ModelsTab({ active }) {
15
+ const [catalog, setCatalog] = useState(null);
16
+ const [loading, setLoading] = useState(false);
17
+ const [refreshing, setRefreshing] = useState(false);
18
+ const [error, setError] = useState(null);
19
+ const loadProviders = useProviderStore((s) => s.loadProviders);
20
+ useEffect(() => {
21
+ if (!active)
22
+ return;
23
+ let cancelled = false;
24
+ setLoading(true);
25
+ setError(null);
26
+ api
27
+ .models()
28
+ .then((data) => {
29
+ if (!cancelled)
30
+ setCatalog(data);
31
+ })
32
+ .catch((err) => {
33
+ if (!cancelled) {
34
+ setError(err instanceof Error ? err.message : "Could not load models");
35
+ }
36
+ })
37
+ .finally(() => {
38
+ if (!cancelled)
39
+ setLoading(false);
40
+ });
41
+ return () => {
42
+ cancelled = true;
43
+ };
44
+ }, [active]);
45
+ async function toggleHidden(entry) {
46
+ if (!catalog)
47
+ return;
48
+ const previous = catalog;
49
+ const hidden = catalog.models
50
+ .filter((model) => model.id === entry.id ? !entry.hidden : model.hidden)
51
+ .map((model) => model.id);
52
+ // Optimistic: the list is the user's own click, so reflect it immediately
53
+ // and roll back if the write fails.
54
+ setCatalog({
55
+ ...catalog,
56
+ models: catalog.models.map((model) => model.id === entry.id ? { ...model, hidden: !model.hidden } : model),
57
+ });
58
+ setError(null);
59
+ try {
60
+ setCatalog(await api.setHiddenModels(hidden));
61
+ // The composer's picker holds its own copy of the roster, fetched once on
62
+ // mount — without this it keeps offering a model the user just hid until
63
+ // the page is reloaded.
64
+ void loadProviders();
65
+ }
66
+ catch (err) {
67
+ setCatalog(previous);
68
+ setError(err instanceof Error ? err.message : "Could not save");
69
+ }
70
+ }
71
+ async function onRefresh() {
72
+ if (refreshing)
73
+ return;
74
+ setRefreshing(true);
75
+ setError(null);
76
+ try {
77
+ setCatalog(await api.refreshModels());
78
+ // A refresh can surface newly released models — put them in the picker
79
+ // now, not on next load.
80
+ void loadProviders();
81
+ }
82
+ catch (err) {
83
+ setError(err instanceof Error ? err.message : "Refresh failed");
84
+ }
85
+ finally {
86
+ setRefreshing(false);
87
+ }
88
+ }
89
+ const visibleCount = catalog?.models.filter((m) => !m.hidden).length ?? 0;
90
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex-1 overflow-y-auto p-4", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Models" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "The list is read from the provider and refreshes on its own. Hide the ones you never pick \u2014 running sessions are unaffected." }), loading ? (_jsx("div", { className: "mt-6 flex justify-center", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : (_jsxs("ul", { className: "mt-4 flex flex-col gap-2", children: [catalog?.models.map((entry) => (_jsx(ModelRow, { entry: entry, onToggle: () => toggleHidden(entry) }, entry.id))), catalog?.models.length === 0 && (_jsx("li", { className: "rounded-lg border border-dashed border-border-subtle p-4 text-center text-xs text-muted-foreground", children: "No models available." }))] })), error && (_jsx("p", { role: "alert", className: "mt-3 text-xs text-destructive", children: error })), catalog?.discovery.error && (_jsxs("p", { className: "mt-3 text-xs text-muted-foreground", children: ["Last refresh failed (", catalog.discovery.error, "). Showing the last known list."] })), catalog && !catalog.discovery.enabled && (_jsx("p", { className: "mt-3 text-xs text-muted-foreground", children: "Discovery is disabled (BRAIN_UI_MODEL_DISCOVERY). Only configured profiles are listed." }))] }), _jsxs("div", { className: "flex items-center justify-between gap-3 border-t border-border p-4", children: [_jsxs("span", { className: "text-[11px] text-muted-foreground", children: [visibleCount, " in picker \u00B7 ", formatRefreshed(catalog?.refreshedAt ?? null)] }), _jsxs("button", { onClick: onRefresh, disabled: refreshing, className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-surface px-3 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:opacity-50", children: [_jsx(RefreshCw, { className: cn("h-3.5 w-3.5", refreshing && "animate-spin") }), "Refresh"] })] })] }));
91
+ }
92
+ function ModelRow({ entry, onToggle, }) {
93
+ const Icon = entry.hidden ? EyeOff : Eye;
94
+ return (_jsxs("li", { className: cn("flex items-center gap-3 rounded-lg border border-border-subtle bg-surface p-3", entry.hidden && "opacity-50"), children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm text-foreground", children: entry.label }), _jsxs("p", { className: "truncate text-[11px] text-muted-foreground", children: [entry.id, entry.contextWindow ? ` · ${formatTokens(entry.contextWindow)}` : "", entry.source === "declared" ? " · configured" : ""] })] }), _jsx("button", { onClick: onToggle, title: entry.hidden ? "Show in picker" : "Hide from picker", "aria-pressed": !entry.hidden, className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-surface-raised hover:text-foreground", children: _jsx(Icon, { className: "h-4 w-4" }) })] }));
95
+ }
96
+ function formatTokens(tokens) {
97
+ if (tokens >= 1_000_000)
98
+ return `${tokens / 1_000_000}M context`;
99
+ if (tokens >= 1_000)
100
+ return `${Math.round(tokens / 1_000)}K context`;
101
+ return `${tokens} context`;
102
+ }
103
+ function formatRefreshed(refreshedAt) {
104
+ if (refreshedAt === null)
105
+ return "never refreshed";
106
+ const minutes = Math.round((Date.now() - refreshedAt) / 60_000);
107
+ if (minutes < 1)
108
+ return "refreshed just now";
109
+ if (minutes < 60)
110
+ return `refreshed ${minutes}m ago`;
111
+ const hours = Math.round(minutes / 60);
112
+ if (hours < 24)
113
+ return `refreshed ${hours}h ago`;
114
+ return `refreshed ${Math.round(hours / 24)}d ago`;
115
+ }
116
+ //# sourceMappingURL=models-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models-tab.js","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK/D,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAuB;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,GAAG;aACA,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,SAAS;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS;gBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,KAAK,UAAU,YAAY,CAAC,KAAwB;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;aAC1B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CACrD;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5B,0EAA0E;QAC1E,oCAAoC;QACpC,UAAU,CAAC;YACT,GAAG,OAAO;YACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CACpE;SACF,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,0EAA0E;YAC1E,yEAAyE;YACzE,wBAAwB;YACxB,KAAK,aAAa,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrB,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,KAAK,UAAU,SAAS;QACtB,IAAI,UAAU;YAAE,OAAO;QACvB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,UAAU,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;YACtC,uEAAuE;YACvE,yBAAyB;YACzB,KAAK,aAAa,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAE1E,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,eAAK,SAAS,EAAC,4BAA4B,aACzC,aAAI,SAAS,EAAC,mEAAmE,uBAE5E,EACL,YAAG,SAAS,EAAC,oCAAoC,kJAG7C,EAEH,OAAO,CAAC,CAAC,CAAC,CACT,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,OAAO,IAAC,SAAS,EAAC,4CAA4C,GAAG,GAC9D,CACP,CAAC,CAAC,CAAC,CACF,cAAI,SAAS,EAAC,0BAA0B,aACrC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,QAAQ,IAEP,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAF9B,KAAK,CAAC,EAAE,CAGb,CACH,CAAC,EACD,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAC/B,aAAI,SAAS,EAAC,oGAAoG,qCAE7G,CACN,IACE,CACN,EAEA,KAAK,IAAI,CACR,YAAG,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,+BAA+B,YACtD,KAAK,GACJ,CACL,EAEA,OAAO,EAAE,SAAS,CAAC,KAAK,IAAI,CAC3B,aAAG,SAAS,EAAC,oCAAoC,sCACzB,OAAO,CAAC,SAAS,CAAC,KAAK,uCAE3C,CACL,EACA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,CACxC,YAAG,SAAS,EAAC,oCAAoC,uGAG7C,CACL,IACG,EAEN,eAAK,SAAS,EAAC,oEAAoE,aACjF,gBAAM,SAAS,EAAC,mCAAmC,aAChD,YAAY,wBAAe,eAAe,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,IACpE,EACP,kBACE,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,uMAAuM,aAEjN,KAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,UAAU,IAAI,cAAc,CAAC,GAAI,eAElE,IACL,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,+EAA+E,EAC/E,KAAK,CAAC,MAAM,IAAI,YAAY,CAC7B,aAED,eAAK,SAAS,EAAC,gBAAgB,aAC7B,YAAG,SAAS,EAAC,kCAAkC,YAAE,KAAK,CAAC,KAAK,GAAK,EACjE,aAAG,SAAS,EAAC,4CAA4C,aACtD,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACpE,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IACjD,IACA,EACN,iBACE,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,kBAC7C,CAAC,KAAK,CAAC,MAAM,EAC3B,SAAS,EAAC,oJAAoJ,YAE9J,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,GACrB,IACN,CACN,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,MAAM,GAAG,SAAS,WAAW,CAAC;IACjE,IAAI,MAAM,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;IACrE,OAAO,GAAG,MAAM,UAAU,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,WAA0B;IACjD,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC;IAChE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC7C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,aAAa,OAAO,OAAO,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,aAAa,KAAK,OAAO,CAAC;IACjD,OAAO,aAAa,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;AACpD,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Passkey management + sign out — the Security tab of the settings panel.
3
+ * Registration requires the current session (routes are behind the auth guard);
4
+ * credentials are RP-scoped, so entries registered on another hostname are
5
+ * badged and only useful there.
6
+ *
7
+ * `active` is "this tab is on screen": the list reloads when it becomes visible
8
+ * rather than on mount, so switching tabs picks up changes made elsewhere.
9
+ */
10
+ export declare function PasskeyTab({ active }: {
11
+ active: boolean;
12
+ }): import("react").JSX.Element;
13
+ //# sourceMappingURL=passkey-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-tab.d.ts","sourceRoot":"","sources":["../../../src/components/settings/passkey-tab.tsx"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,+BAuJzD"}
@@ -3,14 +3,17 @@ import { useEffect, useState } from "react";
3
3
  import { Check, Cloud, Fingerprint, Loader2, LogOut, Pencil, Plus, Trash2, X, } from "lucide-react";
4
4
  import { api } from "../../lib/api-client.js";
5
5
  import { isUserCancel, registerPasskey, supportsPasskeys } from "../../lib/passkeys.js";
6
- import { SlidePanel } from "../layout/slide-panel.js";
7
6
  import { cn } from "../../lib/utils.js";
8
7
  /**
9
- * Passkey management + sign out. Registration requires the current session
10
- * (routes are behind the auth guard); credentials are RP-scoped, so entries
11
- * registered on another hostname are badged and only useful there.
8
+ * Passkey management + sign out — the Security tab of the settings panel.
9
+ * Registration requires the current session (routes are behind the auth guard);
10
+ * credentials are RP-scoped, so entries registered on another hostname are
11
+ * badged and only useful there.
12
+ *
13
+ * `active` is "this tab is on screen": the list reloads when it becomes visible
14
+ * rather than on mount, so switching tabs picks up changes made elsewhere.
12
15
  */
13
- export function PasskeyPanel({ open, onClose, }) {
16
+ export function PasskeyTab({ active }) {
14
17
  const [credentials, setCredentials] = useState([]);
15
18
  const [loading, setLoading] = useState(false);
16
19
  const [busy, setBusy] = useState(false);
@@ -34,11 +37,11 @@ export function PasskeyPanel({ open, onClose, }) {
34
37
  }
35
38
  }
36
39
  useEffect(() => {
37
- if (open) {
40
+ if (active) {
38
41
  setError(null);
39
42
  void refresh();
40
43
  }
41
- }, [open]);
44
+ }, [active]);
42
45
  async function onAdd() {
43
46
  if (busy)
44
47
  return;
@@ -87,9 +90,9 @@ export function PasskeyPanel({ open, onClose, }) {
87
90
  window.location.reload();
88
91
  }
89
92
  }
90
- return (_jsx(SlidePanel, { open: open, onClose: onClose, title: "Security", children: _jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex-1 overflow-y-auto p-4", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Passkeys" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Sign in with Face ID, fingerprint, or a security key instead of the password. Passkeys only work on the site they were added on." }), loading ? (_jsx("div", { className: "mt-6 flex justify-center", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : (_jsxs("ul", { className: "mt-4 flex flex-col gap-2", children: [credentials.map((credential) => (_jsx(PasskeyRow, { credential: credential, onDelete: () => onDelete(credential.id), onRename: (label) => onRename(credential.id, label) }, credential.id))), credentials.length === 0 && passkeyMode && (_jsx("li", { className: "rounded-lg border border-dashed border-border-subtle p-4 text-center text-xs text-muted-foreground", children: "No passkeys yet." }))] })), error && (_jsx("p", { role: "alert", className: "mt-3 text-xs text-destructive", children: error })), passkeyMode && webAuthnSupported ? (_jsxs("button", { onClick: onAdd, disabled: busy, className: "mt-4 flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:brightness-110 disabled:opacity-50", children: [busy ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(Plus, { className: "h-4 w-4" })), "Add a passkey"] })) : (_jsx("p", { className: "mt-4 text-xs text-muted-foreground", children: passkeyMode
91
- ? "This browser does not support passkeys."
92
- : "Passkeys need password auth mode on the server." }))] }), _jsx("div", { className: "border-t border-border p-4", children: _jsxs("button", { onClick: onSignOut, className: "flex w-full items-center justify-center gap-2 rounded-lg border border-border-subtle bg-surface px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-destructive hover:text-destructive", children: [_jsx(LogOut, { className: "h-4 w-4" }), "Sign out"] }) })] }) }));
93
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex-1 overflow-y-auto p-4", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Passkeys" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Sign in with Face ID, fingerprint, or a security key instead of the password. Passkeys only work on the site they were added on." }), loading ? (_jsx("div", { className: "mt-6 flex justify-center", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : (_jsxs("ul", { className: "mt-4 flex flex-col gap-2", children: [credentials.map((credential) => (_jsx(PasskeyRow, { credential: credential, onDelete: () => onDelete(credential.id), onRename: (label) => onRename(credential.id, label) }, credential.id))), credentials.length === 0 && passkeyMode && (_jsx("li", { className: "rounded-lg border border-dashed border-border-subtle p-4 text-center text-xs text-muted-foreground", children: "No passkeys yet." }))] })), error && (_jsx("p", { role: "alert", className: "mt-3 text-xs text-destructive", children: error })), passkeyMode && webAuthnSupported ? (_jsxs("button", { onClick: onAdd, disabled: busy, className: "mt-4 flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:brightness-110 disabled:opacity-50", children: [busy ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(Plus, { className: "h-4 w-4" })), "Add a passkey"] })) : (_jsx("p", { className: "mt-4 text-xs text-muted-foreground", children: passkeyMode
94
+ ? "This browser does not support passkeys."
95
+ : "Passkeys need password auth mode on the server." }))] }), _jsx("div", { className: "border-t border-border p-4", children: _jsxs("button", { onClick: onSignOut, className: "flex w-full items-center justify-center gap-2 rounded-lg border border-border-subtle bg-surface px-4 py-2 text-sm font-medium text-foreground transition-colors hover:border-destructive hover:text-destructive", children: [_jsx(LogOut, { className: "h-4 w-4" }), "Sign out"] }) })] }));
93
96
  }
94
97
  function PasskeyRow({ credential, onDelete, onRename, }) {
95
98
  const [editing, setEditing] = useState(false);
@@ -115,4 +118,4 @@ function PasskeyRow({ credential, onDelete, onRename, }) {
115
118
  ? `Last used ${new Date(credential.lastUsedAt).toLocaleDateString()}`
116
119
  : `Added ${new Date(credential.createdAt).toLocaleDateString()}` })] })] }));
117
120
  }
118
- //# sourceMappingURL=passkey-panel.js.map
121
+ //# sourceMappingURL=passkey-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-tab.js","sourceRoot":"","sources":["../../../src/components/settings/passkey-tab.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The settings surface: one panel, one entry point in the menus, a tab per
3
+ * area. Only the selected tab is mounted — each fetches its own data on becoming
4
+ * active, so switching tabs (or reopening the panel) always shows current state.
5
+ */
6
+ export declare function SettingsPanel({ open, onClose, }: {
7
+ open: boolean;
8
+ onClose: () => void;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=settings-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-panel.d.ts","sourceRoot":"","sources":["../../../src/components/settings/settings-panel.tsx"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAqCA"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { KeyRound, SlidersHorizontal } from "lucide-react";
3
+ import { useUIStore } from "../../stores/ui-store.js";
4
+ import { SlidePanel } from "../layout/slide-panel.js";
5
+ import { cn } from "../../lib/utils.js";
6
+ import { ModelsTab } from "./models-tab.js";
7
+ import { PasskeyTab } from "./passkey-tab.js";
8
+ const TABS = [
9
+ { id: "models", label: "Models", icon: SlidersHorizontal },
10
+ { id: "security", label: "Security", icon: KeyRound },
11
+ ];
12
+ /**
13
+ * The settings surface: one panel, one entry point in the menus, a tab per
14
+ * area. Only the selected tab is mounted — each fetches its own data on becoming
15
+ * active, so switching tabs (or reopening the panel) always shows current state.
16
+ */
17
+ export function SettingsPanel({ open, onClose, }) {
18
+ const tab = useUIStore((s) => s.settingsTab);
19
+ const setTab = useUIStore((s) => s.setSettingsTab);
20
+ return (_jsx(SlidePanel, { open: open, onClose: onClose, title: "Settings", children: _jsxs("div", { className: "flex h-full flex-col", children: [_jsx("div", { className: "flex shrink-0 gap-1 border-b border-border px-2 pt-2", children: TABS.map(({ id, label, icon: Icon }) => (_jsxs("button", { onClick: () => setTab(id), "aria-selected": tab === id, role: "tab", className: cn("flex items-center gap-1.5 rounded-t-lg px-3 py-2 text-xs font-medium transition-colors", tab === id
21
+ ? "border-b-2 border-primary text-foreground"
22
+ : "text-muted-foreground hover:text-foreground"), children: [_jsx(Icon, { className: "h-3.5 w-3.5" }), label] }, id))) }), _jsx("div", { className: "min-h-0 flex-1", children: tab === "models" ? (_jsx(ModelsTab, { active: open && tab === "models" })) : (_jsx(PasskeyTab, { active: open && tab === "security" })) })] }) }));
23
+ }
24
+ //# sourceMappingURL=settings-panel.js.map