chore: update dependencies

Backend:
- gunicorn 23.0.0 → 25.1.0
- setuptools 79.0.1 → 82.0.1
- litellm >=1.72.3 → >=1.82.1

Frontend:
- Migrate Tailwind CSS 3 → 4, daisyUI 4 → 5
  - Add @tailwindcss/vite plugin, remove autoprefixer
  - Replace tailwind.config.js with src/app.css (CSS-based config)
  - Convert custom themes (aestheticDark, catppuccinMocha, aestheticLight,
    northernLights) to daisyUI 5 CSS variable format
  - Remove daisyUI v4-only '-bordered' classes from 45 component files
    (input-bordered, select-bordered, textarea-bordered, file-input-bordered
    are removed in v5; borders are default)
- @types/node 22 → 25
- @lukulent/svelte-umami 0.0.3 → 0.0.4
- packageManager: bun@1.2.22 → bun@1.3.10

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-10 13:34:49 +00:00
parent 61ea33dc24
commit 49abfad192
49 changed files with 377 additions and 466 deletions

View File

@@ -66,7 +66,7 @@
import Navbar from '$lib/components/Navbar.svelte';
import Toast from '$lib/components/Toast.svelte';
import 'tailwindcss/tailwind.css';
import '../app.css';
// Create a promise that resolves when the locale is ready
export const localeLoaded = browser ? waitLocale() : Promise.resolve();

View File

