From 09554c68df1ddbd62fba84209bbddb9a388be476 Mon Sep 17 00:00:00 2001 From: Youwes09 Date: Fri, 20 Feb 2026 23:34:10 -0600 Subject: [PATCH] [BETA] Initial Commit (Nix Support Only) --- .gitignore | 35 + README.md | 50 + Todo | 0 flake.lock | 98 + flake.nix | 162 + index.html | 12 + package.json | 40 + pnpm-lock.yaml | 2681 +++++++++ src-tauri/Cargo.lock | 4933 +++++++++++++++++ src-tauri/Cargo.toml | 28 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 19 + src-tauri/icons/128x128.png | Bin 0 -> 5696 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 15458 bytes src-tauri/icons/32x32.png | Bin 0 -> 669 bytes src-tauri/icons/64x64.png | Bin 0 -> 1895 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 4315 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 6743 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 7381 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 18815 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 577 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 21547 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1093 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2294 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 3168 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1356 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1065 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 8138 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 1192 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1059 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4420 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1211 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2999 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 12896 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 3132 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5611 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 22825 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 5901 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9116 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 33814 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 9669 bytes .../android/values/ic_launcher_background.xml | 4 + src-tauri/icons/icon.icns | Bin 0 -> 231795 bytes src-tauri/icons/icon.ico | Bin 0 -> 21550 bytes src-tauri/icons/icon.png | Bin 0 -> 43432 bytes src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 374 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 946 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 946 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 1784 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 528 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 1685 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 1685 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 3050 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 946 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 2587 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 2587 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 5204 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 103089 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 5204 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 9605 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 2521 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 7427 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 8512 bytes src-tauri/src/lib.rs | 34 + src-tauri/src/main.rs | 5 + src-tauri/tauri.conf.json | 43 + src/App.module.css | 12 + src/App.tsx | 54 + src/assets/Moku-Icon.svg | 27 + src/assets/logo.png | Bin 0 -> 5696 bytes src/components/context/ContextMenu.module.css | 55 + src/components/context/ContextMenu.tsx | 90 + .../downloads/DownloadQueue.module.css | 200 + src/components/downloads/DownloadQueue.tsx | 152 + .../extensions/ExtensionList.module.css | 172 + src/components/extensions/ExtensionList.tsx | 225 + src/components/layout/Layout.module.css | 15 + src/components/layout/Layout.tsx | 38 + src/components/layout/Sidebar.module.css | 112 + src/components/layout/Sidebar.tsx | 49 + src/components/layout/TitleBar.module.css | 55 + src/components/layout/TitleBar.tsx | 46 + src/components/pages/History.module.css | 84 + src/components/pages/History.tsx | 123 + src/components/pages/Library.module.css | 272 + src/components/pages/Library.tsx | 230 + src/components/pages/Reader.module.css | 173 + src/components/pages/Reader.tsx | 500 ++ src/components/pages/Search.module.css | 91 + src/components/pages/Search.tsx | 168 + src/components/pages/SeriesDetail.module.css | 430 ++ src/components/pages/SeriesDetail.tsx | 468 ++ src/components/settings/Settings.module.css | 271 + src/components/settings/Settings.tsx | 435 ++ .../sources/SourceBrowse.module.css | 243 + src/components/sources/SourceBrowse.tsx | 157 + src/components/sources/SourceList.module.css | 150 + src/components/sources/SourceList.tsx | 92 + src/lib/client.ts | 48 + src/lib/keybinds.ts | 65 + src/lib/queries.ts | 350 ++ src/lib/types.ts | 89 + src/lib/util.ts | 5 + src/main.tsx | 9 + src/store/index.ts | 174 + src/styles/animations.css | 59 + src/styles/global.css | 105 + src/styles/tokens.css | 109 + src/vite-env.d.ts | 1 + tsconfig.json | 21 + tsconfig.node.json | 10 + vite.config.ts | 14 + 113 files changed, 14400 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 Todo create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/64x64.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/values/ic_launcher_background.xml create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/App.module.css create mode 100644 src/App.tsx create mode 100644 src/assets/Moku-Icon.svg create mode 100644 src/assets/logo.png create mode 100644 src/components/context/ContextMenu.module.css create mode 100644 src/components/context/ContextMenu.tsx create mode 100644 src/components/downloads/DownloadQueue.module.css create mode 100644 src/components/downloads/DownloadQueue.tsx create mode 100644 src/components/extensions/ExtensionList.module.css create mode 100644 src/components/extensions/ExtensionList.tsx create mode 100644 src/components/layout/Layout.module.css create mode 100644 src/components/layout/Layout.tsx create mode 100644 src/components/layout/Sidebar.module.css create mode 100644 src/components/layout/Sidebar.tsx create mode 100644 src/components/layout/TitleBar.module.css create mode 100644 src/components/layout/TitleBar.tsx create mode 100644 src/components/pages/History.module.css create mode 100644 src/components/pages/History.tsx create mode 100644 src/components/pages/Library.module.css create mode 100644 src/components/pages/Library.tsx create mode 100644 src/components/pages/Reader.module.css create mode 100644 src/components/pages/Reader.tsx create mode 100644 src/components/pages/Search.module.css create mode 100644 src/components/pages/Search.tsx create mode 100644 src/components/pages/SeriesDetail.module.css create mode 100644 src/components/pages/SeriesDetail.tsx create mode 100644 src/components/settings/Settings.module.css create mode 100644 src/components/settings/Settings.tsx create mode 100644 src/components/sources/SourceBrowse.module.css create mode 100644 src/components/sources/SourceBrowse.tsx create mode 100644 src/components/sources/SourceList.module.css create mode 100644 src/components/sources/SourceList.tsx create mode 100644 src/lib/client.ts create mode 100644 src/lib/keybinds.ts create mode 100644 src/lib/queries.ts create mode 100644 src/lib/types.ts create mode 100644 src/lib/util.ts create mode 100644 src/main.tsx create mode 100644 src/store/index.ts create mode 100644 src/styles/animations.css create mode 100644 src/styles/global.css create mode 100644 src/styles/tokens.css create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d21e57 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# --- Build Artifacts --- +node_modules/ +dist/ +dist-tauri/ +target/ +bin/ +out/ + +# --- Nix --- +.direnv/ +result +result-* + +# --- Logs --- +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.env +.env.local +.env.*.local + +# --- IDEs & OS --- +.vscode/ +.idea/ +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.swp + +# --- Tauri specific --- +src-tauri/target/ +src-tauri/gen/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e00942b --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +
+ +

Moku

+

A manga reader frontend for Suwayomi-Server, built with Tauri and React.

