# Flowbite-Svelte Upgrade Notes (December 2025)

## Overview
This document tracks the process of upgrading the Flowbite-Svelte UI library within the Aether SvelteKit project. The primary goal is to determine if a compatible version exists for Svelte 5 and Tailwind CSS v4, and to plan for its integration or replacement if necessary.

## Current Status (Pre-Upgrade)
-   **Flowbite-Svelte Version:** v1.28.1 (as per `package.json` at commit `90ee6bb1`)
-   **Target Version:** v1.30.0 (or newest compatible)
-   **Initial Issue (Pre-Rollback):** Previous attempts to update `flowbite-svelte` (and other packages) indicated peer dependency conflicts. Earlier versions of `flowbite-svelte` (compatible with Tailwind v3) required Svelte v4, which conflicted with the project's Svelte v5.
-   **Current Re-evaluation:** After rolling back to commit `90ee6bb1` and updating SkeletonLabs (which failed the build due to other reasons), `npm install` succeeded with `flowbite-svelte@1.28.1` present in `package.json`. This implies it *can install* alongside Svelte 5 and Tailwind 4. However, its runtime compatibility and rendering correctness with Svelte 5 (runes mode) and Tailwind CSS v4 remain untested.
-   **Svelte Version:** Svelte 5 (runes mode)
-   **Tailwind CSS Version:** v4.1.10

## Phase 1: Research and Planning (No Code Changes Yet)

### Goal
Determine if Flowbite-Svelte has a version that is explicitly compatible with Svelte 5 (runes mode) and Tailwind CSS v4, and to identify any breaking changes or migration paths.

### Steps
1.  **Thoroughly Review Flowbite-Svelte Changelog:**
    *   **Link:** `https://github.com/themesberg/flowbite-svelte/blob/main/CHANGELOG.md`
    *   **Action:** Read the changelog for versions from `1.28.1` up to the latest stable release (e.g., `1.30.0` or newer).
    *   **Goal:** Look for specific mentions of Svelte 5 support, "runes mode" compatibility, or compatibility with Tailwind CSS v4. Note any breaking changes or migration instructions related to Svelte version or component API changes.

### Expected Outcome of Phase 1
A clear understanding of Flowbite-Svelte's compatibility with our current stack. This will inform the decision on whether to attempt an upgrade or if abandoning it (and creating custom replacements) is necessary. The expectation is that if a version is compatible, any breaking changes to component APIs (like renaming `Modal` to `Dialog`) will be identified.

## Phase 2: Execution (After Approval)

### Steps (To be detailed after Phase 1)
1.  **If a compatible version exists:**
    *   Update `package.json` to the compatible version.
    *   Run `npm install`.
    *   Run `npm run build` and `npm run dev` and thoroughly check for errors and visual regressions.
    *   Apply any necessary code changes based on identified breaking changes (e.g., component name changes like `Modal` to `Dialog`).
2.  **If no compatible version exists or issues persist:**
    *   **Decision:** Abandon Flowbite-Svelte.
    *   **Action:** Systematically replace its components with custom-built Svelte/Tailwind components, starting with critical ones like `Modal` (using our `element_modal_v1.svelte` if not using Skeleton's `Dialog`).

## Final Decision (2025-12-08)

**Outcome:** Hold off on upgrading Flowbite-Svelte.

**Reasoning:**
The changelog indicates that experimental Svelte 5 support was added in version `0.45.0`. However, there is no mention of compatibility with Tailwind CSS v4. Since SkeletonLabs (the other major UI library) is being removed due to build failures, our immediate priority is to stabilize the project and replace Skeleton's components. Introducing another potential variable by upgrading Flowbite-Svelte at the same time is not advisable.

**Path Forward:**
1.  The currently installed version of `flowbite-svelte` (`1.28.1`) will be kept for now.
2.  After SkeletonLabs is removed and the project builds successfully, we will test the functionality of existing Flowbite-Svelte components.
3.  If they work, we will continue to use them.
4.  If they cause build or runtime errors after SkeletonLabs is removed, we will then evaluate either upgrading to `v0.45.0` (with careful testing against Tailwind v4) or abandoning Flowbite-Svelte and replacing its components with custom ones.