@@ -192,7 +192,7 @@
<input
type="text"
placeholder={$t('adventures.search_for_location')}
class="input input-bordered w-full pl-10 pr-10 bg-base-100/80"
class="input w-full pl-10 pr-10 bg-base-100/80"
bind:value={searchFilter}
/>
{#if searchFilter.length > 0}

View File

@@ -109,7 +109,7 @@
name="username"
id="username"
type="text"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder={$t('auth.enter_username')}
autocomplete="username"
/>
@@ -124,7 +124,7 @@
type="password"
name="password"
id="password"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder={$t('auth.enter_password')}
autocomplete="current-password"
/>
@@ -143,7 +143,7 @@
inputmode="numeric"
pattern="[0-9]*"
autocomplete="one-time-code"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="000000"
maxlength="6"
/>

View File

@@ -532,7 +532,7 @@
<!-- Controls -->
<div class="mt-4 flex flex-wrap items-center gap-4">
<!-- Search Bar -->
<label class="input input-bordered input-sm flex items-center gap-2 flex-1 max-w-md">
<label class="input input-sm flex items-center gap-2 flex-1 max-w-md">
<SearchIcon class="h-4 w-4 opacity-70" />
<input
type="text"

View File

@@ -796,7 +796,7 @@
type="text"
bind:value={user.username}
name="username"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_username')}
/>
</div>
@@ -810,7 +810,7 @@
type="text"
bind:value={user.first_name}
name="first_name"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_first_name')}
/>
</div>
@@ -824,7 +824,7 @@
type="text"
bind:value={user.last_name}
name="last_name"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_last_name')}
/>
</div>
@@ -837,7 +837,7 @@
<input
type="file"
name="profile_pic"
class="file-input file-input-bordered file-input-primary"
class="file-input file-input-primary"
accept="image/*"
/>
</div>
@@ -887,7 +887,7 @@
<select
id="default_currency"
name="default_currency"
class="select select-bordered select-primary w-full"
class="select select-primary w-full"
bind:value={user.default_currency}
>
{#each CURRENCY_OPTIONS as code}
@@ -941,7 +941,7 @@
<input
type="password"
name="current_password"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_current_password')}
/>
</div>
@@ -956,7 +956,7 @@
<input
type="password"
name="password1"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_new_password')}
/>
</div>
@@ -971,7 +971,7 @@
<input
type="password"
name="password2"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.confirm_new_password')}
/>
</div>
@@ -1253,7 +1253,7 @@
<input
type="email"
bind:value={new_email}
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('settings.enter_new_email')}
required
/>
@@ -1321,7 +1321,7 @@
<input
type="url"
bind:value={newImmichIntegration.server_url}
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder="https://immich.example.com/api"
/>
{#if newImmichIntegration.server_url && !newImmichIntegration.server_url.endsWith('api')}
@@ -1346,7 +1346,7 @@
<input
type="password"
bind:value={newImmichIntegration.api_key}
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder={$t('immich.api_key_placeholder')}
/>
</div>
@@ -1518,7 +1518,7 @@
</label>
<input
type="password"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder="Enter your password"
bind:value={newWandererIntegration.password}
/>
@@ -1541,7 +1541,7 @@
</label>
<input
type="url"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder="https://wanderer.example.com"
bind:value={newWandererIntegration.server_url}
/>
@@ -1554,7 +1554,7 @@
</label>
<input
type="text"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder="Enter your username"
bind:value={newWandererIntegration.username}
/>
@@ -1567,7 +1567,7 @@
</label>
<input
type="password"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
placeholder="Enter your password"
bind:value={newWandererIntegration.password}
/>
@@ -1694,7 +1694,7 @@
</label>
<select
id="default-ai-provider"
class="select select-bordered select-primary w-full"
class="select select-primary w-full"
bind:value={defaultAiProvider}
on:change={onDefaultAiProviderChange}
>
@@ -1710,7 +1710,7 @@
</label>
<select
id="default-ai-model"
class="select select-bordered select-primary w-full"
class="select select-primary w-full"
bind:value={defaultAiModel}
disabled={defaultAiModelsLoading}
>
@@ -1816,7 +1816,7 @@
</label>
<select
id="api-key-provider"
class="select select-bordered select-primary w-full"
class="select select-primary w-full"
bind:value={newApiKeyProvider}
disabled={providerCatalog.length === 0}
>
@@ -1832,7 +1832,7 @@
<input
id="api-key-value"
type="password"
class="input input-bordered input-primary focus:input-primary"
class="input input-primary focus:input-primary"
bind:value={newApiKeyValue}
placeholder={$t('settings.api_key_value_placeholder')}
required
@@ -1996,7 +1996,7 @@
type="file"
name="file"
id="backup-file"
class="file-input file-input-bordered file-input-primary w-full"
class="file-input file-input-primary w-full"
accept=".zip"
required
/>

View File

@@ -63,7 +63,7 @@
name="username"
id="username"
type="text"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="Choose a username"
autocomplete="username"
required
@@ -79,7 +79,7 @@
name="email"
id="email"
type="email"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="Enter your email"
autocomplete="email"
required
@@ -96,7 +96,7 @@
name="first_name"
id="first_name"
type="text"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="First name"
autocomplete="given-name"
required
@@ -110,7 +110,7 @@
name="last_name"
id="last_name"
type="text"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="Last name"
autocomplete="family-name"
required
@@ -127,7 +127,7 @@
type="password"
name="password1"
id="password"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="Create a password"
autocomplete="new-password"
required
@@ -143,7 +143,7 @@
type="password"
name="password2"
id="password2"
class="input input-bordered w-full focus:input-primary"
class="input w-full focus:input-primary"
placeholder="Confirm your password"
autocomplete="new-password"
required

View File

@@ -18,7 +18,7 @@
type="email"
id="email"
placeholder="Enter your email"
class="input input-bordered w-full"
class="input w-full"
required
/>
</div>

View File

@@ -24,7 +24,7 @@
name="password"
placeholder="Enter new password"
required
class="input input-bordered w-full"
class="input w-full"
/>
</div>
@@ -38,7 +38,7 @@
name="confirm_password"
placeholder="Confirm new password"
required
class="input input-bordered w-full"
class="input w-full"
/>
</div>

View File

@@ -327,7 +327,7 @@
<input
type="text"
placeholder={$t('navbar.search')}
class="input input-bordered w-full pl-10 pr-10 bg-base-100/80"
class="input w-full pl-10 pr-10 bg-base-100/80"
bind:value={searchQuery}
/>
{#if searchQuery.length > 0}

View File

@@ -295,7 +295,7 @@
<input
type="text"
placeholder={$t('navbar.search')}
class="input input-bordered w-full pl-10 pr-10 bg-base-100/80"
class="input w-full pl-10 pr-10 bg-base-100/80"
bind:value={searchQuery}
/>
{#if searchQuery.length > 0}

View File

@@ -274,7 +274,7 @@
<input
type="text"
placeholder={$t('navbar.search')}
class="input input-bordered w-full pl-10 pr-10 bg-base-100/80"
class="input w-full pl-10 pr-10 bg-base-100/80"
bind:value={searchQuery}
/>
{#if searchQuery.length > 0}