+
+ +--- + +## Requirements + +- [Suwayomi-Server](https://github.com/Suwayomi/Suwayomi-Server) running on `http://127.0.0.1:4567` + +## Installation + +### Nix + +```bash +nix run github:Youwes09/moku +``` + +Or add to your flake: + +```nix +inputs.moku.url = "github:Youwes09/moku"; +``` + +### From source + +```bash +git clone https://github.com/Youwes09/moku +cd moku +nix build +./result/bin/moku +``` + +## Development + +```bash +nix develop +pnpm install +pnpm tauri dev +``` + +## Stack + +- [Tauri v2](https://tauri.app) — app shell +- [React](https://react.dev) + [TypeScript](https://www.typescriptlang.org) — UI +- [Vite](https://vitejs.dev) — frontend build +- [Zustand](https://zustand-demo.pmnd.rs) — state +- [Crane](https://github.com/ipetkov/crane) — Nix Rust builds \ No newline at end of file diff --git a/Todo b/Todo new file mode 100644 index 0000000..e69de29 diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..896735e --- /dev/null +++ b/flake.lock @@ -0,0 +1,98 @@ +{ + "nodes": { + "crane": { + "locked": { + "lastModified": 1771438068, + "narHash": "sha256-nGBbXvEZVe/egCPVPFcu89RFtd8Rf6J+4RFoVCFec0A=", + "owner": "ipetkov", + "repo": "crane", + "rev": "b5090e53e9d68c523a4bb9ad42b4737ee6747597", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0182a361324364ae3f436a63005877674cf45efb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1769909678, + "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "72716169fe93074c333e8d0173151350670b824c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "root": { + "inputs": { + "crane": "crane", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771556776, + "narHash": "sha256-zKprqMQDl3xVfhSSYvgru1IGXjFdxryWk+KqK0I20Xk=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "8b3f46b8a6d17ab46e533a5e3d5b1cc2ff228860", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..01eaed9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,162 @@ +{ + description = "Moku — manga reader frontend for Suwayomi"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + crane.url = "github:ipetkov/crane"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + inputs@{ flake-parts, crane, rust-overlay, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; + + perSystem = + { system, pkgs, lib, ... }: + let + pkgs' = import inputs.nixpkgs { + inherit system; + overlays = [ rust-overlay.overlays.default ]; + }; + + rustToolchain = pkgs'.rust-bin.stable.latest.default.override { + extensions = [ + "rust-src" + "rust-analyzer" + ]; + }; + + craneLib = (crane.mkLib pkgs').overrideToolchain rustToolchain; + + runtimeLibs = with pkgs; [ + webkitgtk_4_1 + gtk3 + glib + cairo + pango + atk + gdk-pixbuf + libsoup_3 + openssl + dbus + libappindicator-gtk3 + gsettings-desktop-schemas + ]; + + # Frontend (Vite/TypeScript) built as a separate derivation. + # Update `hash` whenever pnpm-lock.yaml changes: + # nix build .#frontend 2>&1 | grep "got:" + frontend = pkgs.stdenv.mkDerivation { + pname = "moku-frontend"; + version = "0.1.0"; + src = lib.cleanSource ./.; + + nativeBuildInputs = with pkgs; [ + nodejs_22 + pnpm + pnpmConfigHook + ]; + + pnpmDeps = pkgs.fetchPnpmDeps { + pname = "moku-frontend"; + version = "0.1.0"; + src = lib.cleanSource ./.; + fetcherVersion = 1; + hash = "sha256-2Hdzsjwbb+CKiRn/nGHwLeysKvpvEhd5C213YgWmOSU="; + }; + + buildPhase = "pnpm build"; + installPhase = "cp -r dist $out"; + }; + + # tauri::generate_context!() embeds icons and reads tauri.conf.json + + # capabilities at compile time — all must survive the source filter. + cargoSrc = lib.cleanSourceWith { + src = ./src-tauri; + filter = path: type: + (craneLib.filterCargoSources path type) + || (lib.hasInfix "/icons/" path) + || (lib.hasInfix "/capabilities/" path) + || (builtins.baseNameOf path == "tauri.conf.json"); + }; + + commonArgs = { + src = cargoSrc; + cargoToml = ./src-tauri/Cargo.toml; + cargoLock = ./src-tauri/Cargo.lock; + strictDeps = true; + + buildInputs = runtimeLibs; + + nativeBuildInputs = with pkgs; [ + pkg-config + wrapGAppsHook3 + ]; + + # Crane unpacks source to /build/source (src-tauri/). + # tauri.conf.json has frontendDist = "../dist", so dist goes one + # level up at /build/dist. + preBuild = '' + cp -r ${frontend} ../dist + ''; + + WEBKIT_DISABLE_COMPOSITING_MODE = "1"; + }; + + cargoArtifacts = craneLib.buildDepsOnly commonArgs; + + moku = craneLib.buildPackage (commonArgs // { + inherit cargoArtifacts; + + postInstall = '' + wrapProgram $out/bin/moku \ + --prefix XDG_DATA_DIRS : "${lib.makeSearchPath "share/gsettings-schemas" [ + pkgs.gsettings-desktop-schemas + pkgs.gtk3 + ]}" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}" \ + --prefix PATH : "${lib.makeBinPath [ pkgs.suwayomi-server ]}" + ''; + }); + + in + { + packages = { + inherit moku frontend; + default = moku; + }; + + devShells.default = pkgs.mkShell { + buildInputs = runtimeLibs; + + nativeBuildInputs = with pkgs; [ + rustToolchain + pkg-config + wrapGAppsHook3 + nodejs_22 + pnpm + suwayomi-server + ]; + + shellHook = '' + export WEBKIT_DISABLE_COMPOSITING_MODE=1 + export PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig''${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}''${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}" + + echo "Moku dev shell" + echo " pnpm install && pnpm tauri dev" + ''; + }; + + formatter = pkgs.nixfmt-rfc-style; + }; + }; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..d21faea --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + Moku + + +
+ + + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..2402fd1 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "moku", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri", + "tauri:dev": "tauri dev", + "tauri:build": "tauri build" + }, + "dependencies": { + "@phosphor-icons/react": "^2.1.10", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-tooltip": "^1.2.8", + "@tauri-apps/api": "^2.0.0", + "@tauri-apps/plugin-shell": "~2", + "clsx": "^2.1.1", + "lucide-react": "^0.575.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.26.0", + "zustand": "^5.0.0" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.0.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.40", + "tailwindcss": "^3.4.7", + "typescript": "^5.5.3", + "vite": "^5.4.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..2a7ca53 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2681 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@phosphor-icons/react': + specifier: ^2.1.10 + version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-progress': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-scroll-area': + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tauri-apps/api': + specifier: ^2.0.0 + version: 2.10.1 + '@tauri-apps/plugin-shell': + specifier: ~2 + version: 2.3.5 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.575.0 + version: 0.575.0(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-router-dom: + specifier: ^6.26.0 + version: 6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + zustand: + specifier: ^5.0.0 + version: 5.0.11(@types/react@18.3.28)(react@18.3.1) + devDependencies: + '@tauri-apps/cli': + specifier: ^2.0.0 + version: 2.10.0 + '@types/react': + specifier: ^18.3.3 + version: 18.3.28 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.28) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.7.0(vite@5.4.21) + autoprefixer: + specifier: ^10.4.20 + version: 10.4.24(postcss@8.5.6) + postcss: + specifier: ^8.4.40 + version: 8.5.6 + tailwindcss: + specifier: ^3.4.7 + version: 3.4.19 + typescript: + specifier: ^5.5.3 + version: 5.9.3 + vite: + specifier: ^5.4.0 + version: 5.4.21 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@1.7.4': + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} + + '@floating-ui/dom@1.7.5': + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} + + '@floating-ui/react-dom@2.1.7': + resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@phosphor-icons/react@2.1.10': + resolution: {integrity: sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8' + react-dom: '>= 16.8' + + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.3': + resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.8': + resolution: {integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@remix-run/router@1.23.2': + resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} + engines: {node: '>=14.0.0'} + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + + '@rollup/rollup-android-arm-eabi@4.58.0': + resolution: {integrity: sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.58.0': + resolution: {integrity: sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.58.0': + resolution: {integrity: sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.58.0': + resolution: {integrity: sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.58.0': + resolution: {integrity: sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.58.0': + resolution: {integrity: sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.58.0': + resolution: {integrity: sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.58.0': + resolution: {integrity: sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.58.0': + resolution: {integrity: sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.58.0': + resolution: {integrity: sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.58.0': + resolution: {integrity: sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.58.0': + resolution: {integrity: sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.58.0': + resolution: {integrity: sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.58.0': + resolution: {integrity: sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.58.0': + resolution: {integrity: sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.58.0': + resolution: {integrity: sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.58.0': + resolution: {integrity: sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.58.0': + resolution: {integrity: sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.58.0': + resolution: {integrity: sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.58.0': + resolution: {integrity: sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.58.0': + resolution: {integrity: sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.58.0': + resolution: {integrity: sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.58.0': + resolution: {integrity: sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.58.0': + resolution: {integrity: sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.58.0': + resolution: {integrity: sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==} + cpu: [x64] + os: [win32] + + '@tauri-apps/api@2.10.1': + resolution: {integrity: sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw==} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + resolution: {integrity: sha512-avqHD4HRjrMamE/7R/kzJPcAJnZs0IIS+1nkDP5b+TNBn3py7N2aIo9LIpy+VQq0AkN8G5dDpZtOOBkmWt/zjA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.10.0': + resolution: {integrity: sha512-keDmlvJRStzVFjZTd0xYkBONLtgBC9eMTpmXnBXzsHuawV2q9PvDo2x6D5mhuoMVrJ9QWjgaPKBBCFks4dK71Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + resolution: {integrity: sha512-e5u0VfLZsMAC9iHaOEANumgl6lfnJx0Dtjkd8IJpysZ8jp0tJ6wrIkto2OzQgzcYyRCKgX72aKE0PFgZputA8g==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + resolution: {integrity: sha512-YrYYk2dfmBs5m+OIMCrb+JH/oo+4FtlpcrTCgiFYc7vcs6m3QDd1TTyWu0u01ewsCtK2kOdluhr/zKku+KP7HA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + resolution: {integrity: sha512-GUoPdVJmrJRIXFfW3Rkt+eGK9ygOdyISACZfC/bCSfOnGt8kNdQIQr5WRH9QUaTVFIwxMlQyV3m+yXYP+xhSVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + resolution: {integrity: sha512-JO7s3TlSxshwsoKNCDkyvsx5gw2QAs/Y2GbR5UE2d5kkU138ATKoPOtxn8G1fFT1aDW4LH0rYAAfBpGkDyJJnw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + resolution: {integrity: sha512-Uvh4SUUp4A6DVRSMWjelww0GnZI3PlVy7VS+DRF5napKuIehVjGl9XD0uKoCoxwAQBLctvipyEK+pDXpJeoHng==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + resolution: {integrity: sha512-AP0KRK6bJuTpQ8kMNWvhIpKUkQJfcPFeba7QshOQZjJ8wOS6emwTN4K5g/d3AbCMo0RRdnZWwu67MlmtJyxC1Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + resolution: {integrity: sha512-97DXVU3dJystrq7W41IX+82JEorLNY+3+ECYxvXWqkq7DBN6FsA08x/EFGE8N/b0LTOui9X2dvpGGoeZKKV08g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + resolution: {integrity: sha512-EHyQ1iwrWy1CwMalEm9z2a6L5isQ121pe7FcA2xe4VWMJp+GHSDDGvbTv/OPdkt2Lyr7DAZBpZHM6nvlHXEc4A==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + resolution: {integrity: sha512-NTpyQxkpzGmU6ceWBTY2xRIEaS0ZLbVx1HE1zTA3TY/pV3+cPoPPOs+7YScr4IMzXMtOw7tLw5LEXo5oIG3qaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tauri-apps/cli@2.10.0': + resolution: {integrity: sha512-ZwT0T+7bw4+DPCSWzmviwq5XbXlM0cNoleDKOYPFYqcZqeKY31KlpoMW/MOON/tOFBPgi31a2v3w9gliqwL2+Q==} + engines: {node: '>= 10'} + hasBin: true + + '@tauri-apps/plugin-shell@2.3.5': + resolution: {integrity: sha512-jewtULhiQ7lI7+owCKAjc8tYLJr92U16bPOeAa472LHJdgaibLP83NcfAF2e+wkEcA53FxKQAZ7byDzs2eeizg==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.28': + resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + + autoprefixer@10.4.24: + resolution: {integrity: sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} + hasBin: true + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001770: + resolution: {integrity: sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + electron-to-chromium@1.5.302: + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@0.575.0: + resolution: {integrity: sha512-VuXgKZrk0uiDlWjGGXmKV6MSk9Yy4l10qgVvzGn2AWBx1Ylt0iBexKOAoA6I7JO3m+M9oeovJd3yYENfkUbOeg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-router-dom@6.30.3: + resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.30.3: + resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.58.0: + resolution: {integrity: sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tailwindcss@3.4.19: + resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + zustand@5.0.11: + resolution: {integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@floating-ui/core@1.7.4': + dependencies: + '@floating-ui/utils': 0.2.10 + + '@floating-ui/dom@1.7.5': + dependencies: + '@floating-ui/core': 1.7.4 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/react-dom@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.7.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/utils@0.2.10': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@phosphor-icons/react@2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-context@1.1.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-context@1.1.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-direction@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-id@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.2.4(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-progress@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-context': 1.1.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-direction': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-slot@1.2.3(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-slot@1.2.4(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.28)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + '@types/react-dom': 18.3.7(@types/react@18.3.28) + + '@radix-ui/rect@1.1.1': {} + + '@remix-run/router@1.23.2': {} + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/rollup-android-arm-eabi@4.58.0': + optional: true + + '@rollup/rollup-android-arm64@4.58.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.58.0': + optional: true + + '@rollup/rollup-darwin-x64@4.58.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.58.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.58.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.58.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.58.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.58.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.58.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.58.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.58.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.58.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.58.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.58.0': + optional: true + + '@tauri-apps/api@2.10.1': {} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + optional: true + + '@tauri-apps/cli-darwin-x64@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli@2.10.0': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.10.0 + '@tauri-apps/cli-darwin-x64': 2.10.0 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.10.0 + '@tauri-apps/cli-linux-arm64-gnu': 2.10.0 + '@tauri-apps/cli-linux-arm64-musl': 2.10.0 + '@tauri-apps/cli-linux-riscv64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-musl': 2.10.0 + '@tauri-apps/cli-win32-arm64-msvc': 2.10.0 + '@tauri-apps/cli-win32-ia32-msvc': 2.10.0 + '@tauri-apps/cli-win32-x64-msvc': 2.10.0 + + '@tauri-apps/plugin-shell@2.3.5': + dependencies: + '@tauri-apps/api': 2.10.1 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/estree@1.0.8': {} + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.7(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + + '@types/react@18.3.28': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@vitejs/plugin-react@4.7.0(vite@5.4.21)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 5.4.21 + transitivePeerDependencies: + - supports-color + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + + autoprefixer@10.4.24(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 + caniuse-lite: 1.0.30001770 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + baseline-browser-mapping@2.10.0: {} + + binary-extensions@2.3.0: {} + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001770 + electron-to-chromium: 1.5.302 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001770: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + clsx@2.1.1: {} + + commander@4.1.1: {} + + convert-source-map@2.0.0: {} + + cssesc@3.0.0: {} + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + detect-node-es@1.1.0: {} + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + electron-to-chromium@1.5.302: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.2.0: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fraction.js@5.3.4: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-nonce@1.0.1: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + jiti@1.21.7: {} + + js-tokens@4.0.0: {} + + jsesc@3.1.0: {} + + json5@2.2.3: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@0.575.0(react@18.3.1): + dependencies: + react: 18.3.1 + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.11: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + path-parse@1.0.7: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pify@2.3.0: {} + + pirates@4.0.7: {} + + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.11 + + postcss-js@4.1.0(postcss@8.5.6): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.6 + + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 1.21.7 + postcss: 8.5.6 + + postcss-nested@6.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + queue-microtask@1.2.3: {} + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-refresh@0.17.0: {} + + react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + react-remove-scroll@2.7.2(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.28)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.28)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.28)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.28 + + react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.23.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.30.3(react@18.3.1) + + react-router@6.30.3(react@18.3.1): + dependencies: + '@remix-run/router': 1.23.2 + react: 18.3.1 + + react-style-singleton@2.2.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + rollup@4.58.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.58.0 + '@rollup/rollup-android-arm64': 4.58.0 + '@rollup/rollup-darwin-arm64': 4.58.0 + '@rollup/rollup-darwin-x64': 4.58.0 + '@rollup/rollup-freebsd-arm64': 4.58.0 + '@rollup/rollup-freebsd-x64': 4.58.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.58.0 + '@rollup/rollup-linux-arm-musleabihf': 4.58.0 + '@rollup/rollup-linux-arm64-gnu': 4.58.0 + '@rollup/rollup-linux-arm64-musl': 4.58.0 + '@rollup/rollup-linux-loong64-gnu': 4.58.0 + '@rollup/rollup-linux-loong64-musl': 4.58.0 + '@rollup/rollup-linux-ppc64-gnu': 4.58.0 + '@rollup/rollup-linux-ppc64-musl': 4.58.0 + '@rollup/rollup-linux-riscv64-gnu': 4.58.0 + '@rollup/rollup-linux-riscv64-musl': 4.58.0 + '@rollup/rollup-linux-s390x-gnu': 4.58.0 + '@rollup/rollup-linux-x64-gnu': 4.58.0 + '@rollup/rollup-linux-x64-musl': 4.58.0 + '@rollup/rollup-openbsd-x64': 4.58.0 + '@rollup/rollup-openharmony-arm64': 4.58.0 + '@rollup/rollup-win32-arm64-msvc': 4.58.0 + '@rollup/rollup-win32-ia32-msvc': 4.58.0 + '@rollup/rollup-win32-x64-gnu': 4.58.0 + '@rollup/rollup-win32-x64-msvc': 4.58.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + semver@6.3.1: {} + + source-map-js@1.2.1: {} + + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + + supports-preserve-symlinks-flag@1.0.0: {} + + tailwindcss@3.4.19: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.11 + sucrase: 3.35.1 + transitivePeerDependencies: + - tsx + - yaml + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-interface-checker@0.1.13: {} + + tslib@2.8.1: {} + + typescript@5.9.3: {} + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + use-callback-ref@1.3.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + use-sidecar@1.1.3(@types/react@18.3.28)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.28 + + util-deprecate@1.0.2: {} + + vite@5.4.21: + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.58.0 + optionalDependencies: + fsevents: 2.3.3 + + yallist@3.1.1: {} + + zustand@5.0.11(@types/react@18.3.28)(react@18.3.1): + optionalDependencies: + '@types/react': 18.3.28 + react: 18.3.1 diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..c85ba53 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4933 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "deranged" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.117", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.11.0", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.12+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36139f1c97c42c0c86a411910b04e48d4939a0376e6e0f989420cbdee0120e5" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.13.0", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +dependencies = [ + "bitflags 2.11.0", + "libc", +] + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "moku" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-shell", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "num-conv" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.2", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.13.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.10+spec-1.0.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.13.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shared_child" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.60.2", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +dependencies = [ + "bitflags 2.11.0", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.117", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8457dbf9e2bab1edd8df22bb2c20857a59a9868e79cb3eac5ed639eec4d0c73b" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars 0.8.22", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "tokio", +] + +[[package]] +name = "tauri-runtime" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" +dependencies = [ + "dunce", + "embed-resource", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.14", +] + +[[package]] +name = "toml_parser" +version = "1.0.9+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +dependencies = [ + "winnow 0.7.14", +] + +[[package]] +name = "toml_writer" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.11.0", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +dependencies = [ + "getrandom 0.4.1", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff9c7baef35ac3c0e17d8bfc9ad75eb62f85a2f02bccc906699dadb0aa9c622" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24699cd39db9966cf6e2ef10d2f72779c961ad905911f395ea201c3ec9f545d" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39455e84ad887a0bbc93c116d72403f1bb0a39e37dd6f235a43e2128a0c7f1fd" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff4761f60b0b51fd13fec8764167b7bbcc34498ce3e52805fe1db6f2d56b6d6" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6a171c53d98021a93a474c4a4579d76ba97f9517d871bc12e27640f218b6dd" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668fa5d00434e890a452ab060d24e3904d1be93f7bb01b70e5603baa2b8ab23b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "wry" +version = "0.54.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..229c1fb --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "moku" +version = "0.1.0" +edition = "2021" + +[lib] +name = "moku_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[[bin]] +name = "moku" +path = "src/main.rs" + +[build-dependencies] +tauri-build = { version = "2.0", features = [] } + +[dependencies] +tauri = { version = "2.0", features = [] } +tauri-plugin-shell = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" + +[profile.release] +codegen-units = 1 +lto = true +opt-level = "s" +panic = "abort" +strip = true diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..82d481c --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} \ No newline at end of file diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..a45c367 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,19 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Allow launching tachidesk-server", + "windows": ["main"], + "permissions": [ + "core:default", + "shell:allow-open", + { + "identifier": "shell:allow-spawn", + "allow": [ + { + "name": "tachidesk-server", + "cmd": "tachidesk-server" + } + ] + } + ] +} \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b2baeaeaac1b623742435466d7bc172f052d47 GIT binary patch literal 5696 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�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 Y2Vg%3Hl`w~PXGV_07*qoM6N<$f~n`nw*UYD literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..aaad22b07ed8d8bc0b42c5296cb8c6636d879def GIT binary patch literal 669 zcmV;O0%HA%P)s5Ps~qtfMXMO1G5^%F75ylaSEF&*onsz9J#PkQf8efl5c$RxDj#)+E^OJb5L_ zYNs^)(9795KX=dF<-#bX5wcv-?C~Tcgb=>SDG4NDS9WoTpJoO}I- zA;hXdFqI|!G*83v_ zlj%a$quZuN5x7jCyH9s;`sElG=M$_~iy%2i>f!+3WZS3=qaZ|XeGMDCE+&H!s6$YB zxQ*u9kCF;Oi%QHzFJ_XtA^(-?Rh)eIhT8Ln)VJOp%KswQ2jeM5e+G%|*r*jJK5&a+ z><`iTe2fz3UL3Qz*MQ&d8o#Qo08EEtxUW1^9^b?7gYR(npTTc+F=+R198NL;5Z+N9 zTEE?c|Eni;rJYTj9{#|n@1x3-u-`n9dtlO(Ob3!MoF$^W?}6Q3L;q_F`DzKBgC@p< zAx}(d6aw>!NF*4q20mI~YwrYQl_gcIR&g-F2nP@)qb3crWL8VLZjd>A_yxuqz(xQ00000NkvXXu0mjf D4q-f8 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/64x64.png b/src-tauri/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6a9cdccc991bd90108f1f6b4ac004e273e6a7a GIT binary patch literal 1895 zcmV-t2blPYP)BldTp%BJKKMWRFZjU(HJC^uY6vPX zLIq>ANG%k!)D#e;P$lRkI zSe6A%)2dcq)Seb9L-Shzr?S(49{~IQqC$yq=YN*FJ$c4==&qwWNs$bh1=M{7y9PlU zx)-Dl(9NO5;vS|I93w1d98%4tx!9WNP^ zPk&67OSZHLL<|N+jj_1F%Bpm+olEnqz%LQ_w6Cqi0R1H}olEs6gNRCu6Bw}xVQJ2VN z1!-5#?!AI9Q60ZFhK$|I*mpU8IO=1(FkR+`bth8N2i&Ild7i4PeOk{`U`J?+1r%|7-<|JY^TiZ!WqD@e%QQ z>2`#toB2GthV~-0p#}Bp8__fTvK`Usn$*I2_0JP6DX@+b1htrs{BjPRgMCP~HDTt@ zJM3BGhAftzJjbmIR}rf-VCBuo@IbGGyaXXRba(0GGaFmc-nSjUpSXa!WE}DOBqqMT zjMm;xWHz<3I*uk(i*)%CA(;?3C|R=dwkq#@Yd@}^yl8iB#Fz%qGJfI*?0)Y6bczq0 z2B@UFWkFGwB|<@Mt|SLX?cOr6$o;^%WYX7dfLnS!0$-Rdz73$strwr4A{y_<3I!{cb$-i~y8Gi!qiGQ+Y_ zre6K|+XLwy-iO)gdxeSH3_Q26h|T+VG5a6;^bC78{qqDmU+d#D+p7FltWJ61u z^_1DthHUpnEH5k-k`x+}jVWCJ;sVT^$u#5s*c7X~j%Z6hmuCdYi_oZ$BP9*+it2n* zU4`#$1odZbOykP2Z_#~l04>`(*zU+#yt1PzB}Y)AI6ljYrL7)(e_6WQ6$1N|^k#Q&eaLM90o3QwLJMF+tL8YWMC zbqTY7-ABxb6>UH4L)sE|sd6?b8+^E*v2d6yf3Rlm4+!(q>S9>GyA$J| zpJyylW%8;E5?MmTiSTItkAAOjPNVnjLCpO`F;DGUgL_CeF+>={w{SlnP*5jefB0DvoQl|*$%NcMtc)Wrxh>l4NW z$taJ-BJ~2bdiOy3Y%u6qq3U^}%z0iV{qq`YsAgDI?hweDO3+|O_9B;XOl$3aKyBX^ zUxiZD`vG1=q#9VED#uWSVe5LPCqk{2!bG0@C2pVHT>eJmb^9Oc(xI4w#hlNcHrLL!kU zF6^4PDCu029UL6Qkt0Xgr=uOlTDl%PGBUz`JD;Af%+&fF-%4M)a^5QnJr*c8NZAxw hCDEVE`%HYBe*sa(dnOLjF+uM3)c(*Ps;EV6 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 JPDHLkV1jdJKD+<` literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..88abb37601d3da98de43be45d25386b78f2c2fee GIT binary patch literal 6743 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 Hu0mjfh|M6_ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb890327a13962c695c1177b971af17339fdab1 GIT binary patch literal 18815 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 LNkvXXu0mjfPjCuv literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..09aaf2ae540c392f33d7c1e4c9f453e621ae654d GIT binary patch literal 2294 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 O0000 + + + + \ No newline at end of file diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..14d2123158c3dcb755447a37356d54d4ec08c48b GIT binary patch literal 1065 zcmV+^1lIeBP)SAg;@`mk>#ru7XreAC8V3o(Z47|{o5O9bcefQw z>9yCj8%B4@LVI`Z-RHf}d-vWe8vcQ%^+EJO^biCg#OT`Uh5`0+MNvGb>bfqRq{wXE zF#g~$7qs^I+qWULX_w~}DG;*KciPYu!0f&a+zqsKTy*UQMCmz&I@FjIj2#4#rIAS5 zey;6(m-p@KD}9!JtF)b{s07i1h~H+v+ju}Nxog5t6B(%4?>27!>=Jd9v}LZ-IO&9| zvXXS7i0D}-uct_QLoF=n%g%M}V-k0>LBZMte|fXol}LQV&&%BUMKtrGlKm{O&ymqQ z3DbzL&7t?Ird`s&>m7dS8k#1&VxvaA4nx-ig&LuO@B(C~lg_xT63jn;2z5YX0o)Z* z%XlnV!F5C@S6|LJ-qyn0#xkbX7WiLw&jy_QeNdVyVaH7hA!s%lNIqVo(r-d#N6F1#L3B~>9#C{Vk3F!;xk+7uU_gkFId~?$bfJP$#(k?J~ zf)IVBlnKQ<6^Q6rbJLMX1e=?iSXo(-1A!h_yk#|!$z)I}l{)_f+|5tAZgH3O0JH#B jq(PwnZxMYE|0jswQ=y%W3J)%700000NkvXXu0mjf1RMc; literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..6e40136832060d6bb34b069147cf024a5b3cad1a GIT binary patch literal 8138 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a30f3488abcc181e20662583e7ac2b2cd4e77f36 GIT binary patch literal 1192 zcmV;Z1XufsP)bsE#uKwZxA*$&UMiswtQN|dLA*np!1>jmKBG{*_@7H$6O#&X%=~_F= zD|!M&^0oM6Kgh~KUJ8m68IO@HRY)ZT!&Hm@QvigmiOR%*jEu^({rW*MU0KnECt)Lu>9~-Jo@$UK>2%c>N;FJQ&5dF0nJEA~v2r;QcPT zI~~-yLJ4n-Krq>3olx)4IFcIVPIr<%S0HUBhvs)LV4h!~!V_MxR)RUWMCZj0%A3nP zuxHWbiO-287GKIU&Df&U7;?p#U#;@QR^y_|V4e+-UnrpY{VS9{S;8VufFE8r(R+Ug zP1hZ{RUxslL4>(hl-(jG3biuoU){&>!sI|M&}$xG@m`&KW0!mD$Wbjev_mUf8HGv= zLT3LUfKV=qk; zc|#e1z`&L{xt1xJMfP@+;QsS>T(!_|js#X7yK)~$bki8q9zfdTUM8OS$@>etJZ#!DkXR8gKyB4>E4S93oi1Z423jLk1jji(-#Op8*fH_MFLMZB2q0zvx~|i>7N@i$TGKSod4v$@1WiS8d!gP- zY(a6%7DoNG<^t{k@dMGFrzruDS>36$4MKBKhAZeCrA}~y)kPUjuecdW1fe}NZB(hH zbx_>0v_5}Mh5O#mVO23k+-Md!3-!5M;=;a#?8UqHf;C-ZgvyK& zbsAL(JWm5CBnQofMxGQ3lKy04)Il3B$~mbaDsPYZc|m(@0qmq_AK-3g6KjHwM|SlB zSM-vsUIi5_3&Os8(UJk=*;G<3Zt+q`>y|GXL0#yAiG)Iasm)fNwA<`Qdi+&-FW{v| zrMx)Km0$U=j?(6abq~d?639ql065c|Yf98L?q(EMmyj4u!AvJneDxe{27*6Rtsl-g zUh_4-F4XO1**G8Lisno6NKcI6qEfe(NM}cJcYTZM&H)V51Z4mpBnI57rk88E@`;fo zvNL&9e(ggySfM8rghlc6n`IaY6QtF)%;qOgENTN&NUWN&=f&5{xH>(@&3V&ObY{JT z)=kIyg%|U%+cmESEl8U(P#x$GS^_hbK)R4cCZDsc&GRR15!AL1QTeflbUusJcm|XQ zwL`97YZ3_nKZ|k8W(ql6oYXD)EWTTX!6;Puxo17k6ep2ennp5{>MIL=9*sN;$qN=> zq>^agws3w_Lw)ZUvl}lNeeN(mm&a6T4kzDsVUDCice0UC$lbl2|69##jL%GB`Tbi4 zn zHltV;&Dz<$+$~GhN_s`r3)wXww^+njaiX^uxH-K4QqhtX%Rm6aUW8co#{$bllcibg ze*A*VN@F0)%K*f(p)rh(*pu(O(3sL!jQ2Vli({)dkO!ojj_%yLTg-2-ObAi#I#uqU%&|(W6bjNkhTT5K zwxyIE_sNb7gKi%mv>P3CGZICzi0@b>a7Qa2Cmws~P&=|9-J=_wynu*vxblHKAp4*e zb`LA#x1T&-wK)j>cWY}4Yinz+o_MsMS)HCPm&>TtYT>_94%$uxeP0}NSYA^GfZ><= dA%On_z+d!zgS&#c?j-;K002ovPDHLkV1kug>45+M literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f09ce47007a5f117f81542d1e178fedc1a4fc135 GIT binary patch literal 4420 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 Z%4eM%GmIAB#1Q}h002ovPDHLkV1j4DK0N>c literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..26c02933193a779f858d8803c1f4e178c8e2b0ad GIT binary patch literal 2999 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9f7fa2105ca0f55a861cae87ee1aeb28e31874 GIT binary patch literal 12896 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 KMNUMnLSTY)FWSBU literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa520f1c3466b6558b0e2205c805fbe76bff78 GIT binary patch literal 3132 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 l{{o@>e@T_)qO2OIO4=;we*h>UMnM1o literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..8957c1348a494ce124e6100217341a70fc5c2a05 GIT binary patch literal 33814 zcmV*8Kykl`P);EUO^G>E6e;E$PeSajw|7-HfP;h3XmkQlMZ=`d0noX2?X}ll%g{89gBohI7@SYN zO&DWcwZDz_J^XFMZy0K7R-+e394Gx|`{XsasfAVh0m19U*$)ehFptZR#f+vN0X5W6BTm_upBY*h zlXRGik6zuD=leiGh-&o8%DR^(bU&f7Ud#|$O|HF~74^&F#m)7j?^GF>8a=&I2L;{q z-1$^+s~VtcU}~rlpFmYTDF;zVZ&XCDB}2GoU$>$Ge@uI%**FG zA&*qwLw=$ODg#qP4VCFOom||$uan8vD+?{?eeT7K)$RH4^St@>U3C_Bj4Qmj_g40C zcxb)uM;uqqeo&8trtEv&53el-t*FtRtlHgt&TG(%>i+WM`q%r8pvW;^YqYi3uF?0n zJs-`kzk(1|4JlGcsN2qIH!b!$Sv>gBe^hVf?|0u;C*R?9f5OT-o58wqBNlafF5Lvg zdhap%VG?hr|E8N7bn69-PH*~lvWHF|tRSI`pn|EJ2i5NhryCanZdcvCxY+Zv`8Tff zQB(_pI_J8#AjDP=4jpT|lW(i{`_UNbwb1JN`x~7vACASB<8O9NJ)Tci{du>+GDN7< z?_&OA*!K956f3UpUNPq(I3H5E2p_V zP;ht4VrjP^?{__^`sWU$>2-3chIOi6^;Utke}l{8_cF<~-Oo~QziR((e<#YH&Yx}tCz){Zq7evi4=!~0HT|-uVO{%YLow{xHeckT9wF6l>nRD&u+z>2S&Hc*j zT+`a;v)Q%udd&5n{o3znHcvE~gKFogPUgURe>W?eG@8rm*1-Bv^*RiO4{P#Zwi86% zHubrsuQqy5z5ni13Z@lCKkfG|>Ip$mg8jO-aUvuIu{aA;soyV(c_(by+6g>JNUh&9 zVXxQU=oZ#XoRz;@O_X8vWd+g2A9|o@Qcv)U#idl?36h)>cbK|Y zgO_J9fVdc1da)S@8{&z}&C>~UF^H9Avj^A@1psJMNVbz>4@4ZbQGOCgS6GL8(NXMHNh`mJDsfyC)C*owsDLYV z5;fH5(g4;92I-ZF#A`5f^Et0BLd)6chQqFNtb0| z-SmvNOkn)3fwha}x?%9e(RL-w$*|Qvw(2`;XL1PIWYG_*a8L$*-M(1zsy5+vq3GsW z@rqD{dETR37<*B=@k+h#6hUe0IyP|@@C)IIHH|(hsG(DhFTaQ-&4>_g3g&)H`au+u z!_ZM|cj9CoG$4C5D~&TTDaeINH!1zN$(Fl4Q}fE?RDEDQ62SWz`fF$Prp|Bo)To?u z9#n&FP(d?L4bCpNXz@LfhzpHgVaD-UO~-{;(MjDeE)?V-)C<}bX$}K=4N|bx4@d5x zpQ|th2HI^8XaZreY3ZbmqS3RZGO!+M9`sv&MxAf)y)NO$b!|js@DkYK0K12A zpT{+G^>blS?_Ox8sNYI$zZ;%I6~OvHeZehrs~fV;sP`)__d~lX`;G2}PAqETeE$7> zc7s0Vc8G4Qp52f`*6Pr&F6cUBAm>g&h@ha+E^9036+vjP=RXKYtC?qAKlgWqc@A8| zb#*-Sf>^lMHj6h}G)2YGrtNB=h8k-0J)Er?j-!Pn+j7wcZ!Y5P>bCmL>J8!?DF{&w zRqIkLLKWotKoFr9hswazP(uZ;$R*pl!4%VB!}W{QSdc8yNNZr-X7s0er$F_Kd2D#@ z#&cDVz|iVgf;6>kr?%FLUFo;lgx>+)t7t&CE^NZCDb}7}LrsEesL}fnr(24BZQ$r< zA3C=|H4aV+VF#PI1YK1FQy98BAu(vF2n*HdM6ygR9{THf^(xO6>OS@}gs6rZYQ*z- z4htF#h4vni;CQEct&Ms|-3qW*)A9Wj^X)hTQvpj2H55#$GNbTIDczDmgHqxMM_Vt< z)K@`w{da$<Rvw^MMGt?a~9Tq zbh=%)-_h)SZoVVxbJfX2Rn4CBV{-IcFxZc*qMhp(^_|RuT!YAk-lQ}tKR;* z+0S||=xrZ^l9GylogmD5Kv=kb(C6A~J)oPR^B`5z`{mhg=lpc?taQ?M*Uoiz^Bnkf z9PRYSdCk;n*|Lg-s77DZWIAOLs)=9SlWs+^+ZE0Z;`wNXC^UmsyX`(#0ZbLRAuhFs zpwD*{Jx$%frc)!{bAT@vI1R*rnFlf8IQ0Rm02a}zJ1$D!LBMrhC-+VtjOqZ@h*(g& zI&PQX)5*1I$57Dkdw?}CLliZ>fcwtEP|@hbx!LV!+Nt%myQuTSnSg~r=dY(y@0CyB zhZU63ja~3+sL{)-@1PeEQzl~746c;$JzST#Fi(wcxp+a{{83p3M45&wXf)pEqTPGF zo33XN`x+NnC#5tK{(>$xEW|JaiQ7J~unggMd&*A5 zr-#Uoz9p4$^=9pp^?4TSW>O6FddBGa3i4dAc6&X$sCTZ>_7sVu4<>q5KUC*RJs zAQl&=;bzZeC(lzS@Lw}sLqCaUwe>Bp`~XA2IN|Mc6s!L@o$FqM=i+ueUM84M3-Y~S zZd>mhM5T`ygadY5h06WN%vB9cP0VU|$Qa#T^RVv?H*!Z_{iV9iM|s?S1hIaa zkMLL-?^XqfAYg!Qrp`}+wi-Yv^;XP5Qn=&Trr-yR&)H4;|gE?gwS$Vw$hSBR;OVq28C|BTNHf6`H$1KY0?)L-S zj#pB*t;D_blf~`%4T6o=usJ*6wg5j!Q=nLg3fAkVo3IzpeJwMLb=X_zCKL37y%|Lh zQzxE$wG30gJjCJ(6RRh*$Na$BWdQcgBwb5+?t?%TgqNA09$Rsi>uEb{3X!TFW>(({ z4h+k4tzM8W|Gd#Y_^@5CWR^}Lb*~<0TCX}SLrfiW!*HbKA@{+k2Hg1fLIr%IMi!Xe zsNnb&Q2f4j?dn}tD`?bv`Mn=O1~0#^k!ob_#mTx=PfUzuuat^JyqlNfEEyG4K#9}6 z6Xw3uo{vW206};Gx`l(aeo$=a_u7t{y5lnub>qF*Nf7h9F4gbXrJenBd+ys&^AGAg zd9K^Xu?E(N#T6G1nz*ZrgoV?`jltKf2G*&{iXW8pR*S5#?q@gKYDNF{LL+bI`R%lx z>GgazqL2qwV~s;Ah8L67cJ7ZLgP5UK(fyTS^kOy|o%&q}n>-eT}2klZ<;`s~^|Fizr0k z&vm!c=oNGrK3?7JzEo<&@7`@T!Ft&bual?OZF#vTy}+w+sX;Y^#rrubhi^p0Oa0vsaqo z{W?!t+?$ZQxpyY$8@ZKykzY4Ww_Kk_aza5%EX8qBaMR!$he@i_8f2s1vv%dFs)Iu# z!Cg1B^hRh%z0bSJ-dZh2qe5$%orh-6pC9$aDRZByfpwSUO;mLJI8OY1Cl3}Q$)&ig z!u=*EGzwmRQ`7xA?q&h0QIg34pFruSl~zY86;`K zZEHoV9=y0OG=oHO`l1HrhlRLTFDthXTvQS zbn{%ds&ln_eY`fW*IV?sT?o0EH|hnyxIn_Oh7c7KP7O7>ZzUX5?b55OH}n|{tjZA( zzdo>LtIxQ?L|zN5YN!!Zvudk}zMCl6QSWD~a}_4^-fa+ir~xc$c&gEZ7KeJ9-;zUd z?8k~ToD?KGD(GWw#E@(UHg`LT)%~nTM}nx_mV>;%Y8RA(s_oIW!4F-`cIT945TRG* zDXTHQ^@Y)E8=dlg%fP~1O@$RSRQA=suv995JdJeLX@f2BqAa=G(G+*7AB8bK#R4ZWmJ^? zb|~3meiy<07ZyzGH4AU_IX_&2 z{e;iJWBY<1_nO=N@CBl7axaJ3vZ2I$0}MJr$^&(RiTgDfKtOe_AhMmH`gFP>3y5PA zZWPDt*2W|X2r+0FHAp?eD9b~JVtaKL+slj4YC9R19|VM6q2E{Q#QAkht+L?q@6~#; zYl12ZQBb$3Usk;ZGyRPAEvBtFje2xlFF2!MAqFMZ8n+d5luS#vK0$GSOT)hY)d9)R zM&&5(y`Ti7dDIm2n zj{kN8+2Oisk1b95xk&<0)CVbaNG6ZfVb7im=pRHLX1n$=(pe%*M&-9La$mpdi^8iqFiJsrSQ?qEqByC#LP}ec?Ow12> zywP=T=Ft@g@9sXXbJwjN2%Jwg9LrtJ+sG&w2%LZQOCPURqRPgFnWqNgAs1av>z{piVJnV1RnFseOgb2#^qidkM zZtETEm%@5Coco|!LxO4*2t#3n zeBZlO_wg!=2XTiGqf&v7GBEfp>Es8#90!H`Zg&A_w4!vY&)6@{%|RSA5>$`2C78i}rP8J1TgLzI2fXsL-BVsU@PaZwbNIcd8D6hDj{!*~w-B6he5 zJnhP{b#ko@CGDd|KL|Lh%vzm;Ahy*l_pKkyP(QLJzptyIR_SV}p@tf2u@Kap+=)PT z*95S*t8oY2p&!R%_5;R=q9-NlYu@Pt?uUXwl&j*X?(?AUwJ0oa{5Jb+*EG@(%6=p0 z)$9BcOGC@3V3R1}ny|JVrpszKXi`R1+id1h73Oy1c#j9AN!d@3y4&Cz*XHZ4&cIaK zuIh;WcFk3-tGDZjwVHrIkY|D>ySQmcZpWOpT`#v-D{;70ZH@!H5GIV(ZID@<6ab>S zzgkTyVPtx7yyjjd&AR3ITQL(m&GuWtf^N@e&~>gLq`=(lpBDF;j2|abWgq=_p5lHi zaoN9qcY+RUpZwfT9P4jkAD6R#3PMznhZ^cyDkwXoYu-)wMmMO#82vCAs2Y%(c-2tX zJjnS)^=(2V?9IMmA-Z9_g;|$~%S|80htDk|DJ~|X{dmp2s8{$QA{(Xgr58Jsc51+G z)Y*ep>1p=txvA~eI~KRJ`mUzYchkh#ZQJT)I7VgGYV^Xr>^0D}3O3y`$0!=TB6aj# z-K5(Z!_@*Yo{P31{k4M3g53PB*B8pl&{B!Rs-ezxSDU@|!g=@O9_kdjZWZiW^?Ef@ zlnF{an!Z;-hziC~Lk%^0^cijEdp$Q3M+oJs0H%f-YN(-tVpnGS%FwdMZ(c=o2zR0g zd(w!a5!r!;6qB~`dFm!(O24wSMm4yg?m<-pQ$r0^i;Bgz{4j=8_X3ZFl7`zwvzt0v zt9wF0i0WZdLk%^0U|xwj6Ri$hZu{DxA8KGhc5=HF+w7HK7NtB)l-4b3@?^0%@6Dd6 zFa%_yvgms?Vg(f|TF)IjB4K-A6of>L@k3DQbQRi#7rAQoVsG)`$YWPkb zgI=c5$3^M58x)tj8BS5hA8!aTi2FYd=eOUV>nO?t^-3^-!?g-RR6_+YHPldWFoYn9 zp&Qec9`xf|wd=bpK*e1u!+#P(uwhK&jF9uqTgOwP?4P zZ#yd!KeCRf`hddhM~O>MUmSX_f-dO$eO$(Czc78p~0d@*Frjzg6rolLGIodXgWS_+!Ddf0{j41i=}=FqAGaxZ~$wxLW=TX z_Pg`G8!&l46rww&_6B{;{Z^4+6p3_+$kXRJK2c?Ps$&MXAxNRVFB?wbKU{;X({XbmZK! zVDk@OfTg=OLT-E%a%1C=nl}TU`1vc4oRNW|SpZAJcXE|wsi6k+I*neX-Kr?u4GV-M z)4?j4u;%66u=2^RFgZDfnHc&NA(WWQO+a$V4A}AW?*Sz79F_1KFA0lvVQRm{MfD-7{Rnfrx~@a9ScIidY=CV){T}4=lb|6?SVE96VQC`SDl!X_ zgF|rZ%dg?kzyBF@!w}h;YEX_Z9Nz89L{Y$|ZWMJoRp02U3{1g#YQ%g6D1z6VjZ0zc z8!teqlmp!&Kv4sO>*8+;U>d@Px$Fci+x;kPdi^OdOC=Hbxg?KYK$ zxnDt^>qgDCQA{HBu1BX2QoRYK`g?2t-L_JO;9WSpL5A6r3|{F)Ghx@?zXn<=fx)XN zN?RqJWANhQGnV)q6HG-;6ngx5HlKw@fAAD6-LX#eiW!<_Q}H>zpO=H4U*|oHYu)Mj z?c`Yw>zV4d3@nWKrO`DAB4E~i#+4tKvTIQuQm(cp>GHJZqo!mGJZwf1_WbuB!qDQm zP{`$A0DoR$Ch)WYR?$K@k&6|ghWn*ym1btfG*KVZCr$Y3fBzBgoxcSJ)x_{SIX;fG zB^Gm*V!z+lakMUp+jVHQsPyAGS2Zv-)Ns}7#l+*nG^$x)qjHMF&Y!#tg9~Sai5Zna zPZ9>9q@IB*htGjw>7b_!(P?QU4Y+#h0!-eW#J8l7tyscuv%t#eup`(VXfq^1%sG$n={tQcQP-J4HqOs|X=V8wJWl%)MAx0cv7G_k56de6% zA6(jZ0s~n>z7yGqMj`=|SMI|8-@OlJ7K0ytkB$sPR?GpPnS#fVxu^~50+OU{SnAS7 zqF>qSeu@KCUZFTDfW`9RP<=4|o?pNBgB}!}Ai|ObYreY^R_@w_tU}7DsQ=4?#J~WY z+j|%;esBO%7|3YrBB#|+i%1&UAR zkQ##PN6x{CKYfZp3rQSiQ4ldG;1QFfg#RwsJzv+qJPlvJ_XVVkG-UB-2C_b~6XUR8 z%Np49%9CJPyyqt*b%yQA>G~5EYZ)U>6k%b&sK8LFzo#K4-gB) z2IX8qK!ipr1;x7$;j7=i1J(pKCS%Y6%)XF@fzTllGD?C<&nPW(HdB%+QYZiXC1mEz zgn1iRLB247BELEY$sBBb^;wvB@Br={yMjRs*^H)Cx~J5RX#7$`kwyMYMJ03{<+j`$ zb2pGIqPz}%&lL(ng#KnG#nCZ3!ZRtdr|PG}!dev@PQl|pe+?2d1`y&iLBl}BGz0XU z2?u}wArx*;3TY@ONQtko?C)}3R;6E!n2Z$24*&iykVA#~BxZ3X{5@rLC02ypfBQ0I zmd(I=TS>r>A_zL)tmo>%o2n7|qXuPe2QH2;%QDN`p#LVyyg6EcgTMO_ zc!5NJ6N2<%Ayf$%FdzHL_rVxR$d%19h#{=$`o~XhM?K z@2r?+uWs6ItIzct_104WWAgt9;wzvm)S{j1VZ)10z+`Sx(BX?1gp!#7xOVg`eDm&J zNZ|XJfC}a3t+K3@gb>Ax+wfo2?|3;A!%PnATsKjn{_9T;;CBx}9)Fp{Y%GsHVvD!0 zhcz$m5CKw?4wxiJ75jFMsP45W?(0_Di}HDkYA&lsNUQ#xpNNm4YDUl(UGxefbn#G% z$U=<65)3Sv37cPi21-c8NMM6j5d&HZgV%#=x8dM_y$5=Mo*sf3O%dF9IVw#}>2wF0 zbTX$Z4hExUW>l$b|k)KDYP6)UkQFfAHPz+*_H(1(&(lPUme^9l*5!dMRW{~8&G z4|0G}2Wj%A5Z^5auR1j~nSs?X2klJC)QNU)iS248gX6#d2qv!H#hO|gp-f^jQlD7~ zw!i)&x;hV`QU?-BbY^3n>Uyc65(ljxR4Lp-ckT9YxJiZm+_sAqs$yY6;!hTA{{C|?ynGRoD+;0}mWLurKj}!g_!uU?y^Hku1U4okUEY+CqoB7l zn_Xx}E)wvSvQUzI!R_DC&q?o)IrS|3TnWF6f|ZGZkywok<)%#f6$u98J|srcu>Egd z#GonNoT)EO>f1B%hql0(<@#L2@%i$q<`U(7Uj0mVvfXwkcDLJVrc%=>l-KUL4vJ2% z#a*%`2&toHuWsIURLAIcKjLzotCikGARy8OJ_%H7TDE61taxlA6i^+5q@7I6$fzcD z>XUtN>(JLoc}Gt#%7iFzSXK1)>KuzzL5AE(n5NbRgi1Y^FUP7Sg<0L`H`n3tn;)T* za{~Dy79pCV$$9pgCGf~gd&KuJR1UUu`Mtuf1^BcCuvhQ#INtMNZ`bX%qB`%OScq!$ z@P$tSEnJ6@*#2Qr!;k=tCFTmM%zeI;+{27;_ zsM>_6(OQzpNLCl_qmUz1J1__ul*!?%R4^fd@>DnWpM^_boWN~k-x(1{Fklt19=7JG z9WZal8exVh>vginO!$p)1t+NieaDp6;&K3Si017~{C>j|ambv)z7B3zkA9wO=Nl|L zOVTL&!XTkx-D?Xf%tMAK^av~>Im6Hm$le}>qrd-HG#+zNBEzi6l+<`(S_yUyZ0gM} zU_SXfYEWiEQmPESl#h`~)}tj!AOstlg7~4qsrUa1_b%OlL=uI8OERz(5o+A_y{Clz ziiO!CQSP~2gX@-XP<_1{UE{Dz3{hoFQO$8dpX++ZR(qU&9lNGhYHG#UPuHBj+0^U| zik{tsY*ya%^3yOE>t4lt(e4#ykid@RLw`V}jr&=_05qwZMYSugiQr=i_))XJw+13? z;65%MT#%WQW>fb|7=-A%MV~SqJ7#|zv#i5d4=au5vB^0p-or6~rAIQblLBp0W{tAR z*$#&4Sysmks*yQX7g_ZxsS!xSva}XAn9^U}V9^V9oY#x2QP~Q;YyaZaJ9RFZ1 zJUEL=8<>ev<1qy;Q8TjxT*Y`&Mv;1jYRbH7dt>OI%tin$CetU4R|;tsW_i>goxAZ6 zj{Wgdj8#d561iX?<_eQAcil4Bi1jdw%cg5q18J&;do>h<7?TxB99J;vL5%;()b2^H ztGq;$J=voavEOTO(M;I-%5#Deui?*1NNZ20GjQq1*Kh&rP?ULDB1e73z%&QhQl-ZXhzDEW#;Wb8oTQ=>USdunuc=N;sIKTHO45kLf{xV&MiHQkV zi}kSiTUH7$G67dQ8DCXXwi6RoHljvc=gm&<2_veTx1AjiQqkD$e)t`<;@aRCr0s@V zRd`>oFOx(G0o*yFxElQonS=<#J@(`8qDXHBI5PdH24!SY=$?EZPQ3MnWGh<47&Jlt zlTQm0QUKT{WmGv)5^Y|alJ8Xs{ni|_$)-_1Y_f=mW^nT3FJaco#V~^MQpMsVXsC!^ z#6Q~+O8ofREy&-U#K4vm?$5f#%dlc~#@USI5!Suk%*Mm-XS^L$C&&e9nARn3&tcFC z@$Ckx>Q)5BLR9*NYE&s}=%&nW%1ED`5fu@V+wj5@FlXHg$mS^kXo8+jo?eIE`~XaB zS|-6=(HZ8)rDAOWoV=1jX_#?AwggB2^dUeFd(ZTQ)M>y~_JJlxILMg&xnpDLgk z=E803VA(Spk@8j5~}1s z^70U45$B#urv7pFXlDc7)8HaB3 zzN#LVvPwsrQbBfI&D12bg955$lSoctZSMZJH&D(h4F&u`5&gqbBZIK%jb}yBBl{MS zb!xUE2v-ojLQ_D|==;U~Ix6{@UTIK{V_>FcWr7I{=x{uH{W4g&Ya`?)$FKzqbqKLQ zregp*_U`A9y)`B?80l;&KF4gOUdxqMB}|i#;?))_E{Ev^T-h%zDD;-FUcr8_hXuHH z;ynI4g+HennF0C9Nm#z=5tPB&Dzi1g#kZxZpnr6Kqk`*NX${6zn4u>ESQz+dvx{Dj z5mepy*~x@hkL6VFIQ`g`-vKzteF}2BZW(C79wWDfa&734OZbot=&<3X$AvgA=O~zq zFkuEgxGo+z1-JH}!9Zq+Oh6*leVyras{(xKdQ=l514G_g`+E5CtB z<{`KD+h*+Jz7g%e0JAqPK}o6YP|W4A=B3%XibzVyX5rBncR_M?28D)A(MU}y9Tu~} z(}3@zR`W=$$zc!+9=B>ge%*Vu$Lz+Fua~mYM&H*8uC1p6;#TarZUz?B%78UcEAZol z*UHtn4PHUWtTd9#X?5IwKiqDQsgvzCT9AbKP|NZYD+e)hgUsQizUJATFni?!c^_CJ zD!|0``*7;5&rlx9$y7{R-JMUN%8MQ?o5m<_BUYg`@(T1PV-S-Rd|vf_R)<-^c*S$Y zalW*(FU!vQ==>0bXkx?lz=}EW*w0=DV-N#vF^}JC3550itH&9Scul| zd@Uhn>HG+~8tpEojD^y8SD9ZS^C4}K;Dt>*69?fBLA)vVn@Q*1yUn%Hck z@9rhD!MMOAQm0T(boy^Y3=ZW9A~POE4fMknVT3{O3OaYd8Tp6!sNL_#}6gNC?Gxl3L7;XJPra z4X|kQ3Lyflp;;yq`(gEEIRI1*4B}9W3^IuKg`G;fD(PXY5 z&_`?Icb~+@WkUpqBB{({4e7$6Q*h((w?grPNE@sfbV~Ed6 z=+km_9fB67?&bNVQ!le1tZVwA_NIlY03Fq~qBMGpYTHpBchn|>qAo{z5pi2Mn!OA%mBkO;Mm)r!@>V}5AqLlz)1!R1DlDT8CpCC*6i6L zYk4{=Z^TWVA&h%142OuY?{P2loY$b|m&s(e)Zv;Pi)v(6qbG-s0e~j+^!#C1_uNh} zkpMxuhD7Hh=Uqb1=RNJu1f{EM@DUCYJMBWw+kz}YWo80l}-#m-NjpdM=K!zkE zQDF@R5*ax0<|lCL_yw@;7U0BtUtnNE6%nk1QNLKekb_lEZG!>Sd9;eA(*dW38j41* zh8oZnwN3f=`tR<6F4L zVxQy=z3KI*VL7SfqfR4;fQ+FC{lQLRz`C;U6v8J4B#~Nw{lGV9x_KT_m|2o3W{Kpp zhLOVinA=hTOpU&J5W6l&F==V+m>vt-xk$eVIxNB5O{-wZw)Id# z(gS5C7XCbsM2Ax!>=Pd#wF=Sa#cXAGHa!TIU(LurV6zUV1PUg)iOVYSR*jVl{?P@= zLT*>HS(6%eahaG&t$BGTEZwsS2^-k2hMr|)qM1%6;lf`I!-bEIfR-=>tVxu43c{y9 z*bl|YqIjZ7K9RDp`Pdnd1&|8fG5Xj~pJVDs~j3qm@PG$=S^1_t5l&kjHqeYU8tO2Tx~!=$Aj zq?-w+S~S?+J8POCJ%_3`XGz+yi(u4;Mw#OB7q-JANW{olIk0SUWICCFi(ejxvwz+v z>{DcNhetpp5B%K3wfk`Pv%^B6gKBS710;)>%`ZO%EXBlo5reEqYT03wtL#jTE@o(| z0H#J)tIgYze|Fy!NKY@Mos&W3jHUCyDilO7l#T)5{`nhl;q#+{a$Zfy=v+>oSM_u` z!>Zdm>|}J(56qH^AE;@lW7?EQS*s;aY=n*9e-b8nUi5!aYM4onz?G91;PfBA0Q)28 z#%zk9tZTBaM~%xD_8y0Ew1NR-SYmPq9A&0vpk&qx%;dy2X|FK2IpcA`Lxj#axfx^q=+sA;z2q!uQ9|$6SbNd3jXe_3 z3FBpWvqmzx%r+$UAni{cgUy^BYhddSUqI#{_I+WX(J^=pBnOZxe+7>J{v%)|NlxJw zuiGTg^Cq16^dO|r8;n?t1`<>zOIcX^%yuwlCsFs&6aBO3snONhm=@QDw=i+u zIAF?AQ((i`uHWA;g)S;koo?HSta*9|49*^bB4#v%oTV`Px_ay^+`%k{YDZQbdV2#= z`6_xlb1jV}0+cOdRnhFIPh}^K#yn<;Gf*OGJF09HblhjNAhxNe(=c}XAsqSLhrq{6 z!VApg_4^koqcb!EZXG)Zx6fXLLHsP4Vir;VacIsAq}6Ye;Y!z~^cAbPQ}=4k*6-&j zF5l6uH2SV@WcH&$FK8XNI0)><$wMg4VymnwiJ)wX#Civp&w^FkHzIw!B>KHLW+BCi z9Gv=ipNMiIczKbtX_l=}rd72wPSCUUo1`Wqn|cmp{SEaE^CcL-ecpk=OH1JUFcTvN zqK4jN+0jWj`0IC}aBD)6HaIWKCf0j#sX+y&@mS3g5jwD647<2drUby7k0X#4C z^ZLGF-O&8o4GqBCD!}k>bX>XLdsZsq)Mca=4(SQt<7O zQ!s&skiX4J(Pk{b{xqU2p=Lf zzL+h*VGLfmOAk^wnCF9OBP`+X%j{m z(f6sj8H4MNpT3L|Q41lL&!L-v!p6Nr7txyxAx4TuOnw{V&B>6=ahxVv z{pI^`@yKaNlJO;FVbsK(Ou+glcT`L>E4$?@3K16=E9^2vz3-3GV=$_6K$zEBL5ONV zH}`=N6h|4wj5Uj3!6PdqZJzq0Fq0X-{Q#-uN5xG}a#75Z*^R#dVhd$?GNeR0JT(%_ zr%iSfZ~f7CVE+2$ke`?kZ!J=rmX=0qmoMPP-mf8vwYw4pX3}&-2Bq#MjLNr{GtG;5 z?1hI}a>5jf^`%@6mTuhuBP-_%nJvmIElb@;YILv3s0v^K*NN(RAVm$Ygryn~hOCar zzVI$y{lpfq62yy;KO0C7!1XidA$Mn7SdLh>r&rn6s}WVB(JHn9L$O}3v*`7*Y;P}u z6^S}%$TyQ?@}@VQho#%s!(?t0vn5T~o}`Td_~yg?a2cULg8YiK$7IB5GST~GaXyu` zQoCI)(N58SMp+m_kJ&3@aOuElNT7lTWn3n`DQ$>zWv8%#WGZoCzXdI-+v&61>m-XX zP%Ra}d@xm0Bf1HSe6NO<%!c`xeUV_V39{3-fbvl*)~|-S8dU?FR>>2r+%$sz8PWeVTfU z-2;b~Z`a7|Ua^Z`90T(KvKVzqozG<_VZnwKFtB(Ao-b4En;L3>B5|nEEi~6&p%gp4 zRm*lf3R)UrGSvJN@F7m#MI>*gP zX&n@>_9bHl1u-N(;O|P9krmP!JoXQ-z|1uZg~Sxq%;XHO35bq~mnL3I@e8-$2$D7cRW>YLv!xk%wO)r*%XdMb zWP+7h7GuQhRDRF-11BIqIzhh`P-+&l(`9(h(!_qGb7ePOJ0Df@h-#<|EXIYuFjo#< z_CLziT^!E))Y_9x6&EZ#Nmb|eb)cUv+`1OhBLf18GbN7?3F5k-h%@||g{tg4rNa|{ z_bSX>wE%-21u@}3scZ-OUht4v ztfDs0EHY4X%BD8f!|QA%jno6|V%mfB*#vPUk6eNaPX4kBz1n_=C#5?MJKvBy)YImC z=>uA*ez6OK*zoc>2rrVCmdxyQ4rOSv?zv{Ij;rz(RuMjwy;jtNg#p(>)?oqz*x~QTEd9s3%IB2wClAVQ7@y%G&S!C^S^YCkg` z_(Cws#@kM}>-N3PzCTPe&R#XURS;qyXfJki2Iod{0Y9D|rKBLjQ>@eLSWI$IDsD0>t2 zC)Q-b;q6$dIPj$1fJ~Vf{$~p7Q%8UQA>2B05t7IXG)vf<kqgG**&ZLTCI1KdZ8K~JS&3PDjBSY+8qvsGI!F&TqAt}wS1 zlIhMtbtcLW=VbZS^L4b$|*N&Y5z}lDSc|x*=jtcHq_nv~|fBFnkDA8mI0tbE* z)uS+oJ&r+aaLFv3ye*+-FPfqoO@6G6s#A5*nre0Uqah;=XWrinm-n5)#$tpKQF=ow zQDe0XbR-bM?Z#(8F!Ax3BFIn>IPw-;J$VKNjuS$hkyJSJ;WR9KWR-Zof$(ClxrD_T zS%E%K{_j~O4rd~2lwq~{z27%=Gcn(wtXn!cKYne??S6!zUQ&I&Yq#qV97G>i3gN?z ztD(qEp*}%OyW;%`xP9spINn$yfxw!RjokL3!WkECJuFJ6Pe z1v5nd7}cZ1=d>C+M=Q~GR-9&kP7kDPPT4? zX|DyZRzb|qMMOJ+a@zgi1QCMzFk2c~G7n}fU4R)C!d@5zk~kUPxp)n7_r@_`C2i{w zIq6d{(~-P!`HK^9@=b&j69Xcsh@LUb#8NW{;7JT(0~o}L$i_>EAZ9xpYc^${%d%Ue zLtr%y$Gj|*%S7K9{rVz*5wVQrIZ+Fg_cbnGs{{*7H&36J z?;)!YOR@@yJRvMf2u?)J!Hb_AgX3?13IiDA3J9x}FnCa3R$~4LJb^(hJ$D#UHd8>5 zA^=HcTp4Vbd&+wG0k!K}mQaY-tK6EyJ%^O(m5{_j`iL}cU%V`ihjbZvkyQILuxP_7 z(!Cet4kE-b;OhB`VVz#JBB%h?SAv?oG-$$w41>9AR|utcg5wwp)fUHd@ZjRDDNRfk zb8tT<)Z7Il5HqohpB#acAMAw;+KfLagk-{mZu? zPw=5$RS^=@dJyCYVP|47@qQg?^WT1S1it=Y9}J=nVS(ylB$$g@iKzu6$WD9>GV_L! zA&A*oLfW9{-2PtXI(FIc8j}n_AzQ^GyGMzYS;9RtY;A<$k79AHy+RM()p0jW<|IbY))GtM2G-mMmq-= z2VhHJb%G*B<<#5n&sUUc{80^~A6F7VZ@ZQq6h#28*ZURJKGmb~`n4@legaL@zqA1Z zh8E5h^)C(km^5q#p164rCht8IK~2`GV2TZivvomCV0Nz+NRo$v(Biod4+}!Wrk9^V z%ag3=Co4^6VE`qncK`ebupyh*KkV5eX|) zR!mT!!w(KDo`)?8O!m@ga=$GPd0ja0I)Cgfr>T zoEb1YYX;a!DE4L9x1feOY@#=Qo#`{sypo*Qy zMD}*}{R433qkWK0rLegdVME+bwv>mF6$@a`KfDgw%rtJVgjt&=n2YqXG$*60v(M9# zEatk3)#`FFHvQiM2E>nc)H^7>bvge5yS!1(wmW?3>T%M1*{MQp0R@YWH?Ub!bs zF9oWJ!7Ve8fq^+Q?e;RJ0+_0SfvSP^@eLN2o2{EOu|8+fXrGB6duf-#@-T43~pdK#7Lb2H<( zc8|-C=Ppbgoe6>S?r&hzh)^sjw<$iFafM&3JSWxqysXqlY&_u2@GWg zC|3W~?3|N|2r&+qJh2hhzWfAa3t7>AKva!XW)NwQQT3=y;*+`R`SgkwRM zjmxA8lAb%GTx;tF5Yej{Ww)xcs|>8m16a`Z0lmm%@>4P~ zv%twZ`(PA`lR3dCWTqu0qNIL(ixYyha*~@Ol@3ixH!;eXG|6f@^T)k#aqm$W8J;0U zp^(rpnVp0=>zBhG%*6D;qWH7B$}ZBW`H<8=wT;_Zhg*G z2BsiHP!MMqJs=_|Stxgugu#)aGX0xK6chJGf#*yCA2OSsUUn63Y4c1f8{E!3c$wJ2 zF*8Zvmz;X@Gq~{O2}lkMNLOWzCj4=sSh3}AUxEVFzmQ^Iff4z1oj~UBN?27a@Tay^ zy+G3h{ojN+o0h|lAJe{>BJ-l4ltP)P(JOb*{rPRMCQV_hBAUSQJIu)fOx}GU76bG> zL|_>h8OC#+qVl4ufvF5k1u#F9Bm7SH!`zma{qW1k{Fzh{rWwW2-IQz&UG*``T$vo*grKn z3CnkEM5=uOPW|o^k%fWnbZptQe|i;|3~YP~@q(2#8olH=njN=@g=ye6DDxUvJ{unU z+4q29pPWfdNsY2Hq{m~1_2s|61%>Nlf{FEV{aJ>{kho2fC}P7gxS{Q};Y}v8 zJre}HNLf+}6P5$Nc^7USI}5`@!&2D-pPGl`4`AgJn_>NHPf8mtP41`Adnbi_3@$pa zQr+O(vm{jYFa>>|f~78)g&EXueB$q3L5Y&IsCy;I{h2&bu*P-p*YCjiw|B~NQsph% z5>hk@KH@{$nsnN%uZO1ly%dTqz4Kv zl)Z7CNlda$pDO3p=e&-QW!e5x6Ll;$GXp#S9&KRe45I2rR`#gjE3GHt$nQRYyC<%I zf#=L*))WITu@5%nX`+a+bZxfDCkW5#sPNxwoy=~$$kbc~ss^TpDkcZAJyBBy9oXZ%fX%(VA!lWVP#@XKZ2!r3g<41+YhVnewJfR)Vx92hyI;VK{b#W$ zJ7KGDGCZ;it^>u|I|=J1u!*wK0^vEKnkWGtMpz8h|j8IPBn9XBRai9Sg1}% zsxvOlVuB#SZ9;~~NGL-wEkWHU+Wx`+_%q!7<|-tSJRo>#NVh(mfj>hdPRk zOEXL`d0iG^^Gr}?L##@}QD`q(vd?YZYfr<1&8x8qc|yR3R0~U^MASDQAB3;p*@r^C znvlb?92tCVYEK%gQp7KNX_aNWKxDe0pn5e_08=+oR5lTQG-|pDPJuHO9bs7tAeybR z&TW)V)5<~10$x_dkbgV*6O^?Rd0F+A*o?Z6QL=1WyM|GS*%W-u{vtL-idR~Yh=GiUo_BCz5g z3fSvjehkSY8)33AA+o;`o)BVaUOsRfPW}F4Y|v&hW?Hge&U6@I;w8UJ{%w;^P-#Td z?LIhDY896k20jRxmJ|@CAZCph;oz^{g2_uaU|?tjouBbrP$h&T z|6%20k7Cc2?5k?Gj^yY$iv1HoPZMZjRtt3%z@YnUQr%XY@@ix5$1ytJKx{dY z%`m&)i?si65^proiX_VZ1wnZtAlMDQmi-dhmYtoLntU}}VV55mCTd1RO*co2@D=u1 zOr@t*at<<+N=u#pp9 zW*qq|i9{Oid~*d3{pX)SD@@&AtDeE(6puCg++c0dvc-^@t?+LaioV^~Drj|YAnS(t zN(HbGbrIcau+_dV2*rYS9F&97nQLbo#e4x(IAl$SB$6m|Aju`%M_XaSyYhK@k~6wx>J2 zVKp*SWufKfG{h2-KnzmDFT%W?Yhd%=zKFsZc}P*87uLLtL=v*sA0WN|9RX=l?^$J^ zd7au{rB+z2(3lt+kjf!M5FywRvqmdlsMN|jyyorP=TYescDmiR9L6I))?U+$Q~^w_ z_~MASm_Ry(PAXH~sOvz8(wW)TJtWwV7fu{sAVg-ot)1)N4ei%%o`tGCK@Z;wyKRc5?jQ zNwRX;uo!my^yMUqb*nm4YV^~UOP;IRG`>HZ2nwm?PaV&p&Gd%u} zufyEkkHESgJPCXL`3*?S8$>wH5)40PNtRwY%Yw?kHIPBj$>^$WSSajKzZDr`7H^Hi zp?`ZDO1CEPL#Rb4(>2NZuRbPwzcj9izq#Z0h43R%HV`&MiKvCcu;U+4B5D|;jG4#p zDq(h)#99}Fy{IfdcJU4*seXlZH>R@+M(FHx&EK{KntgD(U>sr*4b|s|B*;m}f;x|d z2|UkvQ)H~Q2qFV-+>S7xFE7tszacNZbj(^eLR&!uuj&as=-^em`l)@uYm29T?^i3) z)1X$?wa4LVJ7T`YEF)Wj9QuFJWGyK3r6QzepoCH?A@d=JZthrek!lAiwPSEu@Z?6= z`Zq5?f#*^CZxklR9>CCw`S8?#{}H6-669x=)hC!uVJD`eW_y82HTjAe3aQfDEzY*E zE+LYp&=JhtdI%@p{RID=5E-2y(X*;+&159uQ^|m3L1JoD)@NnlG0eQu^H6&c%`}=bw%P`77`&)mK=hT_9+lkoDoY{#J~LxTz^@d*3=D{q z4vkn!!Q~--irMz1+5U(rNeyxXz{j-Eb28`W)fWDTJtYBgW zmKx3=g&k#`Ok2mV8coDVM$Np-p4kH1fA|876(@z22-UrG{9Qgj2?-R!-SyvI2Ym*? ziAAB<&h2jAa=)2n_eQbi4-u<+l14{Ik&0d@3;c3E9gcId9udSW8DvVPl!)5-ci)4- z#d8qO%Zgf?rX?|18h}H;`v~qFJP#=f%owzYpu+5yfacei+u0-7tpc*EZ2*H8+0+Q< zY5bGGgP6Scppq5$$Yj^=?h~MDV9_&R`t9O}dCXBU!Q5_Fvm2I2Z`{SnS^#>YCrlea zlS^_CcKW&~Th(P#v5DEr;-?>lO|L$KiWQTfV}Rlq=`6v$kW9u>b^?ax&w$7O={3+s zlETs0q3Ls|H2&(`1#DKe+d7k)jTZ0*@Rgl;*}+6)qC~7fQsvH{y$thLFGeVDTx?eY zoJlzL=Erd3uU{i}Q?bZU(N`OBZUN9RN`hW3~C9_UiBwW8; z6_r`n)>q;(Z$!Btad?)4W}0f<(0>qwIhvdA2-9#c$o`9FwEUpYb+a4R&GBoj;`23r z;|`R@bCu?1oVjN%nOBD9G(m?)m3Yi3mOZ~2w!ZN^WHIx?DwPOG24*tJq6R5FBj7Zu zTNN<44K14syMFPi@YAB&nr=ggf}O~COX(-Zr@DJN`>U}^9f{RY>7`kxCK{kc84tf? zGn!=1+p!jMg-HQNnn(mmAR*+`2Y-bte>p0=x(XmOFNfU1HEFQ|tp2&KKELvOR)X;? zJa=>s3~CC;^K7EO+2rl}ZD$K^?k_)#Cxb9g4V#eS_qMzQh$u~h{obx(AwvJ@B6d?Y z>uAGMP#L@P5GEgv3)(oDFIuR4F?YpcBqM-e;R$zQtmlwo#fI0O6-~byrWF>YGFX$! z-_OEl|Lb>f>67DVi!vfJA*`uov*R#(^&;4fbtgWU5K>A636c$oXmHl8hAJKP^bKWb zDvLr@F%c`nstUSA{I5+vdJb0XeiVwB74ifULhzVL_5RyW4#I^$?-!&Bs&$pKLA%Ul zYR%!zhWnY;U}VXBAxKR7O0rbh(J>gmb6=ca&i$8?QbUcdh7kJ|4vc$IH|`CjL^2S4 zT$3fZgAf-@umV=ZpARjV1L@faBO(k|KnQT}jVbwF+Adi96pf}>Shp^^#^T261^XBKG4#sQ+5SYTYgej6)O;_g3 zk!aP!1PIP%+%M4ij_WRbmSPU^+&=3^pxSXxtZyG?u) zPR(5Oy#dTyy##csf1$>rr4d`wfCm?DR2r$P6zi)4biG*a<{k>_9%}}lRc|ZI=e!-6 zEie1vcHRuL9MJb94%HB;*iVfhL?Pj1)57mvxQbNxY&o-`Krw6GQdqESHSB!-c>x=8 z3qiReMYj}8+!}+ge)%UT+#ZuKoTCnpcmBz@_ritGk3u>*gp<3D^`<1`ux2)Q>uT8b zPne0NbU|<+RSc^t?O}G&&1AMzm928ms#7rC?*F2F7fr?$Mk4*2pgU@;-uQ#3Q0p*< zH7_KU;O`S?NcrHxbvW>c4*->;MVDAWb38J8|;?eEF-lfj`KLzATGXbUZBP&AXG^5iCJj7{Z0aNLrb( z4C`MAxe5j+2JgF+GX1CY8IuM9fV~iy? zPkk#Ig+VA#SmH%w4a#;1T1*;A$fMBhUorD4-W`X8W{A2{b>pz0;bRb^KPUhA8C?GB z2^blgf#eBNwm>*>^a0G>vJ$ra{Cl#{WJ+}kR%Mo{J3Uyuz94T!S6GHLLGMR8e`etb zZ2r-AFvCNZp(TB$4I>5Cy-Ca#-$rf43Bf`nG6@IAn~Z_xH8WyUz10?OT?;z4AW$!u zCe%N4xPJT_Vw1=gg(_yHTC}O-it{jf^PV+u~L9IW848Zl1k_ zjKVQ6W~30}D~JrpvehjTMjBPx@590W?;Xfv@G{Udj4~dJRe&)m@GI-E29q_cqrdw= zK!wZqY=SHjI!FmVKQSRDdlI-k@|*WTM}0zF2;Xw4uu*0I%&WjWrx{vA98Frb==e95 z)F8EB5O)9LYml0a3Lw}_O?_S*ZDCB*H~b3q4JWTX5c^CNddfTrd87bnI`E}66)tSY zsIiDa+nAYx#T!>+lXp>Mv?OPhzdH)I&Rmq49;tHZP|p0k+~ZMAvh~=ue(p85Onz@Q=AReYF(>nG1aGMSQr1pk(x*nhkaSN5HP!OVyV zAPfl(lVcBI;m-B2?Z@8*Ga*S9(k+?WTnaY50_EsL(chT4CGb5(GVmG#cZ3WFK>TUoZ1if&eP2sKM0eAFMtZJxYABo1tHKJx4L z;o@J9Lpn8p+KF8BN99JxVeyU)ShIQo1Ep-@a+1QTziw`$_02IQgef;O_BD!eQDJwkW&|RZ@V|Y)LD_oZ1lG&V534yd-9<>vnGw z=&8sx_(0Tf(+PN1X5If4vWv_9C$( zIV`@0T#F}i~u}C z50^c+9ny0$H_ZN#ixf(^lsL3-AZVB67yYgm;G&Vl8)R;Qtx z&^{tf5dFQ#;lyu0hAT%-Lnbp|v*J;)1M6)oHa~&^$ZjfbM3x}C6-x#j$^aP#mUISL zllh$3QVFBt;NT#f-+K_g{mVgNifIa-yd@yYidf>*t}D*mWvUe9M9`;gQv-OBn1?fA z&7Q3=fz~XXdf~9prQz;;^X1X2)I%-JImfEOzDLFqHgzN5pAC%>?ZoUs(Z5-G+dR_rb|o)KVkt64voN# zli$FBU%ms00*IeG!Bu*9whmxUlE!&i*rTjkB{MHO%fw?RNvy@Y*TKRqtFgar0_C#| z>~%AcVOfB0@Z3qKOV)P2<;OMl@*Qy@54cqy@%y~BdS2^&w;vE^TGE$L4XBB@(jZF;@eCqd_j8CyA zA+m*I)grVJHEoJFG2?Z>wyJ<8kCjyJ(LfT#dGBAm4*UP@9bh?It;4FQdRVODLDnpI zHG*43=0#Z|bp~KoWn#9KSu_mWUcn}BQOwhYk61dLfs0=rfr%@3MJC(G>`+l4dXu!$ zOKee12}MS?-8dXq(0)CBL5G~xsm zZ2On8)KeYSWjp7oe2ypsBlVC09nZnbprc+Sdd!I5>6tW)UA+n4eEg-zHo@YqU|UrK zi~lkA?TuF6=O$)P?FlSohpx zu=0g1P{M#lmLc-PnpAM-GQiMFOvJ_QU;?*RWw)5=t1CkZEmSo2DL zr%<{!O6H#vfH+L^+$v`~oY%+I_;mJOIX6Sdk^)LTo2w~ec`V{vGDot6!KEg(42iKp z!5Pm%5e0hZKfWH;e18vQQK~9QNf(}>3hoCg!a5rsKNtOQ8fq-wg(Ls@XWODho-4*#;B~Hkmzh$d4+B`xWCGPd*ed}{G875! zq6T1s5&;PkU;X-RD2`4-2BACZ$0C)D0tT@iZ@dW0P^`Cr6FW_%386Mok(1|Ig+W-& zBCI$o%M6P1YL&vN0`yMlYs$}9RZWcpv_o2-LX&4U?VdZbQc^6K{!u_}#f3Z8z_!=F zgU5$fESO_a|5s8+NOimb`~K}MDBa6pR!Z##lBi;`aGRBzJ#TR&5XBiDRP&dD5Y_1R z00xzYT~Ut`9+pYSUO~3szrO`m4%vu_0qM?#@LGWvVdLx1!iw)~7qv5DBwD(J(*!h! z5o}7}ngZ3Z3cAQ!Q%2u?_mp}QvBgcaBT2x+ z(>G!7|NbLrSrbxvQVOGXK+78mkVz2N-NYh{SIoNtwZc}S5PHC=|0?z>6by=<%5_j)k@>?jPyKx$!G!s?eQ}|%#@>y8%RfP#fXs~1AK_I7!dL8QoNszWKOhy>gJF%?&IYH2W)zF&D&8A`GW z6H_!jBOP8xTE3OXrtRS*?D+Xhu=?4Z*l$)4!Hw#EWR9t2Iedw*;k}dJ3fmT|95lJ4 z>)RNtAA<9K+*5uS+_MWabKUB=nXR~P*({6dM&KgKN*PF{A3b*qKL5Xe1CuxJLt-F3qr<8Sg#N@Ul2R0h#R)Jt_W35|CPgSw}TgVND-`>WHOyGR)Hc} zoenJfyO@MUW#5?$fChSpk;GLgpNBc?7Q@s3=TBe(8g5SJCXj6?<)b(@bHii_4*dFE zxOe&rBoc-oa)9L+c}{IpW}L<1n)}79^Lo#Fc|JOQro4W>TSN#{4NNs2tKo4FD~}Z6 z4J0j0UVi|e{p;`H!MSUY9vBkZgh^!LWphYsKxgDV|NI7QeB&A58HCx8$!Fm290N!V zRXvzBm6_2>yTTFsklKoxl%OiZlI|fMS>uyhjv8i^7WQ(P8p>q7@;E&HKYj>_`6Ez7 zs}}0>B8TNP8gW{8vhcW)!bY)RiN@wuERu#9E@QE?wO2!pSO&1_hrlm2Jxl9mVM|AUo&%d`LCX0iIwqS# zI;{Qf6R`G~ouH+$rz<-~q)O>YmP}!=O~N-{9EOu`eU2i*s1Iq_Y9A5#qSP>(`vM08{l8tNO$h#k7c2<%)g%m9G`f3}~9#XqEi`NYn zE)WMYoFs-JW>~Y_a|WAn{UC*{pS!C)dhG; z0oM}yV9ADM9G-hL2p=@DI;@^WQ*!H8BpqR@;p-`9_1Zo(CwNZ&_Qv7$y{%TB4qdxWUoDt%tUUL zNhCVR=5DT46Gp<%cDjM}>gVytY3}NW(u>h;6Sd#zZZr7A?;D^KW4Ug8nB8tG2q=;B z>Ly|?O(?mPogx8U^7&$U6VAM|AFiLh2%CTK9E_}9g25__nNJY~1PcO!qsC|{Kd1}q z5r$cjkY^Gx!Ews8%0`=l@1fZ$@0?G!NTG6=R>c-0%Dy8%PbepTcWTZ6Z2sZ%FcWKC zIfOVhOb`*-o>M-ZBZksoQz6OSx>7seS)PM-#c5c9)Dx{~Qiagbk2#OQg8~$wf&wl_nutE6T7e^p_YgA-T zI@YZ)r$dTTsdd6ubKzD|Nd2gp#<8$qoMLuZcAZ=?nY8F$qA~pJMp#L5FpZy%s!-P2E-Uk;2 zv=9``(NNie*%LmOa!S&g#I745OlXeh;nt~(aO2zs7{EHy?0IuVkZ_zP!y=*NcTsCrnU42V(T;myu<(1ekC-zn@!?Ci)PwsXso zY9gWsL3JES9(Up3#rI$?s&uSDsixV>kOf#O3OOl)3=70u#9*`X`5mxm>pHl6;3Qn! zcMM9mCs78ZB*-8I8^)^6z@(DBWJih~E(})585zv#z7K3>1~@8&knv^_v$G^O;PjiH zz{Ssw%bHfg5bFBEK8B!83nZOBrsSNu=Rd-r73BG7be{)(Uq?k>kIS}N@k-)_FvsLv1QGhxol{rf&iSjbXv;cS`}9s2SU6iy>qY&GB&(3I zs12l0AoxjGx_u*@|71TrxN%$fj+r_aba=hG8QPYnBFQQX`T1lvx#K4ZDnx~ub*txG9aqm}V69d@L7nh+Xybl}iAHs^c~vuss$C#V1%P_p z#AU_znjA*s6)R?f{%AjSWC8NABAol^09-zD239`31y=0d1nH3>lzGZgE{7@@StuZ` zXUs|?Mc=YnkCtevb`DhvLvdsn79q1}7OHFPhAhH{Brr^nV>&eeM}Gf4+&XeW2=Nj< zetN3K#XjH+(B8YM&5?83S7q%5xFJzJ7BrT-tXWRz9^28H*bsIfQ|1atsL>MSPDXda#IP$eiqsRb-|_=7(`<)zjM{ zJ#z>O6QjspWRO9j;d6gI1{c3Lj!nx|!K;Z}7VlF6P<7+Cnp5Ishttz~*Lv(T%{LeX7QNIOaYFiqE| z@ZG7;j0`FB*(?+jNf^ou!=TCyT*qvkL80_c>KvFoB{7)gF5gA+#fNa@txr){H!0<;$PWx(dNL_K zOKKiOn_swbHIzy@;XRf@2j$UAH{kNYlPKh?2}kK}z3&xz(jVtHF6#T5x+T=;w}+Xv zVJcY*BU*MKBWo2+hz!ast4P?QVF(f3abzr(CW?YlNPT7WcWNjtzXZQv;iIb|jdE3F zl|r>Jf+oNH@+eqiCDGSK>_s)8XJL9joTt_3k^rVwbc(>y>9&0H7jy1OCIx}XXG^>^ z*_cd>MdBWsxgr#iWyp|4NO&W?KQlZepEi8WMUh^U)EG%S5ruds?vBFM<7Yv5Xj&Z9 z)TTx^AyQH9lcCaPb))xN!1QuI@hN1EscS#c{7kxrq)kX|V-tDEqd{hB{(vOSqrz`$ zWPp@|A%ikgBgiCNpjb2p%P4>cFD=ZsSqbJ=W+2Xg;=ttqRlA-uWFtpRDj z2U1N<@@lBj;eEs%g$)paj9|jahv?sh@F6uEo4f?68AIfI0>ew@i{3Gl+fI`hu&$x* zqHuhnzA?tjj77C>Q$r1tI6* zX5mwZj>`p-u-8Sl_7J6~oO{3&t4i*>K9pLl#cys2Q_`we=NChz^3b=isOq`%*M3aG zi*nK!y?&c0hoWB$ipVNNsBmD$01VEVDP6!wKp2(iv-j>n?!hQ&x=F)KO_LOT&ZhN( zb#lG>;X23VevYCsxZbh%!!=hdL^ag#X;@X#7~?nZLtz~2TAD5`Rq#n0ST-MY%)+?s z)NCZs?`tdzkmZ7IFU6-~?vJ8|8ZpZBRRB};T6KQ?WGIr7Jw~hi=p;P6_ds}!QD7t1 z;o?WvL1yNN=mjGNA_9pp@o>!c8k1@radJ>rL*4UnhpANnQv($I)L|nhSfXyFiOh-% zuP*dSf&18;OeUEeBbbSB;+%!EAT^wZ0;SgRp7H(Rev3W1(qCb2`=4OVGFesKN@x>}-dn5NstnI+MrtXWdg zmp&nESfrtg9SXUch}G~VaQJ=C2hk#+0+<@HhA;YN0wI_XpC(eQx5z#PV-^`(<`E(^ zj3gAvz>*}Tc*Vel6gVu-rvQkV)HHGp zXNs0GpneVh>kz5OF@?wnvwUm;o8{8bAWyb`vvtD`dc#N7Q)^)DG{Q9azM+Wv<6r-5 zdM$5vXzuM;Uab-v%G&y_9rd-+xB2KPlUIOAcqsGV{;*o%^<0aUlZGnTcbi z?U3B`v21^~nd^rQ6NkvH@2|_RSFXw4^*xUm>{r@<2Q6*XzNQhTJl<@1t`Y+Ppuhm| zTE@IG{6A0P%8n~>XsG3z9F1=qrg@{YTI*}D&9c#UYJRvWd-gpchQhvU152PM!3V@! z>%NwXc@0eveVO>A9_Q5rb6%rHt60pirR;5a4_jq6*mffh8dGYeQDWCGUX~l*{zvv6 z{hd6#b63_(hR4cw3~c?k`=tNGx@_ItXcXS+b}Ig0rzqNE9NG3gYiL&=Vhr=vCKdT~ z=)D(nPo>(wJ?b@tIug>4y_7Q#cVbzsePxuFA=og=>ful>pE)mUo7*nJ!PcPNihaw8xDwVqGtSU}%mWlyAvY_HU5}4gTNp8=;T%br*l_ zyzln?+?1O;W?VvRiggU@WW2pfujNO)-{`X~`NN6ha%Z?DyH;0Q2KwIKz4GI~t~P(a z-IDqaBOVqZtT9*l>Nsw1_bfF(ueI`Ef2dSc6^XATbHXWB&8;y41 z`X92<{JYj~+N*4BMP;Oqs?15w0KVn7xfKqz`$N0Ca)zC)y_jZxh(je+c|cC-+c9D= z=DP=j?OemP-|T6~d>=G4Q(J8dmagY}O8H7P4lQ%`&EVq_0?BQ!`4~qs1s1cWAhbYf zucJs=_oBs}qS6WTTxAxb_DrB0 zTsK-6{c~AsTfcoS@=z-Kc#Rzsaz4L8pHUPt7rxoFv?c)nV1Wuu9K_{Z{LmV2%(KRU z5(FhtxA}};<-p)GEhZm~o~{NLBAI>jn~8?p5Kv|TfV(`@CAzOoV}o+D!~g(XuB9Xw zqP7E$6jj_wrOR5Xl<$&V#V++(zTbo9wGL&Z^eAf8H>MoZ;!Ci^YPl$AC_JuRd8IC> zPw77NxfaC03UZ-N-tKB7PsMc&D8V3&9u#mBWMcsUgf#j(Vo#-77vpOi+v?ErUXd?o zm11Su);9kt8(IPY04TH6Wc>2HD74YVtq2z)004k2leYS#r3-1q14K2w+1ONaaWFZ0o002TmO8@|n8rWB6rQriC zFrog2fObyLirvdi1GQA>EH*9sVP3oq#f1XnHVFWQ$3STovhR0}0s{a5fCZL=DQ zJd)a&ZZlg;C?}7Mk7t*1t~py^DcxE?_xfr~S0;-y?3`^oh-=|vB-6N@vExGIkOH9C ziCsE??HjFhydB(eU)%=%WeK#M#WDSqV~8~ZWaGN$1$x#Y)r=Okg*4!@|yba ziYa@x?O#H51y7wkphZ!omif}wmqKR2g$Muu6fy(R>L#i|iJ_=kzCLLmu@~R*HrLog$oG(25o;|nA6oWo35#ROn}&E>i20`?FCdK` zcUiK73wJO8Qf)4Q4`qf65dZ){mKmRY(p>AFV-0If`ZDteFmaGY2mmNfS(06tZ@naS zU;qFBvaGiw1_l6tP7Gw}ed|$c0{{RZ$4gCLOZ`X4TbrxWbQzPz8W7hxy2b{4$3RlW zC|uirXynth9f!+Wr<8dYInRx|(sq5daXikmy0T>ANVS<`K39wTq$Dm!Zkxz_&9dfl z`Oq-N(8`M#7ytl(>^Km!Qedf?G5V+?cX22Au3op9m!_L+N*B*8=Ijt-(AWqxx4rDc zT^s9sS%%&zH%1KGqz&KusgFBmcFe=~=E!XgNw~q?sr^}9z^EvMx4B;Hu zpx#(Z?fZ*8AFqd5h+by>8V`k8&kb#6=a%5%)5YOCqcex+FZ0Y0?xb1ntC;Sjc}+ik z&pC%=lF+ds4HosJ`!HlkpvR3Cfby(8_Lq=(oUp_wmSsy8BAX2Uyo%!zp_5aj0yk=I z9IvrtJjS}fg$O{!ahcjJHDX|}(Px)l8q(DE-Q6^0ns2VLr;_C>hs;ykXQzsL`F^e| z14iii*C6v*q|tLr0^I%q;7nGlzz90Cwi+@|Q7WL6OSYD}yJB33C0Cwn7uZyB6)n#V znZB%13C0|gt-Chn+LU}T(b#}97Il=6#38tefF`zG97Q(f6lVpIMxyxm$j==Sav*!$pcR<{6YMjlLHDx5ju7bH<7ytrQ`)i&CQ!OZCo+bRm{3G@$&0(}p#^ zb_<7kJs`Lc0XJWO+YaQ4zLvws2e+8-an!)ZZu=f$ay)kJt<**F#gw%gFBv}N%QY>( z)bk}&YZS0I^26|g2%b0 zF1zrq#dJg3GLy#~M=CdL=z#t*EbuucEBRoz4=roc#u58$iItqBsjP@34r;vsp!N@B zc~K7K}l)W+m6E}RX*l(U0po3Z6SQROqZR%&G)3J zzggs#a&;$#l(ot4ccn#}byl*V38J7zk54U}4r`?M(qQf9zU~?lW=f)W z%FWZz(?YQ_BI!(#RvU}%W!m>ILzwD1z8LdclnFI&?vsD>(WrBowVr&Q&vlwL7hlhq zT=$$T;Lv+MmQ^@SA;z9p%D7ufnX957Sju=?ZnQ!%<4q}PY)Wx!b&WUHLQNHVOd4b= zWhqLkIrnfI60-sEWG$Awb!}UcWA-0sh!6v-S&4@R&GfEwQeWWE3Z0J2Oj!G#E%ihKbmoOP&r1A1$fw`vW;@)seG+#eus;K75kwY7x>hUEqT0Fp&Q%L^~OAnWVv za^l1Z!G*}p7f_qXz5%Lbz{I;YH#g? zp5(D-&mOsX^QK(5a6v9zx+GVxUTu}%vRR5%DzH=;U@2S~KHWH76-d|T=6E>fM$H9D zZ#kA-sArp`4C5|*^UXJ9_wLV{oBD-TlJ&you%{k(I9LAb5u`dH-jhR$=qoho>;kf*al$WUm`{a{P zO$!2*+v-|MP?|ZKK$^*)RYJ_3PIk zDKB4_89Fi(dk8wF+~a;FS|pS2HP$$^$aUy(EW>6|N^RcgA~Jf;nKNhP`RAXPC!c&$ zE?>UfW*eG#**GJ;kMUuF0a}9q0KDyY<1+mD=bz>4ufJ}sud`>*K1!eWZFQr-ln|3j zg+#2pV=fq=TzvD*H!a(SvB0DQ-yuvK8P!#3$V>~BEmvcTww5`Mzr)f0jwNf8&z_cn zxXd_WP>T89FSCBvRW@d=?V_wc-)lHI7o)5U%f_?MKHD;EgmR^#z&P9hvXv@O; zrX;AY#o8k)4bWFkc{oA20uI@A8wG|t1<*V)D>*D#etjPBA!I@O+866WgaIPm;aCc5 zy{im`nm_T${M^0MSWia3^L;+~E_IpL!o@Xf)c5#%+-$%!A@ZTTkRh_y$O5!i5S%wc z79yzYfYh!qLs_^ev2O0PRLW~ISwUl?%3PFJ6;x7KV#{U!U>$J5VEw}HuVr0pvwlLa zjdochjXsew^iAP1s~z{U;|LWXwuvX%W{25)E_A%e7Y&fhci6t8Wk1(totAxft}@wm zofgSq*LS&$>`t54EUGOVim1@B*JanZ;&^HT)ZUFQ|E zb%jfcv5#6OA8F1m>*QL)Rf@Hi)4Y6KFnra4xn4jg{L`vdlzY_hxA6eo_8cx}sx zELX{vMTrvCd#7Ylq8i)GVDI|^GaP~_Z^ZyZz(+?GIher!x8LVJHw)>J9@F^9rnewH zQUyql^hgyTJ<=mpfb>X@Q~}Z>JyHcokMu|tAU)EfwhuGC1yz0krfH>jp?Zgr-U5BX zY*`i<2H!0v=g{11&JusZyj0pjF^SEINyo53~AS z3c&a|>GMq$K=8&GhE-{0D{qt)a3d|2*Sf5?*Tb*`6sq$5r@Y2~VfwrwtpWuKeW1lH z36`HF#@`zizw;CRP=V&iAy~bF;kqO%HGZiAxCOsb*xZ6uY1zFjxaC%ai8o>vT8qWf zSH8DTE)WpMO5mYClP zR@%xBoH&Oe`SlWX_uoDR04oiFYRuw`3Mg*^>J_5+RenT!1VLd{n0E`xb-*K+spbBH zQR{VkCacP)P-UUvjqSZcl(5E^Z^<-7p?DO-Pf6XctwlvJ(hjYjuC2;*RP+IOuPNv{ zYe^BZso+b6SCJ^0?$7di?~oA6s+FpdIbDQ53Snic`fy$cORnNo@!?Uf%0!+ePbqyy zEg)Hq)aobykO`|)co;{4jMM`pO!)mun4+))zY?o#j4lI;WAPp;ykk$MMPWIYR|!~4qf_3?3#6w=dFbc+bf<&L zua(!Il#s|wy72Q@MA=3ZPdMckY`<$WU7cpuc;0gTVYx0IFJm!Qh}_?~^zWqPXJ$>n zlsTJEJfTCS@P>6)EB~;@*Yx@-W)1@23C!OY!w}E>hN;5i@+_4K8HOoJVqRcOheWqp zF*8%Mi6e{&^L(t(A>f|^q4+%;jRV40SIf50U z06{axtUq^u-;irGQU!>*zV9f2dyqsmyn#14b_)#;6oK`7vyN8sddbpjNT}td6hQ_c zZc1R*dULBh$;CQ4DA^EFrC=i0;Wff(Fe*MvZzK#F&Qx8BSzeG$n()h1G<0Hh;)EZX zGMw*H0x#GD>;2@#4f%w8R$M%Rk;D;2-lmamp^HnREpojgeGzxQE?GryATq12p^xDP((!l#d~Tkvul%|DJzf8AO?waEC;TE+6B%okB&*Fc6z|Dk z!7<6^b-xV3lC590sG22GGp@of8t?Nqxpac(bSBcQ*WxAo?(gmHBY2(TOXVU70CXxz z*0l2gCE@q0Gl$WU1l6Z`usu4!b37i4yEovI*vllbK@B!HGoHmbk|{EWT#cN-thVLn znQIjpFb}ho0(_fFt$Gw*g(orfEPZk)Q<$d+`h2qrIYBnAu`Y}7hbe;FC40rMtR8?> z>HLUqdAvyA?;U}3v&8W*L2!S^%EUD!l(0OmrLt=raskZ!n#6`cL8wlidNMEOo}*nK zDjd9BTjrdm^n25cbehYLshSl!VsO$s8g6ngm!d_P6r0r$exCW$AOUAVYVza>Vb{YV zckgx@Pc70E|b4%|#?G;(;-Dat~AR`K&Fq0~mTgkQ88BRkN-Bg87oeX4+T zAei)uD!xE>m&?1dTz?dvAX_ae5z)j?#@(xCY>*|#;z>kx-YedUjtauDDCk~d69Rd; zG?C#HQNiSSC?a856rKX&HJ~JXp8I|URgI$P6dSclT_S?d2?KknC|6d}9ePztAVKsh zD(F}kJJ&`c6+lM#MQ<)o#V0-3auA+sm*^}-wI<5UIJ;9(&V9dubX6QU)d0l>fy$!b z6y;%zQ^{AP+i)4RWc_(JF3NmH6cB5j;fR}gTIKhV87mDsSBDoc;u!bq4qId~@VYI& zZV;fV@8MNqmg%LiT$gGkFyn}0=S@0w<7vEF`8tK42bZtAG^_$=Br$#KVx0qcttFDd(!sA~0t zCOCxXci|0{WR`EsDohY4kXKGr^#-!lED45jgqOo!LN08g+*%eyg)#eifs5$ zE$V=4MD79HLoRV?JVn_E^Xu|fPc!#3H%@u3Rbcz+eDL%Tc$5M$P(pz zv9h?@u-8~v#b_qQWUpUUuSQ1kR1PO;3xRm3`$S_}5oQUm&FCuU5qP()7YhaaQ$!{R zLyFy5gd&l5;h#(gS@vG(^jd~4UQb!-4%O5pDz{4V@CkXHL+DZR`8>>6&;glT7H(g> z0hw&Z=E=0g*08GVIJnsgbx_O~v|B<|KsZszc$BjhT0)>8>(9C$*DDkWdcD^g z(kK9AvQ4ImbF8xPH_mE-tv`7QaxL|EGcDNo#txW)3PFBHUc=KoVug)|HJ$vzRvjy4 zMIjequNNuG#G(-t378SKQazRu>e>0pM@EDx>zc1lt-$hvQ!d6(ZV^e5F zNOdJe#b=0?zja+-BKHK>62!uw!k>pZYnH;s?>+~Gkum7~!-w$T<{et`A)!ujJP(<= zIvBnC5RU!%GZ-GY3v0jmB+TEu0t)CMXrVgg^zt=Uvd_~@Z>6ROWZJ^t)G-q_eSZh! z8geN7dtmVNHOQI z|1A1H_IX(hiTV$ng%f}M9Gcr_z^zU@pww!-ECop$!#22_NB4PtEs!0#RDB?vHpJHiz;3nvG^3j z8SLB=>%DNxO6YuaHQYLJ0ZzVm03U=wt37sNFj3Pq?0uq>w}KjW?qC{@Rv7jV$4B$9 zVEqcrC)T1O5%_dQ3jeRN-yyOcp67bJ6pQ6tR*zs-tE0>E`!0+=cnDqCNp7CqO7j7eW0k5%CCr^KsHAJ;4MoE?gvwlxS?xxKNO@8> zUP(k?h)}M4=}~A~G#4&>+zSI|uG6w+u^jqX6@O27KicuFd?4sa@@VnrZde9uzqK94 z?vFsvuiuA@pB#baxoub#dZesSVI49NOCN;h4TDy&7!BFgxT-t)W=c;Y6#zhnpgb{V z?^xXl%eHTTJ6HPQ^amvLArHGy@k+z9WJCp`Xj{XKNf4t2XkWbqHvD7yF@UGF;w z^VY4vWV=gfo;Za-#54rbh4}5i810?n**1xeH7HnRL)_)XQu|l)@)u+IugY6`# zHEG@7Dp!7N%#Ts=xzu`Np1cl`p9>!AhRdHEMdAO_#tD(GvgPt7B(y>=aB=Tp$d8Z0 z!mTSITaTYdy?`0ZXQ6$=OPod`Ro(#J(L7NkA=eGGoVqxv-r#?;m(PdxRg2-)@yl@I zxIkk!cqCzAm4z$aL1 z&t3!TtlQ5^=MX_FI^C;|wM!t^+6d=A>ZMrzI;`9*e{mbN(#QY$DUI1_9AC7imh2s+ zAWg4Zr!K=$toV%H9foYyE~^@*N5n*w2@~c5R*SA4I1NjlSPSzvE=L8tgdtLadL0%N zCr<}mhUbZAgN=wV$95u&cLB4C5js}P36E9tL^fimL7H35bJ}43rd2R-{u(^EF$npG zqtJ&!{55)lu9qHzHLpHNV|J=6v{PJB`*$Ro%mc$1D$83R!^5wKDE^0*Rn4iMr=&rp z>gnx^*Wv5)*I^!3gIX~BDi$nzt{`GKdzb|eQ%I5Zv#iX1Rl@?Q8e##>v?{#aYWm0d zYBQJ4gVu!|Xnilh$j}3<=G4J`M1A)D&)*TodD#WZ4NkLsq5^4}3?C4qySi*t9v)7>n>>&-S2eq#Uw+&fXt8XT2dDaDR7k0rBPrcb1&iVA;ZJ3ML zy@%rDK^*}gocsRr;;q84U_64)V)wUn#0b&rFA%sx)~*hbgt}PzUd2f;=gHQb2s!pu^lu-q$)vRS) z4=a|P_o&12CmDJfx;6l#_a54xQ}z&;_&T1T=hyGT;FTND{rYxT{ZEgV`GF`=mIY<% z6U!*~$EKhrtV!Od2+N+|0^P4X27~9WLGS1u!X@|GQSs`Q|j0laQ z-%;Pz1evBfxQ7ZrVt7&+nzW(;!=y~kr1U3;|9dywy)gi*zx^C^?RwOvL??o8I#r!Y z%Wq5we<}2#e@NvCdkagRT2BXK?q2;Gj{I&9+`Tji!*}kY^>2XOtY&Z1A2Z>P+tL$L zHxq;?-WwD$m-$U7agX>pccNiN3sRe8ki%!FEUgw;6_6i`mO?XiCbiIqfAt;=UG0bN z*S5nlWQHR`V3GlN^b|z{oW6p$>}CuCxxkJyvc_%r(F-t+)u!Ix@4>R`E&6+sc#~wh zX+|@X{8t;C7?h7y10iZM;M|S4E^?Dy$RNsEk!x-Smm(GK>*%=I)%u+8|8jhi{dI7Aw4V5N5KjaUs4xthZ5l?`9 zg3*V==n0;OdPI^Iv8zkp%ZY*L5)BNE$Y4y%{8_N+XD>h_l4SM0xfd>f+K0b$W)PgO zN=Ggob~yzpK+SH&Oq2qMhC{p!G12g>fMEyuq+Cf~bb!=u`|yis(LYfb@pxq)~ImE6p2qFqfcVl3zH(YyC)Jl=#Dekz275dtka zfk%+=Wmm8<_+L1dCU>t|l8{1pyj;}njJ~z*s1si|-BFx*ktUR>d_lLbu93H35u>uM| zQ6WN(MXEytLh(pbahpl_10L1X8i?2MCYeyo%B(9{=;FHgzZ^)U}*&$?izk z)#oS-yMUFUvI3OG?gKD5tj~n!-pW8?WY7a5#!s69_+5-@Y>yW&XV?uF75=GXyaqPE zhT$I8_Gd1^EsrSNb?r^C@#j0C10e}ynyY2*Y@FCyOR3LK{OJ=YkQw2uZM6+&2%hW) zFdTL`n^BIGO*63m2hZZU>*3-@N8mUzMVHE{gb&D`FR*OvKfX;4X;@lu)8z2YK^Q{{ zmN3FGH${q$QTS}mc6irlyl(tn;+5;$;@Q!As4CyB;+w@4c~Ic$hr_bw-V2} ze(($m|0htyCR>*D3TV=8mP4hIhiOHx(}48r*Lu$&eaf)SPh?HS0Er-TMe6fjP!(0s zcTrDN)itTQ5uH&~C=3@o)1*ug0AFJ*e(@8lVa3kPDDaJN@-O@03~qTLNfoiiM}D&x zYxPaAeAiaA;(0j!r;jO)pU@j(FBme;Yyml;I6j6<(i;#ww+(I{yM&Fd52=^QP~k65 z(5IB{Z_$QR%q8I#{+>BsRVBa1iV;LzM;e-2j;o~8+J8RAemh);w+V^@M&=FLV5m6vcD zYz)r+{R?^x1XO3a7HC9SQQ=)e9v9(fRsdN*9Mm9&oIsk1zz&?c2IuzlKlvO;=&q+aYg1pevLpI~)`$fE6}-G!X()J<8+ka3eB9 zZ+PPc{EQadAoB&>JaUmac1$T$|Izp}f?f^o9SC3)#UOhj&1)pkK;40g`4I}5pdj^mEsGynGm%te;yM}F}tw69!9 zJG&)_1FhwhlT^F>Ntfi=G}04WCN29r5^8m#9E5<2Fve{`T+lqEKsmqXFr4_yJ{x91 zr^Lh-W{Y%OlMH%;s5-&G*&z(0C-mz2hQT64UL(}uCP58pQV}c=Hm#1m{RxFPtbP3% zc6Xj!Avn}22DSPG5LbsVi4{+8gjFwX#TkSK zIQF-FaBlZOu$+E^RVaimz7w_bUd<}e{)-M}R z!=@{w&}gjdpFb zf^Y8(2D%h`@l)$i_@6+e=M1>?=}|a|q1AmP-=d0Q+QaeExF&_qg9onQC-ki2l&mtv zTDZyTPCj|oUW%^I;Z+(IupO@w8>O*G)1Zm*@a_AE0s0tj95@9lajj81Vuh9>je1M_ zEI9w^AsmjmMH62#TvNga5k*;w%eB|x*yI?ZJHPsmcW4uhU@u6>V_0_HVSxS;C$AE) zVuz$?X>=?(QN3|P6|ZRW%L{gehti~A$TDZmQrsc-IL`MjqKs}=K0gYxF;T`88TS4A zo481O1ml{Md3{6%o3RoLBeFYXg+6~JP7O@mNx#O4|4-ej_IYbUuA9cUFoesG7{&p`F ze%ctLN@Pu%w&&TxDdHu0q0^$VxM~(a?MX0C9-yNoE`n$0Jx7EE*;fdx3C0IHHHOJ8 znd>D0xkZnyra6K^mT2R+SGrkdYL4HWx1@@dzcX5FVpL_vmEUOtk#1ogFZ6@djmmBd~}P6q@%s zWw<({k^|kle^W4Atd9wgM5q->d^2b5Qsf(LfCtwHXg=V!{z<{!sH*V98VZpD<5YML z8xwRJEj}5Q>{zvkunJ-6b7TT8Y9+547KK8Fg+;vbY1Y!stk%9@?oEmm=>~N8<>BBx z$~H|bf4*QbHxlE%j+6yEBsz3IZHTerxMW+!`x`}@MXrE&pZ>n{m*%<7B?d+kRr<#M0Q#6_65`^GQkbm{oJejjv-d)E}ad?&1foDjCeZR zykug$8yR_#pgK271{ng8@Z5|O5Kh&N;CX+ZW!WmxkQ6n6)u2%%**d=)sZ<(p>&)_n zlwgbUe42)G;TLU0=^TAj@yumBNmi!S?9~+WgVCxaViFAp{1&$HZkq{%9kW_MG9Yi_ z>#pI-)Ap51V8()Wy7Nn4I73QTYlw}yu(Nb3dwPm`t z(tv;g6#9@SEOI_n=b}O*gYHy~?NI@5@bS(@)stYa4TCDrgGF>%Zk9R3}6dQX~C%!W8X{tutiR^xrVF_RvlayJhDY7hDEIBSshRNkAq6Ue@ z7`a0`x3S;}b$Ju(00aPe~ zPTtB|Vmjc3b9;pfwKUl7cmyNS+@MhjWz@p2W!&TK5c5d>3840nj+}o6ZAN5eygSgp;?A zAj9nxXCq_AQ7dB}cWUn+=!A9iH2P$PAF4=tTQv_Lf;J56$jS<56ng`hSmYSdle`^t zk!>rL=kRd;@F+{zGvrZxT_^w@3Sh_*ugxI_nJCM& z*Jm;T2o*;eT0$0*42y8^=%D!%IZp+2n3d;J6=`jdBJ*$~@#30zzlZGiR#Ex{-NaZd z{6QkCGNWn^iLQGU*_I*$IgSDv!9ydd`?;tVer+CrwJaJHy`Lz{n+V=MPLS@Xpe8cx zdpgLj5~BdsAmWWfEnUS@@HmxHqqr_z3ScJjqN5tHRt14;_gjf-vLcLgP;MR11W&GQEOYMAVwq)@B(9fUI!H zcB|t|z7-X@Rnqgv$W=OsNkX>9t?TtsjRDG_Ep;!P;3*}`l!JBE`(qOVg=sd+0~KLz z5V81PTM2p25gCvdCHPV){G!YlqTfZ;d~YH=fR`7Lg(*M;EqfMHDUofAx<7+=y_60d z6wi54D}b4l(pHc~Wt~0s0(Yt62IXZ&6Ad4D@ii(!l%V?*ghmZJ&!aqTBz7iPu+m_u zrsNJ=yetYk2(y~J_#x3)StQ?KW$BBm%j@;t)tV(St6aJ>RBSs}Ny6p#;CbFV3Z5eo zGBJ_WPpUn0oP<9XeE_X(?kd!+WmxW5y1sE>X;wKSQSB*0Gmh*=ZrFgGN z26n9C{X_<0L~<-%{8Z)rjl&3StXg}j;1V^palXb-opGBVkDY|5RDx6iU|Is)5>1Pu z>gJ@vA5V-^+?YemBw7gGq)T-6*DF?*WxP<9*4|l#FaBD5pe>GBIp_rmzl-YJ^CoS=~ARL%B%R*= z0{AI`DvA_UAr&v6PZceS$N)d<_3`!~k|g|zQUJFSh;|=&7rF7A>-AcmF0yJCiXdfC z&5M*o;ZGbnE{P*cu_O<$jdzK*3_O6xV)DW*RMzWt2|p41qzHdv*`d9ZKsEG01b*OE zMG5mXJWJ(7gxt$GgeAO?fI*gN83NVPpuO(yt7>n-KwO(hS*nR{QLQmfsG>ZHVo6}q zDe-HjU7FIaMDJ;8VIM@z;RRAfP~$Oz6sDFIp_sJ@vHU2%XZq}7~M z0b=hRWRh1_SavG#sRG1OAyiO~r%7z805ugh1!3xgI>>(Wx>4=SO%)(L(qoz(+4L5q zN2&nnkshf6q(^$B3XmS@kt#rXq(`a%>5(3(0;ETJ)b{cJ>y7}_(^pn200000NkvXX Hu0mjf^FBAD literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/values/ic_launcher_background.xml b/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..0bf6444d46e8af8ea1c289bd4ac855b8532238ef GIT binary patch literal 231795 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

Rz1t`q|cPFN4E>RYyXab8Ia+FmoTgln?yM3IsDS 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 eNz%9qnst{jxVKT6BcFN=^D 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�EA6PpR5#|s4cK; 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

oYWn78 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 XdiA_T@tag43i%AwAk6gtne_hvHo-N? literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..af8bd8402b35f1faf23316ba84a586a983fa1fe3 GIT binary patch literal 21550 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 U!^v7MMF0Q*07*qoM6N<$f;B9uPyhe` literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..36dd0f23a857881c55fbeb2a503d205495583ad4 GIT binary patch literal 946 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9779412ffefbf350e7c8413863e419f6c0df5cf5 GIT binary patch literal 1685 zcmV;G25R|24cU6#iz3mu$}BY);dJBux_%QbE-MDlO{|1cW~zc!azLFTxLAph5ysRb8Y)L4`IU z5G6{ZI3aGDP#QN)ZM@sVo$-trPiDC@<8iF^N|t?R&dj~%-t(R99`h{A3OI%)2m%;} zp`sHT4XxR;j2WW}q0-cYRbHa>HP15gHLLqhn0K<6ycwaEF+IlhR$RI!_Qhw6CgFg& zDq8v7+Huu=^>3bbb?mIPmR9Mjr9jZ3RetMAj)qPxEqdc<>6zogs8if(Y4rMfjjbmW zwU8P$T&lk1kF73`?`Ff$kOvw|#1dg9LL*l9yXt!x+#lSX~D($Pu=V})Clqrj-1Gjv$AeAU~I z+EpafKCvRMGQIXW7Iki3FbNHlT9~=lx|A5L^`cba(nRB$It*6MfL`B95$QSzF2+=p zn9&%zi`GcKu2=d%{O0REx>11Yv0h-EIOH@Ax?o`IO2v}&DaWktf&e>nq{66`oz%nN z5ye3IqDwdZ*(J<=`L2AOv4wk@g*0j`ZP0AiKN93>`YgwhT`Xew!VFq^JK*nX#mL1O z=^9ZIw#U@dwwCkqS{X4Mi(Dn)dY<2 zqWl_r|16?67vy)dV0ljZ9pBo;D_^`rrC79MnAuUiMR0^sGn$GqXBi2DL+7TD*xSe9 z!~OCkh=gViQ)ulAp=F>O`}ZFZn$s1$(&C;*Pk8U^lJ}PiCHR7V^h}+^=B+;n4q4f} z(R%(`|@oPaOXj9$WQF<(|T;sW%~ zjv{*X9&*WybnWr#Hu`2pq-R7)aFT~|q>QZaVP!X!K)G`~g5STnik`_~M9z#$_kBbW zZQWQxHjxG&C_84U_%rmK8LI%BW)5}}c2pR(!i%;qItGExHexaaWS^z5`t45$PYxkG zK8WMA#70HZD zd~_augSK(RA;_hO*m4XC=`0q%zJkz5 zKe|RE$fq-y_~bkiJ8}HI6qV>ZNBYS1EV4w@MZeh2!4++ahV>@kEq_O^Euxh;1>!bs zUSA;0_DNpRKPxfp{aI#`BRCztG>h1sRmWi}4W>Cl^pz(Dnuw#gOT|ncWAB{>=Wjxu z>~bNULot^p-clUxkuFSrdI8%%E+erUmm~p#H!;SM=!G^xZP}M17f#Z!L1JnqK7Jkf zOb)5XPmy_&Bx0Jz@LMz3xN;Xsa!q7XC<(3-a;8TWo`z}SqLG~yZKH(6mj*EU!D~bT z?I76QhPBJLB~i7@WJ8!24R|DGIkK}ni8&9p_OSl_9SpuPiM_@3GLvE~TJk=D#Mdhu zCwfUDZqrW=i5PKG6!X8m^}f|4IYu3b6NkN!EnxfR68ywLu;aTrnPXL;K~sK1d(aEY zV+7F`)*kn{ar*=V2cxP0#Emj?JV}$ILaz?A_<9`}>3S4(Y;2=cq8G+PB#Zu>N6C2oqcXduJWo?bhx#jAxac3X(`LSdB0 z3({CG>|m`hXqC$~^=<8@JMG#*BPN~T-l)pNsz5|K#gk*;n)ten*c2w)+uM;&r;*R+ zrFfWqUYVSqpU2$XTxG|fD`liqd!|w;M59r}VzI`osjt;vLzFsSbsn0p_oQfPX-e+& fw5+;@SKa;t(UZT3(inq?00000NkvXXu0mjfdkQ-) literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7c668c6f7b532180da1daac9c5bf230088b69ebb GIT binary patch literal 3050 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@1x.png b/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..36dd0f23a857881c55fbeb2a503d205495583ad4 GIT binary patch literal 946 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 O0000I-yTS# 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 D3a)t2 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c15d3c6e5057d8849a6cd9ae2c5d3318ed02081 GIT binary patch literal 5204 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-76x76@1x.png b/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf86edda6bc85c56b7fb49b2cd6d4d52eaf9fe1 GIT binary patch literal 2521 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-76x76@2x.png b/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..163db886d80212fb4082841869e85778c0b54c72 GIT binary patch literal 7427 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 + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) + .manage(ServerState(Mutex::new(None))) + .setup(|app| { + let shell = app.shell(); + let app_handle = app.handle().clone(); + + let status = shell.command("tachidesk-server").spawn(); + + match status { + Ok((_rx, child)) => { + println!("Tachidesk server process spawned successfully."); + let state = app_handle.state::(); + let mut guard = state.0.lock().unwrap(); + *guard = Some(child); + } + Err(e) => { + eprintln!("Failed to spawn Tachidesk server: {}", e); + } + } + + Ok(()) + }) + .run(tauri::generate_context!()) + .expect("error while running moku"); +} \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..25c98f4 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,5 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + moku_lib::run(); +} \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..e05174e --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "Moku", + "version": "0.1.0", + "identifier": "dev.moku.app", + "build": { + "frontendDist": "../dist", + "beforeBuildCommand": "pnpm build" + }, + "app": { + "windows": [ + { + "title": "Moku", + "width": 1280, + "height": 800, + "minWidth": 800, + "minHeight": 600, + "resizable": true, + "fullscreen": false, + "decorations": false + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + }, + "plugins": { + "shell": { + "open": true + } + } +} \ No newline at end of file diff --git a/src/App.module.css b/src/App.module.css new file mode 100644 index 0000000..33b8920 --- /dev/null +++ b/src/App.module.css @@ -0,0 +1,12 @@ +.root { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; +} + +.content { + flex: 1; + overflow: hidden; + min-height: 0; +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..26e6bc6 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,54 @@ +import { useEffect } from "react"; +import { invoke } from "@tauri-apps/api/core"; +import { listen } from "@tauri-apps/api/event"; +import "./styles/global.css"; +import { useStore } from "./store"; +import Layout from "./components/layout/Layout"; +import Reader from "./components/pages/Reader"; +import Settings from "./components/settings/Settings"; +import TitleBar from "./components/layout/TitleBar"; +import s from "./App.module.css"; + +export default function App() { + const activeChapter = useStore((s) => s.activeChapter); + const settingsOpen = useStore((s) => s.settingsOpen); + const settings = useStore((s) => s.settings); + const setActiveDownloads = useStore((s) => s.setActiveDownloads); + + useEffect(() => { + document.documentElement.style.zoom = `${settings.uiScale}%`; + }, [settings.uiScale]); + + useEffect(() => { + const prevent = (e: MouseEvent) => e.preventDefault(); + document.addEventListener("contextmenu", prevent); + return () => document.removeEventListener("contextmenu", prevent); + }, []); + + useEffect(() => { + if (!settings.autoStartServer) return; + invoke("spawn_server", { binary: settings.serverBinary }).catch((err) => + console.warn("Could not start server:", err) + ); + return () => { invoke("kill_server").catch(() => {}); }; + }, [settings.autoStartServer, settings.serverBinary]); + + // Global Tauri download-progress listener — no polling, always current + useEffect(() => { + type DlPayload = { chapterId: number; mangaId: number; progress: number }[]; + const unsub = listen("download-progress", (e) => { + setActiveDownloads(e.payload); + }); + return () => { unsub.then((fn) => fn()); }; + }, [setActiveDownloads]); + + return ( +
+ {!activeChapter && } +
+ {activeChapter ? : } +
+ {settingsOpen && } +
+ ); +} \ No newline at end of file diff --git a/src/assets/Moku-Icon.svg b/src/assets/Moku-Icon.svg new file mode 100644 index 0000000..cf3e706 --- /dev/null +++ b/src/assets/Moku-Icon.svg @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b2baeaeaac1b623742435466d7bc172f052d47 GIT binary patch literal 5696 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 mmWkl$u---A4H}c6@&121ZxIXx?hX+E0000 void; + danger?: boolean; + disabled?: boolean; + separator?: never; +} + +export interface ContextMenuSeparator { + separator: true; + label?: never; + icon?: never; + onClick?: never; + danger?: never; + disabled?: never; +} + +export type ContextMenuEntry = ContextMenuItem | ContextMenuSeparator; + +interface Props { + x: number; + y: number; + items: ContextMenuEntry[]; + onClose: () => void; +} + +export default function ContextMenu({ x, y, items, onClose }: Props) { + const menuRef = useRef(null); + + // Close on outside click or Escape + useEffect(() => { + function onDown(e: MouseEvent) { + if (menuRef.current && !menuRef.current.contains(e.target as Node)) { + onClose(); + } + } + function onKey(e: KeyboardEvent) { + if (e.key === "Escape") onClose(); + } + // Use capture so we intercept before other handlers + document.addEventListener("mousedown", onDown, true); + document.addEventListener("keydown", onKey, true); + return () => { + document.removeEventListener("mousedown", onDown, true); + document.removeEventListener("keydown", onKey, true); + }; + }, [onClose]); + + // Adjust position so menu doesn't clip outside viewport + const style = useCallback(() => { + const menuW = 200; + const menuH = items.length * 32; + const left = x + menuW > window.innerWidth ? x - menuW : x; + const top = y + menuH > window.innerHeight ? y - menuH : y; + return { left, top }; + }, [x, y, items.length]); + + return createPortal( +
e.preventDefault()} + > + {items.map((item, i) => { + if ("separator" in item && item.separator) { + return
; + } + const mi = item as ContextMenuItem; + return ( + + ); + })} +
, + document.body + ); +} \ No newline at end of file diff --git a/src/components/downloads/DownloadQueue.module.css b/src/components/downloads/DownloadQueue.module.css new file mode 100644 index 0000000..75942a2 --- /dev/null +++ b/src/components/downloads/DownloadQueue.module.css @@ -0,0 +1,200 @@ +.root { + padding: var(--sp-6); + overflow-y: auto; + height: 100%; + animation: fadeIn 0.14s ease both; +} + +.header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: var(--sp-5); +} + +.heading { + font-family: var(--font-ui); + font-size: var(--text-xs); + font-weight: var(--weight-normal); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; +} + +.headerActions { display: flex; gap: var(--sp-2); } + +.iconBtn { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + border-radius: var(--radius-md); + border: 1px solid var(--border-dim); + color: var(--text-muted); + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} + +.iconBtn:hover { color: var(--text-secondary); border-color: var(--border-strong); background: var(--bg-raised); } +.iconBtn:disabled { opacity: 0.3; cursor: default; } + +.statusBar { + display: flex; + align-items: center; + gap: var(--sp-3); + padding: var(--sp-3); + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + margin-bottom: var(--sp-4); +} + +.statusDot { + width: 6px; + height: 6px; + border-radius: 50%; + background: var(--text-faint); + flex-shrink: 0; +} + +.statusDotActive { + background: var(--accent); + animation: pulse 1.6s ease infinite; +} + +.statusText { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-muted); + flex: 1; + letter-spacing: var(--tracking-wide); +} + +.statusCount { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.list { display: flex; flex-direction: column; gap: var(--sp-2); } + +.row { + display: flex; + align-items: center; + gap: var(--sp-3); + padding: var(--sp-3); + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + transition: border-color var(--t-fast); +} + +.rowActive { border-color: var(--accent-dim); } + +/* Thumbnail */ +.thumb { + width: 36px; + height: 54px; + border-radius: var(--radius-sm); + overflow: hidden; + background: var(--bg-overlay); + flex-shrink: 0; + border: 1px solid var(--border-dim); +} + +.thumbImg { + width: 100%; + height: 100%; + object-fit: cover; +} + +/* Info block */ +.info { + flex: 1; + display: flex; + flex-direction: column; + gap: 3px; + overflow: hidden; + min-width: 0; +} + +.mangaTitle { + font-size: var(--text-sm); + font-weight: var(--weight-medium); + color: var(--text-secondary); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.chapterName { + font-size: var(--text-xs); + color: var(--text-muted); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.pagesLabel { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.progressWrap { + height: 2px; + background: var(--border-base); + border-radius: var(--radius-full); + overflow: hidden; + margin-top: 4px; +} + +.progressBar { + height: 100%; + background: var(--accent); + border-radius: var(--radius-full); + transition: width 0.4s ease; +} + +/* Right side */ +.rowRight { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: var(--sp-1); + flex-shrink: 0; +} + +.stateLabel { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; +} + +.removeBtn { + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + border-radius: var(--radius-sm); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base); +} + +.removeBtn:hover { color: var(--color-error); background: var(--color-error-bg); } + +.empty { + display: flex; + align-items: center; + justify-content: center; + height: 160px; + color: var(--text-faint); + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); +} \ No newline at end of file diff --git a/src/components/downloads/DownloadQueue.tsx b/src/components/downloads/DownloadQueue.tsx new file mode 100644 index 0000000..982fa28 --- /dev/null +++ b/src/components/downloads/DownloadQueue.tsx @@ -0,0 +1,152 @@ +import { useEffect, useState } from "react"; +import { Play, Pause, Trash, CircleNotch, X } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { + GET_DOWNLOAD_STATUS, START_DOWNLOADER, STOP_DOWNLOADER, + CLEAR_DOWNLOADER, DEQUEUE_DOWNLOAD, +} from "../../lib/queries"; +import { useStore } from "../../store"; +import type { DownloadStatus } from "../../lib/types"; +import s from "./DownloadQueue.module.css"; + +export default function DownloadQueue() { + const [status, setStatus] = useState(null); + const [loading, setLoading] = useState(true); + const setActiveDownloads = useStore((s) => s.setActiveDownloads); + + async function poll() { + gql<{ downloadStatus: DownloadStatus }>(GET_DOWNLOAD_STATUS) + .then((d) => { + setStatus(d.downloadStatus); + setActiveDownloads( + d.downloadStatus.queue.map((item) => ({ + chapterId: item.chapter.id, + mangaId: item.chapter.mangaId, + progress: item.progress, + })) + ); + }) + .catch(console.error) + .finally(() => setLoading(false)); + } + + useEffect(() => { + poll(); + const id = setInterval(poll, 1500); + return () => clearInterval(id); + }, []); + + async function start() { await gql(START_DOWNLOADER).catch(console.error); poll(); } + async function stop() { await gql(STOP_DOWNLOADER).catch(console.error); poll(); } + async function clear() { await gql(CLEAR_DOWNLOADER).catch(console.error); poll(); } + async function dequeue(chapterId: number) { + await gql(DEQUEUE_DOWNLOAD, { chapterId }).catch(console.error); + poll(); + } + + const queue = status?.queue ?? []; + const isRunning = status?.state === "STARTED"; + + function pagesDownloaded(progress: number, pageCount: number): number { + return Math.round(progress * pageCount); + } + + return ( +
+
+

Downloads

+
+ {isRunning ? ( + + ) : ( + + )} + +
+
+ +
+
+ {isRunning ? "Downloading" : "Paused"} + {queue.length} queued +
+ + {loading ? ( +
+ +
+ ) : queue.length === 0 ? ( +
Queue is empty.
+ ) : ( +
+ {queue.map((item, i) => { + const isActive = i === 0 && isRunning; + const pages = item.chapter.pageCount ?? 0; + const done = pagesDownloaded(item.progress, pages); + const manga = item.chapter.manga; + + return ( +
+ {manga?.thumbnailUrl && ( +
+ {manga.title} +
+ )} + +
+ {manga?.title && ( + {manga.title} + )} + {item.chapter.name} + + {pages > 0 && ( + + {isActive ? `${done} / ${pages} pages` : `${pages} pages`} + + )} + + {isActive && ( +
+
+
+ )} +
+ +
+ {item.state} + {!isActive && ( + + )} +
+
+ ); + })} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/components/extensions/ExtensionList.module.css b/src/components/extensions/ExtensionList.module.css new file mode 100644 index 0000000..eb52a43 --- /dev/null +++ b/src/components/extensions/ExtensionList.module.css @@ -0,0 +1,172 @@ +.root { + display: flex; flex-direction: column; height: 100%; + overflow: hidden; animation: fadeIn 0.14s ease both; +} +.header { + display: flex; align-items: center; justify-content: space-between; + padding: var(--sp-5) var(--sp-6) var(--sp-3); flex-shrink: 0; +} +.heading { + font-family: var(--font-ui); font-size: var(--text-xs); font-weight: var(--weight-normal); + color: var(--text-faint); letter-spacing: var(--tracking-wider); text-transform: uppercase; +} +.headerActions { display: flex; gap: var(--sp-1); } +.iconBtn { + display: flex; align-items: center; justify-content: center; + width: 28px; height: 28px; border-radius: var(--radius-md); + color: var(--text-muted); transition: color var(--t-base), background var(--t-base); +} +.iconBtn:hover:not(:disabled) { color: var(--text-primary); background: var(--bg-raised); } +.iconBtn:disabled { opacity: 0.4; } + +.externalRow { + display: flex; gap: var(--sp-2); padding: 0 var(--sp-6) var(--sp-3); flex-shrink: 0; +} +.externalInput { + flex: 1; background: var(--bg-raised); border: 1px solid var(--border-strong); + border-radius: var(--radius-md); padding: 6px var(--sp-3); + color: var(--text-primary); font-size: var(--text-sm); outline: none; +} +.externalInput:focus { border-color: var(--border-focus); } +.installBtn { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 6px 14px; border-radius: var(--radius-md); + background: var(--accent-muted); color: var(--accent-fg); + border: 1px solid var(--accent-dim); cursor: pointer; +} +.installBtn:hover { filter: brightness(1.1); } + +.controls { + display: flex; align-items: center; justify-content: space-between; + padding: 0 var(--sp-6) var(--sp-3); gap: var(--sp-3); flex-shrink: 0; +} +.tabs { display: flex; gap: 2px; } +.tab { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 4px 10px; border-radius: var(--radius-md); border: none; + background: none; color: var(--text-muted); cursor: pointer; + transition: background var(--t-base), color var(--t-base); +} +.tab:hover { background: var(--bg-raised); color: var(--text-secondary); } +.tabActive { background: var(--accent-muted); color: var(--accent-fg); } +.tabActive:hover { background: var(--accent-muted); color: var(--accent-fg); } + +.searchWrap { position: relative; display: flex; align-items: center; } +.searchIcon { position: absolute; left: 9px; color: var(--text-faint); pointer-events: none; } +.search { + background: var(--bg-raised); border: 1px solid var(--border-dim); + border-radius: var(--radius-md); padding: 5px 10px 5px 26px; + color: var(--text-primary); font-size: var(--text-sm); width: 160px; outline: none; + transition: border-color var(--t-base); +} +.search::placeholder { color: var(--text-faint); } +.search:focus { border-color: var(--border-strong); } + +.list { flex: 1; overflow-y: auto; padding: 0 var(--sp-4) var(--sp-4); display: flex; flex-direction: column; gap: 1px; } + +.group { display: flex; flex-direction: column; } + +.row { + display: flex; align-items: center; gap: var(--sp-3); + padding: 8px var(--sp-3); border-radius: var(--radius-md); + border: 1px solid transparent; + transition: background var(--t-fast), border-color var(--t-fast); +} +.row:hover { background: var(--bg-raised); border-color: var(--border-dim); } + +.icon { + width: 32px; height: 32px; border-radius: var(--radius-md); + object-fit: cover; flex-shrink: 0; background: var(--bg-raised); +} +.info { flex: 1; display: flex; flex-direction: column; gap: 2px; overflow: hidden; min-width: 0; } +.name { + font-size: var(--text-base); font-weight: var(--weight-medium); + color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} +.meta { + display: flex; align-items: center; gap: var(--sp-2); + font-family: var(--font-ui); font-size: var(--text-2xs); color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.langTag { + background: var(--bg-overlay); border: 1px solid var(--border-dim); + border-radius: var(--radius-sm); padding: 1px 5px; + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--text-muted); letter-spacing: var(--tracking-wider); +} +.nsfwTag { + background: transparent; border: 1px solid var(--color-error); + border-radius: var(--radius-sm); padding: 1px 5px; + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--color-error); letter-spacing: var(--tracking-wider); +} +.updateBadge { + font-family: var(--font-ui); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide); + background: var(--accent-muted); color: var(--accent-fg); + border: 1px solid var(--accent-dim); border-radius: var(--radius-sm); + padding: 2px 6px; flex-shrink: 0; +} +.updateBadgeSmall { + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--accent-fg); flex-shrink: 0; +} + +.rowActions { display: flex; gap: var(--sp-1); flex-shrink: 0; } +.actionBtn { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 4px 10px; border-radius: var(--radius-md); + background: var(--accent-muted); color: var(--accent-fg); + border: 1px solid var(--accent-dim); cursor: pointer; flex-shrink: 0; + transition: filter var(--t-base); +} +.actionBtn:hover { filter: brightness(1.1); } +.actionBtnDim { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 4px 10px; border-radius: var(--radius-md); + background: none; color: var(--text-faint); + border: 1px solid var(--border-dim); cursor: pointer; flex-shrink: 0; + transition: color var(--t-base), border-color var(--t-base); +} +.actionBtnDim:hover { color: var(--color-error); border-color: var(--color-error); } + +.expandBtn { + display: flex; align-items: center; gap: 3px; + padding: 4px 6px; border-radius: var(--radius-sm); + color: var(--text-faint); flex-shrink: 0; + transition: color var(--t-base), background var(--t-base); +} +.expandBtn:hover { color: var(--text-muted); background: var(--bg-overlay); } +.expandCount { + font-family: var(--font-ui); font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); +} + +.variants { + display: flex; flex-direction: column; gap: 1px; + margin: 1px 0 2px calc(32px + var(--sp-3) + var(--sp-3)); + padding-left: var(--sp-3); + border-left: 1px solid var(--border-dim); + animation: fadeIn 0.1s ease both; +} +.variantRow { + display: flex; align-items: center; gap: var(--sp-2); + padding: 5px var(--sp-2); border-radius: var(--radius-md); + transition: background var(--t-fast); +} +.variantRow:hover { background: var(--bg-raised); } +.variantName { + flex: 1; font-size: var(--text-sm); color: var(--text-muted); + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} +.variantVersion { + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--text-faint); letter-spacing: var(--tracking-wide); flex-shrink: 0; +} +.variantActions { flex-shrink: 0; } + +.empty { + display: flex; align-items: center; justify-content: center; + flex: 1; color: var(--text-faint); + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); +} \ No newline at end of file diff --git a/src/components/extensions/ExtensionList.tsx b/src/components/extensions/ExtensionList.tsx new file mode 100644 index 0000000..721ec97 --- /dev/null +++ b/src/components/extensions/ExtensionList.tsx @@ -0,0 +1,225 @@ +import { useEffect, useState, useMemo } from "react"; +import { MagnifyingGlass, ArrowsClockwise, Plus, CircleNotch, CaretRight, CaretDown } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { + GET_EXTENSIONS, FETCH_EXTENSIONS, UPDATE_EXTENSION, INSTALL_EXTERNAL_EXTENSION, +} from "../../lib/queries"; +import { useStore } from "../../store"; +import type { Extension } from "../../lib/types"; +import s from "./ExtensionList.module.css"; + +type Filter = "installed" | "available" | "updates" | "all"; + +// Strip language tag suffix e.g. "MangaDex (EN)" → "MangaDex" +function baseName(name: string): string { + return name.replace(/\s*\([A-Z0-9-]{2,10}\)\s*$/, "").trim(); +} + +interface ExtGroup { + base: string; + primary: Extension; + variants: Extension[]; // all variants excluding primary +} + +export default function ExtensionList() { + const [extensions, setExtensions] = useState([]); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [filter, setFilter] = useState("installed"); + const [search, setSearch] = useState(""); + const [working, setWorking] = useState>(new Set()); + const [expanded, setExpanded] = useState>(new Set()); + const [externalUrl, setExternalUrl] = useState(""); + const [showExternal, setShowExternal] = useState(false); + const preferredLang = useStore((s) => s.settings.preferredExtensionLang); + + async function load() { + return gql<{ extensions: { nodes: Extension[] } }>(GET_EXTENSIONS) + .then((d) => setExtensions(d.extensions.nodes)) + .catch(console.error); + } + + async function fetchFromRepo() { + setRefreshing(true); + return gql<{ fetchExtensions: { extensions: Extension[] } }>(FETCH_EXTENSIONS) + .then((d) => setExtensions(d.fetchExtensions.extensions)) + .catch(console.error) + .finally(() => setRefreshing(false)); + } + + const mutate = async (fn: () => Promise, pkgName: string) => { + setWorking((p) => new Set(p).add(pkgName)); + await fn().catch(console.error); + await load(); + setWorking((p) => { const n = new Set(p); n.delete(pkgName); return n; }); + }; + + async function installExternal() { + if (!externalUrl.trim()) return; + await gql(INSTALL_EXTERNAL_EXTENSION, { url: externalUrl.trim() }).catch(console.error); + setExternalUrl(""); + setShowExternal(false); + await load(); + } + + useEffect(() => { + fetchFromRepo().finally(() => setLoading(false)); + }, []); + + const filtered = extensions.filter((e) => { + const q = search.toLowerCase(); + const matchSearch = e.name.toLowerCase().includes(q) || e.lang.toLowerCase().includes(q); + const matchFilter = + filter === "installed" ? e.isInstalled : + filter === "available" ? !e.isInstalled : + filter === "updates" ? e.hasUpdate : true; + return matchSearch && matchFilter; + }); + + // Group by base name. Primary is the preferred/en/first variant. + // variants contains only the non-primary ones for the expanded list. + const groups = useMemo(() => { + const map = new Map(); + for (const ext of filtered) { + const key = baseName(ext.name); + if (!map.has(key)) map.set(key, []); + map.get(key)!.push(ext); + } + return Array.from(map.entries()).map(([base, all]) => { + const primary = + all.find((v) => v.lang === preferredLang) ?? + all.find((v) => v.lang === "en") ?? + all[0]; + const variants = all.filter((v) => v.pkgName !== primary.pkgName); + return { base, primary, variants }; + }); + }, [filtered, preferredLang]); + + const updateCount = extensions.filter((e) => e.hasUpdate).length; + + const FILTERS: { id: Filter; label: string }[] = [ + { id: "installed", label: "Installed" }, + { id: "available", label: "Available" }, + { id: "updates", label: updateCount > 0 ? `Updates (${updateCount})` : "Updates" }, + { id: "all", label: "All" }, + ]; + + function toggleExpand(base: string) { + setExpanded((p) => { + const n = new Set(p); + n.has(base) ? n.delete(base) : n.add(base); + return n; + }); + } + + function renderActions(ext: Extension) { + if (working.has(ext.pkgName)) + return ; + if (ext.hasUpdate) return ( +
+ + +
+ ); + if (ext.isInstalled) + return ; + return ; + } + + return ( +
+
+

Extensions

+
+ + +
+
+ + {showExternal && ( +
+ setExternalUrl(e.target.value)} + onKeyDown={(e) => e.key === "Enter" && installExternal()} autoFocus /> + +
+ )} + +
+
+ {FILTERS.map((f) => ( + + ))} +
+
+ + setSearch(e.target.value)} /> +
+
+ + {loading ? ( +
+ +
+ ) : groups.length === 0 ? ( +
No extensions found.
+ ) : ( +
+ {groups.map(({ base, primary, variants }) => { + const isExpanded = expanded.has(base); + const hasVariants = variants.length > 0; + + return ( +
+
+ {primary.name} { (e.target as HTMLImageElement).style.display = "none"; }} /> +
+ {base} + + {primary.lang.toUpperCase()} + {" "}v{primary.versionName} + +
+ {primary.hasUpdate && Update} + {renderActions(primary)} + {hasVariants && ( + + )} +
+ + {isExpanded && hasVariants && ( +
+ {variants.map((v) => ( +
+ {v.lang.toUpperCase()} + {v.name} + v{v.versionName} + {v.hasUpdate && } +
{renderActions(v)}
+
+ ))} +
+ )} +
+ ); + })} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/components/layout/Layout.module.css b/src/components/layout/Layout.module.css new file mode 100644 index 0000000..54f9f16 --- /dev/null +++ b/src/components/layout/Layout.module.css @@ -0,0 +1,15 @@ +.root { + display: flex; + height: 100%; + background: var(--bg-base); + overflow: hidden; +} + +.main { + flex: 1; + overflow: hidden; + background: var(--bg-surface); + /* GPU layer for main content area */ + transform: translateZ(0); + contain: layout style; +} \ No newline at end of file diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx new file mode 100644 index 0000000..142e2d7 --- /dev/null +++ b/src/components/layout/Layout.tsx @@ -0,0 +1,38 @@ +import { useStore } from "../../store"; +import Sidebar from "./Sidebar"; +import Library from "../pages/Library"; +import SeriesDetail from "../pages/SeriesDetail"; +import History from "../pages/History"; +import Search from "../pages/Search"; +import SourceList from "../sources/SourceList"; +import SourceBrowse from "../sources/SourceBrowse"; +import DownloadQueue from "../downloads/DownloadQueue"; +import ExtensionList from "../extensions/ExtensionList"; +import s from "./Layout.module.css"; + +export default function Layout() { + const navPage = useStore((s) => s.navPage); + const activeManga = useStore((s) => s.activeManga); + const activeSource = useStore((s) => s.activeSource); + + function renderContent() { + if (navPage === "library" && activeManga) return ; + if (navPage === "sources" && activeSource) return ; + switch (navPage) { + case "library": return ; + case "search": return ; + case "history": return ; + case "sources": return ; + case "downloads": return ; + case "extensions": return ; + default: return ; + } + } + + return ( +
+ +
{renderContent()}
+
+ ); +} \ No newline at end of file diff --git a/src/components/layout/Sidebar.module.css b/src/components/layout/Sidebar.module.css new file mode 100644 index 0000000..409c2bc --- /dev/null +++ b/src/components/layout/Sidebar.module.css @@ -0,0 +1,112 @@ +.root { + width: var(--sidebar-width); + flex-shrink: 0; + background: var(--bg-void); + display: flex; + flex-direction: column; + align-items: center; + padding: var(--sp-4) 0; + gap: 0; +} + +.logo { + /* Logo set to 80px */ + width: 80px; + height: 80px; + display: flex; + align-items: center; + justify-content: center; + + /* MARGIN REMOVED */ + margin-bottom: 0; + + /* Allows the logo to overflow the sidebar width if the sidebar is smaller than 80px */ + overflow: visible; +} + +.logoIcon { + /* Icon set to 80px */ + width: 80px; + height: 80px; + + /* Apply your UI accent green */ + background-color: var(--accent); + + /* SVG Mask Logic using Moku-Icon.svg */ + mask-image: url("../../assets/Moku-Icon.svg"); + mask-repeat: no-repeat; + mask-position: center; + mask-size: contain; + + -webkit-mask-image: url("../../assets/Moku-Icon.svg"); + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + -webkit-mask-size: contain; + + /* Prominent glow for the large logo */ + filter: drop-shadow(0 0 12px rgba(107, 143, 107, 0.4)); +} + +.nav { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + gap: var(--sp-1); + width: 100%; + padding: 0 var(--sp-2); +} + +.tab { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--radius-md); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base); +} + +.tab:hover { + color: var(--text-muted); + background: var(--bg-raised); +} + +.tabActive { + color: var(--accent-fg); + background: var(--accent-muted); +} + +.tabActive:hover { + color: var(--accent-fg); + background: var(--accent-muted); +} + +/* ── Bottom section ── */ +.bottom { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + padding: var(--sp-3) var(--sp-2) 0; + border-top: 1px solid var(--border-dim); + margin-top: var(--sp-3); +} + +.settingsBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--radius-md); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base), transform var(--t-slow); +} + +.settingsBtn:hover { + color: var(--text-muted); + background: var(--bg-raised); + transform: rotate(30deg); +} \ No newline at end of file diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000..98893be --- /dev/null +++ b/src/components/layout/Sidebar.tsx @@ -0,0 +1,49 @@ +import { + Books, DownloadSimple, PuzzlePiece, Compass, + GearSix, ClockCounterClockwise, MagnifyingGlass, +} from "@phosphor-icons/react"; +import { useStore, type NavPage } from "../../store"; +import s from "./Sidebar.module.css"; + +const TABS: { id: NavPage; icon: React.ReactNode; label: string }[] = [ + { id: "library", icon: , label: "Library" }, + { id: "search", icon: , label: "Search" }, + { id: "history", icon: , label: "History" }, + { id: "sources", icon: , label: "Sources" }, + { id: "downloads", icon: , label: "Downloads" }, + { id: "extensions", icon: , label: "Extensions" }, +]; + +export default function Sidebar() { + const navPage = useStore((state) => state.navPage); + const setNavPage = useStore((state) => state.setNavPage); + const setActiveSource = useStore((state) => state.setActiveSource); + const openSettings = useStore((state) => state.openSettings); + + function navigate(id: NavPage) { + setNavPage(id); + if (id !== "sources") setActiveSource(null); + } + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/layout/TitleBar.module.css b/src/components/layout/TitleBar.module.css new file mode 100644 index 0000000..dffe802 --- /dev/null +++ b/src/components/layout/TitleBar.module.css @@ -0,0 +1,55 @@ +.bar { + display: flex; + align-items: center; + justify-content: space-between; + height: 32px; + padding: 0 var(--sp-3) 0 var(--sp-4); + background: var(--bg-void); + border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; + user-select: none; + /* Drag region covers the whole bar */ + -webkit-app-region: drag; +} + +.title { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; + -webkit-app-region: drag; +} + +.controls { + display: flex; + align-items: center; + gap: 2px; + /* Controls must NOT be draggable */ + -webkit-app-region: no-drag; +} + +.btn { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + border-radius: var(--radius-sm); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base); + border: none; + background: none; + cursor: pointer; + -webkit-app-region: no-drag; +} + +.btn:hover { + color: var(--text-muted); + background: var(--bg-raised); +} + +.btnClose:hover { + color: #fff; + background: #c0392b; +} \ No newline at end of file diff --git a/src/components/layout/TitleBar.tsx b/src/components/layout/TitleBar.tsx new file mode 100644 index 0000000..7aba7c0 --- /dev/null +++ b/src/components/layout/TitleBar.tsx @@ -0,0 +1,46 @@ +import { getCurrentWindow } from "@tauri-apps/api/window"; +import s from "./TitleBar.module.css"; + +const win = getCurrentWindow(); + +export default function TitleBar() { + return ( +
+ Moku +
+ + + +
+
+ ); +} \ No newline at end of file diff --git a/src/components/pages/History.module.css b/src/components/pages/History.module.css new file mode 100644 index 0000000..9d8dd26 --- /dev/null +++ b/src/components/pages/History.module.css @@ -0,0 +1,84 @@ +.root { + display: flex; flex-direction: column; height: 100%; + overflow: hidden; animation: fadeIn 0.14s ease both; +} +.header { + display: flex; align-items: center; justify-content: space-between; + padding: var(--sp-5) var(--sp-6) var(--sp-3); flex-shrink: 0; + border-bottom: 1px solid var(--border-dim); +} +.heading { + font-family: var(--font-ui); font-size: var(--text-xs); font-weight: var(--weight-normal); + color: var(--text-faint); letter-spacing: var(--tracking-wider); text-transform: uppercase; +} +.headerRight { display: flex; align-items: center; gap: var(--sp-2); } +.searchWrap { position: relative; display: flex; align-items: center; } +.searchIcon { position: absolute; left: 9px; color: var(--text-faint); pointer-events: none; } +.search { + background: var(--bg-raised); border: 1px solid var(--border-dim); + border-radius: var(--radius-md); padding: 5px 10px 5px 26px; + color: var(--text-primary); font-size: var(--text-sm); width: 180px; outline: none; + transition: border-color var(--t-base); +} +.search::placeholder { color: var(--text-faint); } +.search:focus { border-color: var(--border-strong); } +.clearBtn { + display: flex; align-items: center; justify-content: center; + width: 28px; height: 28px; border-radius: var(--radius-md); + color: var(--text-faint); transition: color var(--t-base), background var(--t-base); +} +.clearBtn:hover { color: var(--color-error); background: var(--color-error-bg); } + +.list { flex: 1; overflow-y: auto; padding: var(--sp-4) var(--sp-6); } + +.group { margin-bottom: var(--sp-5); } +.groupLabel { + font-family: var(--font-ui); font-size: var(--text-2xs); color: var(--text-faint); + letter-spacing: var(--tracking-wider); text-transform: uppercase; + margin-bottom: var(--sp-2); padding: 0 var(--sp-1); +} + +.row { + display: flex; align-items: center; gap: var(--sp-3); + width: 100%; padding: 8px var(--sp-2); border-radius: var(--radius-md); + border: 1px solid transparent; background: none; text-align: left; cursor: pointer; + transition: background var(--t-fast), border-color var(--t-fast); +} +.row:hover { background: var(--bg-raised); border-color: var(--border-dim); } +.row:hover .playIcon { opacity: 1; } + +.thumb { + width: 36px; height: 52px; border-radius: var(--radius-sm); + object-fit: cover; flex-shrink: 0; background: var(--bg-raised); + border: 1px solid var(--border-dim); +} +.info { flex: 1; display: flex; flex-direction: column; gap: 3px; overflow: hidden; min-width: 0; } +.mangaTitle { + font-size: var(--text-base); font-weight: var(--weight-medium); + color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} +.chapterName { + font-size: var(--text-sm); color: var(--text-muted); + display: flex; align-items: center; gap: var(--sp-2); +} +.pageBadge { + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--text-faint); letter-spacing: var(--tracking-wide); +} +.time { + font-family: var(--font-ui); font-size: var(--text-xs); + color: var(--text-faint); letter-spacing: var(--tracking-wide); + flex-shrink: 0; white-space: nowrap; +} +.playIcon { + color: var(--text-faint); flex-shrink: 0; + opacity: 0; transition: opacity var(--t-base); +} + +.empty { + flex: 1; display: flex; flex-direction: column; + align-items: center; justify-content: center; gap: var(--sp-2); +} +.emptyIcon { color: var(--text-faint); } +.emptyText { font-size: var(--text-base); color: var(--text-muted); } +.emptyHint { font-size: var(--text-sm); color: var(--text-faint); } \ No newline at end of file diff --git a/src/components/pages/History.tsx b/src/components/pages/History.tsx new file mode 100644 index 0000000..4f630d9 --- /dev/null +++ b/src/components/pages/History.tsx @@ -0,0 +1,123 @@ +import { useMemo, useState } from "react"; +import { ClockCounterClockwise, Trash, MagnifyingGlass, Play } from "@phosphor-icons/react"; +import { thumbUrl } from "../../lib/client"; +import { useStore, type HistoryEntry } from "../../store"; +import s from "./History.module.css"; + +function timeAgo(ts: number): string { + const diff = Date.now() - ts; + const m = Math.floor(diff / 60000); + if (m < 1) return "Just now"; + if (m < 60) return `${m}m ago`; + const h = Math.floor(m / 60); + if (h < 24) return `${h}h ago`; + const d = Math.floor(h / 24); + if (d < 7) return `${d}d ago`; + return new Date(ts).toLocaleDateString("en-US", { month: "short", day: "numeric" }); +} + +// Group entries by day +function groupByDay(entries: HistoryEntry[]): { label: string; items: HistoryEntry[] }[] { + const groups = new Map(); + for (const e of entries) { + const d = new Date(e.readAt); + const now = new Date(); + let label: string; + if (d.toDateString() === now.toDateString()) label = "Today"; + else { + const yesterday = new Date(now); + yesterday.setDate(now.getDate() - 1); + if (d.toDateString() === yesterday.toDateString()) label = "Yesterday"; + else label = d.toLocaleDateString("en-US", { weekday: "long", month: "long", day: "numeric" }); + } + if (!groups.has(label)) groups.set(label, []); + groups.get(label)!.push(e); + } + return Array.from(groups.entries()).map(([label, items]) => ({ label, items })); +} + +export default function History() { + const history = useStore((s) => s.history); + const clearHistory = useStore((s) => s.clearHistory); + const setActiveManga = useStore((s) => s.setActiveManga); + const setNavPage = useStore((s) => s.setNavPage); + const [search, setSearch] = useState(""); + + const filtered = useMemo(() => + search.trim() + ? history.filter((e) => + e.mangaTitle.toLowerCase().includes(search.toLowerCase()) || + e.chapterName.toLowerCase().includes(search.toLowerCase())) + : history, + [history, search] + ); + + const groups = useMemo(() => groupByDay(filtered), [filtered]); + + function resumeReading(entry: HistoryEntry) { + // Navigate to manga detail — user can continue from there + setActiveManga({ + id: entry.mangaId, + title: entry.mangaTitle, + thumbnailUrl: entry.thumbnailUrl, + } as any); + setNavPage("library"); + } + + return ( +
+
+

