diff --git a/package.json b/package.json index 122df84..5991178 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@tauri-apps/plugin-opener": "^2.5.3", "@tauri-apps/plugin-process": "^2.3.1", "@tauri-apps/plugin-updater": "^2.10.0", + "lucide-react": "^1.7.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d2a43c..232a87c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: '@tauri-apps/plugin-updater': specifier: ^2.10.0 version: 2.10.0 + lucide-react: + specifier: ^1.7.0 + version: 1.7.0(react@19.2.4) react: specifier: ^19.0.0 version: 19.2.4 @@ -682,6 +685,11 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-react@1.7.0: + resolution: {integrity: sha512-yI7BeItCLZJTXikmK4KNUGCKoGzSvbKlfCvw44bU4fXAL6v3gYS4uHD1jzsLkfwODYwI6Drw5Tu9Z5ulDe0TSg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -1390,6 +1398,10 @@ snapshots: dependencies: yallist: 3.1.1 + lucide-react@1.7.0(react@19.2.4): + dependencies: + react: 19.2.4 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 diff --git a/src/App.tsx b/src/App.tsx index 6484c30..78eb114 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,7 @@ import { listen, type UnlistenFn } from "@tauri-apps/api/event"; import { getCurrentWindow } from "@tauri-apps/api/window"; import { openUrl, revealItemInDir } from "@tauri-apps/plugin-opener"; import { useEffect, useRef, useState } from "react"; +import { Copy, FishingHook, Folder, FolderTree, GitBranch, HousePlus, Settings } from "lucide-react"; import { Input, Textarea, Select } from "./components/FormControls"; import groveMark from "./assets/grove-mark.svg"; import alacrittyIcon from "./assets/launcher-icons/alacritty.svg"; @@ -116,12 +117,7 @@ const createInitialForm = (repo?: RepoSnapshot): CreateFormState => ({ autoStartLaunchers: [], }); -const copySvg = ( - - - - -); +const copySvg = ; function relativeTime(iso: string, t: Translations): string { const diff = Date.now() - new Date(iso).getTime(); @@ -620,9 +616,7 @@ export default function App({ repoPath }: { repoPath: string }) { {repo && (
- - - + {repo.repoRoot}
)} @@ -636,10 +630,7 @@ export default function App({ repoPath }: { repoPath: string }) { className={`sidebar-tab${view === "repository" ? " active" : ""}`} onClick={() => setView("repository")} > - - - - + {t.tabRepository} @@ -658,10 +647,7 @@ export default function App({ repoPath }: { repoPath: string }) { onClick={() => setView("hooks")} disabled={!repo} > - - - - + {t.hooks} {hookCount > 0 && {hookCount}} @@ -669,10 +655,7 @@ export default function App({ repoPath }: { repoPath: string }) { className={`sidebar-tab${view === "settings" ? " active" : ""}`} onClick={() => setView("settings")} > - - - - + {t.settings} {updateInfo && } @@ -1099,12 +1082,7 @@ function WorktreeListItem({ >
- - - - - - + {worktree.branch ?? t.detachedShort}
toggleExpand(event)}> - - - + {event} {steps.length} {steps.length === 1 ? "step" : "steps"} diff --git a/src/styles.css b/src/styles.css index 4e0bfab..f52ac1c 100644 --- a/src/styles.css +++ b/src/styles.css @@ -438,6 +438,11 @@ pre { -webkit-app-region: drag; } +.topbar-path-icon { + flex-shrink: 0; + opacity: 0.55; +} + .topbar-path-text { overflow: hidden; text-overflow: ellipsis; @@ -1802,8 +1807,6 @@ textarea { .hook-group-chevron { flex-shrink: 0; - width: 16px; - height: 16px; color: var(--ink-ghost); transition: transform 160ms ease; }