@alivault/pico 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.
- package/.output/nitro.json +1 -1
- package/.output/public/assets/{index-BiaOlsw0.js → index-DA-hjRf1.js} +3 -3
- package/.output/public/assets/routes-BEX21mVY.js +2160 -0
- package/.output/public/assets/styles-CUjj8zXo.css +2 -0
- package/.output/server/_ssr/{router-CgnX-Js0.mjs → router-0zOSfnDH.mjs} +3 -3
- package/.output/server/_ssr/{routes-CmLc8G9G.mjs → routes-BulNPswx.mjs} +141 -50
- package/.output/server/_ssr/{routes-D2MVUd_A.mjs → routes-CArKWa5i.mjs} +2 -2
- package/.output/server/_ssr/ssr.mjs +2 -2
- package/.output/server/{_tanstack-start-manifest_v-BSXP2b2T.mjs → _tanstack-start-manifest_v-D-4It92t.mjs} +4 -4
- package/.output/server/index.mjs +497 -497
- package/package.json +1 -1
- package/.output/public/assets/routes-C7eqqi44.js +0 -2152
- package/.output/public/assets/styles-4lJzavCj.css +0 -2
|
@@ -2,7 +2,7 @@ import { i as __toESM } from "../_runtime.mjs";
|
|
|
2
2
|
import { A as DialogRoot, C as MenuPortal, D as TabsTab, E as TabsList$1, F as DialogBackdrop, I as Separator, K as mergeProps, L as Input, M as DialogPopup, N as DialogDescription$1, O as TabsRoot, P as DialogClose, R as Button, S as MenuPositioner, T as MenuItem, X as require_react, Y as require_jsx_runtime, _ as AccordionRoot, a as CollapsiblePanel, b as MenuSubmenuRoot, c as PopoverPopup, d as PopoverTrigger$1, f as PopoverRoot, g as AccordionItem$1, h as AccordionHeader, i as ContextMenuRoot, j as DialogPortal$1, k as DialogTitle$1, l as PopoverPositioner, m as AccordionTrigger$1, n as Toggle, o as CollapsibleTrigger$1, p as AccordionPanel, r as ContextMenuTrigger$1, s as CollapsibleRoot, t as ToggleGroup, u as PopoverPortal, v as MenuSubmenuTrigger, w as MenuPopup, x as MenuRoot, y as MenuTrigger, z as useRender } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
3
|
import { t as cva } from "../_libs/class-variance-authority+clsx.mjs";
|
|
4
4
|
import { A as ChevronsUpDown, B as ArrowDown, C as FolderPlus, D as Copy, E as Download, F as Check, I as ArrowUp, L as ArrowUpToLine, M as ChevronUp, N as ChevronRight, O as Command, P as ChevronDown, S as Folder, T as EllipsisVertical, _ as ListEnd, a as Square, b as GitBranch, c as Settings2, d as PanelLeft, f as PanelLeftOpen, g as ListStart, h as OctagonX, j as ChevronsDownUp, l as Search, n as WandSparkles, o as SquarePen, p as PanelLeftClose, r as Upload, s as SquareArrowOutUpRight, t as X, u as PanelRight, w as Ellipsis, x as GitCommitHorizontal, y as ImagePlus, z as ArrowLeft } from "../_libs/lucide-react.mjs";
|
|
5
|
-
import { $ as readStoredRightSidebarOpen, B as normalizeSessionSelectionKeys, C as TooltipContent, E as VIEWER_CONTEXT_STORAGE_KEY, G as readStoredAutoScrollEnabled, H as normalizeThemeMode, I as flattenTree, J as readStoredDraftDirectory, K as readStoredCenterMessages, L as getSessionTitle, M as createInitialSessionState, O as buildItemsFromSync, Q as readStoredRecentDirectories, S as Tooltip$1, T as TooltipTrigger, U as previewUrlForImage, V as normalizeStoredDirectoryList, W as promptDraftKey, X as readStoredPinnedSessionKeys, Y as readStoredHideToolBlocks, Z as readStoredPromptDraft, _ as SESSION_DONE_SOUND_ENABLED_STORAGE_KEY, a as HIDE_TOOL_BLOCKS_STORAGE_KEY, at as safeLocalStorageSetItem, c as PINNED_SESSIONS_STORAGE_KEY, ct as thinkingSummaryText, d as RIGHT_SIDEBAR_FILE_TREE_WIDTH_STORAGE_KEY, et as readStoredSessionDoneDesktopNotificationsEnabled, f as RIGHT_SIDEBAR_HISTORY_HEIGHT_STORAGE_KEY, g as SESSION_DONE_DESKTOP_NOTIFICATIONS_ENABLED_STORAGE_KEY, h as Route, i as DRAFT_DIRECTORY_STORAGE_KEY, it as safeLocalStorageGetItem, j as createContextId, k as cn, l as RECENT_DIRECTORIES_STORAGE_KEY, m as RIGHT_SIDEBAR_WIDTHS_STORAGE_KEY, n as CENTER_MESSAGES_STORAGE_KEY, nt as readStoredSidebarDirectories, o as Kbd, ot as sameContextUsage, p as RIGHT_SIDEBAR_OPEN_STORAGE_KEY, q as readStoredCollapsedDirectories, r as COLLAPSED_DIRECTORIES_STORAGE_KEY, rt as rememberStoredPromptDraft, s as KeyboardShortcutContent, st as sessionListEntryKey, t as AUTO_SCROLL_ENABLED_STORAGE_KEY, tt as readStoredSessionDoneSoundEnabled, u as RIGHT_SIDEBAR_ACTIVE_TAB_STORAGE_KEY, v as SIDEBAR_DIRECTORIES_STORAGE_KEY, x as TitleTooltip, y as Spinner, z as normalizePromptImage } from "./routes-
|
|
5
|
+
import { $ as readStoredRightSidebarOpen, B as normalizeSessionSelectionKeys, C as TooltipContent, E as VIEWER_CONTEXT_STORAGE_KEY, G as readStoredAutoScrollEnabled, H as normalizeThemeMode, I as flattenTree, J as readStoredDraftDirectory, K as readStoredCenterMessages, L as getSessionTitle, M as createInitialSessionState, O as buildItemsFromSync, Q as readStoredRecentDirectories, S as Tooltip$1, T as TooltipTrigger, U as previewUrlForImage, V as normalizeStoredDirectoryList, W as promptDraftKey, X as readStoredPinnedSessionKeys, Y as readStoredHideToolBlocks, Z as readStoredPromptDraft, _ as SESSION_DONE_SOUND_ENABLED_STORAGE_KEY, a as HIDE_TOOL_BLOCKS_STORAGE_KEY, at as safeLocalStorageSetItem, c as PINNED_SESSIONS_STORAGE_KEY, ct as thinkingSummaryText, d as RIGHT_SIDEBAR_FILE_TREE_WIDTH_STORAGE_KEY, et as readStoredSessionDoneDesktopNotificationsEnabled, f as RIGHT_SIDEBAR_HISTORY_HEIGHT_STORAGE_KEY, g as SESSION_DONE_DESKTOP_NOTIFICATIONS_ENABLED_STORAGE_KEY, h as Route, i as DRAFT_DIRECTORY_STORAGE_KEY, it as safeLocalStorageGetItem, j as createContextId, k as cn, l as RECENT_DIRECTORIES_STORAGE_KEY, m as RIGHT_SIDEBAR_WIDTHS_STORAGE_KEY, n as CENTER_MESSAGES_STORAGE_KEY, nt as readStoredSidebarDirectories, o as Kbd, ot as sameContextUsage, p as RIGHT_SIDEBAR_OPEN_STORAGE_KEY, q as readStoredCollapsedDirectories, r as COLLAPSED_DIRECTORIES_STORAGE_KEY, rt as rememberStoredPromptDraft, s as KeyboardShortcutContent, st as sessionListEntryKey, t as AUTO_SCROLL_ENABLED_STORAGE_KEY, tt as readStoredSessionDoneSoundEnabled, u as RIGHT_SIDEBAR_ACTIVE_TAB_STORAGE_KEY, v as SIDEBAR_DIRECTORIES_STORAGE_KEY, x as TitleTooltip, y as Spinner, z as normalizePromptImage } from "./routes-CArKWa5i.mjs";
|
|
6
6
|
import { i as useQuery, n as useIsMutating, o as useQueryClient, r as useIsFetching, t as useMutation } from "../_libs/tanstack__react-query.mjs";
|
|
7
7
|
import { t as useHotkeys } from "../_libs/tanstack__react-hotkeys.mjs";
|
|
8
8
|
import { a as matchesKeyboardEvent, i as batch, o as formatForDisplay, r as createStore } from "../_libs/@tanstack/hotkeys+[...].mjs";
|
|
@@ -22,7 +22,7 @@ import { t as remarkGfm } from "../_libs/remark-gfm.mjs";
|
|
|
22
22
|
import { a as getBuiltInSpriteSheet, i as getBuiltInFileIconColor, n as FileTree, r as createFileTreeIconResolver, t as useFileTree } from "../_libs/@pierre/trees+[...].mjs";
|
|
23
23
|
import { a as closestCenter, d as useSensors, f as CSS$1, i as PointerSensor, n as DragOverlay, t as DndContext, u as useSensor } from "../_libs/@dnd-kit/core+[...].mjs";
|
|
24
24
|
import { a as verticalListSortingStrategy, i as useSortable, n as arrayMove, r as horizontalListSortingStrategy, t as SortableContext } from "../_libs/dnd-kit__sortable.mjs";
|
|
25
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
25
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-BulNPswx.js
|
|
26
26
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
27
27
|
var import_jsx_runtime = require_jsx_runtime();
|
|
28
28
|
var MOBILE_BREAKPOINT = 768;
|
|
@@ -13174,6 +13174,8 @@ function GitSectionNote({ children, tone = "muted", className }) {
|
|
|
13174
13174
|
children
|
|
13175
13175
|
});
|
|
13176
13176
|
}
|
|
13177
|
+
var EMPTY_PROJECT_FILE_PATHS = [];
|
|
13178
|
+
var EMPTY_GIT_CHANGE_FILES = [];
|
|
13177
13179
|
var PROJECT_FILE_QUERY_STALE_TIME_MS = 1e3 * 30;
|
|
13178
13180
|
var PROJECT_FILE_QUERY_GC_TIME_MS = 1e3 * 60 * 10;
|
|
13179
13181
|
var PROJECT_FILE_TREE_DEFAULT_WIDTH = 320;
|
|
@@ -13269,11 +13271,19 @@ var GIT_FILE_TREE_UNSAFE_CSS = `
|
|
|
13269
13271
|
--trees-bg-override: var(--background);
|
|
13270
13272
|
--trees-fg-override: var(--foreground);
|
|
13271
13273
|
--trees-border-color-override: var(--border);
|
|
13272
|
-
--trees-muted-
|
|
13274
|
+
--trees-fg-muted-override: var(--muted-foreground);
|
|
13273
13275
|
--trees-selected-bg-override: var(--accent);
|
|
13274
13276
|
--trees-selected-fg-override: var(--accent-foreground);
|
|
13275
13277
|
--trees-padding-inline-override: 0px;
|
|
13276
13278
|
}
|
|
13279
|
+
|
|
13280
|
+
[data-file-tree-virtualized-scroll='true'] {
|
|
13281
|
+
padding-inline: 0 16px;
|
|
13282
|
+
}
|
|
13283
|
+
|
|
13284
|
+
[data-file-tree-search-input] {
|
|
13285
|
+
font-size: 16px;
|
|
13286
|
+
}
|
|
13277
13287
|
`;
|
|
13278
13288
|
var PROJECT_FILE_ICON_SPRITE_SHEET = getBuiltInSpriteSheet("complete");
|
|
13279
13289
|
var projectFileIconResolver = createFileTreeIconResolver({
|
|
@@ -13306,6 +13316,39 @@ function ProjectFileTypeIcon({ path }) {
|
|
|
13306
13316
|
function isFileTreeDirectoryHandle(item) {
|
|
13307
13317
|
return item?.isDirectory() === true;
|
|
13308
13318
|
}
|
|
13319
|
+
function isProjectFileTreeItemEvent(event) {
|
|
13320
|
+
return event.nativeEvent.composedPath().some((target) => target instanceof Element && target.getAttribute("data-type") === "item");
|
|
13321
|
+
}
|
|
13322
|
+
function getProjectFileTreeGitStatusFromPorcelain(status) {
|
|
13323
|
+
const indexStatus = status[0] || " ";
|
|
13324
|
+
const worktreeStatus = status[1] || " ";
|
|
13325
|
+
if (status === "??") return "untracked";
|
|
13326
|
+
if (status === "!!") return "ignored";
|
|
13327
|
+
if (indexStatus === "R" || worktreeStatus === "R") return "renamed";
|
|
13328
|
+
if (indexStatus === "C" || worktreeStatus === "C") return "renamed";
|
|
13329
|
+
if (indexStatus === "D" || worktreeStatus === "D") return "deleted";
|
|
13330
|
+
if (indexStatus === "A" || worktreeStatus === "A") return "added";
|
|
13331
|
+
return "modified";
|
|
13332
|
+
}
|
|
13333
|
+
function getProjectFileTreeGitStatus(files) {
|
|
13334
|
+
return files.map((file) => ({
|
|
13335
|
+
path: file.path,
|
|
13336
|
+
status: getProjectFileTreeGitStatusFromPorcelain(file.status)
|
|
13337
|
+
}));
|
|
13338
|
+
}
|
|
13339
|
+
function getProjectFileTreePaths(paths, files) {
|
|
13340
|
+
if (files.length === 0) return paths;
|
|
13341
|
+
const pathSet = new Set(paths);
|
|
13342
|
+
let addedPath = false;
|
|
13343
|
+
for (const file of files) {
|
|
13344
|
+
if (getProjectFileTreeGitStatusFromPorcelain(file.status) !== "deleted") continue;
|
|
13345
|
+
if (!file.path || pathSet.has(file.path)) continue;
|
|
13346
|
+
pathSet.add(file.path);
|
|
13347
|
+
addedPath = true;
|
|
13348
|
+
}
|
|
13349
|
+
if (!addedPath) return paths;
|
|
13350
|
+
return [...pathSet];
|
|
13351
|
+
}
|
|
13309
13352
|
function getProjectFileDirectoryPaths(paths) {
|
|
13310
13353
|
const directoryPaths = /* @__PURE__ */ new Set();
|
|
13311
13354
|
for (const path of paths) {
|
|
@@ -13314,7 +13357,7 @@ function getProjectFileDirectoryPaths(paths) {
|
|
|
13314
13357
|
}
|
|
13315
13358
|
return [...directoryPaths].sort((left, right) => right.split("/").length - left.split("/").length || right.length - left.length || right.localeCompare(left));
|
|
13316
13359
|
}
|
|
13317
|
-
function ProjectFileTree({ collapseAllRevision, paths, selectedPath, onSelectFile }) {
|
|
13360
|
+
function ProjectFileTree({ collapseAllRevision, gitStatus, paths, selectedPath, onSelectFile }) {
|
|
13318
13361
|
const validPathsRef = import_react.useRef(new Set(paths));
|
|
13319
13362
|
const onSelectFileRef = import_react.useRef(onSelectFile);
|
|
13320
13363
|
const lastCollapseAllRevisionRef = import_react.useRef(0);
|
|
@@ -13323,6 +13366,7 @@ function ProjectFileTree({ collapseAllRevision, paths, selectedPath, onSelectFil
|
|
|
13323
13366
|
const { model } = useFileTree({
|
|
13324
13367
|
paths,
|
|
13325
13368
|
flattenEmptyDirectories: true,
|
|
13369
|
+
gitStatus,
|
|
13326
13370
|
initialExpansion: 1,
|
|
13327
13371
|
initialSelectedPaths: selectedPath ? [selectedPath] : [],
|
|
13328
13372
|
onSelectionChange: (selectedPaths) => {
|
|
@@ -13336,6 +13380,9 @@ function ProjectFileTree({ collapseAllRevision, paths, selectedPath, onSelectFil
|
|
|
13336
13380
|
import_react.useEffect(() => {
|
|
13337
13381
|
model.resetPaths(paths);
|
|
13338
13382
|
}, [model, paths]);
|
|
13383
|
+
import_react.useEffect(() => {
|
|
13384
|
+
model.setGitStatus(gitStatus);
|
|
13385
|
+
}, [gitStatus, model]);
|
|
13339
13386
|
import_react.useEffect(() => {
|
|
13340
13387
|
if (!selectedPath) return;
|
|
13341
13388
|
const item = model.getItem(selectedPath);
|
|
@@ -13372,9 +13419,13 @@ function ProjectFileTree({ collapseAllRevision, paths, selectedPath, onSelectFil
|
|
|
13372
13419
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FileTree, {
|
|
13373
13420
|
model,
|
|
13374
13421
|
className: "block h-full min-h-0 w-full overflow-hidden",
|
|
13375
|
-
onClick:
|
|
13422
|
+
onClick: (event) => {
|
|
13423
|
+
if (!isProjectFileTreeItemEvent(event)) return;
|
|
13424
|
+
openFocusedFile();
|
|
13425
|
+
},
|
|
13376
13426
|
onKeyUp: (event) => {
|
|
13377
13427
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
13428
|
+
if (!isProjectFileTreeItemEvent(event)) return;
|
|
13378
13429
|
openFocusedFile();
|
|
13379
13430
|
}
|
|
13380
13431
|
});
|
|
@@ -13383,7 +13434,8 @@ function ProjectFilesWorkspace({ viewerContextId, cwd, active, activeFilePath, o
|
|
|
13383
13434
|
const normalizedCwd = normalizeCwd(cwd);
|
|
13384
13435
|
const [openFileDialogOpen, setOpenFileDialogOpen] = import_react.useState(false);
|
|
13385
13436
|
const [collapseAllRevision, setCollapseAllRevision] = import_react.useState(0);
|
|
13386
|
-
const
|
|
13437
|
+
const inlinePreview = previewMode === "inline";
|
|
13438
|
+
const showInlinePreview = inlinePreview && Boolean(activeFilePath);
|
|
13387
13439
|
const fileTreeQuery = useQuery({
|
|
13388
13440
|
...projectFileTreeQueryOptions({
|
|
13389
13441
|
viewerContextId,
|
|
@@ -13397,12 +13449,25 @@ function ProjectFilesWorkspace({ viewerContextId, cwd, active, activeFilePath, o
|
|
|
13397
13449
|
"error"
|
|
13398
13450
|
]
|
|
13399
13451
|
});
|
|
13400
|
-
const
|
|
13452
|
+
const gitFilesQuery = useQuery({
|
|
13453
|
+
...gitChangesQueryOptions({
|
|
13454
|
+
viewerContextId,
|
|
13455
|
+
cwd: normalizedCwd,
|
|
13456
|
+
scope: "files"
|
|
13457
|
+
}),
|
|
13458
|
+
enabled: Boolean(active && viewerContextId && normalizedCwd),
|
|
13459
|
+
select: (data) => data.files ?? [],
|
|
13460
|
+
notifyOnChangeProps: ["data"]
|
|
13461
|
+
});
|
|
13462
|
+
const projectPaths = fileTreeQuery.data ?? EMPTY_PROJECT_FILE_PATHS;
|
|
13463
|
+
const gitFiles = gitFilesQuery.data ?? EMPTY_GIT_CHANGE_FILES;
|
|
13464
|
+
const paths = import_react.useMemo(() => getProjectFileTreePaths(projectPaths, gitFiles), [gitFiles, projectPaths]);
|
|
13465
|
+
const gitStatus = import_react.useMemo(() => getProjectFileTreeGitStatus(gitFiles), [gitFiles]);
|
|
13401
13466
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
13402
|
-
className: cn("h-full min-h-0 overflow-hidden",
|
|
13467
|
+
className: cn("h-full min-h-0 overflow-hidden", inlinePreview ? "relative flex flex-col" : "flex flex-col"),
|
|
13403
13468
|
children: [
|
|
13404
13469
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
13405
|
-
className:
|
|
13470
|
+
className: "flex min-h-0 flex-1 flex-col overflow-hidden bg-background",
|
|
13406
13471
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
13407
13472
|
className: "flex shrink-0 items-center justify-between gap-2 border-b border-border/70 p-2",
|
|
13408
13473
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -13439,36 +13504,36 @@ function ProjectFilesWorkspace({ viewerContextId, cwd, active, activeFilePath, o
|
|
|
13439
13504
|
children: getErrorMessage(fileTreeQuery.error, "Failed to load files")
|
|
13440
13505
|
}) : paths.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProjectFileTree, {
|
|
13441
13506
|
collapseAllRevision,
|
|
13507
|
+
gitStatus,
|
|
13442
13508
|
paths,
|
|
13443
13509
|
selectedPath: activeFilePath,
|
|
13444
13510
|
onSelectFile: onOpenFile
|
|
13445
13511
|
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GitSectionNote, { children: "No files found." })
|
|
13446
13512
|
})]
|
|
13447
13513
|
}),
|
|
13448
|
-
|
|
13449
|
-
|
|
13514
|
+
inlinePreview ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
13515
|
+
"aria-hidden": !showInlinePreview,
|
|
13516
|
+
inert: !showInlinePreview,
|
|
13517
|
+
className: cn("absolute inset-0 z-20 flex min-h-0 flex-col overflow-hidden bg-background transition-transform duration-200 ease-out", showInlinePreview ? "translate-x-0 shadow-xl" : "pointer-events-none translate-x-full"),
|
|
13450
13518
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
13451
|
-
className: "flex h-10 shrink-0 items-center
|
|
13452
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.
|
|
13453
|
-
|
|
13519
|
+
className: "flex h-10 shrink-0 items-center gap-2 border-b border-border/70 px-2 text-xs font-medium text-muted-foreground",
|
|
13520
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", {
|
|
13521
|
+
type: "button",
|
|
13522
|
+
"aria-label": "Back to file tree",
|
|
13523
|
+
className: "inline-flex h-8 shrink-0 items-center gap-1.5 rounded-md px-2 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13524
|
+
onClick: onCloseFile,
|
|
13525
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowLeft, { className: "size-4" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Files" })]
|
|
13526
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
13527
|
+
className: "min-w-0 flex-1 truncate",
|
|
13454
13528
|
title: activeFilePath,
|
|
13455
13529
|
children: activeFilePath
|
|
13456
|
-
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TitleTooltip, {
|
|
13457
|
-
title: "Close file preview",
|
|
13458
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
13459
|
-
type: "button",
|
|
13460
|
-
"aria-label": "Close file preview",
|
|
13461
|
-
className: "inline-flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
13462
|
-
onClick: onCloseFile,
|
|
13463
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, { className: "size-4" })
|
|
13464
|
-
})
|
|
13465
13530
|
})]
|
|
13466
13531
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
13467
13532
|
className: "min-h-0 flex-1 overflow-hidden",
|
|
13468
13533
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProjectFileContent, {
|
|
13469
13534
|
viewerContextId,
|
|
13470
13535
|
cwd: normalizedCwd,
|
|
13471
|
-
active,
|
|
13536
|
+
active: active && showInlinePreview,
|
|
13472
13537
|
path: activeFilePath
|
|
13473
13538
|
})
|
|
13474
13539
|
})]
|
|
@@ -13484,24 +13549,26 @@ function ProjectFilesWorkspace({ viewerContextId, cwd, active, activeFilePath, o
|
|
|
13484
13549
|
}
|
|
13485
13550
|
function ProjectOpenFileDialog({ open, onOpenChange, paths, onOpenFile }) {
|
|
13486
13551
|
const [query, setQuery] = import_react.useState("");
|
|
13552
|
+
const isMobile = useIsMobile();
|
|
13553
|
+
const shouldAutoFocus = useCommandSurfaceAutoFocus(isMobile);
|
|
13487
13554
|
import_react.useEffect(() => {
|
|
13488
13555
|
if (!open) setQuery("");
|
|
13489
13556
|
}, [open]);
|
|
13490
|
-
|
|
13491
|
-
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
|
|
13495
|
-
|
|
13496
|
-
|
|
13497
|
-
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
13501
|
-
|
|
13502
|
-
|
|
13503
|
-
|
|
13504
|
-
|
|
13557
|
+
const commandBody = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Command$1, {
|
|
13558
|
+
shouldFilter: true,
|
|
13559
|
+
className: cn(isMobile && "min-h-0 flex-1"),
|
|
13560
|
+
children: [
|
|
13561
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProjectFileIconSprite, {}),
|
|
13562
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommandInput, {
|
|
13563
|
+
autoFocus: shouldAutoFocus,
|
|
13564
|
+
value: query,
|
|
13565
|
+
onValueChange: setQuery,
|
|
13566
|
+
placeholder: "Search files…",
|
|
13567
|
+
className: "text-base md:text-sm"
|
|
13568
|
+
}),
|
|
13569
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CommandList, {
|
|
13570
|
+
className: cn(isMobile && "max-h-none min-h-0 flex-1"),
|
|
13571
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommandEmpty, { children: "No files found." }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommandGroup, {
|
|
13505
13572
|
heading: "Files",
|
|
13506
13573
|
children: paths.map((path) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(CommandItem, {
|
|
13507
13574
|
value: path,
|
|
@@ -13515,10 +13582,29 @@ function ProjectOpenFileDialog({ open, onOpenChange, paths, onOpenFile }) {
|
|
|
13515
13582
|
children: path
|
|
13516
13583
|
})]
|
|
13517
13584
|
}, path))
|
|
13518
|
-
})]
|
|
13519
|
-
|
|
13585
|
+
})]
|
|
13586
|
+
})
|
|
13587
|
+
]
|
|
13588
|
+
});
|
|
13589
|
+
if (isMobile) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Drawer$1, {
|
|
13590
|
+
open,
|
|
13591
|
+
onOpenChange,
|
|
13592
|
+
autoFocus: shouldAutoFocus,
|
|
13593
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DrawerContent, {
|
|
13594
|
+
className: "max-h-[90svh] overflow-hidden",
|
|
13595
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DrawerHeader, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerTitle, { children: "Open Files" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerDescription, { children: "Search project files to open." })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
13596
|
+
className: "flex min-h-0 flex-1 flex-col overflow-hidden px-4 pb-4",
|
|
13597
|
+
children: commandBody
|
|
13598
|
+
})]
|
|
13520
13599
|
})
|
|
13521
13600
|
});
|
|
13601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CommandDialog, {
|
|
13602
|
+
open,
|
|
13603
|
+
onOpenChange,
|
|
13604
|
+
title: "Open Files",
|
|
13605
|
+
description: "Search project files to open.",
|
|
13606
|
+
children: commandBody
|
|
13607
|
+
});
|
|
13522
13608
|
}
|
|
13523
13609
|
function ProjectFileContent({ viewerContextId, cwd, active, path }) {
|
|
13524
13610
|
const normalizedCwd = normalizeCwd(cwd);
|
|
@@ -15364,7 +15450,17 @@ function FileReviewContent({ viewerContextId, cwd, active, onOpenFile }) {
|
|
|
15364
15450
|
})
|
|
15365
15451
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
15366
15452
|
className: "flex shrink-0 items-center gap-2",
|
|
15367
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
15453
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TitleTooltip, {
|
|
15454
|
+
title: hasOpenFile ? "Collapse all" : "Expand all",
|
|
15455
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, {
|
|
15456
|
+
variant: "outline",
|
|
15457
|
+
size: "icon",
|
|
15458
|
+
"aria-label": hasOpenFile ? "Collapse all" : "Expand all",
|
|
15459
|
+
disabled: changedFiles.length === 0,
|
|
15460
|
+
onClick: toggleAll,
|
|
15461
|
+
children: hasOpenFile ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronsDownUp, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronsUpDown, { className: "size-4" })
|
|
15462
|
+
})
|
|
15463
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToggleGroup$1, {
|
|
15368
15464
|
variant: "outline",
|
|
15369
15465
|
value: [diffStyle],
|
|
15370
15466
|
onValueChange: (values) => {
|
|
@@ -15375,11 +15471,6 @@ function FileReviewContent({ viewerContextId, cwd, active, onOpenFile }) {
|
|
|
15375
15471
|
value,
|
|
15376
15472
|
children: value === "unified" ? "Unified" : "Split"
|
|
15377
15473
|
}, value))
|
|
15378
|
-
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button$1, {
|
|
15379
|
-
variant: "outline",
|
|
15380
|
-
disabled: changedFiles.length === 0,
|
|
15381
|
-
onClick: toggleAll,
|
|
15382
|
-
children: [hasOpenFile ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronsDownUp, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronsUpDown, { className: "size-4" }), hasOpenFile ? "Collapse all" : "Expand all"]
|
|
15383
15474
|
})]
|
|
15384
15475
|
})]
|
|
15385
15476
|
}),
|
|
@@ -20009,14 +20100,14 @@ function useAppShellShortcuts({ addDirectoryOpenRef, commandPaletteOpenRef, comp
|
|
|
20009
20100
|
description: "Move keyboard focus through sidebar sessions."
|
|
20010
20101
|
} }
|
|
20011
20102
|
})),
|
|
20012
|
-
|
|
20013
|
-
hotkey,
|
|
20103
|
+
{
|
|
20104
|
+
hotkey: "Delete",
|
|
20014
20105
|
callback: handleSidebarDelete,
|
|
20015
20106
|
options: { meta: {
|
|
20016
20107
|
name: "Delete selected sidebar sessions",
|
|
20017
20108
|
description: "Open the delete dialog for focused or selected sessions."
|
|
20018
20109
|
} }
|
|
20019
|
-
}
|
|
20110
|
+
},
|
|
20020
20111
|
{
|
|
20021
20112
|
hotkey: {
|
|
20022
20113
|
key: "Enter",
|
|
@@ -5,7 +5,7 @@ import { n as clsx } from "../_libs/class-variance-authority+clsx.mjs";
|
|
|
5
5
|
import { t as twMerge } from "../_libs/tailwind-merge.mjs";
|
|
6
6
|
import { B as ArrowDown, I as ArrowUp, M as ChevronUp, O as Command, R as ArrowRight, V as ArrowBigUp, m as Option, z as ArrowLeft } from "../_libs/lucide-react.mjs";
|
|
7
7
|
import { n as string, t as object } from "../_libs/zod.mjs";
|
|
8
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
8
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-CArKWa5i.js
|
|
9
9
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
10
10
|
var import_jsx_runtime = require_jsx_runtime();
|
|
11
11
|
function cn(...inputs) {
|
|
@@ -1279,7 +1279,7 @@ function getSessionTitle(summary) {
|
|
|
1279
1279
|
if (summary?.name?.trim()) return summary.name.trim();
|
|
1280
1280
|
return "New session";
|
|
1281
1281
|
}
|
|
1282
|
-
var $$splitComponentImporter = () => import("./routes-
|
|
1282
|
+
var $$splitComponentImporter = () => import("./routes-BulNPswx.mjs");
|
|
1283
1283
|
var indexSearchSchema = object({ session: string().optional() });
|
|
1284
1284
|
var Route = createFileRoute("/")({
|
|
1285
1285
|
validateSearch: indexSearchSchema,
|
|
@@ -3813,7 +3813,7 @@ var defaultSerovalPlugins = [
|
|
|
3813
3813
|
* the dev styles URL for route-scoped CSS collection.
|
|
3814
3814
|
*/
|
|
3815
3815
|
async function getStartManifest(matchedRoutes) {
|
|
3816
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
3816
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-D-4It92t.mjs");
|
|
3817
3817
|
const startManifest = tsrStartManifest();
|
|
3818
3818
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes["__root__"] || {};
|
|
3819
3819
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -4799,7 +4799,7 @@ var baseManifestPromise;
|
|
|
4799
4799
|
var cachedFinalManifestPromise;
|
|
4800
4800
|
async function loadEntries() {
|
|
4801
4801
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
4802
|
-
import("./router-
|
|
4802
|
+
import("./router-0zOSfnDH.mjs"),
|
|
4803
4803
|
import("./start-Captdpmb.mjs"),
|
|
4804
4804
|
import("../__23tanstack-start-plugin-adapters-y_fshQDY.mjs")
|
|
4805
4805
|
]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-D-4It92t.js
|
|
2
2
|
var tsrStartManifest = () => ({
|
|
3
3
|
routes: {
|
|
4
4
|
__root__: {
|
|
@@ -50,16 +50,16 @@ var tsrStartManifest = () => ({
|
|
|
50
50
|
"/api/ui/$id"
|
|
51
51
|
],
|
|
52
52
|
assets: void 0,
|
|
53
|
-
preloads: ["/assets/index-
|
|
53
|
+
preloads: ["/assets/index-DA-hjRf1.js", "/assets/rolldown-runtime-S-ySWqyJ.js"]
|
|
54
54
|
},
|
|
55
55
|
"/": {
|
|
56
56
|
filePath: "/home/runner/work/pico/pico/src/routes/index.tsx",
|
|
57
57
|
children: void 0,
|
|
58
58
|
assets: void 0,
|
|
59
|
-
preloads: ["/assets/routes-
|
|
59
|
+
preloads: ["/assets/routes-BEX21mVY.js"]
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
|
-
clientEntry: "/assets/index-
|
|
62
|
+
clientEntry: "/assets/index-DA-hjRf1.js"
|
|
63
63
|
});
|
|
64
64
|
//#endregion
|
|
65
65
|
export { tsrStartManifest };
|