History

+
+
+ + setSearch(e.target.value)} /> +
+ {history.length > 0 && ( + + )} +
+
+ + {history.length === 0 ? ( +
+ +

No reading history yet.

+

Chapters you read will appear here.

+
+ ) : filtered.length === 0 ? ( +
+

No results for "{search}"

+
+ ) : ( +
+ {groups.map(({ label, items }) => ( +
+

{label}

+ {items.map((entry) => ( + + ))} +
+ ))} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/components/pages/Library.module.css b/src/components/pages/Library.module.css new file mode 100644 index 0000000..b7de032 --- /dev/null +++ b/src/components/pages/Library.module.css @@ -0,0 +1,272 @@ +.root { + padding: var(--sp-6); + overflow-y: auto; + height: 100%; + animation: fadeIn 0.14s ease both; + /* GPU acceleration for smooth scrolling */ + will-change: scroll-position; + -webkit-overflow-scrolling: touch; +} + +.header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: var(--sp-5); + gap: var(--sp-4); + flex-wrap: wrap; +} + +.headerLeft { + display: flex; + align-items: center; + gap: var(--sp-4); + flex-wrap: wrap; +} + +.heading { + font-family: var(--font-ui); + font-size: var(--text-xs); + font-weight: var(--weight-normal); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; + flex-shrink: 0; +} + +/* Filter tabs */ +.tabs { + display: flex; + gap: 2px; + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + padding: 2px; +} + +.tab { + display: flex; + align-items: center; + gap: 5px; + font-family: var(--font-ui); + font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; + padding: 4px 10px; + border-radius: var(--radius-sm); + border: none; + background: none; + color: var(--text-faint); + cursor: pointer; + transition: background var(--t-base), color var(--t-base); + white-space: nowrap; +} + +.tab:hover { color: var(--text-muted); } + +.tabActive { + background: var(--accent-muted); + color: var(--accent-fg); + border: 1px solid var(--accent-dim); +} + +.tabActive:hover { color: var(--accent-fg); } + +.tabCount { + font-size: var(--text-2xs); + color: inherit; + opacity: 0.6; +} + +/* Search */ +.searchWrap { + position: relative; + display: flex; + align-items: center; +} + +.searchIcon { + position: absolute; + left: 10px; + color: var(--text-faint); + pointer-events: none; +} + +.search { + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + padding: 5px 10px 5px 28px; + color: var(--text-primary); + font-size: var(--text-sm); + width: 180px; + outline: none; + transition: border-color var(--t-base); +} + +.search::placeholder { color: var(--text-faint); } +.search:focus { border-color: var(--border-strong); } + +/* Grid */ +.grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); + gap: var(--sp-4); + /* Contain stacking contexts for GPU layers */ + contain: layout style; +} + +.card { + background: none; + border: none; + padding: 0; + cursor: pointer; + text-align: left; + /* Promote to own GPU layer on hover only */ +} + +.card:hover .cover { filter: brightness(1.06); } +.card:hover .title { color: var(--text-primary); } + +.coverWrap { + position: relative; + aspect-ratio: 2 / 3; + overflow: hidden; + border-radius: var(--radius-md); + background: var(--bg-raised); + border: 1px solid var(--border-dim); + /* GPU-accelerated compositing */ + transform: translateZ(0); +} + +.cover { + width: 100%; + height: 100%; + object-fit: cover; + transition: filter var(--t-base); + /* Hint to compositor */ + will-change: filter; +} + +.downloadedBadge { + position: absolute; + bottom: var(--sp-1); + right: var(--sp-1); + width: 18px; + height: 18px; + display: flex; + align-items: center; + justify-content: center; + font-size: 10px; + font-weight: bold; + background: var(--accent-dim); + color: var(--accent-fg); + border-radius: var(--radius-sm); + border: 1px solid var(--accent-muted); +} + +.title { + margin-top: var(--sp-2); + font-size: var(--text-sm); + color: var(--text-secondary); + line-height: var(--leading-snug); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + transition: color var(--t-base); +} + +/* Show more */ +.showMore { + display: flex; + justify-content: center; + padding: var(--sp-6) 0 var(--sp-4); +} + +.showMoreBtn { + display: flex; + align-items: center; + gap: var(--sp-3); + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); + color: var(--text-muted); + border: 1px solid var(--border-base); + border-radius: var(--radius-md); + padding: 7px 20px; + background: var(--bg-raised); + cursor: pointer; + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} + +.showMoreBtn:hover { + color: var(--text-primary); + border-color: var(--border-strong); + background: var(--bg-overlay); +} + +.showMoreCount { + color: var(--text-faint); + font-size: var(--text-2xs); +} + +/* Skeleton */ +.cardSkeleton { padding: 0; } + +.coverSkeletonWrap { + aspect-ratio: 2 / 3; + border-radius: var(--radius-md); +} + +.titleSkeleton { + height: 12px; + margin-top: var(--sp-2); + width: 80%; +} + +.center { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 60%; + color: var(--text-muted); + font-size: var(--text-sm); + gap: var(--sp-2); + text-align: center; + line-height: var(--leading-base); +} + +.errorMsg { color: var(--color-error); font-size: var(--text-base); } +.errorDetail { color: var(--text-faint); font-size: var(--text-sm); } +/* ── Tag filter ── */ +.tagPanel { + display: flex; flex-wrap: wrap; gap: var(--sp-1); + padding: 0 var(--sp-6) var(--sp-3); + flex-shrink: 0; +} + +.tagChip { + font-family: var(--font-ui); font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); padding: 3px 8px; + border-radius: var(--radius-sm); border: 1px solid var(--border-dim); + background: none; color: var(--text-faint); cursor: pointer; + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} +.tagChip:hover { color: var(--text-muted); border-color: var(--border-strong); } +.tagChipActive { + background: var(--accent-muted); border-color: var(--accent-dim); + color: var(--accent-fg); +} +.tagChipActive:hover { background: var(--accent-muted); color: var(--accent-fg); } + +.tagClear { + display: flex; align-items: center; gap: 4px; + font-family: var(--font-ui); font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); padding: 3px 8px; + border-radius: var(--radius-sm); border: 1px solid var(--color-error); + background: none; color: var(--color-error); cursor: pointer; + transition: background var(--t-base); +} +.tagClear:hover { background: var(--color-error-bg); } \ No newline at end of file diff --git a/src/components/pages/Library.tsx b/src/components/pages/Library.tsx new file mode 100644 index 0000000..81df873 --- /dev/null +++ b/src/components/pages/Library.tsx @@ -0,0 +1,230 @@ +import { useEffect, useState, useMemo, useCallback, memo } from "react"; +import { MagnifyingGlass, Books, DownloadSimple, X } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { GET_LIBRARY, GET_ALL_MANGA } from "../../lib/queries"; +import { useStore } from "../../store"; +import type { LibraryFilter } from "../../store"; +import type { Manga } from "../../lib/types"; +import s from "./Library.module.css"; + +const INITIAL_PAGE_SIZE = 48; +const PAGE_INCREMENT = 48; + +// Memoized card to prevent re-renders when siblings change +const MangaCard = memo(function MangaCard({ + manga, + onClick, + cropCovers, +}: { + manga: Manga; + onClick: () => void; + cropCovers: boolean; +}) { + return ( + + ); +}); + +export default function Library() { + const [allManga, setAllManga] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [search, setSearch] = useState(""); + const [visibleCount, setVisibleCount] = useState(INITIAL_PAGE_SIZE); + + const setActiveManga = useStore((state) => state.setActiveManga); + const libraryFilter = useStore((state) => state.libraryFilter); + const setLibraryFilter = useStore((state) => state.setLibraryFilter); + const settings = useStore((state) => state.settings); + const libraryTagFilter = useStore((state) => state.libraryTagFilter); + const setLibraryTagFilter = useStore((state) => state.setLibraryTagFilter); + + useEffect(() => { + // Fetch all manga (for downloaded filter on non-library entries) and + // library manga (for unreadCount/chapter progress). Merge: library wins. + Promise.all([ + gql<{ mangas: { nodes: Manga[] } }>(GET_ALL_MANGA), + gql<{ mangas: { nodes: Manga[] } }>(GET_LIBRARY), + ]) + .then(([all, lib]) => { + const libMap = new Map(lib.mangas.nodes.map((m) => [m.id, m])); + setAllManga(all.mangas.nodes.map((m) => libMap.get(m.id) ?? m)); + }) + .catch((e) => setError(e.message)) + .finally(() => setLoading(false)); + }, []); + + // Reset visible count when filter/search changes + useEffect(() => { setVisibleCount(INITIAL_PAGE_SIZE); }, [libraryFilter, search]); + + const filtered = useMemo(() => { + let items = allManga; + + // Apply filter tab + if (libraryFilter === "library") { + items = items.filter((m) => m.inLibrary); + } else if (libraryFilter === "downloaded") { + items = items.filter((m) => (m.downloadCount ?? 0) > 0); + } + + // Apply search + if (search.trim()) { + const q = search.toLowerCase(); + items = items.filter((m) => m.title.toLowerCase().includes(q)); + } + + return items; + }, [allManga, libraryFilter, search]); + + const visible = filtered.slice(0, visibleCount); + const hasMore = visibleCount < filtered.length; + + const handleCardClick = useCallback( + (m: Manga) => () => setActiveManga(m), + [setActiveManga] + ); + + // All genres present in current library + const allTags = useMemo(() => { + const tagSet = new Set(); + allManga.filter((m) => m.inLibrary).forEach((m) => (m.genre ?? []).forEach((g) => tagSet.add(g))); + return Array.from(tagSet).sort(); + }, [allManga]); + + const counts = useMemo(() => ({ + all: allManga.length, + library: allManga.filter((m) => m.inLibrary).length, + downloaded: allManga.filter((m) => (m.downloadCount ?? 0) > 0).length, + }), [allManga]); + + if (error) return ( +
+

