Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"@tauri-apps/plugin-shell": "^2.3.5",
"@tauri-apps/plugin-sql": "^2",
"@tauri-apps/plugin-updater": "^2.10.0",
"lucide-svelte": "^0.577.0",
"lucide-svelte": "^1.0.1",
"svelte-dnd-action": "^0.9.69"
},
"devDependencies": {
Expand Down
7 changes: 4 additions & 3 deletions src/lib/components/settings/tabs/SettingsCloudSyncTab.svelte
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<script lang="ts">
import { onMount } from 'svelte';
import { cloudSyncStore, projectsStore, notifications } from '$lib/stores';
import { Cloud, Github, Check, AlertCircle, Upload, Download, ExternalLink, LogOut, Loader2, FolderSync, RefreshCw } from 'lucide-svelte';
import { Cloud, Check, AlertCircle, Upload, Download, ExternalLink, LogOut, Loader2, FolderSync, RefreshCw } from 'lucide-svelte';
import GithubIcon from '$lib/components/shared/GithubIcon.svelte';
import type { SyncConfig, ProjectMapping } from '$lib/types';

let isInitialized = $state(false);
Expand Down Expand Up @@ -117,7 +118,7 @@
<!-- Authentication Card -->
<div class="card">
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2 flex items-center gap-2">
<Github class="w-5 h-5" />
<GithubIcon class="w-5 h-5" />
GitHub Connection
</h3>
<p class="text-sm text-gray-500 dark:text-gray-400 mb-4">
Expand Down Expand Up @@ -184,7 +185,7 @@
<Loader2 class="w-4 h-4 animate-spin" />
Connecting...
{:else}
<Github class="w-4 h-4" />
<GithubIcon class="w-4 h-4" />
Connect with GitHub CLI
{/if}
</button>
Expand Down
10 changes: 8 additions & 2 deletions src/lib/components/shared/ActionMenuItem.svelte
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
<script lang="ts">
import type { Component } from 'svelte';
// `icon` is intentionally typed loosely. lucide-svelte 1.x still exports
// icons as the legacy `SvelteComponentTyped` class shape, which doesn't
// satisfy Svelte 5's `Component<Props>` type — but renders fine at runtime.
// Accepting both shapes via the broad type avoids forcing a wrapper around
// every icon library import.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type IconLike = any;

type Props = {
icon?: Component<any>;
icon?: IconLike;
label: string;
variant?: 'default' | 'danger';
onclick?: () => void;
Expand Down
10 changes: 8 additions & 2 deletions src/lib/components/shared/EmptyState.svelte
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
<script lang="ts">
import type { Snippet, Component } from 'svelte';
import type { Snippet } from 'svelte';

// See ActionMenuItem.svelte for why `icon` is intentionally loose:
// lucide-svelte 1.x icons use the legacy SvelteComponentTyped shape,
// which doesn't satisfy Svelte 5's `Component<Props>` type but renders fine.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type IconLike = any;

type Props = {
icon?: Component<any>;
icon?: IconLike;
title: string;
description?: string;
children?: Snippet;
Expand Down
40 changes: 40 additions & 0 deletions src/lib/components/shared/GithubIcon.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<script lang="ts">
// Drop-in replacement for `lucide-svelte`'s `Github` icon, which was
// removed in lucide-svelte 1.x for trademark reasons. SVG path is the
// original lucide stroke-style mark so the visual is identical to what
// the codebase used pre-upgrade. Props mirror lucide-svelte's shape so
// existing call sites (`<Github class="w-5 h-5" />` etc.) work unchanged.

type Props = {
class?: string;
size?: number | string;
color?: string;
strokeWidth?: number;
};

let {
class: className = '',
size = 24,
color = 'currentColor',
strokeWidth = 2
}: Props = $props();
</script>

<svg
xmlns="http://www.w3.org/2000/svg"
width={size}
height={size}
viewBox="0 0 24 24"
fill="none"
stroke={color}
stroke-width={strokeWidth}
stroke-linecap="round"
stroke-linejoin="round"
class={className}
aria-hidden="true"
>
<path
d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"
/>
<path d="M9 18c-4.51 2-5-2-7-2" />
</svg>
6 changes: 3 additions & 3 deletions src/routes/marketplace/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
ExternalLink,
Trash2,
Download,
Github,
X,
Eye,
RotateCcw,
Expand All @@ -22,6 +21,7 @@
Loader2,
ArrowUpDown
} from 'lucide-svelte';
import GithubIcon from '$lib/components/shared/GithubIcon.svelte';
import { i18n } from '$lib/i18n';
import type { Repo, RepoItem, CreateRepoRequest, ItemType, RegistryMcpEntry } from '$lib/types';

Expand Down Expand Up @@ -299,7 +299,7 @@
? 'border-primary-500 text-primary-600 dark:text-primary-400'
: 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200'}"
>
<Github class="w-4 h-4" />
<GithubIcon class="w-4 h-4" />
Repos ({repoLibrary.repos.length})
</button>
</div>
Expand Down Expand Up @@ -459,7 +459,7 @@
<div
class="w-10 h-10 rounded-lg bg-gray-100 dark:bg-gray-700 flex items-center justify-center"
>
<Github class="w-5 h-5 text-gray-600 dark:text-gray-400" />
<GithubIcon class="w-5 h-5 text-gray-600 dark:text-gray-400" />
</div>
<div>
<div class="flex items-center gap-2">
Expand Down
Loading