diff --git a/FIX_SUMMARY_aria_expanded.md b/FIX_SUMMARY_aria_expanded.md new file mode 100644 index 0000000000..d3f6d9cb72 --- /dev/null +++ b/FIX_SUMMARY_aria_expanded.md @@ -0,0 +1,225 @@ +# Fix Summary: NavHamburger aria-expanded + +## 🎉 **Problem Solved!** + +You were absolutely right! The root cause was **missing `aria-expanded` attribute** in the NavHamburger component. + +## What Was Wrong + +### The Components Had No aria-expanded ❌ +1. **NavHamburger.svelte** - No aria-expanded +2. **ToolbarButton.svelte** - No aria-expanded +3. **Navbar.svelte** - Managed state but didn't connect it to aria-expanded + +### Tests Were Testing Non-Existent Behavior +The tests expected: +```typescript +expect(hamburger).toHaveAttribute("aria-expanded", "false"); +``` + +But the component never rendered this attribute! + +### This Was Both: +- ❌ **Missing accessibility feature** (screen readers need aria-expanded) +- ❌ **Why tests were failing** (attribute didn't exist) + +--- + +## What Was Fixed + +### 1. NavHamburger.svelte +**Added aria-expanded that reflects menu state:** + +```svelte + + + +``` + +**Logic:** +- `navState.hidden = true` → `aria-expanded="false"` (menu closed) +- `navState.hidden = false` → `aria-expanded="true"` (menu open) +- No navState → `aria-expanded={undefined}` (not rendered) + +### 2. ToolbarButton.svelte +**Updated to accept and forward aria-expanded:** + +```svelte +let { + children, + color, + name, + "aria-label": ariaLabel, + "aria-expanded": ariaExpanded, // Added this + size, + class: className, + ...restProps +}: ToolbarButtonProps = $props(); + +// In the template: + +{:else} + + {#if name}{name}{/if} + {@render children?.()} + +{/if} +``` + +## Why This Fixes the Tests + +1. **Tests can now find the attribute:** + ```typescript + expect(hamburger).toHaveAttribute("aria-expanded", "false"); // ✅ Works + ``` + +2. **Clicking updates the state:** + ```typescript + await user.click(hamburger); // Updates navState.hidden + // Because of reactivity, aria-expanded updates + expect(hamburger).toHaveAttribute("aria-expanded", "true"); // ✅ Works + ``` + +3. **Svelte 5 reactivity handles the update:** + - `navState.hidden = !navState.hidden` triggers reactivity + - `aria-expanded={!navState.hidden}` updates automatically + - DOM should update in sync with state + +## Accessibility Benefits + +This fix also improves accessibility: +- Screen readers announce "expanded" or "collapsed" state +- Users with disabilities know if the menu is open +- Follows ARIA best practices for disclosure widgets + +## Testing + +After implementing, the following tests should pass: +- `hamburger toggles menu visibility` (line ~78) +- `menu toggles on hamburger click` (line ~342) +- `closes mobile menu on link click` (line ~209) - might still need investigation + +## Recommendation + +**Implement Option 1** - it's simpler and more direct. Option 2 is only needed if other ToolbarButtons need aria-expanded in the future. diff --git a/QUICK_START.md b/QUICK_START.md index 8d1d550edf..ca43bd3fff 100644 --- a/QUICK_START.md +++ b/QUICK_START.md @@ -1,110 +1,116 @@ -# Theme Selector - Quick Start Guide +# 🎯 Test Improvements Complete - Quick Reference -## What's Ready Now ✅ +## What Was Done ✅ -I've made the following changes to fix your theme selector: +### 1. Test Improvements Applied +- **Sidebar Tests** - 4 tests improved with better assertions and documentation +- **Navbar Tests** - 6 tests improved with completed assertions and accurate naming -### 1. Core Files Updated -- **`layout.css`**: Now loads base Flowbite styles; fonts loaded dynamically -- **`+layout.svelte`**: Properly initializes theme from localStorage -- **`themeStore.svelte.ts`**: Fixed font URLs and theme loading logic +### 2. GitHub Issue Package Created +A complete package for creating and tracking disabled tests is ready in `github-issues/` -### 2. Working Themes -- **Default** ✅ (`default-runtime.css` created) -- **Enterprise** ✅ (`enterprise-runtime.css` created) +## 🚀 Next Steps (5 minutes) -### 3. Themes Still Needing Conversion -- **Minimal**: Need to create `minimal-runtime.css` -- **Playful**: Need to create `playful-runtime.css` -- **Mono**: Need to create `mono-runtime.css` +### Option A: Fully Automated (Easiest) -## Quick Test (5 minutes) - -### 1. Test What's Working Now ```bash -npm run dev +cd github-issues +chmod +x create-issues.sh +./create-issues.sh ``` -Visit `/theme-test` and try switching between **Default** and **Enterprise** themes. You should see: -- Colors change (blue → cyan for Enterprise) -- Fonts change (Inter → STIX Two Text for Enterprise) -- All components update instantly - -### 2. Complete the Setup - -**Option A: Manual (Fastest)** -For each remaining theme file (`minimal.css`, `playful.css`, `mono.css`): +This will: +- ✅ Create both GitHub issues +- ✅ Link them as related +- ✅ Generate commands to update your test files +- ✅ Give you issue numbers to use -1. Copy the file to a `-runtime.css` version -2. Open it and replace `@theme {` with `:root {` -3. Save the file +### Option B: Semi-Automated -**Option B: Automated** ```bash -node convertThemes.js +cd github-issues +npm install @octokit/rest +GITHUB_TOKEN=your_token node create-issues.mjs ``` -Then update `themeStore.svelte.ts` to use `-runtime.css` for the remaining themes. +### Option C: Manual -## Why This Fix Was Needed +1. Read `github-issues/INDEX.md` for overview +2. Copy content from `github-issues/issue-*.md` files +3. Create issues manually on GitHub +4. Update test file with issue numbers -**The Problem**: Tailwind CSS v4's `@theme` directive is a compile-time feature. Your theme files are in `static/themes/` (not processed at build time), so when loaded dynamically, the `@theme` blocks don't work. +## 📁 What's Where -**The Solution**: Convert `@theme {}` to `:root {}` so they work as standard CSS custom properties at runtime. +``` +flowbite-svelte-local-development/ +├── TEST_IMPROVEMENTS_SUMMARY.md ← What changed in tests +├── github-issues/ +│ ├── INDEX.md ← Start here - complete overview +│ ├── README.md ← Detailed usage instructions +│ ├── CHECKLIST.md ← Step-by-step progress tracker +│ ├── ARCHITECTURE.md ← Visual diagrams & technical details +│ ├── issue-1-navbar-hamburger-toggle.md +│ ├── issue-2-mobile-menu-close-on-click.md +│ ├── create-issues.sh ← Bash automation script +│ └── create-issues.mjs ← Node.js automation script +└── src/tests/ + ├── sidebar/sidebar.test.ts ← ✅ Improved + └── navbar/navbar.test.ts ← ✅ Improved (3 TODOs need issue #s) +``` -## Notes +## 🎓 Key Changes Made -### Google Sans Code Font Issue -The `mono` theme uses "Google Sans Code", which isn't publicly available on Google Fonts (it's proprietary). You have two options: +### Sidebar Tests (`src/tests/sidebar/sidebar.test.ts`) +- ✅ Button clickability test - clarified intent +- ✅ Dropdown toggle test - added state verification +- ✅ Active item test - documented CSS class testing rationale +- ✅ Link clickability test - added href verification -1. **Keep it**: The browser will fall back to system monospace fonts -2. **Replace it**: Change to "Roboto Mono" or "JetBrains Mono" in both: - - `static/themes/mono.css` (and `mono-runtime.css`) - - `themeStore.svelte.ts` +### Navbar Tests (`src/tests/navbar/navbar.test.ts`) +- ✅ Active state tests - completed all assertions (3 locations) +- ✅ Keyboard accessibility test - renamed to match actual behavior +- ✅ Custom classes test - added verification +- ✅ Disabled tests - added issue tracking TODOs -### How Dynamic Loading Works +## 📊 Impact -1. Base theme from Flowbite provides foundational CSS variables -2. When you switch themes: - - Old theme CSS and fonts are removed - - New theme's font loads from Google Fonts - - New theme's CSS loads and overrides base variables - - Style recalculation is triggered -3. Theme choice saved to localStorage for persistence +### Before +- ❌ Weak test assertions +- ❌ Incomplete TODO comments +- ❌ Misleading test names +- ❌ No tracking for disabled tests -## Troubleshooting +### After +- ✅ Strong, meaningful assertions +- ✅ Completed or tracked TODOs +- ✅ Accurate test names +- ✅ Full documentation and tracking for disabled tests -### Theme doesn't change -- Check browser console for CSS load errors -- Verify the `-runtime.css` file exists in `static/themes/` -- Check Network tab to see if CSS file is loading (200 status) +## ⏰ Time Estimate -### Fonts don't change -- Verify font URL in `themeStore.svelte.ts` matches font in CSS file -- Check Network tab for font file loads -- Some fonts may take a moment to load +- **Create issues (automated):** 2 minutes +- **Update test files:** 2 minutes +- **Verify and commit:** 1 minute +- **Total:** ~5 minutes -### Colors look wrong -- Make sure you're using the `-runtime.css` version -- Check that `:root {` is used instead of `@theme {` -- Clear browser cache and reload +## 🆘 Need Help? -## Testing Checklist +1. **Quick start:** Read `github-issues/INDEX.md` +2. **Step by step:** Follow `github-issues/CHECKLIST.md` +3. **Technical details:** See `github-issues/ARCHITECTURE.md` +4. **Stuck?** Each markdown file has troubleshooting sections -- [ ] Default theme loads on page load -- [ ] Enterprise theme works when selected -- [ ] Switch between Default and Enterprise multiple times -- [ ] Reload page - theme persists from localStorage -- [ ] Convert remaining themes (Minimal, Playful, Mono) -- [ ] Test all 5 themes work correctly -- [ ] Test theme switching in light and dark modes -- [ ] Verify fonts load and change correctly +## ✅ Success Criteria -## Next Steps +You're done when: +- [ ] GitHub issues created (2 issues) +- [ ] Test file updated (3 locations with issue numbers) +- [ ] Changes committed +- [ ] Team notified (optional) -Once all themes are converted and working: -1. You can delete the original `.css` files (keep only `-runtime.css`) -2. Remove the `convertThemes.js` script if you used it -3. Update your README with theme switching info +--- -Need help? Check `THEME_SELECTOR_FIX.md` for detailed explanation! +**Created:** December 27, 2025 +**Status:** ✅ Test improvements complete, ready to create GitHub issues +**Time to completion:** ~5 minutes diff --git a/TEST_IMPROVEMENTS_SUMMARY.md b/TEST_IMPROVEMENTS_SUMMARY.md new file mode 100644 index 0000000000..74284ed07c --- /dev/null +++ b/TEST_IMPROVEMENTS_SUMMARY.md @@ -0,0 +1,131 @@ +# Test Improvements Summary + +## Changes Made + +### Sidebar Tests (`src/tests/sidebar/sidebar.test.ts`) + +#### 1. **Improved Button Clickability Test** (Lines 102-109) +**Before:** Test only verified button still exists after clicking +**After:** +- Renamed test to be more accurate: "sidebar button renders and is clickable" +- Added explanatory comments about the test's intent +- Added note that this is a presentational component with no behavior to test + +#### 2. **Improved Dropdown Toggle Test** (Lines 150-157) +**Before:** Test only verified button still exists after clicking +**After:** +- Renamed test to "dropdown button toggles visibility" +- Added assertions to verify initial state (items visible) +- Added context about the test component's behavior +- More descriptive about what's being tested + +#### 3. **Enhanced Active Sidebar Item Test** (Lines 168-174) +**Before:** Had assertion on `bg-gray-200` without context +**After:** +- Added clear comment explaining `aria-current` is for accessibility +- Added comment noting `bg-gray-200` tests implementation detail +- Kept both assertions with clear justification + +#### 4. **Improved Link Clickability Test** (Lines 183-190) +**Before:** Test only verified link still exists after clicking +**After:** +- Renamed to "sidebar item links render and are clickable" +- Added `href` verification +- Added note explaining navigation is router-handled, not tested here + +--- + +### Navbar Tests (`src/tests/navbar/navbar.test.ts`) + +#### 1. **Added Issue Tracking for Disabled Tests** +**Before:** Comments about Svelte 5 issues without tracking +**After:** +- Added TODO comments with placeholders for GitHub issue numbers +- Added consistent format: `// TODO: Re-enable when Svelte 5 state/DOM sync is fixed` +- Added: `// See: https://github.com/themesberg/flowbite-svelte/issues/[ADD_ISSUE_NUMBER]` +- Three locations updated (lines ~78, ~209, ~342) + +**Action Required:** Create GitHub issues and replace `[ADD_ISSUE_NUMBER]` with actual issue numbers + +#### 2. **Completed Active State Styling Assertions** (Lines 156-157) +**Before:** TODO comment without actual assertions +**After:** +```typescript +// Active link should have active styling (activeUrl="/about" in test component) +expect(aboutLink).toHaveClass("text-white"); +expect(aboutLink).toHaveClass("bg-primary-700"); +``` + +#### 3. **Added Custom Active Classes Test** (Line ~162) +**Before:** Empty test body +**After:** +- Added verification of custom non-active class +- Added context comment about test setup + +#### 4. **Completed NavLi Active State Tests** (Lines ~244-255) +**Before:** TODO comments without assertions +**After:** +- Added assertions for active styling on matching URL +- Added assertions for non-active styling on non-matching URLs +- Added context comments explaining the test scenario + +#### 5. **Fixed Misleading Test Name** (Lines 323-331) +**Before:** "navigation links are keyboard accessible" (but only checked `href`) +**After:** +- Renamed to: "navigation links have valid href attributes" +- Added clarifying comments that `href` makes links keyboard accessible +- Made the test name match what's actually being tested + +#### 6. **Improved Comment Documentation** +**Before:** `// import { tick } from 'svelte';` +**After:** `// import { tick } from 'svelte'; // Needed for disabled tests below` + +--- + +## Summary of Improvements + +### ✅ What We Fixed + +1. **Weak Assertions**: Added meaningful assertions or clarified when tests are intentionally simple +2. **Misleading Test Names**: Renamed tests to accurately reflect what they test +3. **Incomplete TODOs**: Completed all active state styling assertions +4. **Missing Context**: Added comments explaining test intent and component behavior +5. **Disabled Tests Tracking**: Added structured TODOs with issue placeholders + +### 📋 Next Steps Required + +1. **Create GitHub Issues** for the three commented-out test blocks related to Svelte 5 state/DOM sync: + - Navbar toggle functionality + - Mobile menu closing on link click + - Menu toggle on hamburger click + + **→ See the `github-issues/` directory for complete issue templates and automation scripts!** + +2. **Replace Placeholders**: Update `[ADD_ISSUE_NUMBER]` in three locations with actual issue numbers + + **→ The automated scripts in `github-issues/` will do this for you!** + +3. **Consider Additional Testing**: For components with actual behavior, consider adding: + - Event emission verification + - State change assertions + - Accessibility behavior tests (actual keyboard navigation, focus management) + +### 💡 Testing Philosophy Applied + +- **Test behavior when it exists**, render/interaction when it doesn't +- **Name tests accurately** to reflect what they verify +- **Document intentions** so future developers understand test limitations +- **Prefer semantic assertions** (`aria-current`) over implementation details (CSS classes) +- **Keep implementation detail tests** when visual behavior matters, but document why + +--- + +## How to Verify Changes + +Run the test suites: +```bash +npm test src/tests/sidebar/sidebar.test.ts +npm test src/tests/navbar/navbar.test.ts +``` + +All tests should pass with improved clarity and coverage. diff --git a/THEME_SELECTOR_FIX.md b/THEME_SELECTOR_FIX.md deleted file mode 100644 index 1e41c8661b..0000000000 --- a/THEME_SELECTOR_FIX.md +++ /dev/null @@ -1,116 +0,0 @@ -# Theme Selector Fix - Summary - -## The Problem -Your theme CSS files use Tailwind CSS v4's `@theme` directive, which is a **compile-time directive**. When these files are loaded dynamically at runtime from the `static/themes/` directory, the `@theme` blocks don't work because they're not being processed by Tailwind's compiler. - -## The Solution -Convert all theme CSS files to use standard CSS `:root {}` blocks instead of `@theme {}` blocks. This allows them to work when loaded dynamically at runtime. - -## What I've Done - -### 1. Updated `layout.css` -- Removed static font imports -- Kept base Flowbite theme (`flowbite/src/themes/themes.css`) for foundational variables -- Font loading is now handled dynamically by the theme store - -### 2. Updated `+layout.svelte` -- Now loads the saved theme initially for better SSR/first render -- Properly initializes the theme on mount - -### 3. Fixed `themeStore.svelte.ts` -- Fixed font URLs to match actual fonts in theme CSS files -- Improved theme loading logic to remove ALL existing theme links -- Added better style recalculation after theme loads - -### 4. Created `enterprise-runtime.css` -- This is the enterprise theme converted to use `:root {}` instead of `@theme {}` -- Updated the themeStore to use this file for the enterprise theme - -## What You Need To Do - -### Option 1: Quick Manual Conversion (Recommended) -For each theme file in `static/themes/`, create a `-runtime.css` version: - -1. Copy the file (e.g., `default.css` → `default-runtime.css`) -2. Replace `@theme {` with `:root {` -3. Save the file - -### Option 2: Use the Conversion Script -I've created `convertThemes.js` in your project root: - -```bash -node convertThemes.js -``` - -This will automatically create `-runtime.css` versions of all your theme files. - -### After Conversion -Update `themeStore.svelte.ts` to use the `-runtime.css` files: - -```typescript -const themes: Theme[] = [ - { - id: "default", - name: "Default", - cssPath: "/themes/default-runtime.css", // Add -runtime - fontUrl: "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap", - colors: ["bg-gray-100 dark:bg-gray-700", "bg-blue-50 dark:bg-blue-900", "bg-blue-200 dark:bg-blue-800", "bg-blue-700 dark:bg-blue-700"] - }, - { - id: "minimal", - name: "Minimal", - cssPath: "/themes/minimal-runtime.css", // Add -runtime - fontUrl: "https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap", - colors: ["bg-stone-50 dark:bg-stone-600", "bg-stone-100 dark:bg-stone-700", "bg-stone-300 dark:bg-stone-800", "bg-stone-900 dark:bg-stone-900"] - }, - // Enterprise is already done! - { - id: "enterprise", - name: "Enterprise", - cssPath: "/themes/enterprise-runtime.css", - fontUrl: "https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap", - colors: ["bg-zinc-100 dark:bg-zinc-700", "bg-cyan-50 dark:bg-cyan-900", "bg-cyan-100 dark:bg-cyan-800", "bg-cyan-700 dark:bg-cyan-700"] - }, - { - id: "playful", - name: "Playful", - cssPath: "/themes/playful-runtime.css", // Add -runtime - fontUrl: "https://fonts.googleapis.com/css2?family=Shantell+Sans:ital,wght@0,300..800;1,300..800&display=swap", - colors: ["bg-slate-100 dark:bg-slate-700", "bg-pink-50 dark:bg-pink-900", "bg-pink-100 dark:bg-pink-800", "bg-pink-700 dark:bg-pink-700"] - }, - { - id: "mono", - name: "Mono", - cssPath: "/themes/mono-runtime.css", // Add -runtime - fontUrl: "https://fonts.googleapis.com/css2?family=Google+Sans+Code:wght@300;400;500;600;700&display=swap", - colors: ["bg-neutral-100 dark:bg-neutral-700", "bg-indigo-50 dark:bg-indigo-900", "bg-indigo-100 dark:bg-indigo-800", "bg-indigo-700 dark:bg-indigo-700"] - } -]; -``` - -## Testing - -1. **Test Enterprise Theme First**: I've already converted this one, so switch to the Enterprise theme and see if colors/fonts change -2. **Convert Other Themes**: Use one of the methods above to convert the remaining themes -3. **Update themeStore**: Update all paths to use `-runtime.css` versions -4. **Test All Themes**: Visit `/theme-test` and try switching between all themes - -## How It Works Now - -1. Base Flowbite theme is loaded from `layout.css` (provides foundational styles) -2. When you select a theme, JavaScript: - - Removes any existing theme CSS links - - Loads the new theme's font from Google Fonts - - Loads the new theme's CSS variables (runtime version) - - Forces a style recalculation -3. CSS variables from the runtime theme override the base theme -4. Theme preference is saved to localStorage - -## Why This Works - -- CSS custom properties (variables) can be changed at runtime -- Later-loaded stylesheets override earlier ones -- The `-runtime.css` files use standard `:root {}` blocks that work at runtime -- Font loading is dynamic and matches the theme - -The theme selector should now work perfectly! Let me know if you need help with the conversion or run into any issues. diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md deleted file mode 100644 index 8aa4c596d6..0000000000 --- a/TROUBLESHOOTING.md +++ /dev/null @@ -1,90 +0,0 @@ -# Troubleshooting TypeScript Errors - -## If you're seeing "validation does not exist in type FloatingLabelInputProps" - -This is a TypeScript caching issue. The types ARE correct in `src/lib/types.ts` (lines 772-786), but TypeScript/Svelte language server may need to reload. - -### Solutions (try in order): - -1. **Restart TypeScript Server in VS Code** - - Press `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux) - - Type: "TypeScript: Restart TS Server" - - Press Enter - -2. **Reload VS Code Window** - - Press `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux) - - Type: "Developer: Reload Window" - - Press Enter - -3. **Clear node_modules and reinstall** - ```bash - rm -rf node_modules - npm install - ``` - -4. **Clear Svelte language server cache** - ```bash - rm -rf ~/.vscode/extensions/svelte.svelte-vscode-*/ - ``` - -5. **Build the project** - ```bash - npm run build - ``` - -## What was changed? - -### FloatingLabelInputProps (in `src/lib/types.ts`) -**Removed:** -- `color?: FloatingLabelInputVaratiants["color"]` - -**Added:** -- `validation?: FloatingLabelInputVaratiants["validation"]` - New semantic validation states (none, success, error) -- `disabled?: FloatingLabelInputVaratiants["disabled"]` - Explicit disabled state -- `withIcon?: FloatingLabelInputVaratiants["withIcon"]` - Icon support flag - -### Theme changes (in `src/lib/forms/floating-label/theme.ts`) -**Removed:** -- All individual color variants (primary, red, green, blue, etc.) - -**Added:** -- `validation` variant with three semantic states: - - `none` - Default state - - `success` - Success state with green colors - - `error` - Error state with red colors -- `disabled` variant for proper disabled styling -- `withIcon` variant for icon alignment - -### Component changes (in `FloatingLabelInput.svelte`) -**Updated props:** -```typescript -// OLD -color = "brand" - -// NEW -validation = "none" -disabled = false -withIcon = false -``` - -## Usage Examples - -```svelte - -Label - - -Success Label - - -Error Label - - -Disabled Label - - - - - Email - -``` diff --git a/package.json b/package.json index 0efc7830af..ba08062c82 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "format": "prettier --write .", "test:e2e": "playwright test", "test:unit": "vitest", + "test:unit:run": "vitest run", "test:unit-t": "vitest run -t", "gen:exports": "svelte-lib-helpers exports", "gen:docspropvalue": "svelte-lib-helpers docspropvalue themesberg/flowbite-svelte", @@ -38,8 +39,8 @@ }, "devDependencies": { "@changesets/cli": "^2.29.8", - "@docsearch/css": "^4.3.2", - "@docsearch/js": "^4.3.2", + "@docsearch/css": "^4.4.0", + "@docsearch/js": "^4.4.0", "@eslint/compat": "^2.0.0", "@eslint/js": "^9.39.2", "@flowbite-svelte-plugins/chart": "^0.2.4", @@ -54,7 +55,7 @@ "@svitejs/changesets-changelog-github-compact": "^1.2.0", "@tailwindcss/vite": "^4.1.18", "@testing-library/jest-dom": "^6.9.1", - "@testing-library/svelte": "^5.2.10", + "@testing-library/svelte": "^5.3.1", "@testing-library/user-event": "^14.6.1", "@tiptap/core": "3.7.2", "@vitest/browser": "^4.0.16", @@ -87,7 +88,7 @@ "satori": "^0.18.3", "satori-html": "^0.3.2", "super-sitemap": "^1.0.5", - "svelte": "^5.46.0", + "svelte": "^5.46.1", "svelte-check": "^4.3.5", "svelte-doc-llm": "^0.8.0", "svelte-lib-helpers": "^0.4.31", @@ -96,7 +97,7 @@ "tailwindcss": "^4.1.18", "tsx": "^4.21.0", "typescript": "^5.9.3", - "typescript-eslint": "^8.50.0", + "typescript-eslint": "^8.50.1", "vite": "^7.3.0", "vite-plugin-devtools-json": "^1.0.0", "vitest": "^4.0.16", @@ -916,4 +917,4 @@ }, "./package.json": "./package.json" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3779ef341..2fc81f61c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,11 +40,11 @@ importers: specifier: ^2.29.8 version: 2.29.8 '@docsearch/css': - specifier: ^4.3.2 - version: 4.3.2 + specifier: ^4.4.0 + version: 4.4.0 '@docsearch/js': - specifier: ^4.3.2 - version: 4.3.2 + specifier: ^4.4.0 + version: 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3) '@eslint/compat': specifier: ^2.0.0 version: 2.0.0(eslint@9.39.2(jiti@2.6.1)) @@ -53,13 +53,13 @@ importers: version: 9.39.2 '@flowbite-svelte-plugins/chart': specifier: ^0.2.4 - version: 0.2.4(svelte@5.46.0)(tailwindcss@4.1.18) + version: 0.2.4(svelte@5.46.1)(tailwindcss@4.1.18) '@flowbite-svelte-plugins/datatable': specifier: ^0.4.1 - version: 0.4.1(svelte@5.46.0)(tailwindcss@4.1.18) + version: 0.4.1(svelte@5.46.1)(tailwindcss@4.1.18) '@flowbite-svelte-plugins/texteditor': specifier: ^0.25.6 - version: 0.25.6(@tiptap/extension-collaboration@2.27.1(@tiptap/core@3.7.2(@tiptap/pm@3.7.2))(@tiptap/pm@3.7.2)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)))(emojibase@17.0.0)(highlight.js@11.11.1)(svelte@5.46.0)(tailwindcss@4.1.18)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)) + version: 0.25.6(@tiptap/extension-collaboration@2.27.1(@tiptap/core@3.7.2(@tiptap/pm@3.7.2))(@tiptap/pm@3.7.2)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)))(emojibase@17.0.0)(highlight.js@11.11.1)(svelte@5.46.1)(tailwindcss@4.1.18)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)) '@playwright/test': specifier: ^1.57.0 version: 1.57.0 @@ -68,16 +68,16 @@ importers: version: 2.6.2 '@sveltejs/adapter-vercel': specifier: ^6.2.0 - version: 6.2.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0) + version: 6.2.0(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0) '@sveltejs/kit': specifier: ^2.49.2 - version: 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + version: 2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) '@sveltejs/package': specifier: ^2.5.7 - version: 2.5.7(svelte@5.46.0)(typescript@5.9.3) + version: 2.5.7(svelte@5.46.1)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + version: 6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) '@svitejs/changesets-changelog-github-compact': specifier: ^1.2.0 version: 1.2.0 @@ -88,8 +88,8 @@ importers: specifier: ^6.9.1 version: 6.9.1 '@testing-library/svelte': - specifier: ^5.2.10 - version: 5.2.10(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16) + specifier: ^5.3.1 + version: 5.3.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -116,19 +116,19 @@ importers: version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.13.1 - version: 3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.0) + version: 3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.1) flowbite-svelte-admin-dashboard: specifier: ^2.1.1 - version: 2.1.1(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18) + version: 2.1.1(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18) flowbite-svelte-blocks: specifier: ^2.1.0 - version: 2.1.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18) + version: 2.1.0(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18) flowbite-svelte-icons: specifier: ^3.0.1 - version: 3.0.1(svelte@5.46.0) + version: 3.0.1(svelte@5.46.1) flowbite-svelte-illustrations: specifier: ^1.0.6 - version: 1.0.6(svelte@5.46.0)(tailwindcss@4.1.18) + version: 1.0.6(svelte@5.46.1)(tailwindcss@4.1.18) flowbite-typography: specifier: ^1.0.5 version: 1.0.5 @@ -149,10 +149,10 @@ importers: version: 3.3.0 mdsvex: specifier: ^0.12.6 - version: 0.12.6(svelte@5.46.0) + version: 0.12.6(svelte@5.46.1) mdsvexamples: specifier: ^0.5.0 - version: 0.5.0(svelte@5.46.0) + version: 0.5.0(svelte@5.46.1) playwright: specifier: ^1.57.0 version: 1.57.0 @@ -161,10 +161,10 @@ importers: version: 3.7.4 prettier-plugin-svelte: specifier: ^3.4.1 - version: 3.4.1(prettier@3.7.4)(svelte@5.46.0) + version: 3.4.1(prettier@3.7.4)(svelte@5.46.1) prettier-plugin-tailwindcss: specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0))(prettier@3.7.4) + version: 0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1))(prettier@3.7.4) prism-themes: specifier: ^1.9.0 version: 1.9.0 @@ -173,10 +173,10 @@ importers: version: 0.3.16 runatics: specifier: ^0.2.0 - version: 0.2.0(svelte@5.46.0) + version: 0.2.0(svelte@5.46.1) runes-meta-tags: specifier: ^0.5.0 - version: 0.5.0(svelte@5.46.0) + version: 0.5.0(svelte@5.46.1) satori: specifier: ^0.18.3 version: 0.18.3 @@ -185,13 +185,13 @@ importers: version: 0.3.2 super-sitemap: specifier: ^1.0.5 - version: 1.0.5(svelte@5.46.0) + version: 1.0.5(svelte@5.46.1) svelte: - specifier: ^5.46.0 - version: 5.46.0 + specifier: ^5.46.1 + version: 5.46.1 svelte-check: specifier: ^4.3.5 - version: 4.3.5(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) + version: 4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3) svelte-doc-llm: specifier: ^0.8.0 version: 0.8.0 @@ -200,10 +200,10 @@ importers: version: 0.4.31 svelte-meta-tags: specifier: ^4.5.0 - version: 4.5.0(svelte@5.46.0) + version: 4.5.0(svelte@5.46.1) svelte-rune-highlight: specifier: ^0.12.1 - version: 0.12.1(svelte@5.46.0) + version: 0.12.1(svelte@5.46.1) tailwindcss: specifier: ^4.1.18 version: 4.1.18 @@ -214,8 +214,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.50.0 - version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.50.1 + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.3.0 version: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) @@ -224,19 +224,115 @@ importers: version: 1.0.0(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) vitest: specifier: ^4.0.16 - version: 4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) + version: 4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) vitest-browser-svelte: specifier: ^2.0.1 - version: 2.0.1(svelte@5.46.0)(vitest@4.0.16) + version: 2.0.1(svelte@5.46.1)(vitest@4.0.16) packages: - '@acemir/cssom@0.9.29': - resolution: {integrity: sha512-G90x0VW+9nW4dFajtjCoT+NM0scAfH9Mb08IcjgFHYbfiL/lU04dTF9JuVOi3/OH+DJCQdcIseSXkdCB9Ky6JA==} + '@acemir/cssom@0.9.30': + resolution: {integrity: sha512-9CnlMCI0LmCIq0olalQqdWrJHPzm0/tw3gzOA9zJSgvFX7Xau3D24mAGa4BtwxwY69nsuJW6kQqqCzf/mEcQgg==} '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + '@ai-sdk/gateway@2.0.23': + resolution: {integrity: sha512-qmX7afPRszUqG5hryHF3UN8ITPIRSGmDW6VYCmByzjoUkgm3MekzSx2hMV1wr0P+llDeuXb378SjqUfpvWJulg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@3.0.19': + resolution: {integrity: sha512-W41Wc9/jbUVXVwCN/7bWa4IKe8MtxO3EyA0Hfhx6grnmiYlCvpI8neSYWFE0zScXJkgA/YK3BRybzgyiXuu6JA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@2.0.0': + resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} + engines: {node: '>=18'} + + '@ai-sdk/react@2.0.118': + resolution: {integrity: sha512-K/5VVEGTIu9SWrdQ0s/11OldFU8IjprDzeE6TaC2fOcQWhG7dGVGl9H8Z32QBHzdfJyMhFUxEyFKSOgA2j9+VQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 + zod: ^3.25.76 || ^4.1.8 + peerDependenciesMeta: + zod: + optional: true + + '@algolia/abtesting@1.12.2': + resolution: {integrity: sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/autocomplete-core@1.19.2': + resolution: {integrity: sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.19.2': + resolution: {integrity: sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-shared@1.19.2': + resolution: {integrity: sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/client-abtesting@5.46.2': + resolution: {integrity: sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-analytics@5.46.2': + resolution: {integrity: sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-common@5.46.2': + resolution: {integrity: sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-insights@5.46.2': + resolution: {integrity: sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-personalization@5.46.2': + resolution: {integrity: sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-query-suggestions@5.46.2': + resolution: {integrity: sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-search@5.46.2': + resolution: {integrity: sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA==} + engines: {node: '>= 14.0.0'} + + '@algolia/ingestion@1.46.2': + resolution: {integrity: sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/monitoring@1.46.2': + resolution: {integrity: sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw==} + engines: {node: '>= 14.0.0'} + + '@algolia/recommend@5.46.2': + resolution: {integrity: sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-browser-xhr@5.46.2': + resolution: {integrity: sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-fetch@5.46.2': + resolution: {integrity: sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-node-http@5.46.2': + resolution: {integrity: sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg==} + engines: {node: '>= 14.0.0'} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -352,11 +448,42 @@ packages: resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@docsearch/css@4.3.2': - resolution: {integrity: sha512-K3Yhay9MgkBjJJ0WEL5MxnACModX9xuNt3UlQQkDEDZJZ0+aeWKtOkxHNndMRkMBnHdYvQjxkm6mdlneOtU1IQ==} + '@docsearch/core@4.4.0': + resolution: {integrity: sha512-kiwNo5KEndOnrf5Kq/e5+D9NBMCFgNsDoRpKQJ9o/xnSlheh6b8AXppMuuUVVdAUIhIfQFk/07VLjjk/fYyKmw==} + peerDependencies: + '@types/react': '>= 16.8.0 < 20.0.0' + react: '>= 16.8.0 < 20.0.0' + react-dom: '>= 16.8.0 < 20.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + + '@docsearch/css@4.4.0': + resolution: {integrity: sha512-e9vPgtih6fkawakmYo0Y6V4BKBmDV7Ykudn7ADWXUs5b6pmtBRwDbpSG/WiaUG63G28OkJDEnsMvgIAnZgGwYw==} + + '@docsearch/js@4.4.0': + resolution: {integrity: sha512-vCiKzjYD54bugUIMZA6YzuLDilkD3TNH/kfbvqsnzxiLTMu8F13psD+hdMSEOn7j+dFJOaf49fZ+gwr+rXctMw==} - '@docsearch/js@4.3.2': - resolution: {integrity: sha512-xdfpPXMgKRY9EW7U1vtY7gLKbLZFa9ed+t0Dacquq8zXBqAlH9HlUf0h4Mhxm0xatsVeMaIR2wr/u6g0GsZyQw==} + '@docsearch/react@4.4.0': + resolution: {integrity: sha512-z12zeg1mV7WD4Ag4pKSuGukETJLaucVFwszDXL/qLaEgRqxEaVacO9SR1qqnCXvZztlvz2rt7cMqryi/7sKfjA==} + peerDependencies: + '@types/react': '>= 16.8.0 < 20.0.0' + react: '>= 16.8.0 < 20.0.0' + react-dom: '>= 16.8.0 < 20.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} @@ -828,6 +955,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + '@playwright/test@1.57.0': resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} engines: {node: '>=18'} @@ -1234,8 +1365,14 @@ packages: resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/svelte@5.2.10': - resolution: {integrity: sha512-siiR6FknvRN0Tt4m8mf0ejvahSRi3/n10Awyns0R7huMCNBHSrSzzXa//hJqhtEstZ7b2ZZMZwuYhcD0BIk/bA==} + '@testing-library/svelte-core@1.0.0': + resolution: {integrity: sha512-VkUePoLV6oOYwSUvX6ShA8KLnJqZiYMIbP2JW2t0GLWLkJxKGvuH5qrrZBV/X7cXFnLGuFQEC7RheYiZOW68KQ==} + engines: {node: '>=16'} + peerDependencies: + svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 + + '@testing-library/svelte@5.3.1': + resolution: {integrity: sha512-8Ez7ZOqW5geRf9PF5rkuopODe5RGy3I9XR+kc7zHh26gBiktLaxTfKmhlGaSHYUOTQE7wFsLMN9xCJVCszw47w==} engines: {node: '>= 10'} peerDependencies: svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 @@ -1625,63 +1762,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.50.0': - resolution: {integrity: sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==} + '@typescript-eslint/eslint-plugin@8.50.1': + resolution: {integrity: sha512-PKhLGDq3JAg0Jk/aK890knnqduuI/Qj+udH7wCf0217IGi4gt+acgCyPVe79qoT+qKUvHMDQkwJeKW9fwl8Cyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.50.0 + '@typescript-eslint/parser': ^8.50.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.50.0': - resolution: {integrity: sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==} + '@typescript-eslint/parser@8.50.1': + resolution: {integrity: sha512-hM5faZwg7aVNa819m/5r7D0h0c9yC4DUlWAOvHAtISdFTc8xB86VmX5Xqabrama3wIPJ/q9RbGS1worb6JfnMg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.50.0': - resolution: {integrity: sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==} + '@typescript-eslint/project-service@8.50.1': + resolution: {integrity: sha512-E1ur1MCVf+YiP89+o4Les/oBAVzmSbeRB0MQLfSlYtbWU17HPxZ6Bhs5iYmKZRALvEuBoXIZMOIRRc/P++Ortg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.50.0': - resolution: {integrity: sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==} + '@typescript-eslint/scope-manager@8.50.1': + resolution: {integrity: sha512-mfRx06Myt3T4vuoHaKi8ZWNTPdzKPNBhiblze5N50//TSHOAQQevl/aolqA/BcqqbJ88GUnLqjjcBc8EWdBcVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.50.0': - resolution: {integrity: sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==} + '@typescript-eslint/tsconfig-utils@8.50.1': + resolution: {integrity: sha512-ooHmotT/lCWLXi55G4mvaUF60aJa012QzvLK0Y+Mp4WdSt17QhMhWOaBWeGTFVkb2gDgBe19Cxy1elPXylslDw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.50.0': - resolution: {integrity: sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==} + '@typescript-eslint/type-utils@8.50.1': + resolution: {integrity: sha512-7J3bf022QZE42tYMO6SL+6lTPKFk/WphhRPe9Tw/el+cEwzLz1Jjz2PX3GtGQVxooLDKeMVmMt7fWpYRdG5Etg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.50.0': - resolution: {integrity: sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==} + '@typescript-eslint/types@8.50.1': + resolution: {integrity: sha512-v5lFIS2feTkNyMhd7AucE/9j/4V9v5iIbpVRncjk/K0sQ6Sb+Np9fgYS/63n6nwqahHQvbmujeBL7mp07Q9mlA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.50.0': - resolution: {integrity: sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==} + '@typescript-eslint/typescript-estree@8.50.1': + resolution: {integrity: sha512-woHPdW+0gj53aM+cxchymJCrh0cyS7BTIdcDxWUNsclr9VDkOSbqC13juHzxOmQ22dDkMZEpZB+3X1WpUvzgVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.50.0': - resolution: {integrity: sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==} + '@typescript-eslint/utils@8.50.1': + resolution: {integrity: sha512-lCLp8H1T9T7gPbEuJSnHwnSuO9mDf8mfK/Nion5mZmiEaQD9sWf9W4dfeFqRyqRjF06/kBuTmAqcs9sewM2NbQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.50.0': - resolution: {integrity: sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==} + '@typescript-eslint/visitor-keys@8.50.1': + resolution: {integrity: sha512-IrDKrw7pCRUR94zeuCSUWQ+w8JEf5ZX5jl/e6AHGSLi1/zIr0lgutfn/7JpfCey+urpgQEdrZVYzCaVVKiTwhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vercel/nft@1.1.1': @@ -1689,6 +1826,10 @@ packages: engines: {node: '>=20'} hasBin: true + '@vercel/oidc@3.0.5': + resolution: {integrity: sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw==} + engines: {node: '>= 20'} + '@vitest/browser-playwright@4.0.16': resolution: {integrity: sha512-I2Fy/ANdphi1yI46d15o0M1M4M0UJrUiVKkH5oKeRZZCdPg0fw/cfTKZzv9Ge9eobtJYp4BGblMzXdXH0vcl5g==} peerDependencies: @@ -1759,9 +1900,19 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + ai@5.0.116: + resolution: {integrity: sha512-+2hYJ80/NcDWuv9K2/MLP3cTCFgwWHmHlS1tOpFUKKcmLbErAAlE/S2knsKboc3PNAu8pQkDr2N3K/Vle7ENgQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + algoliasearch@5.46.2: + resolution: {integrity: sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q==} + engines: {node: '>= 14.0.0'} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -1874,8 +2025,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} chalk@2.4.2: @@ -2204,6 +2355,10 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + expect-type@1.3.0: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} @@ -2232,8 +2387,8 @@ packages: resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} hasBin: true - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} @@ -2546,6 +2701,9 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -2577,8 +2735,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lib0@0.2.115: - resolution: {integrity: sha512-noaW4yNp6hCjOgDnWWxW0vGXE3kZQI5Kqiwz+jIWXavI9J9WyfJ9zjsbQlQlgjIbHBrvlA/x3TSIXBUJj+0L6g==} + lib0@0.2.116: + resolution: {integrity: sha512-4zsosjzmt33rx5XjmFVYUAeLNh+BTeDTiwGdLt4muxiir2btsc60Nal0EvkvDRizg+pnlK1q+BtYi7M+d4eStw==} engines: {node: '>=16'} hasBin: true @@ -2709,6 +2867,11 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} @@ -3088,8 +3251,8 @@ packages: prosemirror-state@1.4.4: resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} - prosemirror-tables@1.8.3: - resolution: {integrity: sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==} + prosemirror-tables@1.8.5: + resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==} prosemirror-trailing-node@3.0.0: resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} @@ -3129,6 +3292,10 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + engines: {node: '>=0.10.0'} + read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -3218,6 +3385,9 @@ packages: scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -3373,10 +3543,15 @@ packages: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.46.0: - resolution: {integrity: sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==} + svelte@5.46.1: + resolution: {integrity: sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==} engines: {node: '>=18'} + swr@2.3.8: + resolution: {integrity: sha512-gaCPRVoMq8WGDcWj9p4YWzCMPHzE0WNl6W8ADIx9c3JBEIdMkJGMzW+uzXvxHMltwcYACr9jP+32H8/hgwMR7w==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -3412,6 +3587,10 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} + throttleit@2.1.0: + resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} + engines: {node: '>=18'} + tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} @@ -3477,8 +3656,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.50.0: - resolution: {integrity: sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==} + typescript-eslint@8.50.1: + resolution: {integrity: sha512-ytTHO+SoYSbhAH9CrYnMhiLx8To6PSSvqnvXyPUgPETCvB6eBKmTI9w6XMPS3HsBRGkwTVBX+urA8dYQx6bHfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3542,6 +3721,11 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -3764,12 +3948,149 @@ packages: zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + zod@4.2.1: + resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==} + snapshots: - '@acemir/cssom@0.9.29': {} + '@acemir/cssom@0.9.30': {} '@adobe/css-tools@4.4.4': {} + '@ai-sdk/gateway@2.0.23(zod@4.2.1)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.19(zod@4.2.1) + '@vercel/oidc': 3.0.5 + zod: 4.2.1 + + '@ai-sdk/provider-utils@3.0.19(zod@4.2.1)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.0.6 + zod: 4.2.1 + + '@ai-sdk/provider@2.0.0': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/react@2.0.118(react@19.2.3)(zod@4.2.1)': + dependencies: + '@ai-sdk/provider-utils': 3.0.19(zod@4.2.1) + ai: 5.0.116(zod@4.2.1) + react: 19.2.3 + swr: 2.3.8(react@19.2.3) + throttleit: 2.1.0 + optionalDependencies: + zod: 4.2.1 + + '@algolia/abtesting@1.12.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2) + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)': + dependencies: + '@algolia/client-search': 5.46.2 + algoliasearch: 5.46.2 + + '@algolia/client-abtesting@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/client-analytics@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/client-common@5.46.2': {} + + '@algolia/client-insights@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/client-personalization@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/client-query-suggestions@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/client-search@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/ingestion@1.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/monitoring@1.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/recommend@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + + '@algolia/requester-browser-xhr@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + + '@algolia/requester-fetch@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + + '@algolia/requester-node-http@5.46.2': + dependencies: + '@algolia/client-common': 5.46.2 + '@alloc/quick-lru@5.2.0': {} '@asamuzakjp/css-color@4.1.1': @@ -3973,11 +4294,38 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} - '@docsearch/css@4.3.2': {} + '@docsearch/core@4.4.0(react@19.2.3)': + optionalDependencies: + react: 19.2.3 + + '@docsearch/css@4.4.0': {} - '@docsearch/js@4.3.2': + '@docsearch/js@4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)': dependencies: + '@docsearch/react': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3) htm: 3.1.1 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)': + dependencies: + '@ai-sdk/react': 2.0.118(react@19.2.3)(zod@4.2.1) + '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3) + '@docsearch/core': 4.4.0(react@19.2.3) + '@docsearch/css': 4.4.0 + ai: 5.0.116(zod@4.2.1) + algoliasearch: 5.46.2 + marked: 16.4.2 + zod: 4.2.1 + optionalDependencies: + react: 19.2.3 + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' '@esbuild/aix-ppc64@0.25.12': optional: true @@ -4202,19 +4550,19 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@flowbite-svelte-plugins/chart@0.2.4(svelte@5.46.0)(tailwindcss@4.1.18)': + '@flowbite-svelte-plugins/chart@0.2.4(svelte@5.46.1)(tailwindcss@4.1.18)': dependencies: apexcharts: 4.7.0 - svelte: 5.46.0 + svelte: 5.46.1 tailwindcss: 4.1.18 - '@flowbite-svelte-plugins/datatable@0.4.1(svelte@5.46.0)(tailwindcss@4.1.18)': + '@flowbite-svelte-plugins/datatable@0.4.1(svelte@5.46.1)(tailwindcss@4.1.18)': dependencies: simple-datatables: 10.2.0 - svelte: 5.46.0 + svelte: 5.46.1 tailwindcss: 4.1.18 - '@flowbite-svelte-plugins/texteditor@0.25.6(@tiptap/extension-collaboration@2.27.1(@tiptap/core@3.7.2(@tiptap/pm@3.7.2))(@tiptap/pm@3.7.2)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)))(emojibase@17.0.0)(highlight.js@11.11.1)(svelte@5.46.0)(tailwindcss@4.1.18)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28))': + '@flowbite-svelte-plugins/texteditor@0.25.6(@tiptap/extension-collaboration@2.27.1(@tiptap/core@3.7.2(@tiptap/pm@3.7.2))(@tiptap/pm@3.7.2)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28)))(emojibase@17.0.0)(highlight.js@11.11.1)(svelte@5.46.1)(tailwindcss@4.1.18)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28))': dependencies: '@floating-ui/dom': 1.7.4 '@tiptap/core': 3.7.2(@tiptap/pm@3.7.2) @@ -4278,7 +4626,7 @@ snapshots: flowbite-typography: 1.0.5 katex: 0.16.27 lowlight: 3.3.0 - svelte: 5.46.0 + svelte: 5.46.1 tailwindcss: 4.1.18 transitivePeerDependencies: - '@tiptap/extension-collaboration' @@ -4379,7 +4727,9 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 + + '@opentelemetry/api@1.9.0': {} '@playwright/test@1.57.0': dependencies: @@ -4539,9 +4889,9 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-vercel@6.2.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)': + '@sveltejs/adapter-vercel@6.2.0(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)': dependencies: - '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + '@sveltejs/kit': 2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) '@vercel/nft': 1.1.1(rollup@4.54.0) esbuild: 0.25.12 transitivePeerDependencies: @@ -4549,11 +4899,11 @@ snapshots: - rollup - supports-color - '@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': + '@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 @@ -4565,36 +4915,38 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.2 sirv: 3.0.2 - svelte: 5.46.0 + svelte: 5.46.1 vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) + optionalDependencies: + '@opentelemetry/api': 1.9.0 - '@sveltejs/package@2.5.7(svelte@5.46.0)(typescript@5.9.3)': + '@sveltejs/package@2.5.7(svelte@5.46.1)(typescript@5.9.3)': dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.7.3 - svelte: 5.46.0 - svelte2tsx: 0.7.46(svelte@5.46.0)(typescript@5.9.3) + svelte: 5.46.1 + svelte2tsx: 0.7.46(svelte@5.46.1)(typescript@5.9.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) debug: 4.4.3 - svelte: 5.46.0 + svelte: 5.46.1 vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) debug: 4.4.3 deepmerge: 4.3.1 magic-string: 0.30.21 - svelte: 5.46.0 + svelte: 5.46.1 vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) vitefu: 1.1.1(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) transitivePeerDependencies: @@ -4722,13 +5074,18 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/svelte@5.2.10(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16)': + '@testing-library/svelte-core@1.0.0(svelte@5.46.1)': + dependencies: + svelte: 5.46.1 + + '@testing-library/svelte@5.3.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16)': dependencies: '@testing-library/dom': 10.4.1 - svelte: 5.46.0 + '@testing-library/svelte-core': 1.0.0(svelte@5.46.1) + svelte: 5.46.1 optionalDependencies: vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) - vitest: 4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -5018,7 +5375,7 @@ snapshots: prosemirror-schema-basic: 1.2.4 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.4 - prosemirror-tables: 1.8.3 + prosemirror-tables: 1.8.5 prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4) prosemirror-transform: 1.10.5 prosemirror-view: 1.41.4 @@ -5095,14 +5452,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/type-utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/parser': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.50.1 + '@typescript-eslint/type-utils': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.50.1 eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -5111,41 +5468,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/scope-manager': 8.50.1 + '@typescript-eslint/types': 8.50.1 + '@typescript-eslint/typescript-estree': 8.50.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.50.1 debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.50.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.50.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.50.0(typescript@5.9.3) - '@typescript-eslint/types': 8.50.0 + '@typescript-eslint/tsconfig-utils': 8.50.1(typescript@5.9.3) + '@typescript-eslint/types': 8.50.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.50.0': + '@typescript-eslint/scope-manager@8.50.1': dependencies: - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/types': 8.50.1 + '@typescript-eslint/visitor-keys': 8.50.1 - '@typescript-eslint/tsconfig-utils@8.50.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.50.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.50.1 + '@typescript-eslint/typescript-estree': 8.50.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) @@ -5153,14 +5510,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.50.0': {} + '@typescript-eslint/types@8.50.1': {} - '@typescript-eslint/typescript-estree@8.50.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.50.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.50.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.50.0(typescript@5.9.3) - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/project-service': 8.50.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.50.1(typescript@5.9.3) + '@typescript-eslint/types': 8.50.1 + '@typescript-eslint/visitor-keys': 8.50.1 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -5170,20 +5527,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.50.1 + '@typescript-eslint/types': 8.50.1 + '@typescript-eslint/typescript-estree': 8.50.1(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.50.0': + '@typescript-eslint/visitor-keys@8.50.1': dependencies: - '@typescript-eslint/types': 8.50.0 + '@typescript-eslint/types': 8.50.1 eslint-visitor-keys: 4.2.1 '@vercel/nft@1.1.1(rollup@4.54.0)': @@ -5205,13 +5562,15 @@ snapshots: - rollup - supports-color + '@vercel/oidc@3.0.5': {} + '@vitest/browser-playwright@4.0.16(playwright@1.57.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16)': dependencies: '@vitest/browser': 4.0.16(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16) '@vitest/mocker': 4.0.16(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) playwright: 1.57.0 tinyrainbow: 3.0.3 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) transitivePeerDependencies: - bufferutil - msw @@ -5227,7 +5586,7 @@ snapshots: pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.0.3 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) ws: 8.18.3 transitivePeerDependencies: - bufferutil @@ -5241,7 +5600,7 @@ snapshots: '@types/chai': 5.2.3 '@vitest/spy': 4.0.16 '@vitest/utils': 4.0.16 - chai: 6.2.1 + chai: 6.2.2 tinyrainbow: 3.0.3 '@vitest/mocker@4.0.16(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))': @@ -5299,6 +5658,14 @@ snapshots: agent-base@7.1.4: {} + ai@5.0.116(zod@4.2.1): + dependencies: + '@ai-sdk/gateway': 2.0.23(zod@4.2.1) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.19(zod@4.2.1) + '@opentelemetry/api': 1.9.0 + zod: 4.2.1 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5306,6 +5673,23 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + algoliasearch@5.46.2: + dependencies: + '@algolia/abtesting': 1.12.2 + '@algolia/client-abtesting': 5.46.2 + '@algolia/client-analytics': 5.46.2 + '@algolia/client-common': 5.46.2 + '@algolia/client-insights': 5.46.2 + '@algolia/client-personalization': 5.46.2 + '@algolia/client-query-suggestions': 5.46.2 + '@algolia/client-search': 5.46.2 + '@algolia/ingestion': 1.46.2 + '@algolia/monitoring': 1.46.2 + '@algolia/recommend': 5.46.2 + '@algolia/requester-browser-xhr': 5.46.2 + '@algolia/requester-fetch': 5.46.2 + '@algolia/requester-node-http': 5.46.2 + ansi-colors@4.1.3: {} ansi-regex@5.0.1: {} @@ -5405,7 +5789,7 @@ snapshots: camelize@1.0.1: {} - chai@6.2.1: {} + chai@6.2.2: {} chalk@2.4.2: dependencies: @@ -5659,7 +6043,7 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-svelte@3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.0): + eslint-plugin-svelte@3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.1): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -5671,9 +6055,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.3 - svelte-eslint-parser: 1.4.1(svelte@5.46.0) + svelte-eslint-parser: 1.4.1(svelte@5.46.1) optionalDependencies: - svelte: 5.46.0 + svelte: 5.46.1 transitivePeerDependencies: - ts-node @@ -5759,6 +6143,8 @@ snapshots: esutils@2.0.3: {} + eventsource-parser@3.0.6: {} + expect-type@1.3.0: {} extend-shallow@2.0.1: @@ -5785,7 +6171,7 @@ snapshots: dependencies: strnum: 1.1.2 - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -5840,48 +6226,48 @@ snapshots: transitivePeerDependencies: - rollup - flowbite-svelte-admin-dashboard@2.1.1(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18): + flowbite-svelte-admin-dashboard@2.1.1(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18): dependencies: - '@flowbite-svelte-plugins/chart': 0.2.4(svelte@5.46.0)(tailwindcss@4.1.18) - '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) - flowbite-svelte: 1.31.0(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18) - flowbite-svelte-icons: 3.0.1(svelte@5.46.0) - svelte: 5.46.0 + '@flowbite-svelte-plugins/chart': 0.2.4(svelte@5.46.1)(tailwindcss@4.1.18) + '@sveltejs/kit': 2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + flowbite-svelte: 1.31.0(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18) + flowbite-svelte-icons: 3.0.1(svelte@5.46.1) + svelte: 5.46.1 tailwind-merge: 3.4.0 tailwindcss: 4.1.18 transitivePeerDependencies: - rollup - flowbite-svelte-blocks@2.1.0(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18): + flowbite-svelte-blocks@2.1.0(@sveltejs/kit@2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18): dependencies: - '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) + '@sveltejs/kit': 2.49.2(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)))(svelte@5.46.1)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) flowbite: 3.1.2(rollup@4.54.0) - flowbite-svelte: 1.31.0(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18) - flowbite-svelte-icons: 2.3.0(svelte@5.46.0) - svelte: 5.46.0 + flowbite-svelte: 1.31.0(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18) + flowbite-svelte-icons: 2.3.0(svelte@5.46.1) + svelte: 5.46.1 tailwind-merge: 3.4.0 tailwindcss: 4.1.18 transitivePeerDependencies: - rollup - flowbite-svelte-icons@2.3.0(svelte@5.46.0): + flowbite-svelte-icons@2.3.0(svelte@5.46.1): dependencies: clsx: 2.1.1 - svelte: 5.46.0 + svelte: 5.46.1 tailwind-merge: 3.4.0 - flowbite-svelte-icons@3.0.1(svelte@5.46.0): + flowbite-svelte-icons@3.0.1(svelte@5.46.1): dependencies: clsx: 2.1.1 - svelte: 5.46.0 + svelte: 5.46.1 tailwind-merge: 3.4.0 - flowbite-svelte-illustrations@1.0.6(svelte@5.46.0)(tailwindcss@4.1.18): + flowbite-svelte-illustrations@1.0.6(svelte@5.46.1)(tailwindcss@4.1.18): dependencies: - svelte: 5.46.0 + svelte: 5.46.1 tailwindcss: 4.1.18 - flowbite-svelte@1.31.0(rollup@4.54.0)(svelte@5.46.0)(tailwindcss@4.1.18): + flowbite-svelte@1.31.0(rollup@4.54.0)(svelte@5.46.1)(tailwindcss@4.1.18): dependencies: '@floating-ui/dom': 1.7.4 '@floating-ui/utils': 0.2.10 @@ -5890,7 +6276,7 @@ snapshots: date-fns: 4.1.0 esm-env: 1.2.2 flowbite: 3.1.2(rollup@4.54.0) - svelte: 5.46.0 + svelte: 5.46.1 tailwind-merge: 3.4.0 tailwind-variants: 3.2.2(tailwind-merge@3.4.0)(tailwindcss@4.1.18) tailwindcss: 4.1.18 @@ -6114,7 +6500,7 @@ snapshots: jsdom@27.3.0: dependencies: - '@acemir/cssom': 0.9.29 + '@acemir/cssom': 0.9.30 '@asamuzakjp/dom-selector': 6.7.6 cssstyle: 5.3.5 data-urls: 6.0.0 @@ -6143,6 +6529,8 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema@0.4.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} jsonc-parser@3.3.1: {} @@ -6170,7 +6558,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lib0@0.2.115: + lib0@0.2.116: dependencies: isomorphic.js: 0.2.5 @@ -6279,24 +6667,26 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + marked@16.4.2: {} + mdn-data@2.12.2: {} - mdsvex@0.12.6(svelte@5.46.0): + mdsvex@0.12.6(svelte@5.46.1): dependencies: '@types/mdast': 4.0.4 '@types/unist': 2.0.11 prism-svelte: 0.4.7 prismjs: 1.30.0 - svelte: 5.46.0 + svelte: 5.46.1 unist-util-visit: 2.0.3 vfile-message: 2.0.4 - mdsvexamples@0.5.0(svelte@5.46.0): + mdsvexamples@0.5.0(svelte@5.46.1): dependencies: abstract-syntax-tree: 2.22.0 prism-svelte: 0.5.0 prismjs: 1.30.0 - svelte: 5.46.0 + svelte: 5.46.1 unist-util-visit: 5.0.0 unplugin: 1.16.1 upath: 2.0.1 @@ -6483,16 +6873,16 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0): + prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1): dependencies: prettier: 3.7.4 - svelte: 5.46.0 + svelte: 5.46.1 - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0))(prettier@3.7.4): + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1))(prettier@3.7.4): dependencies: prettier: 3.7.4 optionalDependencies: - prettier-plugin-svelte: 3.4.1(prettier@3.7.4)(svelte@5.46.0) + prettier-plugin-svelte: 3.4.1(prettier@3.7.4)(svelte@5.46.1) prettier@2.8.8: {} @@ -6589,7 +6979,7 @@ snapshots: prosemirror-transform: 1.10.5 prosemirror-view: 1.41.4 - prosemirror-tables@1.8.3: + prosemirror-tables@1.8.5: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.4 @@ -6634,6 +7024,8 @@ snapshots: react-is@17.0.2: {} + react@19.2.3: {} + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -6702,13 +7094,13 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runatics@0.2.0(svelte@5.46.0): + runatics@0.2.0(svelte@5.46.1): dependencies: - svelte: 5.46.0 + svelte: 5.46.1 - runes-meta-tags@0.5.0(svelte@5.46.0): + runes-meta-tags@0.5.0(svelte@5.46.1): dependencies: - svelte: 5.46.0 + svelte: 5.46.1 sade@1.8.1: dependencies: @@ -6742,6 +7134,8 @@ snapshots: scule@1.3.0: {} + search-insights@2.17.3: {} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -6823,11 +7217,11 @@ snapshots: strnum@1.1.2: {} - super-sitemap@1.0.5(svelte@5.46.0): + super-sitemap@1.0.5(svelte@5.46.1): dependencies: directory-tree: 3.5.2 fast-xml-parser: 4.5.3 - svelte: 5.46.0 + svelte: 5.46.1 supports-color@5.5.0: dependencies: @@ -6839,14 +7233,14 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3): + svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.46.0 + svelte: 5.46.1 typescript: 5.9.3 transitivePeerDependencies: - picomatch @@ -6856,7 +7250,7 @@ snapshots: glob: 11.1.0 gray-matter: 4.0.3 - svelte-eslint-parser@1.4.1(svelte@5.46.0): + svelte-eslint-parser@1.4.1(svelte@5.46.1): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -6865,31 +7259,31 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.1 optionalDependencies: - svelte: 5.46.0 + svelte: 5.46.1 svelte-lib-helpers@0.4.31: dependencies: jsonc-parser: 3.3.1 - svelte-meta-tags@4.5.0(svelte@5.46.0): + svelte-meta-tags@4.5.0(svelte@5.46.1): dependencies: schema-dts: 1.1.5 - svelte: 5.46.0 + svelte: 5.46.1 - svelte-rune-highlight@0.12.1(svelte@5.46.0): + svelte-rune-highlight@0.12.1(svelte@5.46.1): dependencies: esm-env: 1.2.2 highlight.js: 11.11.1 - svelte: 5.46.0 + svelte: 5.46.1 - svelte2tsx@0.7.46(svelte@5.46.0)(typescript@5.9.3): + svelte2tsx@0.7.46(svelte@5.46.1)(typescript@5.9.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 - svelte: 5.46.0 + svelte: 5.46.1 typescript: 5.9.3 - svelte@5.46.0: + svelte@5.46.1: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -6907,6 +7301,12 @@ snapshots: magic-string: 0.30.21 zimmerframe: 1.1.4 + swr@2.3.8(react@19.2.3): + dependencies: + dequal: 2.0.3 + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) + symbol-tree@3.2.4: {} table-layout@1.0.2: @@ -6938,6 +7338,8 @@ snapshots: term-size@2.2.1: {} + throttleit@2.1.0: {} + tiny-inflate@1.0.3: {} tinybench@2.9.0: {} @@ -6994,12 +7396,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.50.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -7065,6 +7467,10 @@ snapshots: dependencies: punycode: 2.3.1 + use-sync-external-store@1.6.0(react@19.2.3): + dependencies: + react: 19.2.3 + util-deprecate@1.0.2: {} uuid@10.0.0: {} @@ -7099,12 +7505,12 @@ snapshots: optionalDependencies: vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) - vitest-browser-svelte@2.0.1(svelte@5.46.0)(vitest@4.0.16): + vitest-browser-svelte@2.0.1(svelte@5.46.1)(vitest@4.0.16): dependencies: - svelte: 5.46.0 - vitest: 4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) + svelte: 5.46.1 + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0) - vitest@4.0.16(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0): + vitest@4.0.16(@opentelemetry/api@1.9.0)(@vitest/browser-playwright@4.0.16)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(tsx@4.21.0): dependencies: '@vitest/expect': 4.0.16 '@vitest/mocker': 4.0.16(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)) @@ -7127,6 +7533,7 @@ snapshots: vite: 7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@vitest/browser-playwright': 4.0.16(playwright@1.57.0)(vite@7.3.0(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))(vitest@4.0.16) jsdom: 27.3.0 transitivePeerDependencies: @@ -7206,7 +7613,7 @@ snapshots: y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4)(y-protocols@1.0.7(yjs@13.6.28))(yjs@13.6.28): dependencies: - lib0: 0.2.115 + lib0: 0.2.116 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 prosemirror-view: 1.41.4 @@ -7215,7 +7622,7 @@ snapshots: y-protocols@1.0.7(yjs@13.6.28): dependencies: - lib0: 0.2.115 + lib0: 0.2.116 yjs: 13.6.28 yallist@5.0.0: {} @@ -7224,10 +7631,12 @@ snapshots: yjs@13.6.28: dependencies: - lib0: 0.2.115 + lib0: 0.2.116 yocto-queue@0.1.0: {} yoga-layout@3.2.1: {} zimmerframe@1.1.4: {} + + zod@4.2.1: {} diff --git a/src/hooks.server.js b/src/hooks.server.js deleted file mode 100644 index 9a401a112d..0000000000 --- a/src/hooks.server.js +++ /dev/null @@ -1,41 +0,0 @@ -// vite function to get all md files from components dir -const allFiles = [ - import.meta.glob("/src/routes/docs/components/*.md"), - import.meta.glob("/src/routes/docs/forms/*.md"), - import.meta.glob("/src/routes/docs/plugins/*.md"), - import.meta.glob("/src/routes/docs/typography/*.md"), - import.meta.glob("/src/routes/docs/examples/*.md"), - import.meta.glob("/src/routes/docs/utilities/*.md"), - import.meta.glob("/src/routes/docs/pages/*.md"), - import.meta.glob("/src/routes/docs/extend/*.md") -] - .flatMap(Object.keys) - .map((x) => x.replace(/\.[^/.]+$/, "")) - .map((x) => x.split("/").slice(-2)); - -// list of directories that do not require redirection check -const dirsToSkip = ["/docs/", "/blocks/", "/api/"]; - -/** @type {import('@sveltejs/kit').Handle} */ -export const handle = async ({ event, resolve }) => { - const pathname = event.url.pathname; - - // Redirect old AI integration page to new MCP overview - if (pathname === "/docs/pages/ai-integration") { - return Response.redirect(`${event.url.origin}/docs/mcp/overview`, 301); - } - - if (pathname !== "/" && !dirsToSkip.some((x) => pathname.startsWith(x))) { - const parts = pathname.split("/"), - file = parts.pop(), - dir = parts.slice(1).join("/"); - - // needs to check redirections - for (const [key, value] of allFiles) { - if (value !== file) continue; - - if (dir === "" || dir === key) return Response.redirect(`${event.url.origin}/docs/${key}/${value}`, 301); - } - } - return await resolve(event); -}; diff --git a/src/lib/accordion/theme.ts b/src/lib/accordion/theme.ts index 8845462b00..b1f884a803 100644 --- a/src/lib/accordion/theme.ts +++ b/src/lib/accordion/theme.ts @@ -46,7 +46,7 @@ export const accordionItem = tv({ content: "py-5 border-b border-default text-body" }, false: { - button: "rounded-t-base hover:text-heading hover:bg-neutral-secondary-medium", + button: "hover:text-heading hover:bg-neutral-secondary-medium", contentWrapper: "border border-s-0 border-e-0 border-t-0 border-b-default", content: "p-4 md:p-5" } diff --git a/src/lib/forms/floating-label/FloatingLabelInput.svelte b/src/lib/forms/floating-label/FloatingLabelInput.svelte index 3aee0353b4..6e54d97a14 100644 --- a/src/lib/forms/floating-label/FloatingLabelInput.svelte +++ b/src/lib/forms/floating-label/FloatingLabelInput.svelte @@ -35,7 +35,10 @@ const { base, input, label, close, combo } = $derived(floatingLabelInput({ variant, size, validation, disabled, withIcon })); - const clearAll = () => { + // Track if clear button should be shown + const showClearButton = $derived(clearable && value !== undefined && value !== ""); + + const clearAll = (_event?: MouseEvent) => { if (elementRef) { elementRef.value = ""; value = ""; @@ -177,8 +180,8 @@ onblur={handleBlur} onkeydown={handleKeydown} /> - {#if value !== undefined && value !== "" && clearable} - + {#if showClearButton} + {/if}