Could not reach Suwayomi

+

{error}

+
+ ); + + return ( +
+
+
+

Library

+
+ {(["library", "downloaded", "all"] as LibraryFilter[]).map((f) => ( + + ))} +
+
+
+ + setSearch(e.target.value)} + /> +
+
+ + + {/* Tag filter panel */} + {allTags.length > 0 && ( +
+ {libraryTagFilter.length > 0 && ( + + )} + {allTags.map((tag) => { + const active = libraryTagFilter.includes(tag); + return ( + + ); + })} +
+ )} + + {loading ? ( +
+ {Array.from({ length: 12 }).map((_, i) => ( +
+
+
+
+ ))} +
+ ) : filtered.length === 0 ? ( +
+ {libraryFilter === "library" + ? "No manga saved to library. Browse sources to add some." + : libraryFilter === "downloaded" + ? "No downloaded manga." + : "No manga found."} +
+ ) : ( + <> +
+ {visible.map((m) => ( + + ))} +
+ {hasMore && ( +
+ +
+ )} + + )} +
+ ); +} \ No newline at end of file diff --git a/src/components/pages/Reader.module.css b/src/components/pages/Reader.module.css new file mode 100644 index 0000000..e4783b8 --- /dev/null +++ b/src/components/pages/Reader.module.css @@ -0,0 +1,173 @@ +.root { + position: fixed; inset: 0; + background: #000; + display: flex; flex-direction: column; + z-index: var(--z-reader); + transform: translateZ(0); will-change: transform; +} + +/* ── Topbar ── */ +.topbar { + display: flex; align-items: center; gap: var(--sp-1); + padding: 0 var(--sp-3); height: 40px; + background: var(--bg-void); border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; overflow: hidden; +} + +.iconBtn { + display: flex; align-items: center; justify-content: center; + width: 28px; height: 28px; border-radius: var(--radius-sm); + color: var(--text-muted); flex-shrink: 0; + transition: color var(--t-base), background var(--t-base); +} +.iconBtn:hover:not(:disabled) { color: var(--text-primary); background: var(--bg-raised); } +.iconBtn:disabled { opacity: 0.2; cursor: default; } + +.chLabel { + flex: 1; display: flex; align-items: center; gap: var(--sp-2); + font-size: var(--text-sm); color: var(--text-muted); + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} +.chTitle { color: var(--text-secondary); font-weight: var(--weight-medium); } +.chSep { color: var(--text-faint); } + +.pageLabel { + font-family: var(--font-ui); font-size: var(--text-xs); + color: var(--text-muted); letter-spacing: var(--tracking-wide); + flex-shrink: 0; +} + +.topSep { + width: 1px; height: 16px; + background: var(--border-dim); flex-shrink: 0; margin: 0 var(--sp-1); +} + +.modeBtn { + display: flex; align-items: center; gap: 4px; + padding: 4px var(--sp-2); border-radius: var(--radius-sm); + color: var(--text-muted); flex-shrink: 0; + font-family: var(--font-ui); font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); + transition: color var(--t-base), background var(--t-base); +} +.modeBtn:hover { color: var(--text-primary); background: var(--bg-raised); } +.modeBtnActive { color: var(--accent-fg); background: var(--accent-muted); } +.modeBtnActive:hover { color: var(--accent-fg); background: var(--accent-muted); } +.modeBtnLabel { text-transform: capitalize; } + +.zoomBtn { + font-family: var(--font-ui); font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); color: var(--text-faint); + padding: 4px var(--sp-2); border-radius: var(--radius-sm); + flex-shrink: 0; min-width: 36px; text-align: center; + transition: color var(--t-base), background var(--t-base); +} +.zoomBtn:hover { color: var(--text-secondary); background: var(--bg-raised); } + +/* ── Viewer ── */ +.viewer { + flex: 1; overflow-y: auto; overflow-x: hidden; + display: flex; flex-direction: column; + align-items: center; justify-content: center; + -webkit-overflow-scrolling: touch; +} + +.viewerStrip { + justify-content: flex-start; + padding: var(--sp-4) 0; +} + +/* ── Images ── */ +.img { + display: block; user-select: none; + image-rendering: auto; +} +.img.optimizeContrast { image-rendering: -webkit-optimize-contrast; } + +/* Fit modes */ +.fitWidth { max-width: var(--max-page-width); width: 100%; height: auto; } +.fitHeight { max-height: calc(100vh - 80px); width: auto; max-width: 100%; } +.fitScreen { max-width: 100%; max-height: calc(100vh - 80px); object-fit: contain; } +.fitOriginal { max-width: none; width: auto; height: auto; } + +/* Longstrip */ +.stripGap { margin-bottom: 8px; } + +/* ── Double page ── */ +.doubleWrap { + display: flex; align-items: flex-start; justify-content: center; + max-width: calc(var(--max-page-width) * 2); + width: 100%; +} +.pageHalf { flex: 1; min-width: 0; object-fit: contain; } +.gapLeft { margin-right: 2px; } +.gapRight { margin-left: 2px; } + +/* ── Bottom nav ── */ +.bottombar { + display: flex; align-items: center; justify-content: center; gap: var(--sp-4); + padding: var(--sp-3); border-top: 1px solid var(--border-dim); + background: var(--bg-void); flex-shrink: 0; +} + +.navBtn { + display: flex; align-items: center; justify-content: center; + width: 34px; height: 34px; border-radius: var(--radius-md); + border: 1px solid var(--border-strong); color: var(--text-muted); + transition: background var(--t-base), color var(--t-base); +} +.navBtn:hover:not(:disabled) { background: var(--bg-raised); color: var(--text-primary); } +.navBtn:disabled { opacity: 0.25; cursor: default; } + +/* ── States ── */ +.center { + display: flex; flex-direction: column; align-items: center; justify-content: center; + position: fixed; inset: 0; background: #000; +} +.errorMsg { color: var(--color-error); font-size: var(--text-base); } + +/* ── Download modal ── */ +.dlBackdrop { + position: fixed; inset: 0; + z-index: calc(var(--z-reader) + 10); + display: flex; align-items: flex-start; justify-content: flex-end; + padding: 48px var(--sp-4) 0; +} + +.dlModal { + background: var(--bg-raised); border: 1px solid var(--border-base); + border-radius: var(--radius-xl); padding: var(--sp-3); + min-width: 210px; display: flex; flex-direction: column; gap: var(--sp-1); + box-shadow: 0 8px 32px rgba(0,0,0,0.6); + animation: scaleIn 0.12s ease both; transform-origin: top right; +} + +.dlTitle { + font-family: var(--font-ui); font-size: var(--text-2xs); + color: var(--text-faint); letter-spacing: var(--tracking-wider); + text-transform: uppercase; padding: 2px var(--sp-2) var(--sp-2); + border-bottom: 1px solid var(--border-dim); margin-bottom: var(--sp-1); +} + +.dlOption { + display: flex; flex-direction: column; align-items: flex-start; gap: 2px; + width: 100%; padding: 7px var(--sp-3); border-radius: var(--radius-md); + font-size: var(--text-sm); color: var(--text-secondary); + background: none; border: none; cursor: pointer; text-align: left; + transition: background var(--t-fast), color var(--t-fast); +} +.dlOption:hover:not(:disabled) { background: var(--bg-overlay); color: var(--text-primary); } +.dlOption:disabled { opacity: 0.3; cursor: default; } + +.dlSub { font-size: var(--text-xs); color: var(--text-faint); } + +.dlRow { display: flex; align-items: center; gap: var(--sp-2); } + +.dlInput { + width: 48px; padding: 4px var(--sp-2); + background: var(--bg-overlay); border: 1px solid var(--border-strong); + border-radius: var(--radius-sm); color: var(--text-secondary); + font-family: var(--font-ui); font-size: var(--text-xs); + text-align: center; outline: none; +} +.dlInput:focus { border-color: var(--border-focus); } \ No newline at end of file diff --git a/src/components/pages/Reader.tsx b/src/components/pages/Reader.tsx new file mode 100644 index 0000000..4762741 --- /dev/null +++ b/src/components/pages/Reader.tsx @@ -0,0 +1,500 @@ +import { useEffect, useRef, useCallback, useState, useMemo } from "react"; +import { + X, CaretLeft, CaretRight, ArrowLeft, ArrowRight, + Square, Columns, Rows, Download, ArrowsLeftRight, + ArrowsIn, ArrowsOut, ArrowsVertical, CircleNotch, +} from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { + FETCH_CHAPTER_PAGES, MARK_CHAPTER_READ, + ENQUEUE_DOWNLOAD, ENQUEUE_CHAPTERS_DOWNLOAD, +} from "../../lib/queries"; +import { useStore, type FitMode } from "../../store"; +import { matchesKeybind } from "../../lib/keybinds"; +import s from "./Reader.module.css"; + +function preloadImage(url: string) { + const img = new Image(); img.src = url; +} + +// Returns aspect ratio once image loads; wide (>1.2 w:h) = likely double spread +function measureAspect(url: string): Promise { + return new Promise((res) => { + const img = new Image(); + img.onload = () => res(img.naturalWidth / img.naturalHeight); + img.onerror = () => res(0.67); + img.src = url; + }); +} + +// ── Download modal ──────────────────────────────────────────────────────────── +function DownloadModal({ + chapter, + remaining, + onClose, +}: { + chapter: { id: number; name: string }; + remaining: { id: number }[]; + onClose: () => void; +}) { + const [nextN, setNextN] = useState(5); + const [busy, setBusy] = useState(false); + + const run = async (fn: () => Promise) => { + setBusy(true); + await fn().catch(console.error); + setBusy(false); + onClose(); + }; + + return ( +
+
e.stopPropagation()}> +

