@hanzo/ui 8.27.15 → 8.27.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +19 -0
- package/dist/agents/Attachments.cjs +29 -0
- package/dist/agents/Attachments.d.ts +31 -0
- package/dist/agents/Attachments.d.ts.map +1 -0
- package/dist/agents/Attachments.js +27 -0
- package/dist/agents/Attachments.js.map +1 -0
- package/dist/agents/Choice.cjs +47 -0
- package/dist/agents/Choice.d.ts +34 -0
- package/dist/agents/Choice.d.ts.map +1 -0
- package/dist/agents/Choice.js +44 -0
- package/dist/agents/Choice.js.map +1 -0
- package/dist/agents/Console.cjs +106 -0
- package/dist/agents/Console.d.ts +54 -0
- package/dist/agents/Console.d.ts.map +1 -0
- package/dist/agents/Console.js +104 -0
- package/dist/agents/Console.js.map +1 -0
- package/dist/agents/Feedback.cjs +50 -0
- package/dist/agents/Feedback.d.ts +25 -0
- package/dist/agents/Feedback.d.ts.map +1 -0
- package/dist/agents/Feedback.js +48 -0
- package/dist/agents/Feedback.js.map +1 -0
- package/dist/agents/FileTabs.cjs +63 -0
- package/dist/agents/FileTabs.d.ts +45 -0
- package/dist/agents/FileTabs.d.ts.map +1 -0
- package/dist/agents/FileTabs.js +61 -0
- package/dist/agents/FileTabs.js.map +1 -0
- package/dist/agents/FileTree.cjs +160 -0
- package/dist/agents/FileTree.d.ts +41 -0
- package/dist/agents/FileTree.d.ts.map +1 -0
- package/dist/agents/FileTree.js +157 -0
- package/dist/agents/FileTree.js.map +1 -0
- package/dist/agents/PreviewFrame.cjs +108 -0
- package/dist/agents/PreviewFrame.d.ts +78 -0
- package/dist/agents/PreviewFrame.d.ts.map +1 -0
- package/dist/agents/PreviewFrame.js +105 -0
- package/dist/agents/PreviewFrame.js.map +1 -0
- package/dist/agents/Suggestions.cjs +29 -0
- package/dist/agents/Suggestions.d.ts +28 -0
- package/dist/agents/Suggestions.d.ts.map +1 -0
- package/dist/agents/Suggestions.js +26 -0
- package/dist/agents/Suggestions.js.map +1 -0
- package/dist/agents/Workspace.cjs +103 -0
- package/dist/agents/Workspace.d.ts +104 -0
- package/dist/agents/Workspace.d.ts.map +1 -0
- package/dist/agents/Workspace.js +98 -0
- package/dist/agents/Workspace.js.map +1 -0
- package/dist/agents/bridge.cjs +201 -0
- package/dist/agents/bridge.d.ts +102 -0
- package/dist/agents/bridge.d.ts.map +1 -0
- package/dist/agents/bridge.js +197 -0
- package/dist/agents/bridge.js.map +1 -0
- package/dist/agents/index.cjs +64 -1
- package/dist/agents/index.d.ts +23 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +23 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/log.cjs +75 -0
- package/dist/agents/log.d.ts +58 -0
- package/dist/agents/log.d.ts.map +1 -0
- package/dist/agents/log.js +65 -0
- package/dist/agents/log.js.map +1 -0
- package/dist/agents/tree.cjs +238 -0
- package/dist/agents/tree.d.ts +99 -0
- package/dist/agents/tree.d.ts.map +1 -0
- package/dist/agents/tree.js +226 -0
- package/dist/agents/tree.js.map +1 -0
- package/dist/backends/gui/3d-card.d.ts +6 -6
- package/dist/backends/gui/3d-marquee.d.ts +7 -8
- package/dist/backends/gui/3d-marquee.d.ts.map +1 -1
- package/dist/backends/gui/3d-pin.d.ts +1 -1
- package/dist/backends/gui/alert.d.ts +3 -3
- package/dist/backends/gui/android.d.ts +1 -1
- package/dist/backends/gui/animated-testimonials.d.ts +1 -1
- package/dist/backends/gui/animated-tooltip.d.ts +1 -1
- package/dist/backends/gui/announcement.d.ts +1 -1
- package/dist/backends/gui/banner.d.ts +1 -1
- package/dist/backends/gui/button.d.ts +1 -1
- package/dist/backends/gui/card.d.ts +7 -7
- package/dist/backends/gui/code-editor.cjs +2 -2
- package/dist/backends/gui/code-editor.d.ts +7 -1
- package/dist/backends/gui/code-editor.d.ts.map +1 -1
- package/dist/backends/gui/code-editor.js +2 -2
- package/dist/backends/gui/code-editor.js.map +1 -1
- package/dist/backends/gui/command.d.ts +5 -5
- package/dist/backends/gui/command.d.ts.map +1 -1
- package/dist/backends/gui/context-menu.d.ts +14 -14
- package/dist/backends/gui/context-menu.d.ts.map +1 -1
- package/dist/backends/gui/credit-card.d.ts +1 -1
- package/dist/backends/gui/desktop.d.ts +1 -1
- package/dist/backends/gui/dock.d.ts +3 -3
- package/dist/backends/gui/dropdown-menu.d.ts +16 -16
- package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
- package/dist/backends/gui/empty.d.ts +6 -6
- package/dist/backends/gui/field.d.ts +3 -3
- package/dist/backends/gui/gantt.d.ts +1 -1
- package/dist/backends/gui/grid-pattern.d.ts +1 -2
- package/dist/backends/gui/grid-pattern.d.ts.map +1 -1
- package/dist/backends/gui/image-zoom.d.ts +1 -1
- package/dist/backends/gui/iphone-15-pro.d.ts +1 -1
- package/dist/backends/gui/item.d.ts +9 -9
- package/dist/backends/gui/list.d.ts +2 -2
- package/dist/backends/gui/macos-dock.d.ts +2 -2
- package/dist/backends/gui/magnetic.d.ts +1 -1
- package/dist/backends/gui/marquee.d.ts +1 -15
- package/dist/backends/gui/marquee.d.ts.map +1 -1
- package/dist/backends/gui/menu-dock.d.ts +1 -1
- package/dist/backends/gui/menubar.d.ts +15 -15
- package/dist/backends/gui/menubar.d.ts.map +1 -1
- package/dist/backends/gui/message-dock.d.ts +1 -1
- package/dist/backends/gui/motion-highlight.d.ts +1 -12
- package/dist/backends/gui/motion-highlight.d.ts.map +1 -1
- package/dist/backends/gui/pagination.d.ts +4 -4
- package/dist/backends/gui/qr-code.d.ts +1 -2
- package/dist/backends/gui/qr-code.d.ts.map +1 -1
- package/dist/backends/gui/scroll-area.d.ts +3 -14
- package/dist/backends/gui/scroll-area.d.ts.map +1 -1
- package/dist/backends/gui/sheet.d.ts +3 -3
- package/dist/backends/gui/sheet.d.ts.map +1 -1
- package/dist/backends/gui/status.d.ts +1 -1
- package/dist/backends/gui/table.d.ts +8 -8
- package/dist/backends/gui/toaster.d.ts +1 -15
- package/dist/backends/gui/toaster.d.ts.map +1 -1
- package/dist/backends/gui/toggle.d.ts +1 -1
- package/dist/backends/gui/video-player.d.ts +1 -1
- package/dist/chat/Composer.cjs +60 -9
- package/dist/chat/Composer.d.ts +42 -2
- package/dist/chat/Composer.d.ts.map +1 -1
- package/dist/chat/Composer.js +61 -11
- package/dist/chat/Composer.js.map +1 -1
- package/dist/chat/EmptyPrompt.cjs +27 -0
- package/dist/chat/EmptyPrompt.d.ts +30 -0
- package/dist/chat/EmptyPrompt.d.ts.map +1 -0
- package/dist/chat/EmptyPrompt.js +24 -0
- package/dist/chat/EmptyPrompt.js.map +1 -0
- package/dist/chat/SessionRail.cjs +97 -0
- package/dist/chat/SessionRail.d.ts +97 -0
- package/dist/chat/SessionRail.d.ts.map +1 -0
- package/dist/chat/SessionRail.js +94 -0
- package/dist/chat/SessionRail.js.map +1 -0
- package/dist/chat/Thread.d.ts +2 -8
- package/dist/chat/Thread.d.ts.map +1 -1
- package/dist/chat/index.cjs +8 -1
- package/dist/chat/index.d.ts +3 -1
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/index.js +3 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/gallery.cjs +28 -1
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +71 -3
- package/dist/gallery.js +30 -3
- package/dist/gallery.js.map +1 -1
- package/dist/product/BranchSelect.cjs +27 -0
- package/dist/product/BranchSelect.d.ts +27 -0
- package/dist/product/BranchSelect.d.ts.map +1 -0
- package/dist/product/BranchSelect.js +23 -0
- package/dist/product/BranchSelect.js.map +1 -0
- package/dist/product/ChipSelect.cjs +267 -0
- package/dist/product/ChipSelect.d.ts +71 -0
- package/dist/product/ChipSelect.d.ts.map +1 -0
- package/dist/product/ChipSelect.js +265 -0
- package/dist/product/ChipSelect.js.map +1 -0
- package/dist/product/RepoSelect.cjs +75 -0
- package/dist/product/RepoSelect.d.ts +63 -0
- package/dist/product/RepoSelect.d.ts.map +1 -0
- package/dist/product/RepoSelect.js +69 -0
- package/dist/product/RepoSelect.js.map +1 -0
- package/dist/product/chipSelect.logic.cjs +147 -0
- package/dist/product/chipSelect.logic.d.ts +92 -0
- package/dist/product/chipSelect.logic.d.ts.map +1 -0
- package/dist/product/chipSelect.logic.js +138 -0
- package/dist/product/chipSelect.logic.js.map +1 -0
- package/dist/product/index.cjs +23 -1
- package/dist/product/index.d.ts +4 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +7 -0
- package/dist/product/index.js.map +1 -1
- package/dist/styles.css +68 -0
- package/package.json +2 -1
package/dist/gallery.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { XStack, YStack } from '@hanzo/gui';
|
|
4
4
|
import { Box } from './box.js';
|
|
5
5
|
import { Workbench } from './product/Workbench.js';
|
|
@@ -9,10 +9,14 @@ import { ProjectThumb } from './product/ProjectThumb.js';
|
|
|
9
9
|
import { Split } from './product/Split.js';
|
|
10
10
|
import { TooltipAnchor } from './product/TooltipAnchor.js';
|
|
11
11
|
import { DialogTemplate } from './product/DialogTemplate.js';
|
|
12
|
-
import {
|
|
12
|
+
import { ChipSelect } from './product/ChipSelect.js';
|
|
13
|
+
import { RepoSelect } from './product/RepoSelect.js';
|
|
14
|
+
import { BranchSelect } from './product/BranchSelect.js';
|
|
15
|
+
import { Aside, AsideToggle, Code, Chat, Composer, ComposerTool, EmptyPrompt, Failure, Header as ChatHeader, Message, ShareButton, Step, Sidebar, SidebarFolder, SidebarHeader, SidebarItem, SidebarNewChat, SidebarScroll, SidebarSection, SidebarUser, SessionRail, Sources, Thread, } from './chat/index.js';
|
|
13
16
|
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuTrigger, HoverCard, HoverCardContent, HoverCardTrigger, RadioGroup, RadioGroupItem, ToggleGroup, ToggleGroupItem, AspectRatio, Avatar, AvatarFallback, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Input, Label, Popover, PopoverContent, PopoverTrigger, Progress, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Separator, Slider, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Band, CardMedia, CommandDialog, Spinner, Text, Screen, Fill, } from './backends/gui/index.js';
|
|
14
17
|
// Off the barrel — web-only, so it is imported the way a consumer imports it.
|
|
15
18
|
import { Cell, Grid } from './grid.js';
|
|
19
|
+
import { Attachments, CHAT, Console, DEVICES, Feedback, FileTabs, FileTree, ModeSelect, PageSelect, PreviewFrame, ProjectChip, Suggestions, SUGGESTIONS, VIEWS, Views, Workspace, } from './agents/index.js';
|
|
16
20
|
/** A real <img> with real intrinsic pixels, inline so nothing hits the network.
|
|
17
21
|
* 120x40 on purpose: the wrong ratio for every box it goes in, so a frame that
|
|
18
22
|
* fails to cover-fit its child is visible rather than merely untested. */
|
|
@@ -34,6 +38,16 @@ const TURNS = [
|
|
|
34
38
|
];
|
|
35
39
|
/** The chat shell is callbacks-out, and this list only needs them to exist. */
|
|
36
40
|
const NOOP = () => { };
|
|
41
|
+
/** The sessions a rail lists: every status, because each draws its own dot. */
|
|
42
|
+
const SESSIONS = [
|
|
43
|
+
{ id: 's1', title: 'Rolling update and bootstrap CD', status: 'running' },
|
|
44
|
+
{ id: 's2', title: 'Reset to 2025 version', status: 'done' },
|
|
45
|
+
{ id: 's3', title: 'Paused audit', status: 'paused' },
|
|
46
|
+
{ id: 's4', title: 'Enterprise/OSS feature audit', status: 'error' },
|
|
47
|
+
{ id: 's5', title: 'Idle one', status: 'idle' },
|
|
48
|
+
];
|
|
49
|
+
/** A loader that never needs to answer — the chips render closed. */
|
|
50
|
+
const NONE = async () => ({ repos: [], branches: [], items: [] });
|
|
37
51
|
/** Two: one with a host and one without, so the card's second line and its
|
|
38
52
|
* letter fallback are both rendered rules. */
|
|
39
53
|
const SOURCES = [
|
|
@@ -85,6 +99,19 @@ export const Gallery = () => (_jsxs("div", { style: { display: 'flex', flexDirec
|
|
|
85
99
|
tabs: [
|
|
86
100
|
{ id: 'console', title: 'Console', closable: false, content: _jsx(CardTitle, { children: "console" }) },
|
|
87
101
|
],
|
|
88
|
-
}, children: _jsx(CardTitle, { children: "center" }) }) }) }), _jsxs(Section, { name: "product-arrangements", children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, width: '100%', maxWidth: 320 }, children: [_jsx(Skeleton, { width: 120 }), _jsx(Skeleton, { width: "100%", height: 72, rounded: "$4" }), _jsx(Skeleton.Text, { lines: 3 })] }), _jsx(TooltipAnchor, { description: "Delete this agent", children: _jsx(Button, { children: "hinted" }) }), _jsx(Dialog, { open: true, children: _jsx(DialogTemplate, { title: "Delete agent", description: "This removes every run recorded against it.", confirm: { label: 'Delete', tone: 'danger' }, children: _jsx(CardTitle, { children: "body" }) }) })] }), _jsxs(Section, { name: "chat", children: [_jsxs(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: [_jsxs(ChatHeader, { title: "A conversation with a long enough name to clamp", leading: _jsx(AsideToggle, {}), onOpenMenu: NOOP, children: [_jsx(ShareButton, {}), _jsx(AsideToggle, {})] }), _jsx(Fill, { children: _jsx(Message, { role: "user", children: "plain Fill \u2014 the middle, without a Thread" }) }), _jsxs(Thread, { children: [_jsx(Message, { role: "user", children: "ask" }), _jsxs(Message, { role: "assistant", icon: _jsx(Spinner, {}), actions: _jsx(Badge, { children: "copy" }), children: [_jsx(Step, { name: "shell", status: "running", detail: "git status --porcelain" }), _jsx(Step, { name: "write", status: "done", detail: "src/index.ts", defaultOpen: true, children: _jsx(Code, { language: "json", value: "{}", children: '{}' }) }), _jsx(Step, { name: "fetch", status: "error", detail: "timed out", children: "plain body" }), _jsx(Step, { name: "plan", status: "cancelled" }), _jsx(Code, { language: "typescript", value: "const x = 1", children: "const x = 1" }), _jsx(Sources, { sources: SOURCES })] }), _jsx(Message, { role: "assistant", busy: true, children: "answering" }), _jsx(Message, { role: "assistant", children: _jsx(Failure, { onRetry: NOOP, children: "The model stopped before finishing." }) }), _jsx(Message, { role: "assistant", children: _jsx(Failure, { children: "Rate limited." }) }), _jsx(Message, { role: "user", body: { bg: '$color5', rounded: '$3' }, children: "restyled bubble" }), _jsx(Message, { role: "system", children: "note" })] }), _jsx(Composer, { value: "a draft", onChange: NOOP, onSend: NOOP, hint: "Enter to send", children: _jsx(Badge, { children: "tool" }) }), _jsx(Composer, { value: "", onChange: NOOP, onSend: NOOP, onStop: NOOP, busy: true })] }), _jsx(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: _jsx(Chat, { messages: TURNS, streaming: true, send: NOOP, stop: NOOP, composer: { placeholder: 'Ask anything' } }) }), _jsx(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: _jsx(Chat, { messages: [], send: NOOP, empty: _jsx(Message, { role: "system", children: "nothing yet" }) }) }), _jsx(Aside, { children: _jsx(Sources, { sources: SOURCES }) }), _jsx("div", { style: { display: 'flex', width: '100%', maxWidth: 260, height: 320 }, children: _jsxs(Sidebar, { children: [_jsx(SidebarHeader, { title: "Hanzo", onOpenSwitcher: NOOP, onSearch: NOOP, onCollapse: NOOP }), _jsx(SidebarNewChat, { onPress: NOOP }), _jsxs(SidebarScroll, { children: [_jsxs(SidebarSection, { label: "Today", children: [_jsx(SidebarItem, { active: true, onPress: NOOP, children: "Selected thread" }), _jsx(SidebarItem, { onPress: NOOP, children: "Another thread" })] }), _jsx(SidebarFolder, { name: "Archive", defaultOpen: true, children: _jsx(SidebarItem, { onPress: NOOP, children: "Nested thread" }) })] }), _jsx(SidebarUser, { name: "z", secondary: "z@hanzo.ai", onPress: NOOP, onHelp: NOOP })] }) })] }), _jsxs(Section, { name: "
|
|
102
|
+
}, children: _jsx(CardTitle, { children: "center" }) }) }) }), _jsxs(Section, { name: "product-arrangements", children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, width: '100%', maxWidth: 320 }, children: [_jsx(Skeleton, { width: 120 }), _jsx(Skeleton, { width: "100%", height: 72, rounded: "$4" }), _jsx(Skeleton.Text, { lines: 3 })] }), _jsx(TooltipAnchor, { description: "Delete this agent", children: _jsx(Button, { children: "hinted" }) }), _jsx(Dialog, { open: true, children: _jsx(DialogTemplate, { title: "Delete agent", description: "This removes every run recorded against it.", confirm: { label: 'Delete', tone: 'danger' }, children: _jsx(CardTitle, { children: "body" }) }) })] }), _jsxs(Section, { name: "chat", children: [_jsxs(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: [_jsxs(ChatHeader, { title: "A conversation with a long enough name to clamp", leading: _jsx(AsideToggle, {}), onOpenMenu: NOOP, children: [_jsx(ShareButton, {}), _jsx(AsideToggle, {})] }), _jsx(Fill, { children: _jsx(Message, { role: "user", children: "plain Fill \u2014 the middle, without a Thread" }) }), _jsxs(Thread, { children: [_jsx(Message, { role: "user", children: "ask" }), _jsxs(Message, { role: "assistant", icon: _jsx(Spinner, {}), actions: _jsx(Badge, { children: "copy" }), children: [_jsx(Step, { name: "shell", status: "running", detail: "git status --porcelain" }), _jsx(Step, { name: "write", status: "done", detail: "src/index.ts", defaultOpen: true, children: _jsx(Code, { language: "json", value: "{}", children: '{}' }) }), _jsx(Step, { name: "fetch", status: "error", detail: "timed out", children: "plain body" }), _jsx(Step, { name: "plan", status: "cancelled" }), _jsx(Code, { language: "typescript", value: "const x = 1", children: "const x = 1" }), _jsx(Sources, { sources: SOURCES })] }), _jsx(Message, { role: "assistant", busy: true, children: "answering" }), _jsx(Message, { role: "assistant", children: _jsx(Failure, { onRetry: NOOP, children: "The model stopped before finishing." }) }), _jsx(Message, { role: "assistant", children: _jsx(Failure, { children: "Rate limited." }) }), _jsx(Message, { role: "user", body: { bg: '$color5', rounded: '$3' }, children: "restyled bubble" }), _jsx(Message, { role: "system", children: "note" })] }), _jsx(Composer, { value: "a draft", onChange: NOOP, onSend: NOOP, hint: "Enter to send", children: _jsx(Badge, { children: "tool" }) }), _jsx(Composer, { value: "", onChange: NOOP, onSend: NOOP, onStop: NOOP, busy: true })] }), _jsx(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: _jsx(Chat, { messages: TURNS, streaming: true, send: NOOP, stop: NOOP, composer: { placeholder: 'Ask anything' } }) }), _jsx(Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: _jsx(Chat, { messages: [], send: NOOP, empty: _jsx(Message, { role: "system", children: "nothing yet" }) }) }), _jsx(Aside, { children: _jsx(Sources, { sources: SOURCES }) }), _jsx("div", { style: { display: 'flex', width: '100%', maxWidth: 260, height: 320 }, children: _jsxs(Sidebar, { children: [_jsx(SidebarHeader, { title: "Hanzo", onOpenSwitcher: NOOP, onSearch: NOOP, onCollapse: NOOP }), _jsx(SidebarNewChat, { onPress: NOOP }), _jsxs(SidebarScroll, { children: [_jsxs(SidebarSection, { label: "Today", children: [_jsx(SidebarItem, { active: true, onPress: NOOP, children: "Selected thread" }), _jsx(SidebarItem, { onPress: NOOP, children: "Another thread" })] }), _jsx(SidebarFolder, { name: "Archive", defaultOpen: true, children: _jsx(SidebarItem, { onPress: NOOP, children: "Nested thread" }) })] }), _jsx(SidebarUser, { name: "z", secondary: "z@hanzo.ai", onPress: NOOP, onHelp: NOOP })] }) })] }), _jsxs(Section, { name: "workspace", children: [_jsx("div", { style: { display: 'flex', width: '100%', height: 420 }, children: _jsx(Workspace, { start: _jsx(ProjectChip, { name: "MEGA Shop", onPress: NOOP }), middle: _jsxs(_Fragment, { children: [_jsx(Views, { views: [...VIEWS, CHAT], value: "preview", onChange: NOOP, label: "Editor view" }), _jsx(Views, { views: DEVICES, value: "desktop", onChange: NOOP, label: "Device", labels: "none" }), _jsx(PageSelect, { pages: [{ id: '/', label: 'Homepage' }], value: "/", onChange: NOOP })] }), end: _jsx(Button, { size: "sm", children: "Publish" }), chat: _jsxs(_Fragment, { children: [_jsx(Suggestions, { items: SUGGESTIONS, onPick: NOOP, onDismiss: NOOP }), _jsx(Attachments, { items: [
|
|
103
|
+
{ id: 'a', kind: 'file', label: 'src/app.tsx' },
|
|
104
|
+
{ id: 'b', kind: 'element', label: '<button> .cta' },
|
|
105
|
+
{ id: 'c', kind: 'upload', label: 'shot.png' },
|
|
106
|
+
], onRemove: NOOP }), _jsx(Feedback, { text: "reply", verdict: "up", onVerdict: NOOP }), _jsx(ModeSelect, { modes: [{ id: 'build', label: 'Build' }, { id: 'plan', label: 'Plan' }], value: "build", onChange: NOOP })] }), dock: _jsx(Console, { lines: [
|
|
107
|
+
{ id: 1, level: 'log', text: 'log', source: 'run' },
|
|
108
|
+
{ id: 2, level: 'info', text: 'info' },
|
|
109
|
+
{ id: 3, level: 'warn', text: 'warn' },
|
|
110
|
+
{ id: 4, level: 'error', text: 'error' },
|
|
111
|
+
{ id: 5, level: 'debug', text: 'debug' },
|
|
112
|
+
], height: 200, onHeight: NOOP, onClear: NOOP, onRun: NOOP }), children: _jsx(PreviewFrame, { src: "https://hanzo.ai/", toolbar: _jsx(Button, { size: "icon-sm", variant: "ghost", children: "+" }) }) }) }), _jsx("div", { style: { display: 'flex', width: 280, height: 240 }, children: _jsx(FileTree, { files: ['src/app.tsx', 'src/lib/a.ts', 'README.md'], value: "src/lib/a.ts", onSelect: NOOP }) }), _jsx("div", { style: { display: 'flex', width: 360, height: 240 }, children: _jsx(FileTabs, { files: [
|
|
113
|
+
{ path: 'src/app.tsx', content: 'export {}', dirty: true },
|
|
114
|
+
{ path: 'big.bin', error: 'Too large to show here.' },
|
|
115
|
+
], value: "src/app.tsx", onSelect: NOOP, onClose: NOOP, onChange: NOOP }) }), _jsx("div", { style: { display: 'flex', width: 280, height: 160 }, children: _jsx(PreviewFrame, { src: null }) }), _jsx("div", { style: { display: 'flex', width: 360 }, children: _jsx(Console, { lines: [], height: 36, onHeight: NOOP }) })] }), _jsxs(Section, { name: "sessions", children: [_jsxs("div", { style: { display: 'flex', width: '100%', maxWidth: 560, height: 420, gap: 12 }, children: [_jsx(SessionRail, { onNew: NOOP, fresh: true, links: [{ id: 'a', label: 'Artifacts', icon: _jsx(Badge, { children: "a" }) }], more: [{ id: 'p', label: 'Projects', icon: _jsx(Badge, { children: "p" }) }], recents: SESSIONS, active: "s2", onOpen: NOOP, onSort: NOOP, account: { name: 'z@hanzo.ai', onPress: NOOP }, onSettings: NOOP, onSearch: NOOP, onCollapse: NOOP }), _jsx(SessionRail, { onNew: NOOP, recents: SESSIONS, onOpen: NOOP, collapsed: true, onCollapse: NOOP, account: { name: 'z' } })] }), _jsx(EmptyPrompt, { mark: _jsx(Badge, { children: "h" }) }), _jsx("div", { style: { width: '100%', maxWidth: 768 }, children: _jsx(Composer, { inline: true, value: "", onChange: NOOP, onSend: NOOP, placeholder: "Describe a task or ask a question", head: _jsxs(_Fragment, { children: [_jsx(ChipSelect, { name: "Environment", label: "Default", onChange: NOOP, items: [] }), _jsx(RepoSelect, { value: { owner: 'hanzo-inc', name: 'cloud' }, onChange: NOOP, load: NONE }), _jsx(BranchSelect, { value: "main", onChange: NOOP, load: NONE }), _jsx(ChipSelect, { name: "Disabled", label: "off", onChange: NOOP, items: [], disabled: true })] }), foot: _jsxs(_Fragment, { children: [_jsx(ComposerTool, { label: "Attach", icon: _jsx(Badge, { children: "+" }), onPress: NOOP }), _jsx(ComposerTool, { label: "Mode", text: "Auto", caret: true, onPress: NOOP }), _jsx(ComposerTool, { label: "Disabled", text: "off", disabled: true }), _jsx(XStack, { flex: 1 }), _jsx(ChipSelect, { name: "Model", label: "Zen 5", onChange: NOOP, items: [], quiet: true })] }) }) }), _jsx("div", { style: { width: '100%', maxWidth: 768 }, children: _jsx(Composer, { inline: true, value: "a draft", onChange: NOOP, onSend: NOOP, onStop: NOOP, busy: true }) })] }), _jsxs(Section, { name: "box", children: [_jsx(XStack, { items: "center", gap: 16, px: 24, py: 12, rounded: "var(--radius-lg, 0.75rem)", borderWidth: 1, children: _jsx(CardTitle, { children: "utility classes" }) }), _jsx(YStack, { gap: 8, maxW: 768, ml: "auto", mr: "auto", overflow: "hidden", children: _jsx(CardTitle, { children: "column" }) })] })] }));
|
|
89
116
|
export default Gallery;
|
|
90
117
|
//# sourceMappingURL=gallery.js.map
|
package/dist/gallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gallery.js","sourceRoot":"","sources":["../src/gallery.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gallery.js","sourceRoot":"","sources":["../src/gallery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.branchName = void 0;
|
|
5
|
+
exports.BranchSelect = BranchSelect;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
/**
|
|
8
|
+
* BranchSelect — which branch a run starts from, as a composer chip.
|
|
9
|
+
*
|
|
10
|
+
* A `ChipSelect` over branch names: the chosen branch pinned first with a
|
|
11
|
+
* check, the rest as the host's loader pages them, and the search at the foot.
|
|
12
|
+
* Like `RepoSelect` it knows no git host — the loader is the host's.
|
|
13
|
+
*/
|
|
14
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
15
|
+
const react_1 = require("react");
|
|
16
|
+
const ChipSelect_1 = require("./ChipSelect.cjs");
|
|
17
|
+
/** The name, whichever shape the row came in. */
|
|
18
|
+
const branchName = (b) => (typeof b === 'string' ? b : b.name);
|
|
19
|
+
exports.branchName = branchName;
|
|
20
|
+
const item = (name) => ({ id: name, label: name });
|
|
21
|
+
function BranchSelect({ value = null, onChange, load, footer, placement, disabled, open, onOpenChange, }) {
|
|
22
|
+
const pages = (0, react_1.useCallback)(async (q, after) => {
|
|
23
|
+
const page = await load(q, after);
|
|
24
|
+
return { items: page.branches.map((b) => item((0, exports.branchName)(b))), next: page.next ?? null };
|
|
25
|
+
}, [load]);
|
|
26
|
+
return ((0, jsx_runtime_1.jsx)(ChipSelect_1.ChipSelect, { name: "Branch", icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GitBranch, { size: 12, color: "$soft" }), label: value ?? 'Branch', chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: "Search branches\u2026", empty: "No branches match.", footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type ChipPlacement } from './ChipSelect.js';
|
|
3
|
+
/** A branch, as a host's API tends to answer it: a bare name, or a row carrying one. */
|
|
4
|
+
export type Branch = string | {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
/** One page of branches. */
|
|
8
|
+
export type BranchLoad = (q: string, after?: string | null) => Promise<{
|
|
9
|
+
branches: Branch[];
|
|
10
|
+
next?: string | null;
|
|
11
|
+
}>;
|
|
12
|
+
/** The name, whichever shape the row came in. */
|
|
13
|
+
export declare const branchName: (b: Branch) => string;
|
|
14
|
+
export interface BranchSelectProps {
|
|
15
|
+
/** The chosen branch. */
|
|
16
|
+
value?: string | null;
|
|
17
|
+
onChange: (branch: string) => void;
|
|
18
|
+
load: BranchLoad;
|
|
19
|
+
/** Under the list — why a branch might be missing. */
|
|
20
|
+
footer?: ReactNode;
|
|
21
|
+
placement?: ChipPlacement;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
open?: boolean;
|
|
24
|
+
onOpenChange?: (open: boolean) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function BranchSelect({ value, onChange, load, footer, placement, disabled, open, onOpenChange, }: BranchSelectProps): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=BranchSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchSelect.d.ts","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG7D,wFAAwF;AACxF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9C,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEpH,iDAAiD;AACjD,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,MAA8C,CAAA;AAErF,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAID,wBAAgB,YAAY,CAAC,EAC3B,KAAY,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,EAAE,iBAAiB,+BA0BnB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* BranchSelect — which branch a run starts from, as a composer chip.
|
|
5
|
+
*
|
|
6
|
+
* A `ChipSelect` over branch names: the chosen branch pinned first with a
|
|
7
|
+
* check, the rest as the host's loader pages them, and the search at the foot.
|
|
8
|
+
* Like `RepoSelect` it knows no git host — the loader is the host's.
|
|
9
|
+
*/
|
|
10
|
+
import { GitBranch } from '@hanzogui/lucide-icons-2';
|
|
11
|
+
import { useCallback } from 'react';
|
|
12
|
+
import { ChipSelect } from './ChipSelect.js';
|
|
13
|
+
/** The name, whichever shape the row came in. */
|
|
14
|
+
export const branchName = (b) => (typeof b === 'string' ? b : b.name);
|
|
15
|
+
const item = (name) => ({ id: name, label: name });
|
|
16
|
+
export function BranchSelect({ value = null, onChange, load, footer, placement, disabled, open, onOpenChange, }) {
|
|
17
|
+
const pages = useCallback(async (q, after) => {
|
|
18
|
+
const page = await load(q, after);
|
|
19
|
+
return { items: page.branches.map((b) => item(branchName(b))), next: page.next ?? null };
|
|
20
|
+
}, [load]);
|
|
21
|
+
return (_jsx(ChipSelect, { name: "Branch", icon: _jsx(GitBranch, { size: 12, color: "$soft" }), label: value ?? 'Branch', chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: "Search branches\u2026", empty: "No branches match.", footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=BranchSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchSelect.js","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAkB,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAA;AAS7D,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAerF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAEpE,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GAAG,IAAI,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACM;IAClB,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,CAAS,EAAE,KAAqB,EAA+B,EAAE;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAA;IAC1F,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG,EAC3C,KAAK,EAAE,KAAK,IAAI,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC/B,IAAI,EAAE,KAAK,EACX,WAAW,EAAC,uBAAkB,EAC9B,KAAK,EAAC,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ChipSelect = ChipSelect;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
/**
|
|
7
|
+
* ChipSelect — a small chip that opens a searchable list, UPWARD by default.
|
|
8
|
+
*
|
|
9
|
+
* The shape a composer's context row needs: `☁ Default` · `</> cloud` ·
|
|
10
|
+
* `⑂ main`, each a chip, each a choice over a list too long to show whole.
|
|
11
|
+
* The panel opens above the chip (a composer sits at the bottom of the pane),
|
|
12
|
+
* the chosen row is pinned first with a check, the list scrolls, a footer can
|
|
13
|
+
* explain what is missing, and the search sits at the BOTTOM — next to the chip
|
|
14
|
+
* the reader just pressed, which is where their eyes already are.
|
|
15
|
+
*
|
|
16
|
+
* DATA IS A LOADER OR A LIST, NEVER AN API. `load(q, after)` answers one page at
|
|
17
|
+
* a time and the component pages it: a debounced search starts over, reaching
|
|
18
|
+
* the end of the list asks for the page after. Or `items` is the whole list and
|
|
19
|
+
* the search is applied here. Nothing in this file knows what a repository is.
|
|
20
|
+
*
|
|
21
|
+
* The pieces with the rules in them — paging, pinning, the cursor — are pure and
|
|
22
|
+
* live in `chipSelect.logic.ts`, tested without a DOM. Portalling, dismissal
|
|
23
|
+
* and focus trapping are the package `Popover`'s, not reimplemented here.
|
|
24
|
+
*
|
|
25
|
+
* ARIA: the chip is a button that opens a listbox; the search field is the
|
|
26
|
+
* combobox and owns the cursor through `aria-activedescendant`, so focus never
|
|
27
|
+
* leaves the field while the arrow keys move through the rows. `aria-selected`
|
|
28
|
+
* marks the chosen row. Closing returns focus to the chip.
|
|
29
|
+
*/
|
|
30
|
+
const gui_1 = require("@hanzo/gui");
|
|
31
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
32
|
+
const react_1 = require("react");
|
|
33
|
+
const popover_1 = require("../backends/gui/popover.cjs");
|
|
34
|
+
const slot_1 = require("../backends/gui/slot.cjs");
|
|
35
|
+
const chipSelect_logic_1 = require("./chipSelect.logic.cjs");
|
|
36
|
+
/** One row's height, px — a line of 13px type with room to breathe. */
|
|
37
|
+
const ROW_H = 24;
|
|
38
|
+
/** The chip: 24px, a hairline, the raised fill. */
|
|
39
|
+
const CHIP_H = 24;
|
|
40
|
+
/** The keyboard focus ring every control in the package draws. */
|
|
41
|
+
const RING = { outlineColor: '$outlineColor', outlineWidth: 2, outlineStyle: 'solid' };
|
|
42
|
+
const MOVES = new Set(['ArrowDown', 'ArrowUp', 'Home', 'End', 'PageDown', 'PageUp']);
|
|
43
|
+
/** Text a keystroke types, or null for a key that types nothing. */
|
|
44
|
+
const typed = (e) => e.key && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey ? e.key : null;
|
|
45
|
+
/**
|
|
46
|
+
* Pages of a loader, for one search at a time.
|
|
47
|
+
*
|
|
48
|
+
* Every request carries the search generation it was made for, and an answer
|
|
49
|
+
* for any older generation is dropped — so a slow page for "clo" can never land
|
|
50
|
+
* under the results for "cloud".
|
|
51
|
+
*/
|
|
52
|
+
function usePages(load, q, delay, on) {
|
|
53
|
+
const [state, setState] = (0, react_1.useState)({ rows: [], next: null, loading: false, error: null });
|
|
54
|
+
const generation = (0, react_1.useRef)(0);
|
|
55
|
+
const busy = (0, react_1.useRef)(false);
|
|
56
|
+
// The loader is read at call time, not taken as a dependency: a host that
|
|
57
|
+
// passes an inline function hands over a new one every render, and keying the
|
|
58
|
+
// fetch on its identity would refetch on every render.
|
|
59
|
+
const loader = (0, react_1.useRef)(load);
|
|
60
|
+
loader.current = load;
|
|
61
|
+
const search = (0, react_1.useRef)(q);
|
|
62
|
+
search.current = q;
|
|
63
|
+
const fetch = (0, react_1.useCallback)((after, gen) => {
|
|
64
|
+
const read = loader.current;
|
|
65
|
+
if (!read)
|
|
66
|
+
return;
|
|
67
|
+
busy.current = true;
|
|
68
|
+
setState((s) => ({ ...s, loading: true, error: null }));
|
|
69
|
+
read(search.current, after).then((page) => {
|
|
70
|
+
if (gen !== generation.current)
|
|
71
|
+
return;
|
|
72
|
+
busy.current = false;
|
|
73
|
+
setState((s) => ({
|
|
74
|
+
rows: after ? (0, chipSelect_logic_1.merge)(s.rows, page.items) : (0, chipSelect_logic_1.merge)([], page.items),
|
|
75
|
+
next: page.next ?? null,
|
|
76
|
+
loading: false,
|
|
77
|
+
error: null,
|
|
78
|
+
}));
|
|
79
|
+
}, (err) => {
|
|
80
|
+
if (gen !== generation.current)
|
|
81
|
+
return;
|
|
82
|
+
busy.current = false;
|
|
83
|
+
setState((s) => ({
|
|
84
|
+
...s,
|
|
85
|
+
loading: false,
|
|
86
|
+
error: err instanceof Error && err.message ? err.message : 'Could not load the list.',
|
|
87
|
+
}));
|
|
88
|
+
});
|
|
89
|
+
}, []);
|
|
90
|
+
const live = Boolean(load);
|
|
91
|
+
// A new search, or opening: start over after the debounce. The first page of
|
|
92
|
+
// an empty search is asked for at once — there is nothing typed to wait for.
|
|
93
|
+
(0, react_1.useEffect)(() => {
|
|
94
|
+
if (!on || !live)
|
|
95
|
+
return;
|
|
96
|
+
const gen = ++generation.current;
|
|
97
|
+
busy.current = false;
|
|
98
|
+
const wait = q.trim() ? delay : 0;
|
|
99
|
+
const timer = setTimeout(() => fetch(null, gen), wait);
|
|
100
|
+
return () => clearTimeout(timer);
|
|
101
|
+
}, [on, live, q, delay, fetch]);
|
|
102
|
+
const more = (0, react_1.useCallback)(() => {
|
|
103
|
+
if (busy.current || !state.next)
|
|
104
|
+
return;
|
|
105
|
+
fetch(state.next, generation.current);
|
|
106
|
+
}, [fetch, state.next]);
|
|
107
|
+
const retry = (0, react_1.useCallback)(() => fetch(null, ++generation.current), [fetch]);
|
|
108
|
+
return { ...state, more, retry };
|
|
109
|
+
}
|
|
110
|
+
function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, more: hasMore = false, onMore, loading: loadingProp = false, error: errorProp = null, delay = 200, placeholder = 'Search…', empty = 'No matches.', footer, cta, action, placement = 'top-start', width = 320, height = 276, disabled = false, quiet = false, open: openProp, onOpenChange, }) {
|
|
111
|
+
const [own, setOwn] = (0, react_1.useState)(false);
|
|
112
|
+
const open = openProp ?? own;
|
|
113
|
+
const setOpen = (0, react_1.useCallback)((next) => {
|
|
114
|
+
if (openProp === undefined)
|
|
115
|
+
setOwn(next);
|
|
116
|
+
onOpenChange?.(next);
|
|
117
|
+
}, [openProp, onOpenChange]);
|
|
118
|
+
const [q, setQ] = (0, react_1.useState)('');
|
|
119
|
+
const [at, setAt] = (0, react_1.useState)(-1);
|
|
120
|
+
const chip = (0, react_1.useRef)(null);
|
|
121
|
+
const field = (0, react_1.useRef)(null);
|
|
122
|
+
const list = (0, react_1.useRef)(null);
|
|
123
|
+
const id = (0, react_1.useId)();
|
|
124
|
+
const listId = `${id}-list`;
|
|
125
|
+
const hintId = `${id}-hint`;
|
|
126
|
+
const optionId = (i) => `${id}-opt-${i}`;
|
|
127
|
+
const pages = usePages(load, q, delay, open);
|
|
128
|
+
// Sized once per open, from what is known then — see `frame`.
|
|
129
|
+
const [tall, setTall] = (0, react_1.useState)(height);
|
|
130
|
+
(0, react_1.useEffect)(() => {
|
|
131
|
+
if (open)
|
|
132
|
+
setTall((0, chipSelect_logic_1.frame)({ pending: Boolean(load) || loadingProp, count: (items?.length ?? 0) + (chosen ? 1 : 0), row: ROW_H, ceiling: height }));
|
|
133
|
+
// Only at open: a panel that resized while open would leave its placement.
|
|
134
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
|
+
}, [open]);
|
|
136
|
+
// What is drawn: the loader's rows as answered, or the given list narrowed
|
|
137
|
+
// here — then the chosen row pinned on top while the search could match it.
|
|
138
|
+
const rows = (0, react_1.useMemo)(() => {
|
|
139
|
+
const base = load ? pages.rows : (0, chipSelect_logic_1.narrow)(items ?? [], q);
|
|
140
|
+
return (0, chipSelect_logic_1.pin)(base, chosen, q);
|
|
141
|
+
}, [load, pages.rows, items, q, chosen]);
|
|
142
|
+
const next = load ? pages.next : hasMore ? 'more' : null;
|
|
143
|
+
const loading = load ? pages.loading : loadingProp;
|
|
144
|
+
const error = load ? pages.error : errorProp;
|
|
145
|
+
const askMore = load ? pages.more : () => onMore?.();
|
|
146
|
+
// Opening lands the cursor on the chosen row (pinned at 0) or the first one.
|
|
147
|
+
(0, react_1.useEffect)(() => {
|
|
148
|
+
if (open)
|
|
149
|
+
setAt(rows.length ? 0 : -1);
|
|
150
|
+
// Only on open and on a new search — never as rows page in under the cursor.
|
|
151
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
152
|
+
}, [open, q]);
|
|
153
|
+
// A loader's first page arrives after the open: the cursor lands on its first
|
|
154
|
+
// row then, or Enter would have nothing under it.
|
|
155
|
+
(0, react_1.useEffect)(() => {
|
|
156
|
+
if (open && at < 0 && rows.length)
|
|
157
|
+
setAt(0);
|
|
158
|
+
}, [open, at, rows.length]);
|
|
159
|
+
// A closed panel forgets its search, so the next open starts from the top.
|
|
160
|
+
(0, react_1.useEffect)(() => {
|
|
161
|
+
if (!open)
|
|
162
|
+
setQ('');
|
|
163
|
+
}, [open]);
|
|
164
|
+
// Keep the row under the cursor in view as it moves.
|
|
165
|
+
(0, react_1.useEffect)(() => {
|
|
166
|
+
if (!open || at < 0)
|
|
167
|
+
return;
|
|
168
|
+
const el = typeof document !== 'undefined' ? document.getElementById(optionId(at)) : null;
|
|
169
|
+
el?.scrollIntoView?.({ block: 'nearest' });
|
|
170
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
171
|
+
}, [at, open]);
|
|
172
|
+
const close = (0, react_1.useCallback)(() => {
|
|
173
|
+
setOpen(false);
|
|
174
|
+
// Back to the chip the panel came from, so the keyboard is where it was.
|
|
175
|
+
queueMicrotask(() => chip.current?.focus?.());
|
|
176
|
+
}, [setOpen]);
|
|
177
|
+
const choose = (0, react_1.useCallback)((item) => {
|
|
178
|
+
if (!item || item.disabled)
|
|
179
|
+
return;
|
|
180
|
+
onChange(item);
|
|
181
|
+
close();
|
|
182
|
+
}, [onChange, close]);
|
|
183
|
+
const onField = (e) => {
|
|
184
|
+
const key = e?.key;
|
|
185
|
+
if (MOVES.has(key)) {
|
|
186
|
+
// Home and End belong to the caret while there is text to move through.
|
|
187
|
+
if ((key === 'Home' || key === 'End') && q)
|
|
188
|
+
return;
|
|
189
|
+
e.preventDefault?.();
|
|
190
|
+
const to = (0, chipSelect_logic_1.move)(key, at, rows.length, (i) => Boolean(rows[i]?.disabled));
|
|
191
|
+
setAt(to);
|
|
192
|
+
if ((0, chipSelect_logic_1.wants)({ next, loading, at: to, count: rows.length }))
|
|
193
|
+
askMore();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (key === 'Enter') {
|
|
197
|
+
e.preventDefault?.();
|
|
198
|
+
const item = rows[at];
|
|
199
|
+
if (!item)
|
|
200
|
+
return;
|
|
201
|
+
if ((e.ctrlKey || e.metaKey) && action && (!action.when || action.when(item))) {
|
|
202
|
+
action.onPress(item);
|
|
203
|
+
close();
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
choose(item);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (key === 'Escape') {
|
|
210
|
+
e.preventDefault?.();
|
|
211
|
+
close();
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
const onChip = (e) => {
|
|
215
|
+
if (disabled)
|
|
216
|
+
return;
|
|
217
|
+
const key = e?.key;
|
|
218
|
+
if (key === 'Enter' || key === ' ' || key === 'ArrowUp' || key === 'ArrowDown') {
|
|
219
|
+
e.preventDefault?.();
|
|
220
|
+
setOpen(!open || key === 'ArrowUp' || key === 'ArrowDown');
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Typing on the chip is typing into the search: open and carry the key.
|
|
224
|
+
const ch = typed(e);
|
|
225
|
+
if (ch && !open) {
|
|
226
|
+
e.preventDefault?.();
|
|
227
|
+
setOpen(true);
|
|
228
|
+
setQ(ch);
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
const onScroll = (e) => {
|
|
232
|
+
const n = e?.nativeEvent;
|
|
233
|
+
const top = n?.contentOffset?.y ?? 0;
|
|
234
|
+
const box = n?.layoutMeasurement?.height ?? 0;
|
|
235
|
+
const content = n?.contentSize?.height ?? 0;
|
|
236
|
+
if (next && !loading && (0, chipSelect_logic_1.near)(top, box, content))
|
|
237
|
+
askMore();
|
|
238
|
+
};
|
|
239
|
+
const shown = (item) => Boolean(action && (!action.when || action.when(item)));
|
|
240
|
+
return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: (v) => (v ? setOpen(true) : close()), placement: placement, allowFlip: true, stayInFrame: true, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, disabled: disabled, children: (0, jsx_runtime_1.jsxs)(gui_1.XStack, { ref: chip, ...(0, slot_1.slot)('chip-select'), ...(0, slot_1.tip)(name), role: "button", tabIndex: disabled ? -1 : 0, "aria-label": `${name}: ${label}`, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-disabled": disabled || undefined, height: CHIP_H, px: "$2", gap: "$1.5", items: "center", shrink: 0, rounded: "$2", borderWidth: quiet ? 0 : 1, borderColor: "$borderColor", bg: quiet ? 'transparent' : '$raised', cursor: disabled ? 'default' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : quiet ? { bg: '$hover' } : { borderColor: '$rim' }, pressStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: RING,
|
|
241
|
+
// The chip is a small target by design; the hit area is not.
|
|
242
|
+
hitSlop: { top: 10, bottom: 10, left: 4, right: 4 }, onKeyDown: onChip, children: [icon ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { shrink: 0, items: "center", "aria-hidden": true, children: icon })) : null, (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: quiet ? '$quiet' : '$ink', numberOfLines: 1, maxW: 200, children: label })] }) }), (0, jsx_runtime_1.jsxs)(popover_1.PopoverContent, { ...(0, slot_1.slot)('chip-select-panel'), sideOffset: 8, width: width, maxW: "92vw", p: "$1", gap: "$0",
|
|
243
|
+
// Gui's popover content centres its children; a list and a field span
|
|
244
|
+
// the panel.
|
|
245
|
+
items: "stretch", bg: "$hover", borderColor: "$rim", rounded: "$3", elevation: "$4", trapFocus: true, onOpenAutoFocus: (e) => {
|
|
246
|
+
// The search field, not the first focusable thing in the panel — which
|
|
247
|
+
// would be a footer link.
|
|
248
|
+
e.preventDefault();
|
|
249
|
+
field.current?.focus();
|
|
250
|
+
}, onCloseAutoFocus: (e) => {
|
|
251
|
+
e.preventDefault();
|
|
252
|
+
chip.current?.focus?.();
|
|
253
|
+
}, children: [cta ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-cta'), px: "$2", py: "$2", children: cta })) : null, (0, jsx_runtime_1.jsxs)(gui_1.ScrollView, { ref: list, height: tall, showsVerticalScrollIndicator: true, scrollEventThrottle: 64, onScroll: onScroll, children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-list'), id: listId, role: "listbox", "aria-label": name, gap: "$0", children: rows.map((item, i) => {
|
|
254
|
+
const on = i === at;
|
|
255
|
+
const picked = chosen?.id === item.id;
|
|
256
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-option'), id: optionId(i), role: "option", "aria-selected": picked, "aria-disabled": item.disabled || undefined, "aria-describedby": action && shown(item) ? hintId : undefined, height: ROW_H, px: "$2", gap: "$2", items: "center", rounded: "$2", cursor: item.disabled ? 'default' : 'pointer', opacity: item.disabled ? 0.5 : 1, bg: on ? '$raised' : 'transparent', onHoverIn: () => setAt(i), onPress: () => choose(item), children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", numberOfLines: 1, flex: 1, minW: 0, children: item.label }), item.hint ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", numberOfLines: 1, shrink: 0, children: item.hint })) : null, action && on && shown(item) ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-action'), "aria-hidden": true, px: "$1.5", height: 18, items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", shrink: 0, hoverStyle: { bg: '$hover' }, onPress: (e) => {
|
|
257
|
+
e?.stopPropagation?.();
|
|
258
|
+
action.onPress(item);
|
|
259
|
+
close();
|
|
260
|
+
}, children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$quiet", children: action.label }) })) : null, picked ? (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Check, { size: 14, color: "$ink", "aria-hidden": true }) : null] }, item.id));
|
|
261
|
+
}) }), error ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-error'), px: "$2", py: "$1.5", gap: "$2", items: "center", role: "alert", children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$bad", flex: 1, children: error }), load ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", textDecorationLine: "underline", cursor: "pointer", role: "button", tabIndex: 0, onPress: pages.retry, onKeyDown: (e) => {
|
|
262
|
+
if (e?.key !== 'Enter' && e?.key !== ' ')
|
|
263
|
+
return;
|
|
264
|
+
e.preventDefault?.();
|
|
265
|
+
pages.retry();
|
|
266
|
+
}, children: "Retry" })) : null] })) : loading ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-loading'), px: "$2", height: ROW_H, items: "center", role: "status", children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: rows.length ? 'Loading more…' : 'Loading…' }) })) : rows.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-empty'), px: "$2", py: "$1.5", items: "center", role: "status", children: typeof empty === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: empty })) : (empty) })) : null] }), action ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { id: hintId, position: "absolute", width: 1, height: 1, overflow: "hidden", opacity: 0, children: `Ctrl+Enter: ${action.label}` })) : null, footer ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-footer'), mx: -4, mt: "$1", px: "$3", py: "$2", gap: "$0.5", borderTopWidth: 1, borderColor: "$borderColor", children: footer })) : null, (0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-search'), mt: "$1", height: 26, px: "$2", gap: "$1.5", items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", bg: "$background", focusWithinStyle: { borderColor: '$outlineColor' }, children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.Search, { size: 12, color: "$soft", "aria-hidden": true }), (0, jsx_runtime_1.jsx)(gui_1.Input, { ref: field, ...(0, slot_1.slot)('chip-select-input'), unstyled: true, flex: 1, minW: 0, height: 24, p: 0, borderWidth: 0, bg: "transparent", fontSize: "$2", color: "$ink", placeholderTextColor: "$soft", placeholder: placeholder, value: q, onChangeText: setQ, role: "combobox", "aria-label": placeholder, "aria-expanded": open, "aria-controls": listId, "aria-autocomplete": "list", "aria-activedescendant": at >= 0 && rows[at] ? optionId(at) : undefined, autoComplete: "off", spellCheck: false, onKeyDown: onField })] })] })] }));
|
|
267
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type ChipItem, type ChipLoad } from './chipSelect.logic.js';
|
|
3
|
+
export type { ChipItem, ChipLoad, ChipPage } from './chipSelect.logic.js';
|
|
4
|
+
/** Where the panel prefers to open. It flips when that side has no room. */
|
|
5
|
+
export type ChipPlacement = 'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end';
|
|
6
|
+
/** A secondary action on a row — "Add to project". See `ChipSelectProps.action`. */
|
|
7
|
+
export interface ChipAction<T extends ChipItem> {
|
|
8
|
+
label: string;
|
|
9
|
+
onPress: (item: T) => void;
|
|
10
|
+
/** Rows the action applies to. Absent, every row. */
|
|
11
|
+
when?: (item: T) => boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ChipSelectProps<T extends ChipItem> {
|
|
14
|
+
/** What the chip says — the current choice, short. */
|
|
15
|
+
label: string;
|
|
16
|
+
/** Drawn before the label. */
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
/** What the chip chooses ("Repository"): its accessible name is `<name>: <label>`. */
|
|
19
|
+
name: string;
|
|
20
|
+
/** The chosen item, pinned first with a check. */
|
|
21
|
+
chosen?: T | null;
|
|
22
|
+
onChange: (item: T) => void;
|
|
23
|
+
/** Pages of rows. Takes precedence over `items`. */
|
|
24
|
+
load?: ChipLoad<T>;
|
|
25
|
+
/** The whole list, searched here. */
|
|
26
|
+
items?: readonly T[];
|
|
27
|
+
/** With `items`: there are more rows than these. */
|
|
28
|
+
more?: boolean;
|
|
29
|
+
/** With `items`: the reader reached the end — fetch and grow `items`. */
|
|
30
|
+
onMore?: () => void;
|
|
31
|
+
/** With `items`: a fetch is in flight. */
|
|
32
|
+
loading?: boolean;
|
|
33
|
+
/** With `items`: the last fetch failed, in a sentence. */
|
|
34
|
+
error?: string | null;
|
|
35
|
+
/** Search debounce, ms. */
|
|
36
|
+
delay?: number;
|
|
37
|
+
/** The search field's placeholder. */
|
|
38
|
+
placeholder?: string;
|
|
39
|
+
/** No rows match. */
|
|
40
|
+
empty?: ReactNode;
|
|
41
|
+
/** Under the list, above the search — what is missing and why. */
|
|
42
|
+
footer?: ReactNode;
|
|
43
|
+
/** Above the list — a call to action that replaces a list that cannot load. */
|
|
44
|
+
cta?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* A second thing a row can do. Drawn on the row under the cursor or the
|
|
47
|
+
* pointer; the pointer presses it, and the keyboard runs it with Ctrl/⌘+Enter
|
|
48
|
+
* on the row under the cursor. It is a declared action rather than a slot of
|
|
49
|
+
* arbitrary content on purpose: a listbox option may not CONTAIN a control
|
|
50
|
+
* (axe `nested-interactive`), so the row keeps its option semantics and the
|
|
51
|
+
* action rides on it.
|
|
52
|
+
*/
|
|
53
|
+
action?: ChipAction<T>;
|
|
54
|
+
placement?: ChipPlacement;
|
|
55
|
+
/** Panel width, px. */
|
|
56
|
+
width?: number;
|
|
57
|
+
/** The list's ceiling, px; past it the list scrolls. */
|
|
58
|
+
height?: number;
|
|
59
|
+
disabled?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The plain look: no fill and no hairline, the label in the muted ink — for a
|
|
62
|
+
* choice that sits in a row of words (a composer's model and effort) rather
|
|
63
|
+
* than in a row of chips. Same panel, same keyboard.
|
|
64
|
+
*/
|
|
65
|
+
quiet?: boolean;
|
|
66
|
+
/** Open state, when the host owns it. */
|
|
67
|
+
open?: boolean;
|
|
68
|
+
onOpenChange?: (open: boolean) => void;
|
|
69
|
+
}
|
|
70
|
+
export declare function ChipSelect<T extends ChipItem>({ label, icon, name, chosen, onChange, load, items, more: hasMore, onMore, loading: loadingProp, error: errorProp, delay, placeholder, empty, footer, cta, action, placement, width, height, disabled, quiet, open: openProp, onOpenChange, }: ChipSelectProps<T>): import("react").JSX.Element;
|
|
71
|
+
//# sourceMappingURL=ChipSelect.d.ts.map
|