Download

+ +
+ + setNextN(Math.max(1, Number(e.target.value)))} + onClick={(e) => e.stopPropagation()} /> +
+ +
+
+ ); +} + +// ── Reader ──────────────────────────────────────────────────────────────────── +export default function Reader() { + const containerRef = useRef(null); + const rafRef = useRef(0); + const pageNumRef = useRef(1); + const pageCache = useRef>(new Map()); + const aspectCache = useRef>(new Map()); + + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [dlOpen, setDlOpen] = useState(false); + const [markedRead, setMarkedRead] = useState>(new Set()); + const [pageGroups, setPageGroups] = useState([]); + + const { + activeManga, activeChapter, activeChapterList, + pageUrls, pageNumber, settings, + setPageUrls, setPageNumber, closeReader, openReader, openSettings, + updateSettings, addHistory, + } = useStore(); + + const kb = settings.keybinds; + const rtl = settings.readingDirection === "rtl"; + const fit = settings.fitMode ?? "width"; + const style = settings.pageStyle ?? "single"; + const maxW = settings.maxPageWidth ?? 900; + + useEffect(() => { pageNumRef.current = pageNumber; }, [pageNumber]); + + // ── Load pages ────────────────────────────────────────────────────────────── + useEffect(() => { + if (!activeChapter) return; + setLoading(true); setError(null); setPageGroups([]); + const cached = pageCache.current.get(activeChapter.id); + if (cached) { setPageUrls(cached); setLoading(false); return; } + gql<{ fetchChapterPages: { pages: string[] } }>(FETCH_CHAPTER_PAGES, { chapterId: activeChapter.id }) + .then((d) => { + const urls = d.fetchChapterPages.pages.map(thumbUrl); + pageCache.current.set(activeChapter.id, urls); + setPageUrls(urls); + }) + .catch((e) => setError(e.message)) + .finally(() => setLoading(false)); + }, [activeChapter?.id]); + + // ── Double-page grouping ───────────────────────────────────────────────────── + // Rule: page 1 (cover) always solo. Wide pages (aspect>1.2) always solo. + // Normal portrait pages pair with next portrait page. + useEffect(() => { + if (style !== "double" || !pageUrls.length) { setPageGroups([]); return; } + let cancelled = false; + (async () => { + const aspects: number[] = []; + for (const url of pageUrls) { + if (aspectCache.current.has(url)) { + aspects.push(aspectCache.current.get(url)!); + } else { + const a = await measureAspect(url); + aspectCache.current.set(url, a); + aspects.push(a); + } + } + if (cancelled) return; + const groups: number[][] = []; + // Page 1 always solo (cover) + groups.push([1]); + let i = 2; + while (i <= pageUrls.length) { + const a = aspects[i - 1]; + if (a > 1.2 || i === pageUrls.length) { + // Wide or last page — solo + groups.push([i]); i++; + } else { + const next = aspects[i]; // aspects[i] = page i+1 (0-indexed) + if (next !== undefined && next <= 1.2) { + groups.push([i, i + 1]); i += 2; + } else { + groups.push([i]); i++; + } + } + } + setPageGroups(groups); + })(); + return () => { cancelled = true; }; + }, [pageUrls, style, settings.offsetDoubleSpreads]); + + const currentGroup = useMemo(() => { + if (style !== "double" || !pageGroups.length) return null; + return pageGroups.find((g) => g.includes(pageNumber)) ?? null; + }, [pageGroups, pageNumber, style]); + + // ── Preload ───────────────────────────────────────────────────────────────── + useEffect(() => { + for (let i = 1; i <= (settings.preloadPages ?? 3); i++) { + const url = pageUrls[pageNumber - 1 + i]; + if (url) preloadImage(url); + } + }, [pageNumber, pageUrls, settings.preloadPages]); + + // ── Adjacent chapters ──────────────────────────────────────────────────────── + const adjacent = useMemo(() => { + if (!activeChapter || !activeChapterList.length) + return { prev: null, next: null, remaining: [] }; + const idx = activeChapterList.findIndex((c) => c.id === activeChapter.id); + return { + prev: idx > 0 ? activeChapterList[idx - 1] : null, + next: idx < activeChapterList.length - 1 ? activeChapterList[idx + 1] : null, + remaining: activeChapterList.slice(idx + 1), + }; + }, [activeChapter, activeChapterList]); + + useEffect(() => { + const preload = (id: number) => { + if (pageCache.current.has(id)) return; + gql<{ fetchChapterPages: { pages: string[] } }>(FETCH_CHAPTER_PAGES, { chapterId: id }) + .then((d) => { + const urls = d.fetchChapterPages.pages.map(thumbUrl); + pageCache.current.set(id, urls); + urls.slice(0, 2).forEach(preloadImage); + }).catch(() => {}); + }; + if (adjacent.next) preload(adjacent.next.id); + if (adjacent.prev) preload(adjacent.prev.id); + }, [adjacent.next?.id, adjacent.prev?.id]); + + const lastPage = pageUrls.length; + + // ── Auto-mark read + history ───────────────────────────────────────────────── + useEffect(() => { + if (!activeChapter || !lastPage) return; + if (activeManga) { + addHistory({ + mangaId: activeManga.id, mangaTitle: activeManga.title, + thumbnailUrl: activeManga.thumbnailUrl, chapterId: activeChapter.id, + chapterName: activeChapter.name, pageNumber, readAt: Date.now(), + }); + } + if (settings.autoMarkRead && pageNumber === lastPage && !markedRead.has(activeChapter.id)) { + setMarkedRead((p) => new Set(p).add(activeChapter.id)); + gql(MARK_CHAPTER_READ, { id: activeChapter.id, isRead: true }).catch(console.error); + } + }, [pageNumber, lastPage, activeChapter?.id]); + + // ── Navigation ────────────────────────────────────────────────────────────── + const advanceGroup = useCallback((forward: boolean) => { + if (!pageGroups.length) return; + const gi = pageGroups.findIndex((g) => g.includes(pageNumber)); + if (forward) { + if (gi < pageGroups.length - 1) setPageNumber(pageGroups[gi + 1][0]); + else if (adjacent.next) openReader(adjacent.next, activeChapterList); + else closeReader(); + } else { + if (gi > 0) setPageNumber(pageGroups[gi - 1][0]); + else if (adjacent.prev) openReader(adjacent.prev, activeChapterList); + } + }, [pageGroups, pageNumber, adjacent, activeChapterList]); + + const goForward = useCallback(() => { + if (style === "double" && pageGroups.length) { advanceGroup(true); return; } + if (pageNumber < lastPage) setPageNumber(pageNumber + 1); + else if (adjacent.next) openReader(adjacent.next, activeChapterList); + else closeReader(); + }, [pageNumber, lastPage, adjacent, activeChapterList, style, pageGroups, advanceGroup]); + + const goBack = useCallback(() => { + if (style === "double" && pageGroups.length) { advanceGroup(false); return; } + if (pageNumber > 1) setPageNumber(pageNumber - 1); + else if (adjacent.prev) openReader(adjacent.prev, activeChapterList); + }, [pageNumber, adjacent, activeChapterList, style, pageGroups, advanceGroup]); + + const goNext = rtl ? goBack : goForward; + const goPrev = rtl ? goForward : goBack; + + function cycleStyle() { + const cycle = ["single", "double", "longstrip"] as const; + const next = cycle[(cycle.indexOf(style as any) + 1) % cycle.length]; + updateSettings({ pageStyle: next }); + } + + function cycleFit() { + const cycle: FitMode[] = ["width", "height", "screen", "original"]; + updateSettings({ fitMode: cycle[(cycle.indexOf(fit) + 1) % cycle.length] }); + } + + // Ctrl+scroll → zoom maxPageWidth + useEffect(() => { + const onWheel = (e: WheelEvent) => { + if (!e.ctrlKey) return; + e.preventDefault(); + const delta = e.deltaY < 0 ? 50 : -50; + updateSettings({ maxPageWidth: Math.min(2400, Math.max(200, maxW + delta)) }); + }; + window.addEventListener("wheel", onWheel, { passive: false }); + return () => window.removeEventListener("wheel", onWheel); + }, [maxW]); + + // Keybinds + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if ((e.target as HTMLElement).tagName === "INPUT") return; + if (matchesKeybind(e, kb.pageRight)) { e.preventDefault(); goForward(); } + else if (matchesKeybind(e, kb.pageLeft)) { e.preventDefault(); goBack(); } + else if (matchesKeybind(e, kb.firstPage)) { e.preventDefault(); setPageNumber(1); } + else if (matchesKeybind(e, kb.lastPage)) { e.preventDefault(); setPageNumber(lastPage); } + else if (matchesKeybind(e, kb.chapterRight)) { e.preventDefault(); if (adjacent.next) openReader(adjacent.next, activeChapterList); } + else if (matchesKeybind(e, kb.chapterLeft)) { e.preventDefault(); if (adjacent.prev) openReader(adjacent.prev, activeChapterList); } + else if (matchesKeybind(e, kb.exitReader)) { e.preventDefault(); closeReader(); } + else if (matchesKeybind(e, kb.togglePageStyle)) { e.preventDefault(); cycleStyle(); } + else if (matchesKeybind(e, kb.toggleReadingDirection)){ e.preventDefault(); updateSettings({ readingDirection: rtl ? "ltr" : "rtl" }); } + else if (matchesKeybind(e, kb.openSettings)) { e.preventDefault(); openSettings(); } + }; + window.addEventListener("keydown", onKey); + return () => window.removeEventListener("keydown", onKey); + }, [goForward, goBack, kb, style, rtl, lastPage, adjacent, activeChapterList]); + + // Longstrip scroll — rAF throttled, no flushSync + useEffect(() => { + const el = containerRef.current; + if (!el || style !== "longstrip") return; + const onScroll = () => { + cancelAnimationFrame(rafRef.current); + rafRef.current = requestAnimationFrame(() => { + if (!el) return; + const midY = el.scrollTop + el.clientHeight * 0.5; + let cumH = 0; + const children = Array.from(el.children) as HTMLElement[]; + for (let i = 0; i < children.length; i++) { + cumH += children[i].clientHeight; + if (cumH >= midY) { + const n = i + 1; + if (n !== pageNumRef.current) setPageNumber(n); + break; + } + } + }); + }; + el.addEventListener("scroll", onScroll, { passive: true }); + return () => { el.removeEventListener("scroll", onScroll); cancelAnimationFrame(rafRef.current); }; + }, [style]); + + useEffect(() => { + if (style !== "longstrip" && containerRef.current) containerRef.current.scrollTop = 0; + }, [pageNumber, style]); + + function handleTap(e: React.MouseEvent) { + if (style === "longstrip") return; + const x = e.clientX / window.innerWidth; + if (!rtl) { if (x > 0.6) goForward(); else if (x < 0.4) goBack(); } + else { if (x < 0.4) goForward(); else if (x > 0.6) goBack(); } + } + + // ── CSS vars ───────────────────────────────────────────────────────────────── + const cssVars = { "--max-page-width": `${maxW}px` } as React.CSSProperties; + + const imgCls = [ + s.img, + fit === "width" && s.fitWidth, + fit === "height" && s.fitHeight, + fit === "screen" && s.fitScreen, + fit === "original" && s.fitOriginal, + settings.optimizeContrast && s.optimizeContrast, + ].filter(Boolean).join(" "); + + // ── Double page render ──────────────────────────────────────────────────────── + function renderDouble() { + if (!currentGroup) { + return {`Page; + } + const ordered = rtl ? [...currentGroup].reverse() : currentGroup; + const [left, right] = ordered; + return ( +
+ {`Page + {right && ( + {`Page + )} +
+ ); + } + + // ── Icons ──────────────────────────────────────────────────────────────────── + const fitIcon = + fit === "width" ? : + fit === "height" ? : + fit === "screen" ? : + ; + + const fitLabel = { width: "Fit W", height: "Fit H", screen: "Fit Screen", original: "1:1" }[fit]; + + const styleIcon = + style === "single" ? : + style === "double" ? : + ; + + if (loading) return ( +
+ +
+ ); + + if (error) return ( +

{error}

+ ); + + return ( +
+ {/* ── Topbar ── */} +
+ + + + {activeManga?.title} + / + {activeChapter?.name} + + {pageNumber} / {lastPage || "…"} + + +
+ + {/* Fit mode */} + + + {/* Zoom — click resets */} + + + {/* RTL */} + + + {/* Page style */} + + + {/* Page gap toggle — only meaningful in double/longstrip */} + {style !== "single" && ( + + )} + + {/* Download */} + +
+ + {/* ── Viewer ── */} +
+ {style === "longstrip" ? ( + pageUrls.map((url, i) => ( + {`Page + )) + ) : style === "double" ? ( + renderDouble() + ) : ( + {`Page + )} +
+ + {/* ── Bottom nav ── */} +
+ + +
+ + {dlOpen && activeChapter && ( + setDlOpen(false)} + /> + )} +
+ ); +} \ No newline at end of file diff --git a/src/components/pages/Search.module.css b/src/components/pages/Search.module.css new file mode 100644 index 0000000..a447408 --- /dev/null +++ b/src/components/pages/Search.module.css @@ -0,0 +1,91 @@ +.root { + display: flex; flex-direction: column; height: 100%; + overflow: hidden; animation: fadeIn 0.14s ease both; +} + +.header { + display: flex; align-items: center; gap: var(--sp-4); + padding: var(--sp-4) var(--sp-6); border-bottom: 1px solid var(--border-dim); flex-shrink: 0; +} +.heading { + font-family: var(--font-ui); font-size: var(--text-xs); + color: var(--text-faint); letter-spacing: var(--tracking-wider); + text-transform: uppercase; flex-shrink: 0; +} +.searchBar { + flex: 1; display: flex; align-items: center; gap: var(--sp-2); + background: var(--bg-raised); border: 1px solid var(--border-dim); + border-radius: var(--radius-lg); padding: 0 var(--sp-3) 0 var(--sp-2); + transition: border-color var(--t-base); +} +.searchBar:focus-within { border-color: var(--border-strong); } +.searchIcon { color: var(--text-faint); flex-shrink: 0; } +.searchInput { + flex: 1; background: none; border: none; outline: none; + color: var(--text-primary); font-size: var(--text-sm); padding: 8px 0; +} +.searchInput::placeholder { color: var(--text-faint); } +.searchBtn { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 5px 12px; border-radius: var(--radius-md); flex-shrink: 0; + background: var(--accent-muted); color: var(--accent-fg); + border: 1px solid var(--accent-dim); cursor: pointer; + transition: filter var(--t-base); display: flex; align-items: center; gap: var(--sp-2); +} +.searchBtn:hover:not(:disabled) { filter: brightness(1.1); } +.searchBtn:disabled { opacity: 0.4; cursor: default; } + +.results { flex: 1; overflow-y: auto; padding: var(--sp-5) var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-6); } + +.sourceSection { display: flex; flex-direction: column; gap: var(--sp-3); } + +.sourceHeader { + display: flex; align-items: center; gap: var(--sp-2); +} +.sourceIcon { width: 18px; height: 18px; border-radius: 4px; object-fit: cover; flex-shrink: 0; } +.sourceName { font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--text-secondary); } +.resultCount { + font-family: var(--font-ui); font-size: var(--text-2xs); color: var(--text-faint); + letter-spacing: var(--tracking-wide); margin-left: auto; +} +.sourceError { font-size: var(--text-xs); color: var(--color-error); padding: 0 var(--sp-1); } + +.sourceRow { + display: flex; gap: var(--sp-3); overflow-x: auto; + padding-bottom: var(--sp-2); + scrollbar-width: thin; +} +.card { + flex-shrink: 0; width: 110px; background: none; border: none; padding: 0; + cursor: pointer; text-align: left; +} +.card:hover .cover { filter: brightness(1.06); } +.coverWrap { + position: relative; aspect-ratio: 2/3; border-radius: var(--radius-md); + overflow: hidden; background: var(--bg-raised); border: 1px solid var(--border-dim); +} +.cover { width: 100%; height: 100%; object-fit: cover; transition: filter var(--t-base); } +.inLibBadge { + position: absolute; bottom: var(--sp-1); left: var(--sp-1); + font-family: var(--font-ui); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide); + text-transform: uppercase; background: var(--accent-muted); color: var(--accent-fg); + border: 1px solid var(--accent-dim); padding: 2px 5px; border-radius: var(--radius-sm); +} +.cardTitle { + margin-top: var(--sp-1); font-size: var(--text-xs); color: var(--text-muted); + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + line-height: var(--leading-snug); +} + +/* Skeletons */ +.skCard { flex-shrink: 0; width: 110px; } +.skCover { aspect-ratio: 2/3; border-radius: var(--radius-md); } +.skTitle { height: 11px; margin-top: var(--sp-1); width: 75%; } + +.empty { + flex: 1; display: flex; flex-direction: column; + align-items: center; justify-content: center; gap: var(--sp-2); +} +.emptyIcon { color: var(--text-faint); } +.emptyText { font-size: var(--text-base); color: var(--text-muted); } +.emptyHint { font-size: var(--text-sm); color: var(--text-faint); } \ No newline at end of file diff --git a/src/components/pages/Search.tsx b/src/components/pages/Search.tsx new file mode 100644 index 0000000..dc3f943 --- /dev/null +++ b/src/components/pages/Search.tsx @@ -0,0 +1,168 @@ +import { useState, useRef, useCallback } from "react"; +import { MagnifyingGlass, CircleNotch } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { GET_SOURCES, FETCH_SOURCE_MANGA } from "../../lib/queries"; +import { useStore } from "../../store"; +import type { Manga, Source } from "../../lib/types"; +import s from "./Search.module.css"; + +interface SourceResult { + source: Source; + mangas: Manga[]; + loading: boolean; + error: string | null; +} + +export default function Search() { + const [query, setQuery] = useState(""); + const [submitted, setSubmitted] = useState(""); + const [results, setResults] = useState([]); + const [sources, setSources] = useState([]); + const [loadingSources, setLoadingSources] = useState(false); + const inputRef = useRef(null); + + const setActiveManga = useStore((s) => s.setActiveManga); + const setNavPage = useStore((s) => s.setNavPage); + + const loadSources = useCallback(async () => { + if (sources.length) return sources; + setLoadingSources(true); + const data = await gql<{ sources: { nodes: Source[] } }>(GET_SOURCES) + .finally(() => setLoadingSources(false)); + const nodes = data.sources.nodes.filter((s) => s.id !== "0"); + setSources(nodes); + return nodes; + }, [sources]); + + async function runSearch() { + const q = query.trim(); + if (!q) return; + setSubmitted(q); + + const srcs = await loadSources(); + // Initialise loading state for each source + setResults(srcs.map((src) => ({ source: src, mangas: [], loading: true, error: null }))); + + // Fire all source queries in parallel, update each independently + srcs.forEach((src) => { + gql<{ fetchSourceManga: { mangas: Manga[] } }>(FETCH_SOURCE_MANGA, { + source: src.id, type: "SEARCH", page: 1, query: q, + }) + .then((d) => { + setResults((prev) => prev.map((r) => + r.source.id === src.id + ? { ...r, mangas: d.fetchSourceManga.mangas, loading: false } + : r + )); + }) + .catch((e) => { + setResults((prev) => prev.map((r) => + r.source.id === src.id + ? { ...r, loading: false, error: e.message } + : r + )); + }); + }); + } + + function openManga(m: Manga) { + setActiveManga(m); + setNavPage("library"); + } + + const hasResults = results.some((r) => r.mangas.length > 0); + const allDone = results.every((r) => !r.loading); + + return ( +
+ {/* ── Search bar ── */} +
+

Search

+
+ + setQuery(e.target.value)} + onKeyDown={(e) => e.key === "Enter" && runSearch()} + autoFocus /> + +
+
+ + {/* ── Empty state ── */} + {!submitted && ( +
+ +

Search across all installed sources at once

+

Results from each source appear as they load.

+
+ )} + + {/* ── Results ── */} + {submitted && ( +
+ {results.length === 0 && ( +
+ +
+ )} + + {results + .filter((r) => r.mangas.length > 0 || r.loading || r.error) + .map(({ source, mangas, loading, error }) => ( +
+
+ {source.displayName} { (e.target as HTMLImageElement).style.display = "none"; }} /> + {source.displayName} + {loading && } + {!loading && mangas.length > 0 && ( + {mangas.length} results + )} +
+ + {error ? ( +

{error}

+ ) : loading ? ( +
+ {Array.from({ length: 4 }).map((_, i) => ( +
+
+
+
+ ))} +
+ ) : mangas.length > 0 ? ( +
+ {mangas.slice(0, 8).map((m) => ( + + ))} +
+ ) : null} +
+ ))} + + {allDone && !hasResults && submitted && ( +
+

No results for "{submitted}"

+
+ )} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/components/pages/SeriesDetail.module.css b/src/components/pages/SeriesDetail.module.css new file mode 100644 index 0000000..a91483c --- /dev/null +++ b/src/components/pages/SeriesDetail.module.css @@ -0,0 +1,430 @@ +.root { + display: flex; + height: 100%; + overflow: hidden; + animation: fadeIn 0.14s ease both; +} + +/* ── Sidebar ── */ +.sidebar { + width: 200px; + flex-shrink: 0; + padding: var(--sp-5); + border-right: 1px solid var(--border-dim); + overflow-y: auto; + display: flex; + flex-direction: column; + gap: var(--sp-4); + background: var(--bg-base); +} + +.back { + display: flex; + align-items: center; + gap: var(--sp-2); + color: var(--text-muted); + font-size: var(--text-xs); + font-family: var(--font-ui); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; + transition: color var(--t-base); +} +.back:hover { color: var(--text-secondary); } + +.coverWrap { + width: 100%; + aspect-ratio: 2 / 3; + border-radius: var(--radius-md); + overflow: hidden; + background: var(--bg-raised); + border: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.cover { width: 100%; height: 100%; object-fit: cover; } + +.metaSkeleton { display: flex; flex-direction: column; gap: var(--sp-2); } +.skLine { border-radius: var(--radius-sm); } + +.meta { display: flex; flex-direction: column; gap: var(--sp-3); } + +.title { + font-size: var(--text-base); + font-weight: var(--weight-medium); + color: var(--text-primary); + line-height: var(--leading-snug); + letter-spacing: var(--tracking-tight); +} + +.byline { + font-size: var(--text-xs); + color: var(--text-muted); + font-family: var(--font-ui); +} + +.statusBadge { + display: inline-block; + font-family: var(--font-ui); + font-size: var(--text-2xs); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; + padding: 2px 7px; + border-radius: var(--radius-sm); + width: fit-content; +} + +.statusOngoing { + background: var(--accent-muted); + color: var(--accent-fg); + border: 1px solid var(--accent-dim); +} + +.statusEnded { + background: var(--bg-raised); + color: var(--text-faint); + border: 1px solid var(--border-dim); +} + +.genres { display: flex; flex-wrap: wrap; gap: var(--sp-1); } + +.genre { + font-size: var(--text-2xs); + font-family: var(--font-ui); + color: var(--text-faint); + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-sm); + padding: 1px 6px; + letter-spacing: var(--tracking-wide); +} + +.sourceLabel { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; +} + +.description { + font-size: var(--text-xs); + color: var(--text-muted); + line-height: var(--leading-base); + display: -webkit-box; + -webkit-line-clamp: 8; + -webkit-box-orient: vertical; + overflow: hidden; +} + +/* ── Progress ── */ +.progressSection { + display: flex; + flex-direction: column; + gap: var(--sp-1); +} + +.progressHeader { + display: flex; + justify-content: space-between; + align-items: center; +} + +.progressLabel { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.progressPct { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--accent-fg); + letter-spacing: var(--tracking-wide); +} + +.progressTrack { + height: 3px; + background: var(--border-base); + border-radius: var(--radius-full); + overflow: hidden; +} + +.progressFill { + height: 100%; + background: var(--accent); + border-radius: var(--radius-full); + transition: width 0.4s ease; +} + +/* ── Actions ── */ +.actions { + display: flex; + align-items: center; + gap: var(--sp-2); +} + +.libraryBtn { + display: flex; + align-items: center; + gap: var(--sp-2); + font-size: var(--text-xs); + font-family: var(--font-ui); + letter-spacing: var(--tracking-wide); + padding: 5px 10px; + border-radius: var(--radius-md); + border: 1px solid var(--border-strong); + color: var(--text-muted); + background: var(--bg-raised); + transition: border-color var(--t-base), color var(--t-base), background var(--t-base); + flex: 1; +} +.libraryBtn:hover { border-color: var(--accent); color: var(--accent-fg); } +.libraryBtn:disabled { opacity: 0.4; cursor: default; } +.libraryBtnActive { + background: var(--accent-muted); + border-color: var(--accent-dim); + color: var(--accent-fg); +} + +.externalLink { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + border-radius: var(--radius-md); + border: 1px solid var(--border-dim); + color: var(--text-faint); + flex-shrink: 0; + transition: color var(--t-base), border-color var(--t-base); +} +.externalLink:hover { color: var(--text-muted); border-color: var(--border-strong); } + +/* ── Start/Continue reading button ── */ +.readBtn { + display: flex; + align-items: center; + justify-content: center; + gap: var(--sp-2); + width: 100%; + padding: 8px var(--sp-3); + border-radius: var(--radius-md); + background: var(--accent-dim); + border: 1px solid var(--accent); + color: var(--accent-fg); + font-size: var(--text-xs); + font-family: var(--font-ui); + letter-spacing: var(--tracking-wide); + cursor: pointer; + transition: background var(--t-base), border-color var(--t-base); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.readBtn:hover { background: var(--accent-muted); border-color: var(--accent-bright); } + +.chapterCount { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; + margin-top: auto; + padding-top: var(--sp-2); +} + +/* ── Chapter list ── */ +.listWrap { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.listHeader { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--sp-3) var(--sp-4); + border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.sortBtn { + display: flex; + align-items: center; + gap: var(--sp-2); + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-muted); + letter-spacing: var(--tracking-wide); + padding: 4px 8px; + border-radius: var(--radius-md); + transition: background var(--t-base), color var(--t-base); +} +.sortBtn:hover { background: var(--bg-raised); color: var(--text-secondary); } + +.pagination { + display: flex; + align-items: center; + gap: var(--sp-2); +} + +.paginationBottom { + display: flex; + align-items: center; + justify-content: center; + gap: var(--sp-3); + padding: var(--sp-3) var(--sp-4); + border-top: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.pageBtn { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-muted); + letter-spacing: var(--tracking-wide); + padding: 3px 8px; + border-radius: var(--radius-sm); + border: 1px solid var(--border-dim); + background: none; + cursor: pointer; + transition: background var(--t-base), color var(--t-base), border-color var(--t-base); +} +.pageBtn:hover:not(:disabled) { background: var(--bg-raised); color: var(--text-secondary); border-color: var(--border-strong); } +.pageBtn:disabled { opacity: 0.3; cursor: default; } + +.pageNum { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); + min-width: 40px; + text-align: center; +} + +.list { + flex: 1; + overflow-y: auto; + padding: var(--sp-2) var(--sp-4); + display: flex; + flex-direction: column; + gap: 1px; +} + +.rowSkeleton { + display: flex; + flex-direction: column; + gap: var(--sp-2); + padding: 12px var(--sp-3); + border-radius: var(--radius-md); + background: var(--bg-raised); + margin-bottom: 1px; +} + +.row { + display: flex; + justify-content: space-between; + align-items: center; + background: none; + border: none; + border-radius: var(--radius-md); + padding: 10px var(--sp-3); + cursor: pointer; + text-align: left; + width: 100%; + color: var(--text-primary); + transition: background var(--t-fast); +} +.row:hover { background: var(--bg-raised); } +.rowRead .chName { color: var(--text-faint); } + +.chLeft { + display: flex; + flex-direction: column; + gap: 3px; + overflow: hidden; + flex: 1; + min-width: 0; +} + +.chName { + font-size: var(--text-base); + color: var(--text-secondary); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color var(--t-fast); +} +.row:hover .chName { color: var(--text-primary); } + +.chMeta { display: flex; align-items: center; gap: var(--sp-3); } + +.chMetaItem { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.chRight { + display: flex; + align-items: center; + gap: var(--sp-2); + flex-shrink: 0; + margin-left: var(--sp-3); +} + +.bookmarkIcon { color: var(--accent); } +.readIcon { color: var(--text-faint); } +.downloadedIcon { color: var(--accent-fg); } +.enqueuingIcon { color: var(--text-faint); } + +.dlBtn { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border-radius: var(--radius-sm); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base); +} +.dlBtn:hover { color: var(--text-muted); background: var(--bg-overlay); } +/* ── Download section ── */ +.downloadSection { + position: relative; margin-top: var(--sp-2); +} + +.downloadToggle { + display: flex; align-items: center; gap: var(--sp-2); + width: 100%; padding: 7px var(--sp-3); + border-radius: var(--radius-md); + border: 1px solid var(--border-dim); + background: none; color: var(--text-muted); + font-size: var(--text-sm); cursor: pointer; + transition: background var(--t-base), color var(--t-base), border-color var(--t-base); +} +.downloadToggle:hover { background: var(--bg-raised); color: var(--text-secondary); border-color: var(--border-strong); } + +.downloadMenu { + margin-top: var(--sp-1); + background: var(--bg-raised); border: 1px solid var(--border-base); + border-radius: var(--radius-lg); padding: var(--sp-1); + display: flex; flex-direction: column; gap: 1px; + box-shadow: 0 4px 16px rgba(0,0,0,0.4); + animation: fadeIn 0.1s ease both; +} + +.dlItem { + display: flex; flex-direction: column; align-items: flex-start; gap: 2px; + width: 100%; padding: 7px var(--sp-3); border-radius: var(--radius-md); + font-size: var(--text-sm); color: var(--text-secondary); + background: none; border: none; cursor: pointer; text-align: left; + transition: background var(--t-fast), color var(--t-fast); +} +.dlItem:hover { background: var(--bg-overlay); color: var(--text-primary); } + +.dlItemSub { font-size: var(--text-xs); color: var(--text-faint); } \ No newline at end of file diff --git a/src/components/pages/SeriesDetail.tsx b/src/components/pages/SeriesDetail.tsx new file mode 100644 index 0000000..ad3613f --- /dev/null +++ b/src/components/pages/SeriesDetail.tsx @@ -0,0 +1,468 @@ +import { useEffect, useState, useMemo, useCallback } from "react"; +import { + ArrowLeft, BookmarkSimple, Download, CheckCircle, + ArrowSquareOut, BookOpen, CircleNotch, Play, + SortAscending, SortDescending, +} from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { + GET_MANGA, GET_CHAPTERS, FETCH_CHAPTERS, ENQUEUE_DOWNLOAD, + UPDATE_MANGA, MARK_CHAPTER_READ, MARK_CHAPTERS_READ, DELETE_DOWNLOADED_CHAPTERS, + ENQUEUE_CHAPTERS_DOWNLOAD, +} from "../../lib/queries"; +import { useStore } from "../../store"; +import ContextMenu, { type ContextMenuEntry } from "../context/ContextMenu"; +import type { Manga, Chapter } from "../../lib/types"; +import s from "./SeriesDetail.module.css"; + +function formatDate(ts: string | null | undefined): string { + if (!ts) return ""; + const n = Number(ts); + const d = new Date(n > 1e10 ? n : n * 1000); + return d.toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric" }); +} + +interface CtxState { + x: number; + y: number; + chapter: Chapter; + indexInSorted: number; +} + +const CHAPTERS_PER_PAGE = 25; + +export default function SeriesDetail() { + const activeManga = useStore((state) => state.activeManga); + const setActiveManga = useStore((state) => state.setActiveManga); + const openReader = useStore((state) => state.openReader); + const settings = useStore((state) => state.settings); + const updateSettings = useStore((state) => state.updateSettings); + + const [manga, setManga] = useState(activeManga); + const [chapters, setChapters] = useState([]); + const [loadingManga, setLoadingManga] = useState(true); + const [loadingChapters, setLoadingChapters] = useState(true); + const [enqueueing, setEnqueueing] = useState>(new Set()); + const [dlOpen, setDlOpen] = useState(false); + const [togglingLibrary, setTogglingLibrary] = useState(false); + const [chapterPage, setChapterPage] = useState(1); + const [ctx, setCtx] = useState(null); + + const sortDir = settings.chapterSortDir; + + useEffect(() => { + if (!activeManga) return; + setLoadingManga(true); + gql<{ manga: Manga }>(GET_MANGA, { id: activeManga.id }) + .then((data) => setManga(data.manga)) + .catch(console.error) + .finally(() => setLoadingManga(false)); + }, [activeManga?.id]); + + const loadChapters = useCallback((mangaId: number) => { + return gql<{ chapters: { nodes: Chapter[] } }>(GET_CHAPTERS, { mangaId }) + .then((data) => { + // Always store in natural order (ascending sourceOrder), sort in render + const sorted = [...data.chapters.nodes].sort((a, b) => a.sourceOrder - b.sourceOrder); + setChapters(sorted); + return sorted; + }); + }, []); + + useEffect(() => { + if (!activeManga) return; + setLoadingChapters(true); + setChapters([]); + setChapterPage(1); + + loadChapters(activeManga.id) + .catch(console.error) + .finally(() => setLoadingChapters(false)); + + // Fetch from source in background + gql(FETCH_CHAPTERS, { mangaId: activeManga.id }) + .then(() => loadChapters(activeManga.id)) + .catch(console.error); + }, [activeManga?.id]); + + // Sorted chapters based on setting + const sortedChapters = useMemo(() => + sortDir === "desc" + ? [...chapters].reverse() + : [...chapters], + [chapters, sortDir] + ); + + const totalPages = Math.ceil(sortedChapters.length / CHAPTERS_PER_PAGE); + const pageChapters = sortedChapters.slice( + (chapterPage - 1) * CHAPTERS_PER_PAGE, + chapterPage * CHAPTERS_PER_PAGE + ); + + // Progress stats + const readCount = chapters.filter((c) => c.isRead).length; + const totalCount = chapters.length; + const progressPct = totalCount > 0 ? (readCount / totalCount) * 100 : 0; + + // Start / Continue reading logic + const continueChapter = useMemo(() => { + if (!chapters.length) return null; + // Find first unread chapter (in ascending order) + const asc = [...chapters].sort((a, b) => a.sourceOrder - b.sourceOrder); + const inProgress = asc.find((c) => !c.isRead && (c.lastPageRead ?? 0) > 0); + if (inProgress) return { chapter: inProgress, type: "continue" as const }; + const firstUnread = asc.find((c) => !c.isRead); + if (firstUnread) return { chapter: firstUnread, type: "start" as const }; + return { chapter: asc[0], type: "reread" as const }; + }, [chapters]); + + async function toggleLibrary() { + if (!manga) return; + setTogglingLibrary(true); + const next = !manga.inLibrary; + await gql(UPDATE_MANGA, { id: manga.id, inLibrary: next }).catch(console.error); + setManga((prev) => prev ? { ...prev, inLibrary: next } : prev); + setTogglingLibrary(false); + } + + async function enqueue(chapter: Chapter, e: React.MouseEvent) { + e.stopPropagation(); + setEnqueueing((prev) => new Set(prev).add(chapter.id)); + await gql(ENQUEUE_DOWNLOAD, { chapterId: chapter.id }).catch(console.error); + setEnqueueing((prev) => { const n = new Set(prev); n.delete(chapter.id); return n; }); + if (activeManga) loadChapters(activeManga.id); + } + + async function markRead(chapterId: number, isRead: boolean) { + await gql(MARK_CHAPTER_READ, { id: chapterId, isRead }).catch(console.error); + setChapters((prev) => prev.map((c) => c.id === chapterId ? { ...c, isRead } : c)); + } + + async function markAllAboveRead(indexInSorted: number) { + // "above" = all chapters that appear before this one in the current sort + const targets = sortedChapters.slice(0, indexInSorted + 1); + const ids = targets.filter((c) => !c.isRead).map((c) => c.id); + if (!ids.length) return; + await gql(MARK_CHAPTERS_READ, { ids, isRead: true }).catch(console.error); + setChapters((prev) => prev.map((c) => ids.includes(c.id) ? { ...c, isRead: true } : c)); + } + + async function deleteDownloaded(chapterId: number) { + await gql(DELETE_DOWNLOADED_CHAPTERS, { ids: [chapterId] }).catch(console.error); + setChapters((prev) => prev.map((c) => c.id === chapterId ? { ...c, isDownloaded: false } : c)); + } + + async function enqueueMultiple(chapterIds: number[]) { + await gql(ENQUEUE_CHAPTERS_DOWNLOAD, { chapterIds }).catch(console.error); + if (activeManga) loadChapters(activeManga.id); + } + + function openContextMenu(e: React.MouseEvent, chapter: Chapter, indexInSorted: number) { + e.preventDefault(); + setCtx({ x: e.clientX, y: e.clientY, chapter, indexInSorted }); + } + + function buildCtxItems(ch: Chapter, indexInSorted: number): ContextMenuEntry[] { + return [ + { + label: ch.isRead ? "Mark as unread" : "Mark as read", + onClick: () => markRead(ch.id, !ch.isRead), + }, + { + label: "Mark all above as read", + onClick: () => markAllAboveRead(indexInSorted), + disabled: indexInSorted === 0, + }, + { separator: true }, + { + label: ch.isDownloaded ? "Delete download" : "Download", + onClick: () => ch.isDownloaded + ? deleteDownloaded(ch.id) + : gql(ENQUEUE_DOWNLOAD, { chapterId: ch.id }).catch(console.error), + danger: ch.isDownloaded, + }, + { separator: true }, + { + label: "Download all from here", + onClick: () => { + const fromHere = sortedChapters + .slice(indexInSorted) + .filter((c) => !c.isDownloaded) + .map((c) => c.id); + enqueueMultiple(fromHere); + }, + }, + ]; + } + + if (!activeManga) return null; + + const statusLabel = manga?.status + ? manga.status.charAt(0) + manga.status.slice(1).toLowerCase() + : null; + + return ( +
e.preventDefault()}> + {/* ── Sidebar ── */} +
+ + +
+ {activeManga.title} +
+ + {loadingManga ? ( +
+
+
+
+ ) : ( +
+

{manga?.title}

+ + {(manga?.author || manga?.artist) && ( +

+ {[manga.author, manga.artist] + .filter(Boolean) + .filter((v, i, a) => a.indexOf(v) === i) + .join(" · ")} +

+ )} + + {statusLabel && ( + + {statusLabel} + + )} + + {manga?.genre && manga.genre.length > 0 && ( +
+ {manga.genre.map((g) => {g})} +
+ )} + + {manga?.source &&

{manga.source.displayName}

} + {manga?.description &&

{manga.description}

} +
+ )} + + {/* Progress bar */} + {totalCount > 0 && ( +
+
+ {readCount} / {totalCount} read + {Math.round(progressPct)}% +
+
+
+
+
+ )} + +
+ + + {manga?.realUrl && ( + + + + )} +
+ + {/* Start / Continue reading button */} + {continueChapter && ( + + )} + + + {/* ── Download panel ── */} + {chapters.length > 0 && ( +
+ + {dlOpen && ( +
+ {continueChapter && ( + + )} + + +
+ )} +
+ )} + +

+ {totalCount} {totalCount === 1 ? "chapter" : "chapters"} +

+
+ + {/* ── Chapter list ── */} +
+ {/* List header with sort + pagination */} +
+ + + {totalPages > 1 && ( +
+ + {chapterPage} / {totalPages} + +
+ )} +
+ +
+ {loadingChapters && chapters.length === 0 ? ( + Array.from({ length: 8 }).map((_, i) => ( +
+
+
+
+ )) + ) : ( + pageChapters.map((ch) => { + const idxInSorted = sortedChapters.indexOf(ch); + return ( + + )} +
+ + ); + }) + )} +
+ + {/* Bottom pagination */} + {totalPages > 1 && ( +
+ + {chapterPage} / {totalPages} + +
+ )} +
+ + {/* Context menu */} + {ctx && ( + setCtx(null)} + /> + )} +
+ ); +} \ No newline at end of file diff --git a/src/components/settings/Settings.module.css b/src/components/settings/Settings.module.css new file mode 100644 index 0000000..1a8000c --- /dev/null +++ b/src/components/settings/Settings.module.css @@ -0,0 +1,271 @@ +/* ─── Backdrop ── */ +.backdrop { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.72); + z-index: var(--z-settings); + display: flex; + align-items: center; + justify-content: center; + animation: fadeIn 0.12s ease both; + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); +} + +/* ─── Modal shell ── */ +.modal { + width: min(720px, calc(100vw - 48px)); + height: min(520px, calc(100vh - 80px)); + display: flex; + background: var(--bg-surface); + border: 1px solid var(--border-base); + border-radius: var(--radius-xl); + overflow: hidden; + animation: scaleIn 0.16s ease both; + box-shadow: 0 0 0 1px var(--border-dim), 0 24px 64px rgba(0,0,0,0.6), 0 8px 24px rgba(0,0,0,0.4); +} + +/* ─── Sidebar ── */ +.sidebar { + width: 152px; + flex-shrink: 0; + background: var(--bg-raised); + border-right: 1px solid var(--border-dim); + display: flex; + flex-direction: column; + padding: var(--sp-5) var(--sp-3); + gap: var(--sp-1); +} + +.modalTitle { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; + padding: 0 var(--sp-2) var(--sp-3); +} + +.nav { display: flex; flex-direction: column; gap: 1px; } + +.navItem { + display: flex; + align-items: center; + gap: var(--sp-2); + padding: 7px var(--sp-2); + border-radius: var(--radius-md); + font-size: var(--text-sm); + color: var(--text-muted); + background: none; + border: none; + cursor: pointer; + text-align: left; + width: 100%; + transition: background var(--t-fast), color var(--t-fast); +} +.navItem:hover { background: var(--bg-overlay); color: var(--text-secondary); } +.navActive { background: var(--accent-muted); color: var(--accent-fg); border: 1px solid var(--accent-dim); } +.navActive:hover { background: var(--accent-muted); color: var(--accent-fg); } + +/* ─── Content ── */ +.content { flex: 1; display: flex; flex-direction: column; overflow: hidden; } + +.contentHeader { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--sp-5) var(--sp-6) var(--sp-4); + border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.contentTitle { + font-size: var(--text-md); + font-weight: var(--weight-medium); + color: var(--text-secondary); + letter-spacing: var(--tracking-tight); +} + +.closeBtn { + display: flex; align-items: center; justify-content: center; + width: 26px; height: 26px; border-radius: var(--radius-sm); + color: var(--text-faint); + transition: color var(--t-base), background var(--t-base); +} +.closeBtn:hover { color: var(--text-muted); background: var(--bg-raised); } + +.contentBody { flex: 1; overflow-y: auto; padding: var(--sp-5) var(--sp-6); } + +/* ─── Panel / Section ── */ +.panel { display: flex; flex-direction: column; gap: var(--sp-6); } +.section { display: flex; flex-direction: column; gap: 1px; } + +.sectionTitle { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; + margin-bottom: var(--sp-2); +} + +/* ─── Toggle ── */ +.toggleRow { + display: flex; align-items: center; justify-content: space-between; + gap: var(--sp-4); padding: 10px var(--sp-3); border-radius: var(--radius-md); + cursor: pointer; transition: background var(--t-fast); +} +.toggleRow:hover { background: var(--bg-raised); } + +.toggleInfo { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; } +.toggleLabel { font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-tight); } +.toggleDesc { font-size: var(--text-xs); color: var(--text-muted); line-height: var(--leading-snug); } + +.toggle { + position: relative; width: 34px; height: 18px; border-radius: var(--radius-full); + background: var(--bg-subtle); border: 1px solid var(--border-strong); flex-shrink: 0; + cursor: pointer; transition: background var(--t-base), border-color var(--t-base); +} +.toggleOn { background: var(--accent-dim); border-color: var(--accent); } +.toggleThumb { + position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; + border-radius: 50%; background: var(--text-faint); + transition: transform var(--t-base), background var(--t-base); +} +.toggleOn .toggleThumb { transform: translateX(16px); background: var(--accent-fg); } + +/* ─── Stepper ── */ +.stepRow { + display: flex; align-items: center; justify-content: space-between; + gap: var(--sp-4); padding: 10px var(--sp-3); border-radius: var(--radius-md); + transition: background var(--t-fast); +} +.stepRow:hover { background: var(--bg-raised); } + +.stepControls { display: flex; align-items: center; gap: var(--sp-2); flex-shrink: 0; } + +.stepBtn { + display: flex; align-items: center; justify-content: center; + width: 24px; height: 24px; border-radius: var(--radius-sm); + border: 1px solid var(--border-strong); font-size: var(--text-base); + color: var(--text-muted); transition: background var(--t-base), color var(--t-base); + line-height: 1; +} +.stepBtn:hover:not(:disabled) { background: var(--bg-overlay); color: var(--text-primary); } +.stepBtn:disabled { opacity: 0.25; cursor: default; } + +.stepVal { + font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-secondary); + min-width: 28px; text-align: center; letter-spacing: var(--tracking-wide); +} + +/* ─── Select ── */ +.select { + background: var(--bg-raised); border: 1px solid var(--border-strong); + border-radius: var(--radius-md); padding: 5px 10px; color: var(--text-secondary); + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + outline: none; cursor: pointer; flex-shrink: 0; transition: border-color var(--t-base); + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M0 0l5 6 5-6' fill='%23888'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 8px center; + padding-right: 24px; +} +.select:focus { border-color: var(--border-focus); } +.select option { background: var(--bg-raised); color: var(--text-secondary); } + +/* ─── Scale ── */ +.scaleRow { + display: flex; align-items: center; gap: var(--sp-3); + padding: 10px var(--sp-3); border-radius: var(--radius-md); +} +.scaleSlider { flex: 1; } +.scaleVal { + font-family: var(--font-ui); font-size: var(--text-sm); color: var(--text-secondary); + min-width: 36px; text-align: right; letter-spacing: var(--tracking-wide); +} +.scaleHint { + display: flex; flex-wrap: wrap; gap: var(--sp-1); + padding: 0 var(--sp-3) var(--sp-2); +} +.scalePreset { + font-family: var(--font-ui); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide); + padding: 3px 8px; border-radius: var(--radius-sm); border: 1px solid var(--border-dim); + background: none; color: var(--text-faint); cursor: pointer; + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} +.scalePreset:hover { color: var(--text-muted); border-color: var(--border-strong); } +.scalePresetActive { + background: var(--accent-muted); border-color: var(--accent-dim); color: var(--accent-fg); +} + +/* ─── Text input ── */ +.textInput { + background: var(--bg-raised); border: 1px solid var(--border-strong); + border-radius: var(--radius-md); padding: 5px 10px; color: var(--text-secondary); + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + outline: none; flex-shrink: 0; width: 180px; + transition: border-color var(--t-base); +} +.textInput:focus { border-color: var(--border-focus); } + +/* ─── Keybinds ── */ +.kbHeader { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-2); } +.kbHint { font-size: var(--text-xs); color: var(--text-faint); padding: 0 var(--sp-3) var(--sp-3); } +.resetAllBtn { + font-family: var(--font-ui); font-size: var(--text-xs); color: var(--text-faint); + letter-spacing: var(--tracking-wide); padding: 3px 8px; border-radius: var(--radius-sm); + border: 1px solid var(--border-dim); background: none; cursor: pointer; + transition: color var(--t-base), border-color var(--t-base); +} +.resetAllBtn:hover { color: var(--color-error); border-color: var(--color-error); } + +.kbList { display: flex; flex-direction: column; gap: 1px; } + +.kbRow { + display: flex; align-items: center; justify-content: space-between; + gap: var(--sp-4); padding: 8px var(--sp-3); border-radius: var(--radius-md); + transition: background var(--t-fast); +} +.kbRow:hover { background: var(--bg-raised); } + +.kbLabel { font-size: var(--text-sm); color: var(--text-secondary); flex: 1; } +.kbRight { display: flex; align-items: center; gap: var(--sp-2); flex-shrink: 0; } + +.kbBind { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 4px 12px; border-radius: var(--radius-sm); + border: 1px solid var(--border-strong); background: var(--bg-overlay); + color: var(--text-secondary); cursor: pointer; min-width: 100px; text-align: center; + transition: border-color var(--t-base), background var(--t-base), color var(--t-base); +} +.kbBind:hover { border-color: var(--accent); color: var(--accent-fg); } +.kbBindListening { + border-color: var(--accent); background: var(--accent-muted); color: var(--accent-fg); + animation: pulse 1s ease infinite; +} + +.kbReset { + font-size: var(--text-base); color: var(--text-faint); width: 22px; height: 22px; + border-radius: var(--radius-sm); border: 1px solid transparent; background: none; + cursor: pointer; display: flex; align-items: center; justify-content: center; + transition: color var(--t-base), border-color var(--t-base); +} +.kbReset:hover:not(:disabled) { color: var(--text-muted); border-color: var(--border-dim); } +.kbReset:disabled { opacity: 0.2; cursor: default; } + +/* ─── About ── */ +.aboutBlock { + padding: var(--sp-3); background: var(--bg-raised); border-radius: var(--radius-md); + border: 1px solid var(--border-dim); +} +.aboutLine { font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-base); } +.dangerBtn { + font-family: var(--font-ui); font-size: var(--text-xs); letter-spacing: var(--tracking-wide); + padding: 5px 12px; border-radius: var(--radius-md); + background: none; border: 1px solid var(--color-error); + color: var(--color-error); cursor: pointer; flex-shrink: 0; + transition: background var(--t-base); +} +.dangerBtn:hover:not(:disabled) { background: var(--color-error-bg); } +.dangerBtn:disabled { opacity: 0.3; cursor: default; } \ No newline at end of file diff --git a/src/components/settings/Settings.tsx b/src/components/settings/Settings.tsx new file mode 100644 index 0000000..ea58e21 --- /dev/null +++ b/src/components/settings/Settings.tsx @@ -0,0 +1,435 @@ +import { useEffect, useRef, useState, useCallback } from "react"; +import { X, Book, Image, Sliders, Info, Keyboard, Gear } from "@phosphor-icons/react"; +import { useStore } from "../../store"; +import { KEYBIND_LABELS, DEFAULT_KEYBINDS, eventToKeybind, type Keybinds } from "../../lib/keybinds"; +import type { Settings, FitMode } from "../../store"; +import s from "./Settings.module.css"; + +type Tab = "general" | "reader" | "library" | "performance" | "keybinds" | "about"; + +const TABS: { id: Tab; label: string; icon: React.ReactNode }[] = [ + { id: "general", label: "General", icon: }, + { id: "reader", label: "Reader", icon: }, + { id: "library", label: "Library", icon: }, + { id: "performance", label: "Performance", icon: }, + { id: "keybinds", label: "Keybinds", icon: }, + { id: "about", label: "About", icon: }, +]; + +// ── Primitives ──────────────────────────────────────────────────────────────── + +function Toggle({ checked, onChange, label, description }: { + checked: boolean; onChange: (v: boolean) => void; label: string; description?: string; +}) { + return ( + + ); +} + +function Stepper({ value, onChange, min, max, step = 1, label, description }: { + value: number; onChange: (v: number) => void; + min: number; max: number; step?: number; label: string; description?: string; +}) { + return ( +
+
+ {label} + {description && {description}} +
+
+ + {value} + +
+
+ ); +} + +function SelectRow({ value, options, onChange, label, description }: { + value: string; + options: { value: string; label: string }[]; + onChange: (v: string) => void; + label: string; + description?: string; +}) { + return ( +
+
+ {label} + {description && {description}} +
+ +
+ ); +} + +function TextRow({ value, onChange, label, description, placeholder }: { + value: string; onChange: (v: string) => void; + label: string; description?: string; placeholder?: string; +}) { + return ( +
+
+ {label} + {description && {description}} +
+ onChange(e.target.value)} + placeholder={placeholder} spellCheck={false} /> +
+ ); +} + +// ── Tabs ────────────────────────────────────────────────────────────────────── + +function GeneralTab({ settings, update }: { settings: Settings; update: (p: Partial) => void }) { + return ( +
+
+

Interface Scale

+
+ update({ uiScale: Number(e.target.value) })} + className={s.scaleSlider} /> + {settings.uiScale}% + +
+

+ {[70, 80, 90, 100, 110, 125, 150].map((v) => ( + + ))} +

+
+
+

Server

+ update({ serverUrl: v })} + placeholder="http://localhost:4567" /> + update({ serverBinary: v })} + placeholder="tachidesk-server" /> + update({ autoStartServer: v })} /> +
+
+ ); +} + +function ReaderTab({ settings, update }: { settings: Settings; update: (p: Partial) => void }) { + return ( +
+
+

Page Layout

+ update({ pageStyle: v as Settings["pageStyle"] })} /> + update({ readingDirection: v as Settings["readingDirection"] })} /> + update({ offsetDoubleSpreads: v })} /> + update({ pageGap: v })} /> +
+ +
+

Fit & Zoom

+ update({ fitMode: v as FitMode })} /> +
+
+ Max page width + Pixel cap for fit-width mode. Ctrl+scroll in reader to adjust live. +
+
+ + {settings.maxPageWidth ?? 900}px + +
+
+ update({ optimizeContrast: v })} /> +
+ +
+

Behaviour

+ update({ autoMarkRead: v })} /> + update({ preloadPages: v })} /> +
+
+ ); +} + +function LibraryTab({ settings, update }: { settings: Settings; update: (p: Partial) => void }) { + const clearHistory = useStore((s) => s.clearHistory); + const historyLen = useStore((s) => s.history.length); + return ( +
+
+

Display

+ update({ libraryCropCovers: v })} /> + update({ showNsfw: v })} /> + update({ libraryPageSize: v })} /> +
+
+

Chapters

+ update({ chapterSortDir: v as Settings["chapterSortDir"] })} /> + update({ chapterPageSize: v })} /> +
+
+

Extensions

+ update({ preferredExtensionLang: v })} /> +
+
+

History

+
+
+ Reading history + {historyLen} entries stored +
+ +
+
+
+ ); +} + +function PerformanceTab({ settings, update }: { settings: Settings; update: (p: Partial) => void }) { + return ( +
+
+

Rendering

+ update({ gpuAcceleration: v })} /> +
+
+

Interface

+ update({ compactSidebar: v })} /> +
+
+ ); +} + +function KeybindsTab({ settings, update, reset }: { + settings: Settings; update: (p: Partial) => void; reset: () => void; +}) { + const [listening, setListening] = useState(null); + + useEffect(() => { + if (!listening) return; + function onKey(e: KeyboardEvent) { + e.preventDefault(); e.stopPropagation(); + const bind = eventToKeybind(e); + if (!bind) return; + update({ keybinds: { ...settings.keybinds, [listening!]: bind } }); + setListening(null); + } + window.addEventListener("keydown", onKey, true); + return () => window.removeEventListener("keydown", onKey, true); + }, [listening, settings.keybinds]); + + return ( +
+
+
+

Keyboard shortcuts

+ +
+

Click a key to rebind, then press the new combination.

+
+ {(Object.keys(KEYBIND_LABELS) as (keyof Keybinds)[]).map((key) => { + const isListening = listening === key; + const isDefault = settings.keybinds[key] === DEFAULT_KEYBINDS[key]; + return ( +
+ {KEYBIND_LABELS[key]} +
+ + +
+
+ ); + })} +
+
+
+ ); +} + +function AboutTab() { + return ( +
+
+

Moku

+
+

A manga reader frontend for Suwayomi / Tachidesk.

+

+ Built with Tauri + React. Connects to tachidesk-server. +

+
+
+
+ ); +} + +// ── Modal ───────────────────────────────────────────────────────────────────── + +export default function SettingsModal() { + const [tab, setTab] = useState("general"); + const closeSettings = useStore((s) => s.closeSettings); + const settings = useStore((s) => s.settings); + const updateSettings = useStore((s) => s.updateSettings); + const resetKeybinds = useStore((s) => s.resetKeybinds); + const backdropRef = useRef(null); + + const handleBackdrop = useCallback( + (e: React.MouseEvent) => { if (e.target === backdropRef.current) closeSettings(); }, + [closeSettings] + ); + + useEffect(() => { + const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") closeSettings(); }; + window.addEventListener("keydown", onKey); + return () => window.removeEventListener("keydown", onKey); + }, [closeSettings]); + + return ( +
+
+
+

Settings

+ +
+
+
+

{TABS.find((t) => t.id === tab)?.label}

+ +
+
+ {tab === "general" && } + {tab === "reader" && } + {tab === "library" && } + {tab === "performance" && } + {tab === "keybinds" && } + {tab === "about" && } +
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/components/sources/SourceBrowse.module.css b/src/components/sources/SourceBrowse.module.css new file mode 100644 index 0000000..dd0f274 --- /dev/null +++ b/src/components/sources/SourceBrowse.module.css @@ -0,0 +1,243 @@ +.root { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; + animation: fadeIn 0.14s ease both; +} + +.header { + display: flex; + align-items: center; + gap: var(--sp-3); + padding: var(--sp-4) var(--sp-6); + border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.back { + display: flex; + align-items: center; + gap: var(--sp-2); + color: var(--text-muted); + font-size: var(--text-xs); + font-family: var(--font-ui); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; + transition: color var(--t-base); + flex-shrink: 0; +} + +.back:hover { color: var(--text-secondary); } + +.sourceName { + font-size: var(--text-base); + font-weight: var(--weight-medium); + color: var(--text-secondary); + letter-spacing: var(--tracking-tight); +} + +.toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--sp-3); + padding: var(--sp-3) var(--sp-6); + border-bottom: 1px solid var(--border-dim); + flex-shrink: 0; + flex-wrap: wrap; +} + +.tabs { display: flex; gap: 2px; } + +.tab { + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); + padding: 4px 10px; + border-radius: var(--radius-md); + border: none; + background: none; + color: var(--text-muted); + cursor: pointer; + transition: background var(--t-base), color var(--t-base); +} + +.tab:hover { background: var(--bg-raised); color: var(--text-secondary); } +.tabActive { background: var(--accent-muted); color: var(--accent-fg); } +.tabActive:hover { background: var(--accent-muted); color: var(--accent-fg); } + +.searchWrap { + position: relative; + display: flex; + align-items: center; +} + +.searchIcon { + position: absolute; + left: 9px; + color: var(--text-faint); + pointer-events: none; +} + +.search { + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + padding: 5px 10px 5px 26px; + color: var(--text-primary); + font-size: var(--text-sm); + width: 200px; + outline: none; + transition: border-color var(--t-base); +} + +.search::placeholder { color: var(--text-faint); } +.search:focus { border-color: var(--border-strong); } + +/* ─── Responsive grid ─────────────────────────────────────────────────────── */ +/* + Adapts to screen width: + - narrow (< ~640px): 2 columns + - default (~640-900px): auto-fill ~120px → 4–6 cols + - wide (> ~900px): more columns, stays readable +*/ +.grid, .loadingGrid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(clamp(100px, 14vw, 140px), 1fr)); + gap: var(--sp-4); + padding: var(--sp-5) var(--sp-6); + overflow-y: auto; + flex: 1; + align-content: start; + /* GPU for smooth scroll */ + will-change: scroll-position; + -webkit-overflow-scrolling: touch; + contain: layout style; +} + +.card { + background: none; + border: none; + padding: 0; + cursor: pointer; + text-align: left; +} + +.card:hover .cover { filter: brightness(1.06); } +.card:hover .title { color: var(--text-primary); } + +.coverWrap { + position: relative; + aspect-ratio: 2 / 3; + overflow: hidden; + border-radius: var(--radius-md); + background: var(--bg-raised); + border: 1px solid var(--border-dim); + transform: translateZ(0); +} + +.cover { + width: 100%; + height: 100%; + object-fit: cover; + transition: filter var(--t-base); + will-change: filter; +} + +.inLibraryBadge { + position: absolute; + bottom: var(--sp-1); + left: var(--sp-1); + font-family: var(--font-ui); + font-size: var(--text-2xs); + letter-spacing: var(--tracking-wide); + text-transform: uppercase; + background: var(--accent-muted); + color: var(--accent-fg); + border: 1px solid var(--accent-dim); + padding: 2px 5px; + border-radius: var(--radius-sm); +} + +.title { + margin-top: var(--sp-2); + font-size: var(--text-sm); + /* Use secondary not muted - readable against dark bg */ + color: var(--text-secondary); + line-height: var(--leading-snug); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + transition: color var(--t-base); +} + +/* Skeleton */ +.cardSkeleton { padding: 0; } + +.coverSkeleton { + aspect-ratio: 2 / 3; + border-radius: var(--radius-md); +} + +.titleSkeleton { + height: 11px; + margin-top: var(--sp-2); + width: 75%; +} + +/* Pagination */ +.pagination { + display: flex; + align-items: center; + justify-content: center; + gap: var(--sp-4); + padding: var(--sp-4); + border-top: 1px solid var(--border-dim); + flex-shrink: 0; +} + +.pageBtn { + display: flex; + align-items: center; + gap: var(--sp-2); + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); + color: var(--text-muted); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + padding: 5px 12px; + background: none; + cursor: pointer; + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} + +.pageBtn:hover:not(:disabled) { + color: var(--text-primary); + border-color: var(--border-strong); + background: var(--bg-raised); +} + +.pageBtn:disabled { opacity: 0.3; cursor: default; } + +.pageNum { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-muted); + letter-spacing: var(--tracking-wider); + min-width: 24px; + text-align: center; +} + +.empty { + display: flex; + align-items: center; + justify-content: center; + flex: 1; + color: var(--text-muted); + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); +} \ No newline at end of file diff --git a/src/components/sources/SourceBrowse.tsx b/src/components/sources/SourceBrowse.tsx new file mode 100644 index 0000000..5c90981 --- /dev/null +++ b/src/components/sources/SourceBrowse.tsx @@ -0,0 +1,157 @@ +import { useEffect, useState, useRef } from "react"; +import { ArrowLeft, MagnifyingGlass, ArrowLeft as Prev, ArrowRight as Next } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { FETCH_SOURCE_MANGA } from "../../lib/queries"; +import { useStore } from "../../store"; +import type { Manga } from "../../lib/types"; +import s from "./SourceBrowse.module.css"; + +type BrowseType = "POPULAR" | "LATEST" | "SEARCH"; + +export default function SourceBrowse() { + const activeSource = useStore((state) => state.activeSource); + const setActiveSource = useStore((state) => state.setActiveSource); + const setActiveManga = useStore((state) => state.setActiveManga); + const setNavPage = useStore((state) => state.setNavPage); + + const [mangas, setMangas] = useState([]); + const [loading, setLoading] = useState(true); + const [page, setPage] = useState(1); + const [hasNextPage, setHasNextPage] = useState(false); + const [browseType, setBrowseType] = useState("POPULAR"); + const [search, setSearch] = useState(""); + const [searchInput, setSearchInput] = useState(""); + const searchRef = useRef(null); + + async function fetch(type: BrowseType, p: number, q: string) { + if (!activeSource) return; + setLoading(true); + setMangas([]); + gql<{ fetchSourceManga: { mangas: Manga[]; hasNextPage: boolean } }>( + FETCH_SOURCE_MANGA, + { source: activeSource.id, type, page: p, query: q || null } + ) + .then((d) => { + setMangas(d.fetchSourceManga.mangas); + setHasNextPage(d.fetchSourceManga.hasNextPage); + }) + .catch(console.error) + .finally(() => setLoading(false)); + } + + useEffect(() => { + fetch(browseType, page, search); + }, [activeSource?.id, browseType, page, search]); + + function submitSearch() { + const q = searchInput.trim(); + setSearch(q); + setBrowseType("SEARCH"); + setPage(1); + } + + function setMode(mode: BrowseType) { + if (mode === browseType) return; + setBrowseType(mode); + setSearch(""); + setSearchInput(""); + setPage(1); + } + + function openManga(m: Manga) { + setActiveManga(m); + setNavPage("library"); + } + + if (!activeSource) return null; + + return ( +
+
+ + {activeSource.displayName} +
+ +
+
+ {(["POPULAR", "LATEST"] as BrowseType[]).map((mode) => ( + + ))} + {search && ( + + )} +
+ +
+ + setSearchInput(e.target.value)} + onKeyDown={(e) => e.key === "Enter" && submitSearch()} + /> +
+
+ + {loading ? ( +
+ {Array.from({ length: 18 }).map((_, i) => ( +
+
+
+
+ ))} +
+ ) : mangas.length === 0 ? ( +
No results.
+ ) : ( +
+ {mangas.map((m) => ( + + ))} +
+ )} + + {!loading && (page > 1 || hasNextPage) && ( +
+ + {page} + +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/components/sources/SourceList.module.css b/src/components/sources/SourceList.module.css new file mode 100644 index 0000000..40a7e81 --- /dev/null +++ b/src/components/sources/SourceList.module.css @@ -0,0 +1,150 @@ +.root { + padding: var(--sp-6); + overflow-y: auto; + height: 100%; + animation: fadeIn 0.14s ease both; +} + +.header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: var(--sp-5); +} + +.heading { + font-family: var(--font-ui); + font-size: var(--text-xs); + font-weight: var(--weight-normal); + color: var(--text-faint); + letter-spacing: var(--tracking-wider); + text-transform: uppercase; +} + +.searchWrap { + position: relative; + display: flex; + align-items: center; +} + +.searchIcon { + position: absolute; + left: 9px; + color: var(--text-faint); + pointer-events: none; +} + +.search { + background: var(--bg-raised); + border: 1px solid var(--border-dim); + border-radius: var(--radius-md); + padding: 5px 10px 5px 26px; + color: var(--text-primary); + font-size: var(--text-sm); + width: 180px; + outline: none; + transition: border-color var(--t-base); +} + +.search::placeholder { color: var(--text-faint); } +.search:focus { border-color: var(--border-strong); } + +.langRow { + display: flex; + flex-wrap: wrap; + gap: var(--sp-1); + margin-bottom: var(--sp-4); +} + +.langBtn { + font-family: var(--font-ui); + font-size: var(--text-2xs); + letter-spacing: var(--tracking-wider); + padding: 3px 8px; + border-radius: var(--radius-sm); + border: 1px solid var(--border-dim); + background: none; + color: var(--text-faint); + cursor: pointer; + transition: color var(--t-base), border-color var(--t-base), background var(--t-base); +} + +.langBtn:hover { color: var(--text-muted); border-color: var(--border-strong); } + +.langBtnActive { + background: var(--accent-muted); + border-color: var(--accent-dim); + color: var(--accent-fg); +} + +.langBtnActive:hover { + background: var(--accent-muted); + color: var(--accent-fg); +} + +.list { display: flex; flex-direction: column; gap: 1px; } + +.row { + display: flex; + align-items: center; + gap: var(--sp-3); + padding: 9px var(--sp-3); + border-radius: var(--radius-md); + border: 1px solid transparent; + background: none; + text-align: left; + width: 100%; + cursor: pointer; + transition: background var(--t-fast), border-color var(--t-fast); +} + +.row:hover { background: var(--bg-raised); border-color: var(--border-dim); } + +.icon { + width: 32px; + height: 32px; + border-radius: var(--radius-md); + object-fit: cover; + flex-shrink: 0; + background: var(--bg-raised); +} + +.info { flex: 1; display: flex; flex-direction: column; gap: 2px; overflow: hidden; } + +.name { + font-size: var(--text-base); + font-weight: var(--weight-medium); + color: var(--text-secondary); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.meta { + font-family: var(--font-ui); + font-size: var(--text-2xs); + color: var(--text-faint); + letter-spacing: var(--tracking-wide); +} + +.arrow { + font-family: var(--font-ui); + font-size: var(--text-xs); + color: var(--text-faint); + flex-shrink: 0; + opacity: 0; + transition: opacity var(--t-base); +} + +.row:hover .arrow { opacity: 1; } + +.empty { + display: flex; + align-items: center; + justify-content: center; + height: 160px; + color: var(--text-faint); + font-family: var(--font-ui); + font-size: var(--text-xs); + letter-spacing: var(--tracking-wide); +} \ No newline at end of file diff --git a/src/components/sources/SourceList.tsx b/src/components/sources/SourceList.tsx new file mode 100644 index 0000000..524ef65 --- /dev/null +++ b/src/components/sources/SourceList.tsx @@ -0,0 +1,92 @@ +import { useEffect, useState } from "react"; +import { MagnifyingGlass, CircleNotch } from "@phosphor-icons/react"; +import { gql, thumbUrl } from "../../lib/client"; +import { GET_SOURCES } from "../../lib/queries"; +import { useStore } from "../../store"; +import type { Source } from "../../lib/types"; +import s from "./SourceList.module.css"; + +export default function SourceList() { + const [sources, setSources] = useState([]); + const [loading, setLoading] = useState(true); + const [lang, setLang] = useState("all"); + const [search, setSearch] = useState(""); + const setActiveSource = useStore((state) => state.setActiveSource); + + useEffect(() => { + gql<{ sources: { nodes: Source[] } }>(GET_SOURCES) + .then((d) => setSources(d.sources.nodes)) + .catch(console.error) + .finally(() => setLoading(false)); + }, []); + + const langs = ["all", ...Array.from(new Set(sources.map((s) => s.lang))).sort()]; + + const filtered = sources.filter((src) => { + if (src.id === "0") return false; // hide local source + const matchLang = lang === "all" || src.lang === lang; + const matchSearch = + src.name.toLowerCase().includes(search.toLowerCase()) || + src.displayName.toLowerCase().includes(search.toLowerCase()); + return matchLang && matchSearch; + }); + + return ( +
+
+

Sources

+
+ + setSearch(e.target.value)} + /> +
+
+ +
+ {langs.map((l) => ( + + ))} +
+ + {loading ? ( +
+ +
+ ) : filtered.length === 0 ? ( +
No sources found.
+ ) : ( +
+ {filtered.map((src) => ( + + ))} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/lib/client.ts b/src/lib/client.ts new file mode 100644 index 0000000..53599e7 --- /dev/null +++ b/src/lib/client.ts @@ -0,0 +1,48 @@ +const SUWAYOMI = "http://127.0.0.1:4567"; +const GQL = `${SUWAYOMI}/api/graphql`; + +export function thumbUrl(path: string): string { + return `${SUWAYOMI}${path}`; +} + +interface GQLResponse { + data: T; + errors?: { message: string }[]; +} + +// Retry with exponential backoff — Suwayomi may not be ready on first load +async function fetchWithRetry(url: string, init: RequestInit, retries = 8, delayMs = 500): Promise { + for (let i = 0; i < retries; i++) { + try { + const res = await fetch(url, init); + return res; + } catch (e) { + if (i === retries - 1) throw e; + await new Promise((r) => setTimeout(r, delayMs * Math.pow(1.5, i))); + } + } + throw new Error("unreachable"); +} + +export async function gql( + query: string, + variables?: Record +): Promise { + const res = await fetchWithRetry(GQL, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ query, variables }), + }); + + if (!res.ok) { + throw new Error(`Suwayomi HTTP ${res.status}`); + } + + const json: GQLResponse = await res.json(); + + if (json.errors?.length) { + throw new Error(json.errors[0].message); + } + + return json.data; +} \ No newline at end of file diff --git a/src/lib/keybinds.ts b/src/lib/keybinds.ts new file mode 100644 index 0000000..62f05db --- /dev/null +++ b/src/lib/keybinds.ts @@ -0,0 +1,65 @@ +export interface Keybinds { + pageRight: string; + pageLeft: string; + firstPage: string; + lastPage: string; + chapterRight: string; + chapterLeft: string; + exitReader: string; + close: string; + toggleReadingDirection: string; + togglePageStyle: string; + toggleOffsetDoubleSpreads: string; + toggleFullscreen: string; + openSettings: string; + toggleSidebar: string; +} + +export const DEFAULT_KEYBINDS: Keybinds = { + pageRight: "ArrowRight", + pageLeft: "ArrowLeft", + firstPage: "ctrl+ArrowLeft", + lastPage: "ctrl+ArrowRight", + chapterRight: "]", + chapterLeft: "[", + exitReader: "Backspace", + close: "Escape", + toggleReadingDirection: "d", + togglePageStyle: "q", + toggleOffsetDoubleSpreads: "u", + toggleFullscreen: "f", + openSettings: "o", + toggleSidebar: "s", +}; + +export const KEYBIND_LABELS: Record = { + pageRight: "Turn page right", + pageLeft: "Turn page left", + firstPage: "First page", + lastPage: "Last page", + chapterRight: "Change chapter right", + chapterLeft: "Change chapter left", + exitReader: "Exit reader", + close: "Close", + toggleReadingDirection: "Toggle reading direction", + togglePageStyle: "Toggle page style", + toggleOffsetDoubleSpreads: "Toggle double page offset", + toggleFullscreen: "Toggle fullscreen", + openSettings: "Show settings menu", + toggleSidebar: "Toggle sidebar", +}; + +export function eventToKeybind(e: KeyboardEvent): string { + if (["Control", "Alt", "Shift", "Meta"].includes(e.key)) return ""; + const parts: string[] = []; + if (e.ctrlKey) parts.push("ctrl"); + if (e.altKey) parts.push("alt"); + if (e.shiftKey) parts.push("shift"); + if (e.metaKey) parts.push("meta"); + parts.push(e.key); + return parts.join("+"); +} + +export function matchesKeybind(e: KeyboardEvent, bind: string): boolean { + return eventToKeybind(e) === bind; +} \ No newline at end of file diff --git a/src/lib/queries.ts b/src/lib/queries.ts new file mode 100644 index 0000000..eb542fe --- /dev/null +++ b/src/lib/queries.ts @@ -0,0 +1,350 @@ +// ── Library ────────────────────────────────────────────────────────────────── + +// Full library query with chapter progress — only used for inLibrary manga +export const GET_LIBRARY = ` + query GetLibrary { + mangas(condition: { inLibrary: true }) { + nodes { + id + title + thumbnailUrl + inLibrary + downloadCount + unreadCount + chapters { + totalCount + } + } + } + } +`; + +// Lightweight query for browse/search (no progress needed) +export const GET_ALL_MANGA = ` + query GetAllManga { + mangas { + nodes { + id + title + thumbnailUrl + inLibrary + downloadCount + } + } + } +`; + +export const GET_MANGA = ` + query GetManga($id: Int!) { + manga(id: $id) { + id + title + description + thumbnailUrl + status + author + artist + genre + inLibrary + realUrl + source { + id + name + displayName + } + } + } +`; + +export const GET_CHAPTERS = ` + query GetChapters($mangaId: Int!) { + chapters(condition: { mangaId: $mangaId }) { + nodes { + id + name + chapterNumber + sourceOrder + isRead + isDownloaded + isBookmarked + pageCount + mangaId + uploadDate + realUrl + lastPageRead + scanlator + } + } + } +`; + +export const FETCH_CHAPTERS = ` + mutation FetchChapters($mangaId: Int!) { + fetchChapters(input: { mangaId: $mangaId }) { + chapters { + id + name + chapterNumber + sourceOrder + isRead + isDownloaded + isBookmarked + pageCount + mangaId + uploadDate + realUrl + lastPageRead + scanlator + } + } + } +`; + +export const FETCH_CHAPTER_PAGES = ` + mutation FetchChapterPages($chapterId: Int!) { + fetchChapterPages(input: { chapterId: $chapterId }) { + pages + } + } +`; + +export const UPDATE_MANGA = ` + mutation UpdateManga($id: Int!, $inLibrary: Boolean) { + updateManga(input: { id: $id, patch: { inLibrary: $inLibrary } }) { + manga { + id + inLibrary + } + } + } +`; + +export const MARK_CHAPTER_READ = ` + mutation MarkChapterRead($id: Int!, $isRead: Boolean!) { + updateChapter(input: { id: $id, patch: { isRead: $isRead } }) { + chapter { + id + isRead + } + } + } +`; + +export const MARK_CHAPTERS_READ = ` + mutation MarkChaptersRead($ids: [Int!]!, $isRead: Boolean!) { + updateChapters(input: { ids: $ids, patch: { isRead: $isRead } }) { + chapters { + id + isRead + } + } + } +`; + +export const DELETE_DOWNLOADED_CHAPTERS = ` + mutation DeleteDownloadedChapters($ids: [Int!]!) { + deleteDownloadedChapters(input: { ids: $ids }) { + chapters { + id + isDownloaded + } + } + } +`; + +// ── Downloads ───────────────────────────────────────────────────────────────── +// Updated to include manga title, thumbnail, and pageCount + +export const GET_DOWNLOAD_STATUS = ` + query GetDownloadStatus { + downloadStatus { + state + queue { + progress + state + chapter { + id + name + pageCount + mangaId + manga { + id + title + thumbnailUrl + } + } + } + } + } +`; + +export const ENQUEUE_DOWNLOAD = ` + mutation EnqueueDownload($chapterId: Int!) { + enqueueChapterDownload(input: { id: $chapterId }) { + downloadStatus { + state + queue { + progress + state + chapter { + id + name + pageCount + mangaId + manga { id title thumbnailUrl } + } + } + } + } + } +`; + +export const ENQUEUE_CHAPTERS_DOWNLOAD = ` + mutation EnqueueChaptersDownload($chapterIds: [Int!]!) { + enqueueChapterDownloads(input: { ids: $chapterIds }) { + downloadStatus { + state + } + } + } +`; + +export const DEQUEUE_DOWNLOAD = ` + mutation DequeueDownload($chapterId: Int!) { + dequeueChapterDownload(input: { id: $chapterId }) { + downloadStatus { + state + } + } + } +`; + +export const START_DOWNLOADER = ` + mutation StartDownloader { + startDownloader { + downloadStatus { state } + } + } +`; + +export const STOP_DOWNLOADER = ` + mutation StopDownloader { + stopDownloader { + downloadStatus { state } + } + } +`; + +export const CLEAR_DOWNLOADER = ` + mutation ClearDownloader { + clearDownloader { + downloadStatus { + state + queue { + progress + state + chapter { + id name pageCount mangaId + manga { id title thumbnailUrl } + } + } + } + } + } +`; + +// ── Sources ─────────────────────────────────────────────────────────────────── + +export const GET_SOURCES = ` + query GetSources { + sources { + nodes { + id + name + lang + displayName + iconUrl + isNsfw + } + } + } +`; + +export const FETCH_SOURCE_MANGA = ` + mutation FetchSourceManga($source: LongString!, $type: FetchSourceMangaType!, $page: Int!, $query: String) { + fetchSourceManga(input: { source: $source, type: $type, page: $page, query: $query }) { + mangas { + id + title + thumbnailUrl + inLibrary + } + hasNextPage + } + } +`; + +// ── Extensions ──────────────────────────────────────────────────────────────── + +export const GET_EXTENSIONS = ` + query GetExtensions { + extensions { + nodes { + apkName + pkgName + name + lang + versionName + isInstalled + isObsolete + hasUpdate + iconUrl + } + } + } +`; + +export const FETCH_EXTENSIONS = ` + mutation FetchExtensions { + fetchExtensions(input: {}) { + extensions { + apkName + pkgName + name + lang + versionName + isInstalled + isObsolete + hasUpdate + iconUrl + } + } + } +`; + +export const UPDATE_EXTENSION = ` + mutation UpdateExtension($id: String!, $install: Boolean, $uninstall: Boolean, $update: Boolean) { + updateExtension(input: { id: $id, patch: { install: $install, uninstall: $uninstall, update: $update } }) { + extension { + apkName + pkgName + name + isInstalled + hasUpdate + } + } + } +`; + +export const INSTALL_EXTERNAL_EXTENSION = ` + mutation InstallExternalExtension($url: String!) { + installExternalExtension(input: { extensionUrl: $url }) { + extension { + apkName + pkgName + name + isInstalled + } + } + } +`; \ No newline at end of file diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..f29ca1b --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,89 @@ +export interface Manga { + id: number; + title: string; + thumbnailUrl: string; + inLibrary: boolean; + downloadCount?: number; + unreadCount?: number; + description?: string | null; + status?: string | null; + author?: string | null; + artist?: string | null; + genre?: string[]; + realUrl?: string | null; + source?: { + id: string; + name: string; + displayName: string; + } | null; +} + +export interface Chapter { + id: number; + name: string; + chapterNumber: number; + sourceOrder: number; + isRead: boolean; + isDownloaded: boolean; + isBookmarked: boolean; + pageCount: number; + mangaId: number; + uploadDate?: string | null; + realUrl?: string | null; + lastPageRead?: number; + scanlator?: string | null; +} + +export interface MangaDetail extends Manga { + description: string | null; + author: string | null; + artist: string | null; + status: string | null; + genre: string[]; +} + +export interface Source { + id: string; + name: string; + lang: string; + displayName: string; + iconUrl: string; + isNsfw: boolean; +} + +export interface Extension { + apkName: string; + pkgName: string; + name: string; + lang: string; + versionName: string; + isInstalled: boolean; + isObsolete: boolean; + hasUpdate: boolean; + iconUrl: string; +} + +export interface DownloadQueueItem { + progress: number; + state: "QUEUED" | "DOWNLOADING" | "FINISHED" | "ERROR"; + chapter: { + id: number; + name: string; + mangaId: number; + pageCount: number; + manga: { + id: number; + title: string; + thumbnailUrl: string; + } | null; + }; +} + +export interface DownloadStatus { + state: "STARTED" | "STOPPED"; + queue: DownloadQueueItem[]; +} + +export interface Connection { + nodes: T[]; +} \ No newline at end of file diff --git a/src/lib/util.ts b/src/lib/util.ts new file mode 100644 index 0000000..db01269 --- /dev/null +++ b/src/lib/util.ts @@ -0,0 +1,5 @@ +import { clsx, type ClassValue } from "clsx"; + +export function cn(...inputs: ClassValue[]) { + return clsx(inputs); +} \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..a5b9a95 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + +); \ No newline at end of file diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..4ca39fe --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,174 @@ +import { create } from "zustand"; +import { persist } from "zustand/middleware"; +import type { Manga, Chapter, Source } from "../lib/types"; +import { DEFAULT_KEYBINDS, type Keybinds } from "../lib/keybinds"; + +export type PageStyle = "single" | "double" | "longstrip"; +export type FitMode = "width" | "height" | "screen" | "original"; +export type LibraryFilter = "all" | "library" | "downloaded"; +export type NavPage = "library" | "sources" | "downloads" | "extensions" | "history" | "search"; +export type ReadingDirection = "ltr" | "rtl"; +export type ChapterSortDir = "desc" | "asc"; + +export interface HistoryEntry { + mangaId: number; + mangaTitle: string; + thumbnailUrl: string; + chapterId: number; + chapterName: string; + pageNumber: number; + readAt: number; +} + +export interface ActiveDownload { + chapterId: number; + mangaId: number; + progress: number; +} + +export interface Settings { + pageStyle: PageStyle; + readingDirection: ReadingDirection; + fitMode: FitMode; + maxPageWidth: number; + pageGap: boolean; + optimizeContrast: boolean; + offsetDoubleSpreads: boolean; + preloadPages: number; + autoMarkRead: boolean; + libraryCropCovers: boolean; + libraryPageSize: number; + showNsfw: boolean; + chapterSortDir: ChapterSortDir; + chapterPageSize: number; + uiScale: number; + compactSidebar: boolean; + gpuAcceleration: boolean; + serverUrl: string; + serverBinary: string; + autoStartServer: boolean; + preferredExtensionLang: string; + keybinds: Keybinds; +} + +export const DEFAULT_SETTINGS: Settings = { + pageStyle: "single", + readingDirection: "ltr", + fitMode: "width", + maxPageWidth: 900, + pageGap: true, + optimizeContrast: false, + offsetDoubleSpreads: false, + preloadPages: 3, + autoMarkRead: true, + libraryCropCovers: true, + libraryPageSize: 48, + showNsfw: false, + chapterSortDir: "desc", + chapterPageSize: 25, + uiScale: 100, + compactSidebar: false, + gpuAcceleration: true, + serverUrl: "http://localhost:4567", + serverBinary: "tachidesk-server", + autoStartServer: true, + preferredExtensionLang: "en", + keybinds: DEFAULT_KEYBINDS, +}; + +interface Store { + navPage: NavPage; + setNavPage: (page: NavPage) => void; + activeManga: Manga | null; + setActiveManga: (manga: Manga | null) => void; + activeChapter: Chapter | null; + activeChapterList: Chapter[]; + openReader: (chapter: Chapter, chapterList: Chapter[]) => void; + closeReader: () => void; + activeSource: Source | null; + setActiveSource: (source: Source | null) => void; + pageUrls: string[]; + setPageUrls: (urls: string[]) => void; + pageNumber: number; + setPageNumber: (n: number) => void; + libraryFilter: LibraryFilter; + setLibraryFilter: (filter: LibraryFilter) => void; + libraryTagFilter: string[]; + setLibraryTagFilter: (tags: string[]) => void; + settingsOpen: boolean; + openSettings: () => void; + closeSettings: () => void; + activeDownloads: ActiveDownload[]; + setActiveDownloads: (items: ActiveDownload[]) => void; + history: HistoryEntry[]; + addHistory: (entry: HistoryEntry) => void; + clearHistory: () => void; + settings: Settings; + updateSettings: (patch: Partial) => void; + resetKeybinds: () => void; +} + +export const useStore = create()( + persist( + (set) => ({ + navPage: "library", + setNavPage: (navPage) => set({ navPage }), + activeManga: null, + setActiveManga: (activeManga) => set({ activeManga }), + activeChapter: null, + activeChapterList: [], + openReader: (chapter, chapterList) => + set({ activeChapter: chapter, activeChapterList: chapterList, pageUrls: [], pageNumber: 1 }), + closeReader: () => + set({ activeChapter: null, activeChapterList: [], pageUrls: [], pageNumber: 1 }), + activeSource: null, + setActiveSource: (activeSource) => set({ activeSource }), + pageUrls: [], + setPageUrls: (pageUrls) => set({ pageUrls }), + pageNumber: 1, + setPageNumber: (pageNumber) => set({ pageNumber }), + libraryFilter: "library", + setLibraryFilter: (libraryFilter) => set({ libraryFilter }), + libraryTagFilter: [], + setLibraryTagFilter: (libraryTagFilter) => set({ libraryTagFilter }), + settingsOpen: false, + openSettings: () => set({ settingsOpen: true }), + closeSettings: () => set({ settingsOpen: false }), + activeDownloads: [], + setActiveDownloads: (activeDownloads) => set({ activeDownloads }), + history: [], + addHistory: (entry) => + set((s) => { + const deduped = s.history.filter((h) => h.chapterId !== entry.chapterId); + return { history: [entry, ...deduped].slice(0, 300) }; + }), + clearHistory: () => set({ history: [] }), + settings: DEFAULT_SETTINGS, + updateSettings: (patch) => + set((s) => ({ settings: { ...s.settings, ...patch } })), + resetKeybinds: () => + set((s) => ({ settings: { ...s.settings, keybinds: DEFAULT_KEYBINDS } })), + }), + { + name: "moku-store", + partialize: (s) => ({ + settings: s.settings, + navPage: s.navPage, + libraryFilter: s.libraryFilter, + history: s.history, + }), + merge: (persisted: any, current) => ({ + ...current, + ...(persisted as object), + settings: { + ...DEFAULT_SETTINGS, + ...(persisted as any)?.settings, + keybinds: { + ...DEFAULT_KEYBINDS, + ...(persisted as any)?.settings?.keybinds, + }, + }, + }), + } + ) +); \ No newline at end of file diff --git a/src/styles/animations.css b/src/styles/animations.css new file mode 100644 index 0000000..8e75f29 --- /dev/null +++ b/src/styles/animations.css @@ -0,0 +1,59 @@ +/* ───────────────────────────────────────────── + Moku — Animations + ───────────────────────────────────────────── */ + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes fadeUp { + from { opacity: 0; transform: translateY(5px); } + to { opacity: 1; transform: translateY(0); } +} + +@keyframes fadeDown { + from { opacity: 0; transform: translateY(-5px); } + to { opacity: 1; transform: translateY(0); } +} + +@keyframes scaleIn { + from { opacity: 0; transform: scale(0.97); } + to { opacity: 1; transform: scale(1); } +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.35; } +} + +@keyframes shimmer { + from { background-position: -200% 0; } + to { background-position: 200% 0; } +} + +/* Utility classes */ +.anim-fade-in { animation: fadeIn 0.14s ease both; } +.anim-fade-up { animation: fadeUp 0.18s ease both; } +.anim-fade-down { animation: fadeDown 0.18s ease both; } +.anim-scale-in { animation: scaleIn 0.14s ease both; } +.anim-pulse { animation: pulse 1.6s ease infinite; } +.anim-spin { animation: spin 0.7s linear infinite; } + +/* Skeleton shimmer */ +.skeleton { + background: linear-gradient( + 90deg, + var(--bg-raised) 25%, + var(--bg-overlay) 50%, + var(--bg-raised) 75% + ); + background-size: 200% 100%; + animation: shimmer 1.4s ease infinite; + border-radius: var(--radius-sm); +} \ No newline at end of file diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..0d63d3b --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,105 @@ +/* ───────────────────────────────────────────── + Moku — Global Styles + ───────────────────────────────────────────── */ + +@import url("https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap"); +@import "./tokens.css"; +@import "./animations.css"; + +*, *::before, *::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html, body, #root { + height: 100%; + overflow: hidden; +} + +body { + background: var(--bg-void); + color: var(--text-primary); + font-family: var(--font-sans); + font-size: var(--text-base); + line-height: var(--leading-base); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "kern" 1, "liga" 1; + /* GPU: promote root to compositor layer for smooth compositing */ + transform: translateZ(0); +} + +/* Scrollbars */ +::-webkit-scrollbar { width: 4px; height: 4px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { + background: var(--border-strong); + border-radius: var(--radius-full); + transition: background var(--t-base); +} +::-webkit-scrollbar-thumb:hover { background: var(--text-faint); } + +/* Focus */ +:focus-visible { + outline: 1px solid var(--border-focus); + outline-offset: 2px; +} + +/* Selection */ +::selection { + background: var(--accent-dim); + color: var(--accent-fg); +} + +/* Base resets */ +button { + font-family: inherit; + cursor: pointer; + background: none; + border: none; + color: inherit; +} + +input, textarea { + font-family: inherit; + background: none; + border: none; + color: inherit; +} + +img { display: block; } +a { color: inherit; text-decoration: none; } + +/* Range — reader scrubber */ +input[type="range"] { + flex: 1; + appearance: none; + -webkit-appearance: none; + height: 2px; + background: var(--border-strong); + border-radius: var(--radius-full); + outline: none; + cursor: pointer; +} + +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--accent-fg); + cursor: pointer; + transition: background var(--t-base), transform var(--t-base); +} + +input[type="range"]::-webkit-slider-thumb:hover { + background: var(--accent-bright); + transform: scale(1.15); +} + +/* Monospace label utility */ +.mono { + font-family: var(--font-ui); + letter-spacing: var(--tracking-wide); +} \ No newline at end of file diff --git a/src/styles/tokens.css b/src/styles/tokens.css new file mode 100644 index 0000000..c61afa9 --- /dev/null +++ b/src/styles/tokens.css @@ -0,0 +1,109 @@ +/* ───────────────────────────────────────────── + Moku — Design Tokens + Surgical minimalism. One accent. No noise. + ───────────────────────────────────────────── */ + +:root { + /* Backgrounds — near-black, layered by elevation */ + --bg-void: #080808; + --bg-base: #0c0c0c; + --bg-surface: #101010; + --bg-raised: #151515; + --bg-overlay: #1a1a1a; + --bg-subtle: #202020; + + /* Borders */ + --border-dim: #1c1c1c; + --border-base: #242424; + --border-strong: #2e2e2e; + --border-focus: #4a5c4a; + + /* Text — cold whites, readable hierarchy */ + --text-primary: #f0efec; + --text-secondary: #c8c6c0; /* bumped up slightly from b8b6b0 for readability */ + --text-muted: #8a8880; /* bumped up slightly from 6e6c67 */ + --text-faint: #4e4d4a; /* bumped up slightly from 3e3d3a */ + --text-disabled: #2a2a28; + + /* Accent — desaturated sage green */ + --accent: #6b8f6b; + --accent-dim: #2a3d2a; + --accent-muted: #1a251a; + --accent-fg: #a8c4a8; + --accent-bright: #8fb88f; + + /* Semantic */ + --color-error: #c47a7a; + --color-error-bg: #1f1212; + --color-success: #7aab7a; + --color-info: #7a9ec4; + --color-info-bg: #121a1f; + --color-read: #2e2e2c; + + /* Status dots */ + --dot-active: var(--accent); + --dot-inactive: var(--text-faint); + + /* Typography */ + --font-ui: "DM Mono", "Fira Mono", ui-monospace, monospace; + --font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif; + + /* Type scale */ + --text-2xs: 10px; + --text-xs: 11px; + --text-sm: 12px; + --text-base: 13px; + --text-md: 14px; + --text-lg: 15px; + --text-xl: 17px; + --text-2xl: 20px; + --text-3xl: 24px; + + /* Weight */ + --weight-normal: 400; + --weight-medium: 500; + --weight-semi: 600; + + /* Leading */ + --leading-none: 1; + --leading-tight: 1.3; + --leading-snug: 1.45; + --leading-base: 1.6; + + /* Tracking */ + --tracking-tight: -0.02em; + --tracking-normal: 0; + --tracking-wide: 0.06em; + --tracking-wider: 0.1em; + + /* Spacing */ + --sp-1: 4px; + --sp-2: 8px; + --sp-3: 12px; + --sp-4: 16px; + --sp-5: 20px; + --sp-6: 24px; + --sp-8: 32px; + --sp-10: 40px; + + /* Radius */ + --radius-sm: 3px; + --radius-md: 5px; + --radius-lg: 7px; + --radius-xl: 10px; + --radius-2xl: 14px; + --radius-full: 9999px; + + /* Sidebar */ + --sidebar-width: 52px; + + /* Z-index */ + --z-reader: 50; + --z-modal: 100; + --z-settings: 150; + + /* Transitions */ + --t-fast: 0.08s ease; + --t-base: 0.14s ease; + --t-slow: 0.22s ease; +} \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..d0104ed --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} \ No newline at end of file diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..099658c --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..e5c1b33 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + plugins: [react()], + clearScreen: false, + server: { + port: 1420, + strictPort: true, + watch: { + ignored: ["**/src-tauri/**"], + }, + }, +}); \ No newline at end of file