aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@atuin.sh>2024-07-30 16:54:10 +0100
committerGitHub <noreply@github.com>2024-07-30 16:54:10 +0100
commit808138de633e410c1d3867d4fb7cb74967647605 (patch)
treef180b7066b91d8d8d8006219a118439be1621d74 /ui
parentchore(deps): bump debian (#2320) (diff)
downloadatuin-808138de633e410c1d3867d4fb7cb74967647605.zip
chore: remove ui directory (#2329)
This is still in development, but rather than clutter the commit history and issues with an unreleased project I've split the UI into its own repo. Once ready for release, I'll either merge the ui code back in, or just make the repo public.
Diffstat (limited to 'ui')
-rw-r--r--ui/.gitignore28
-rw-r--r--ui/.npmrc1
-rw-r--r--ui/README.md3
-rw-r--r--ui/backend/.gitignore4
-rw-r--r--ui/backend/Cargo.lock7643
-rw-r--r--ui/backend/Cargo.toml59
-rw-r--r--ui/backend/build.rs3
-rw-r--r--ui/backend/capabilities/migrated.json36
-rw-r--r--ui/backend/icons/128x128.pngbin15556 -> 0 bytes
-rw-r--r--ui/backend/icons/128x128@2x.pngbin34984 -> 0 bytes
-rw-r--r--ui/backend/icons/32x32.pngbin2484 -> 0 bytes
-rw-r--r--ui/backend/icons/Square107x107Logo.pngbin12460 -> 0 bytes
-rw-r--r--ui/backend/icons/Square142x142Logo.pngbin17648 -> 0 bytes
-rw-r--r--ui/backend/icons/Square150x150Logo.pngbin18881 -> 0 bytes
-rw-r--r--ui/backend/icons/Square284x284Logo.pngbin39111 -> 0 bytes
-rw-r--r--ui/backend/icons/Square30x30Logo.pngbin2211 -> 0 bytes
-rw-r--r--ui/backend/icons/Square310x310Logo.pngbin43432 -> 0 bytes
-rw-r--r--ui/backend/icons/Square44x44Logo.pngbin3888 -> 0 bytes
-rw-r--r--ui/backend/icons/Square71x71Logo.pngbin7360 -> 0 bytes
-rw-r--r--ui/backend/icons/Square89x89Logo.pngbin9942 -> 0 bytes
-rw-r--r--ui/backend/icons/StoreLogo.pngbin4589 -> 0 bytes
-rw-r--r--ui/backend/icons/icon.icnsbin407317 -> 0 bytes
-rw-r--r--ui/backend/icons/icon.icobin51419 -> 0 bytes
-rw-r--r--ui/backend/icons/icon.pngbin74650 -> 0 bytes
-rw-r--r--ui/backend/rust-toolchain.toml2
-rw-r--r--ui/backend/src/db.rs316
-rw-r--r--ui/backend/src/dotfiles/aliases.rs91
-rw-r--r--ui/backend/src/dotfiles/mod.rs2
-rw-r--r--ui/backend/src/dotfiles/vars.rs57
-rw-r--r--ui/backend/src/install.rs73
-rw-r--r--ui/backend/src/main.rs329
-rw-r--r--ui/backend/src/pty.rs124
-rw-r--r--ui/backend/src/run/migrations.rs13
-rw-r--r--ui/backend/src/run/mod.rs2
-rw-r--r--ui/backend/src/run/pty.rs103
-rw-r--r--ui/backend/src/state.rs10
-rw-r--r--ui/backend/src/store.rs1
-rw-r--r--ui/backend/tauri.conf.json47
-rw-r--r--ui/components.json17
-rw-r--r--ui/icon.pngbin134300 -> 0 bytes
-rw-r--r--ui/index.html14
-rw-r--r--ui/package.json84
-rw-r--r--ui/pnpm-lock.yaml8525
-rw-r--r--ui/postcss.config.js6
-rw-r--r--ui/public/tauri.svg6
-rw-r--r--ui/public/vite.svg1
-rw-r--r--ui/src/App.css27
-rw-r--r--ui/src/App.tsx237
-rw-r--r--ui/src/assets/icon.svg1
-rw-r--r--ui/src/assets/logo-light.svg1
-rw-r--r--ui/src/assets/react.svg1
-rw-r--r--ui/src/components/Button.tsx20
-rw-r--r--ui/src/components/CodeBlock.tsx39
-rw-r--r--ui/src/components/Drawer.tsx24
-rw-r--r--ui/src/components/HistoryList.tsx33
-rw-r--r--ui/src/components/HistorySearch.tsx54
-rw-r--r--ui/src/components/LoginOrRegister.tsx341
-rw-r--r--ui/src/components/Sidebar/Sidebar.tsx328
-rw-r--r--ui/src/components/Sidebar/index.tsx4
-rw-r--r--ui/src/components/dotfiles/Aliases.tsx180
-rw-r--r--ui/src/components/dotfiles/Vars.tsx194
-rw-r--r--ui/src/components/history/HistoryInspect.tsx40
-rw-r--r--ui/src/components/history/HistoryRow.tsx120
-rw-r--r--ui/src/components/history/Stats.tsx161
-rw-r--r--ui/src/components/home/QuickActions.tsx1
-rw-r--r--ui/src/components/runbooks/List.tsx141
-rw-r--r--ui/src/components/runbooks/editor/Editor.tsx200
-rw-r--r--ui/src/components/runbooks/editor/blocks/Directory/index.tsx89
-rw-r--r--ui/src/components/runbooks/editor/blocks/Run/extensions.ts158
-rw-r--r--ui/src/components/runbooks/editor/blocks/Run/index.css9
-rw-r--r--ui/src/components/runbooks/editor/blocks/Run/index.tsx229
-rw-r--r--ui/src/components/runbooks/editor/blocks/Run/terminal.tsx113
-rw-r--r--ui/src/components/runbooks/editor/index.css7
-rw-r--r--ui/src/components/runbooks/editor/ui/DeleteBlockButton.tsx28
-rw-r--r--ui/src/components/ui/alert.tsx59
-rw-r--r--ui/src/components/ui/button.tsx56
-rw-r--r--ui/src/components/ui/card.tsx79
-rw-r--r--ui/src/components/ui/chart.tsx363
-rw-r--r--ui/src/components/ui/data-table.tsx80
-rw-r--r--ui/src/components/ui/dialog.tsx120
-rw-r--r--ui/src/components/ui/dropdown-menu.tsx198
-rw-r--r--ui/src/components/ui/table.tsx117
-rw-r--r--ui/src/components/ui/toast.tsx127
-rw-r--r--ui/src/components/ui/toaster.tsx33
-rw-r--r--ui/src/components/ui/use-toast.ts192
-rw-r--r--ui/src/global.d.ts1
-rw-r--r--ui/src/lib/utils.ts48
-rw-r--r--ui/src/main.tsx22
-rw-r--r--ui/src/pages/Dotfiles.tsx109
-rw-r--r--ui/src/pages/History.tsx73
-rw-r--r--ui/src/pages/Home.tsx295
-rw-r--r--ui/src/pages/Runbooks.tsx25
-rw-r--r--ui/src/state/client.ts33
-rw-r--r--ui/src/state/models.ts177
-rw-r--r--ui/src/state/runbooks/runbook.ts124
-rw-r--r--ui/src/state/store.ts289
-rw-r--r--ui/src/styles.css76
-rw-r--r--ui/src/vite-env.d.ts1
-rw-r--r--ui/tailwind.config.js80
-rw-r--r--ui/tsconfig.json29
-rw-r--r--ui/tsconfig.node.json10
-rw-r--r--ui/vite.config.ts22
102 files changed, 0 insertions, 23218 deletions
diff --git a/ui/.gitignore b/ui/.gitignore
deleted file mode 100644
index baa22d42..00000000
--- a/ui/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-# Logs
-logs
-bundle
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-.vite
-
-gen
diff --git a/ui/.npmrc b/ui/.npmrc
deleted file mode 100644
index 1778f104..00000000
--- a/ui/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-public-hoist-pattern[]=*@nextui-org/*
diff --git a/ui/README.md b/ui/README.md
deleted file mode 100644
index ce20fb6e..00000000
--- a/ui/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Atuin Desktop
-
-Currently WIP and not yet ready for use \ No newline at end of file
diff --git a/ui/backend/.gitignore b/ui/backend/.gitignore
deleted file mode 100644
index f4dfb82b..00000000
--- a/ui/backend/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Generated by Cargo
-# will have compiled files and executables
-/target/
-
diff --git a/ui/backend/Cargo.lock b/ui/backend/Cargo.lock
deleted file mode 100644
index 4c7ad8fe..00000000
--- a/ui/backend/Cargo.lock
+++ /dev/null
@@ -1,7643 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aead"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
-dependencies = [
- "crypto-common",
- "generic-array",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
-dependencies = [
- "cfg-if",
- "getrandom 0.2.15",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
-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 = "allocator-api2"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
-
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[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 = "anstream"
-version = "0.6.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
-dependencies = [
- "anstyle",
- "anstyle-parse",
- "anstyle-query",
- "anstyle-wincon",
- "colorchoice",
- "is_terminal_polyfill",
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
-
-[[package]]
-name = "anstyle-parse"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
-dependencies = [
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle-query"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "anstyle-wincon"
-version = "3.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
-dependencies = [
- "anstyle",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.86"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
-
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "argon2"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
-dependencies = [
- "base64ct",
- "blake2",
- "cpufeatures",
- "password-hash",
-]
-
-[[package]]
-name = "arrayvec"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
-
-[[package]]
-name = "ashpd"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093"
-dependencies = [
- "enumflags2",
- "futures-channel",
- "futures-util",
- "rand 0.8.5",
- "serde",
- "serde_repr",
- "tokio",
- "url",
- "zbus",
-]
-
-[[package]]
-name = "async-broadcast"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
-dependencies = [
- "event-listener 5.3.1",
- "event-listener-strategy",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
-dependencies = [
- "concurrent-queue",
- "event-listener-strategy",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "slab",
-]
-
-[[package]]
-name = "async-fs"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
-dependencies = [
- "async-lock",
- "blocking",
- "futures-lite",
-]
-
-[[package]]
-name = "async-io"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
-dependencies = [
- "async-lock",
- "cfg-if",
- "concurrent-queue",
- "futures-io",
- "futures-lite",
- "parking",
- "polling",
- "rustix",
- "slab",
- "tracing",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "async-lock"
-version = "3.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
-dependencies = [
- "event-listener 5.3.1",
- "event-listener-strategy",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-process"
-version = "2.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
-dependencies = [
- "async-channel",
- "async-io",
- "async-lock",
- "async-signal",
- "async-task",
- "blocking",
- "cfg-if",
- "event-listener 5.3.1",
- "futures-lite",
- "rustix",
- "tracing",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "async-recursion"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "async-signal"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32"
-dependencies = [
- "async-io",
- "async-lock",
- "atomic-waker",
- "cfg-if",
- "futures-core",
- "futures-io",
- "rustix",
- "signal-hook-registry",
- "slab",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "async-task"
-version = "4.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
-
-[[package]]
-name = "async-trait"
-version = "0.1.81"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "atk"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4"
-dependencies = [
- "atk-sys",
- "glib",
- "libc",
-]
-
-[[package]]
-name = "atk-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "atoi"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "atomic-waker"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
-
-[[package]]
-name = "atuin-client"
-version = "18.4.0-beta.3"
-dependencies = [
- "async-trait",
- "atuin-common",
- "base64 0.22.1",
- "clap",
- "config",
- "crossterm",
- "crypto_secretbox",
- "directories",
- "eyre",
- "fs-err",
- "futures",
- "generic-array",
- "hex",
- "humantime",
- "indicatif",
- "interim",
- "itertools",
- "lazy_static",
- "log",
- "memchr",
- "minspan",
- "palette",
- "rand 0.8.5",
- "regex",
- "reqwest 0.11.27",
- "rmp",
- "rusty_paserk",
- "rusty_paseto",
- "semver",
- "serde",
- "serde_json",
- "serde_regex",
- "serde_with",
- "sha2",
- "shellexpand",
- "sql-builder",
- "sqlx",
- "strum",
- "strum_macros",
- "thiserror",
- "time",
- "tiny-bip39",
- "tokio",
- "typed-builder",
- "urlencoding",
- "uuid",
- "whoami",
-]
-
-[[package]]
-name = "atuin-common"
-version = "18.4.0-beta.3"
-dependencies = [
- "base64 0.22.1",
- "directories",
- "eyre",
- "getrandom 0.2.15",
- "lazy_static",
- "rand 0.8.5",
- "semver",
- "serde",
- "sqlx",
- "sysinfo",
- "thiserror",
- "time",
- "typed-builder",
- "uuid",
-]
-
-[[package]]
-name = "atuin-dotfiles"
-version = "18.4.0-beta.3"
-dependencies = [
- "atuin-client",
- "atuin-common",
- "crypto_secretbox",
- "eyre",
- "rand 0.8.5",
- "rmp",
- "serde",
- "tokio",
-]
-
-[[package]]
-name = "atuin-history"
-version = "18.4.0-beta.3"
-dependencies = [
- "async-trait",
- "atuin-client",
- "atuin-common",
- "base64 0.22.1",
- "crossterm",
- "directories",
- "eyre",
- "fs-err",
- "futures-util",
- "indicatif",
- "interim",
- "itertools",
- "log",
- "semver",
- "serde",
- "serde_json",
- "sysinfo",
- "time",
- "tokio",
- "tracing",
- "unicode-segmentation",
- "unicode-width",
- "uuid",
- "whoami",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
-
-[[package]]
-name = "backtrace"
-version = "0.3.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[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 = "base64ct"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-[[package]]
-name = "beef"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bit-set"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
-dependencies = [
- "bit-vec",
-]
-
-[[package]]
-name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "blake2"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[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.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
-dependencies = [
- "objc2",
-]
-
-[[package]]
-name = "blocking"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
-dependencies = [
- "async-channel",
- "async-task",
- "futures-io",
- "futures-lite",
- "piper",
-]
-
-[[package]]
-name = "brotli"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "2.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
-
-[[package]]
-name = "by_address"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06"
-
-[[package]]
-name = "bytemuck"
-version = "1.16.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e"
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
-name = "bytes"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952"
-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.6.0",
- "cairo-sys-rs",
- "glib",
- "libc",
- "once_cell",
- "thiserror",
-]
-
-[[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.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo-platform"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver",
- "serde",
- "serde_json",
- "thiserror",
-]
-
-[[package]]
-name = "cargo_toml"
-version = "0.17.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719"
-dependencies = [
- "serde",
- "toml 0.8.2",
-]
-
-[[package]]
-name = "cc"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
-
-[[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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
-
-[[package]]
-name = "chacha20"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
-dependencies = [
- "cfg-if",
- "cipher",
- "cpufeatures",
-]
-
-[[package]]
-name = "chrono"
-version = "0.4.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
-dependencies = [
- "android-tzdata",
- "iana-time-zone",
- "num-traits",
- "serde",
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "cipher"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-dependencies = [
- "crypto-common",
- "inout",
- "zeroize",
-]
-
-[[package]]
-name = "clap"
-version = "4.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3"
-dependencies = [
- "clap_builder",
- "clap_derive",
-]
-
-[[package]]
-name = "clap_builder"
-version = "4.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa"
-dependencies = [
- "anstream",
- "anstyle",
- "clap_lex",
- "strsim 0.11.1",
- "terminal_size",
-]
-
-[[package]]
-name = "clap_derive"
-version = "4.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e"
-dependencies = [
- "heck 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
-
-[[package]]
-name = "cocoa"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "cocoa-foundation",
- "core-foundation",
- "core-graphics",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "core-foundation",
- "core-graphics-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "colorchoice"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
-
-[[package]]
-name = "combine"
-version = "4.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
-dependencies = [
- "bytes",
- "memchr",
-]
-
-[[package]]
-name = "comrak"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0436149c9f6a1935b13306206c739b1ba84fa81f551b5eb87fc2ca7a13700af"
-dependencies = [
- "clap",
- "derive_builder",
- "entities",
- "memchr",
- "once_cell",
- "regex",
- "shell-words",
- "slug",
- "syntect",
- "typed-arena",
- "unicode_categories",
- "xdg",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "config"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca"
-dependencies = [
- "async-trait",
- "lazy_static",
- "nom",
- "pathdiff",
- "serde",
- "toml 0.5.11",
-]
-
-[[package]]
-name = "console"
-version = "0.15.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
-dependencies = [
- "encode_unicode",
- "lazy_static",
- "libc",
- "unicode-width",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "const-oid"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
-
-[[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 = [
- "percent-encoding",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa"
-dependencies = [
- "cookie",
- "idna 0.5.0",
- "log",
- "publicsuffix",
- "serde",
- "serde_derive",
- "serde_json",
- "time",
- "url",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
-
-[[package]]
-name = "core-graphics"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-graphics-types",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "libc",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc"
-version = "3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
-dependencies = [
- "crc-catalog",
-]
-
-[[package]]
-name = "crc-catalog"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
-
-[[package]]
-name = "crc32fast"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
-dependencies = [
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-queue"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
-
-[[package]]
-name = "crossterm"
-version = "0.27.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
-dependencies = [
- "bitflags 2.6.0",
- "crossterm_winapi",
- "filedescriptor",
- "libc",
- "mio 0.8.11",
- "parking_lot",
- "serde",
- "signal-hook",
- "signal-hook-mio",
- "winapi",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "rand_core 0.6.4",
- "typenum",
-]
-
-[[package]]
-name = "crypto_secretbox"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1"
-dependencies = [
- "aead",
- "cipher",
- "generic-array",
- "poly1305",
- "salsa20",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "cssparser"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
-dependencies = [
- "cssparser-macros",
- "dtoa-short",
- "itoa 0.4.8",
- "matches",
- "phf 0.8.0",
- "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.72",
-]
-
-[[package]]
-name = "ctor"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
-dependencies = [
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "curve25519-dalek"
-version = "4.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "curve25519-dalek-derive",
- "digest",
- "fiat-crypto",
- "rustc_version",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "curve25519-dalek-derive"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "darling"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
-dependencies = [
- "darling_core 0.14.4",
- "darling_macro 0.14.4",
-]
-
-[[package]]
-name = "darling"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
-dependencies = [
- "darling_core 0.20.10",
- "darling_macro 0.20.10",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim 0.10.0",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim 0.11.1",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
-dependencies = [
- "darling_core 0.14.4",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
-dependencies = [
- "darling_core 0.20.10",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "data-url"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
-
-[[package]]
-name = "der"
-version = "0.7.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
-dependencies = [
- "const-oid",
- "pem-rfc7468",
- "zeroize",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-dependencies = [
- "powerfmt",
- "serde",
-]
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "derive_builder"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
-dependencies = [
- "derive_builder_macro",
-]
-
-[[package]]
-name = "derive_builder_core"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
-dependencies = [
- "darling 0.14.4",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "derive_builder_macro"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
-dependencies = [
- "derive_builder_core",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "derive_more"
-version = "0.99.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
-dependencies = [
- "convert_case",
- "proc-macro2",
- "quote",
- "rustc_version",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "deunicode"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00"
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "const-oid",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "directories"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "dispatch"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-
-[[package]]
-name = "dlopen2"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6"
-dependencies = [
- "dlopen2_derive",
- "libc",
- "once_cell",
- "winapi",
-]
-
-[[package]]
-name = "dlopen2_derive"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "dotenvy"
-version = "0.15.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
-
-[[package]]
-name = "downcast-rs"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
-
-[[package]]
-name = "dpi"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "dtoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
-
-[[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.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
-
-[[package]]
-name = "dyn-clone"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
-
-[[package]]
-name = "ed25519"
-version = "2.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
-dependencies = [
- "pkcs8",
- "signature",
-]
-
-[[package]]
-name = "ed25519-dalek"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
-dependencies = [
- "curve25519-dalek",
- "ed25519",
- "serde",
- "sha2",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "either"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "embed-resource"
-version = "2.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602"
-dependencies = [
- "cc",
- "memchr",
- "rustc_version",
- "toml 0.8.2",
- "vswhom",
- "winreg 0.52.0",
-]
-
-[[package]]
-name = "embed_plist"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
-
-[[package]]
-name = "encode_unicode"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "endi"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
-
-[[package]]
-name = "entities"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
-
-[[package]]
-name = "enumflags2"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
-dependencies = [
- "enumflags2_derive",
- "serde",
-]
-
-[[package]]
-name = "enumflags2_derive"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "erased-serde"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
-dependencies = [
- "serde",
- "typeid",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "etcetera"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943"
-dependencies = [
- "cfg-if",
- "home",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "event-listener"
-version = "5.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
-dependencies = [
- "event-listener 5.3.1",
- "pin-project-lite",
-]
-
-[[package]]
-name = "eyre"
-version = "0.6.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
-dependencies = [
- "indenter",
- "once_cell",
-]
-
-[[package]]
-name = "fancy-regex"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
-dependencies = [
- "bit-set",
- "regex",
-]
-
-[[package]]
-name = "fast-srgb8"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
-
-[[package]]
-name = "fastrand"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
-
-[[package]]
-name = "fdeflate"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "fiat-crypto"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
-
-[[package]]
-name = "field-offset"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
-dependencies = [
- "memoffset 0.9.1",
- "rustc_version",
-]
-
-[[package]]
-name = "filedescriptor"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7199d965852c3bac31f779ef99cbb4537f80e952e2d6aa0ffeb30cce00f4f46e"
-dependencies = [
- "libc",
- "thiserror",
- "winapi",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "flume"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
-dependencies = [
- "futures-core",
- "futures-sink",
- "spin",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[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.72",
-]
-
-[[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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "fs-err"
-version = "2.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
-dependencies = [
- "autocfg",
-]
-
-[[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"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-intrusive"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
-dependencies = [
- "futures-core",
- "lock_api",
- "parking_lot",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-
-[[package]]
-name = "futures-lite"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "futures-macro"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-
-[[package]]
-name = "futures-task"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-
-[[package]]
-name = "futures-util"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646"
-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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
-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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a"
-dependencies = [
- "gdk-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gdkx11"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce"
-dependencies = [
- "gdk",
- "gdkx11-sys",
- "gio",
- "glib",
- "libc",
- "x11",
-]
-
-[[package]]
-name = "gdkx11-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043"
-dependencies = [
- "gdk-sys",
- "glib-sys",
- "libc",
- "system-deps",
- "x11",
-]
-
-[[package]]
-name = "generator"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustversion",
- "windows 0.48.0",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "serde",
- "typenum",
- "version_check",
- "zeroize",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
-dependencies = [
- "libc",
- "windows-targets 0.48.5",
-]
-
-[[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.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gimli"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
-
-[[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",
-]
-
-[[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.6.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",
-]
-
-[[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.72",
-]
-
-[[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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c"
-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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
-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.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "h2"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http 0.2.12",
- "indexmap 2.2.6",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "h2"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
-dependencies = [
- "atomic-waker",
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "http 1.1.0",
- "indexmap 2.2.6",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-dependencies = [
- "ahash",
- "allocator-api2",
-]
-
-[[package]]
-name = "hashlink"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
-dependencies = [
- "hashbrown 0.14.5",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "heck"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
-
-[[package]]
-name = "hermit-abi"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "hkdf"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
-dependencies = [
- "hmac",
-]
-
-[[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "home"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "html5ever"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
-dependencies = [
- "log",
- "mac",
- "markup5ever",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "http"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
-dependencies = [
- "bytes",
- "fnv",
- "itoa 1.0.11",
-]
-
-[[package]]
-name = "http"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
-dependencies = [
- "bytes",
- "fnv",
- "itoa 1.0.11",
-]
-
-[[package]]
-name = "http-body"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-dependencies = [
- "bytes",
- "http 0.2.12",
- "pin-project-lite",
-]
-
-[[package]]
-name = "http-body"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
-dependencies = [
- "bytes",
- "http 1.1.0",
-]
-
-[[package]]
-name = "http-body-util"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
-dependencies = [
- "bytes",
- "futures-util",
- "http 1.1.0",
- "http-body 1.0.1",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "hyper"
-version = "0.14.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2 0.3.26",
- "http 0.2.12",
- "http-body 0.4.6",
- "httparse",
- "httpdate",
- "itoa 1.0.11",
- "pin-project-lite",
- "socket2",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-util",
- "h2 0.4.5",
- "http 1.1.0",
- "http-body 1.0.1",
- "httparse",
- "itoa 1.0.11",
- "pin-project-lite",
- "smallvec",
- "tokio",
- "want",
-]
-
-[[package]]
-name = "hyper-rustls"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
-dependencies = [
- "futures-util",
- "http 0.2.12",
- "hyper 0.14.30",
- "rustls 0.21.12",
- "tokio",
- "tokio-rustls 0.24.1",
-]
-
-[[package]]
-name = "hyper-rustls"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
-dependencies = [
- "futures-util",
- "http 1.1.0",
- "hyper 1.4.1",
- "hyper-util",
- "rustls 0.23.12",
- "rustls-pki-types",
- "tokio",
- "tokio-rustls 0.26.0",
- "tower-service",
- "webpki-roots 0.26.3",
-]
-
-[[package]]
-name = "hyper-util"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-util",
- "http 1.1.0",
- "http-body 1.0.1",
- "hyper 1.4.1",
- "pin-project-lite",
- "socket2",
- "tokio",
- "tower",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows-core 0.52.0",
-]
-
-[[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.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae"
-dependencies = [
- "byteorder",
- "png",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indenter"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
-
-[[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.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.5",
- "serde",
-]
-
-[[package]]
-name = "indicatif"
-version = "0.17.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
-dependencies = [
- "console",
- "instant",
- "number_prefix",
- "portable-atomic",
- "unicode-width",
-]
-
-[[package]]
-name = "infer"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199"
-dependencies = [
- "cfb",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "interim"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afd0f0bff60c0e845844b6ee665e07990541ef3b70d8cd21861cf85b69fbef4"
-dependencies = [
- "logos",
- "time",
-]
-
-[[package]]
-name = "ioctl-rs"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7970510895cee30b3e9128319f2cefd4bde883a39f38baa279567ba3a7eb97d"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
-
-[[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 = "is_terminal_polyfill"
-version = "1.70.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
-
-[[package]]
-name = "iso8601"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "itertools"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "itoa"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
-
-[[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",
- "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.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "json-patch"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b"
-dependencies = [
- "serde",
- "serde_json",
- "thiserror",
-]
-
-[[package]]
-name = "keyboard-types"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
-dependencies = [
- "bitflags 2.6.0",
- "serde",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "kuchikiki"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8"
-dependencies = [
- "cssparser",
- "html5ever",
- "indexmap 1.9.3",
- "matches",
- "selectors",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-dependencies = [
- "spin",
-]
-
-[[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.155"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
-
-[[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 = "libm"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
-
-[[package]]
-name = "libredox"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
-dependencies = [
- "bitflags 2.6.0",
- "libc",
-]
-
-[[package]]
-name = "libsqlite3-sys"
-version = "0.27.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
-dependencies = [
- "cc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
-
-[[package]]
-name = "lock_api"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
-
-[[package]]
-name = "logos"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "161971eb88a0da7ae0c333e1063467c5b5727e7fb6b710b8db4814eade3a42e8"
-dependencies = [
- "logos-derive",
-]
-
-[[package]]
-name = "logos-codegen"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e31badd9de5131fdf4921f6473d457e3dd85b11b7f091ceb50e4df7c3eeb12a"
-dependencies = [
- "beef",
- "fnv",
- "lazy_static",
- "proc-macro2",
- "quote",
- "regex-syntax 0.8.4",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "logos-derive"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c2a69b3eb68d5bd595107c9ee58d7e07fe2bb5e360cc85b0f084dedac80de0a"
-dependencies = [
- "logos-codegen",
-]
-
-[[package]]
-name = "loom"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
-dependencies = [
- "cfg-if",
- "generator",
- "scoped-tls",
- "serde",
- "serde_json",
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "mac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "markup5ever"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
-dependencies = [
- "log",
- "phf 0.10.1",
- "phf_codegen 0.10.0",
- "string_cache",
- "string_cache_codegen",
- "tendril",
-]
-
-[[package]]
-name = "matchers"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-dependencies = [
- "regex-automata 0.1.10",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "md-5"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
-dependencies = [
- "cfg-if",
- "digest",
-]
-
-[[package]]
-name = "memchr"
-version = "2.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[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 = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "minspan"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1269a17ac308ae0b906ec1b0ff8062fd0c82f18cc2956faa367302ec3380f4e8"
-
-[[package]]
-name = "mio"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
-dependencies = [
- "libc",
- "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "mio"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4"
-dependencies = [
- "hermit-abi 0.3.9",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "muda"
-version = "0.13.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b959f97c97044e4c96e32e1db292a7d594449546a3c6b77ae613dc3a5b5145"
-dependencies = [
- "cocoa",
- "crossbeam-channel",
- "dpi",
- "gtk",
- "keyboard-types",
- "objc",
- "once_cell",
- "png",
- "serde",
- "thiserror",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "ndk"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
-dependencies = [
- "bitflags 1.3.2",
- "jni-sys",
- "ndk-sys",
- "num_enum",
- "raw-window-handle 0.5.2",
- "thiserror",
-]
-
-[[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.4.1+23.1.7779620"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
-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 = "nix"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
- "pin-utils",
-]
-
-[[package]]
-name = "nix"
-version = "0.27.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
-dependencies = [
- "bitflags 2.6.0",
- "cfg-if",
- "libc",
- "memoffset 0.9.1",
-]
-
-[[package]]
-name = "nix"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
-dependencies = [
- "bitflags 2.6.0",
- "cfg-if",
- "cfg_aliases",
- "libc",
-]
-
-[[package]]
-name = "nodrop"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-
-[[package]]
-name = "nom"
-version = "7.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
-[[package]]
-name = "num-bigint-dig"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
-dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand 0.8.5",
- "smallvec",
- "zeroize",
-]
-
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
-[[package]]
-name = "num-integer"
-version = "0.1.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
-dependencies = [
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "number_prefix"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
- "objc_exception",
-]
-
-[[package]]
-name = "objc-foundation"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
-dependencies = [
- "block",
- "objc",
- "objc_id",
-]
-
-[[package]]
-name = "objc-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
-
-[[package]]
-name = "objc2"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
-dependencies = [
- "objc-sys",
- "objc2-encode",
-]
-
-[[package]]
-name = "objc2-app-kit"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
-dependencies = [
- "bitflags 2.6.0",
- "block2",
- "libc",
- "objc2",
- "objc2-core-data",
- "objc2-core-image",
- "objc2-foundation",
- "objc2-quartz-core",
-]
-
-[[package]]
-name = "objc2-core-data"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
-dependencies = [
- "bitflags 2.6.0",
- "block2",
- "objc2",
- "objc2-foundation",
-]
-
-[[package]]
-name = "objc2-core-image"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
-dependencies = [
- "block2",
- "objc2",
- "objc2-foundation",
- "objc2-metal",
-]
-
-[[package]]
-name = "objc2-encode"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
-
-[[package]]
-name = "objc2-foundation"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
-dependencies = [
- "bitflags 2.6.0",
- "block2",
- "dispatch",
- "libc",
- "objc2",
-]
-
-[[package]]
-name = "objc2-metal"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
-dependencies = [
- "bitflags 2.6.0",
- "block2",
- "objc2",
- "objc2-foundation",
-]
-
-[[package]]
-name = "objc2-quartz-core"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
-dependencies = [
- "bitflags 2.6.0",
- "block2",
- "objc2",
- "objc2-foundation",
- "objc2-metal",
-]
-
-[[package]]
-name = "objc_exception"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
-[[package]]
-name = "object"
-version = "0.36.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-
-[[package]]
-name = "onig"
-version = "6.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
-dependencies = [
- "bitflags 1.3.2",
- "libc",
- "once_cell",
- "onig_sys",
-]
-
-[[package]]
-name = "onig_sys"
-version = "69.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
-dependencies = [
- "cc",
- "pkg-config",
-]
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
-
-[[package]]
-name = "open"
-version = "5.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3"
-dependencies = [
- "is-wsl",
- "libc",
- "pathdiff",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "option-ext"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
-
-[[package]]
-name = "ordered-stream"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
-dependencies = [
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "os_info"
-version = "3.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092"
-dependencies = [
- "log",
- "serde",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "os_pipe"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
-[[package]]
-name = "palette"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6"
-dependencies = [
- "approx",
- "fast-srgb8",
- "palette_derive",
- "phf 0.11.2",
- "serde",
-]
-
-[[package]]
-name = "palette_derive"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30"
-dependencies = [
- "by_address",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[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"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.5.3",
- "smallvec",
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "password-hash"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
-dependencies = [
- "base64ct",
- "rand_core 0.6.4",
- "subtle",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
-
-[[package]]
-name = "pathdiff"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
-
-[[package]]
-name = "pbkdf2"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-[[package]]
-name = "phf"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-dependencies = [
- "phf_macros 0.8.0",
- "phf_shared 0.8.0",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "phf"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
-dependencies = [
- "phf_shared 0.10.0",
-]
-
-[[package]]
-name = "phf"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
-dependencies = [
- "phf_macros 0.11.2",
- "phf_shared 0.11.2",
-]
-
-[[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.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
-dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
-]
-
-[[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.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
-dependencies = [
- "phf_shared 0.11.2",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
-dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
-dependencies = [
- "phf_generator 0.11.2",
- "phf_shared 0.11.2",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "pin-project"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "piper"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
-dependencies = [
- "atomic-waker",
- "fastrand",
- "futures-io",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
-dependencies = [
- "der",
- "pkcs8",
- "spki",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-dependencies = [
- "der",
- "spki",
-]
-
-[[package]]
-name = "pkg-config"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
-
-[[package]]
-name = "plist"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016"
-dependencies = [
- "base64 0.22.1",
- "indexmap 2.2.6",
- "quick-xml",
- "serde",
- "time",
-]
-
-[[package]]
-name = "png"
-version = "0.17.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "polling"
-version = "3.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b"
-dependencies = [
- "cfg-if",
- "concurrent-queue",
- "hermit-abi 0.4.0",
- "pin-project-lite",
- "rustix",
- "tracing",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "poly1305"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
-dependencies = [
- "cpufeatures",
- "opaque-debug",
- "universal-hash",
-]
-
-[[package]]
-name = "portable-atomic"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
-
-[[package]]
-name = "portable-pty"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806ee80c2a03dbe1a9fb9534f8d19e4c0546b790cde8fd1fea9d6390644cb0be"
-dependencies = [
- "anyhow",
- "bitflags 1.3.2",
- "downcast-rs",
- "filedescriptor",
- "lazy_static",
- "libc",
- "log",
- "nix 0.25.1",
- "serial",
- "shared_library",
- "shell-words",
- "winapi",
- "winreg 0.10.1",
-]
-
-[[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.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "precomputed-hash"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
-
-[[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",
- "toml_edit 0.20.2",
-]
-
-[[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.86"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "psl-types"
-version = "2.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
-
-[[package]]
-name = "publicsuffix"
-version = "2.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457"
-dependencies = [
- "idna 0.3.0",
- "psl-types",
-]
-
-[[package]]
-name = "quick-xml"
-version = "0.32.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quinn"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad"
-dependencies = [
- "bytes",
- "pin-project-lite",
- "quinn-proto",
- "quinn-udp",
- "rustc-hash",
- "rustls 0.23.12",
- "thiserror",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "quinn-proto"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe"
-dependencies = [
- "bytes",
- "rand 0.8.5",
- "ring",
- "rustc-hash",
- "rustls 0.23.12",
- "slab",
- "thiserror",
- "tinyvec",
- "tracing",
-]
-
-[[package]]
-name = "quinn-udp"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
-dependencies = [
- "libc",
- "once_cell",
- "socket2",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
-dependencies = [
- "proc-macro2",
-]
-
-[[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.15",
-]
-
-[[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.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
-
-[[package]]
-name = "raw-window-handle"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
-
-[[package]]
-name = "rayon"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
-dependencies = [
- "crossbeam-deque",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
-dependencies = [
- "bitflags 2.6.0",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
-dependencies = [
- "getrandom 0.2.15",
- "libredox",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.4.7",
- "regex-syntax 0.8.4",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-dependencies = [
- "regex-syntax 0.6.29",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax 0.8.4",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
-
-[[package]]
-name = "reqwest"
-version = "0.11.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
-dependencies = [
- "base64 0.21.7",
- "bytes",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2 0.3.26",
- "http 0.2.12",
- "http-body 0.4.6",
- "hyper 0.14.30",
- "hyper-rustls 0.24.2",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "rustls 0.21.12",
- "rustls-native-certs",
- "rustls-pemfile 1.0.4",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "sync_wrapper 0.1.2",
- "system-configuration",
- "tokio",
- "tokio-rustls 0.24.1",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "winreg 0.50.0",
-]
-
-[[package]]
-name = "reqwest"
-version = "0.12.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37"
-dependencies = [
- "base64 0.22.1",
- "bytes",
- "cookie",
- "cookie_store",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2 0.4.5",
- "http 1.1.0",
- "http-body 1.0.1",
- "http-body-util",
- "hyper 1.4.1",
- "hyper-rustls 0.27.2",
- "hyper-util",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "quinn",
- "rustls 0.23.12",
- "rustls-pemfile 2.1.2",
- "rustls-pki-types",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "sync_wrapper 1.0.1",
- "system-configuration",
- "tokio",
- "tokio-rustls 0.26.0",
- "tokio-util",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
- "webpki-roots 0.26.3",
- "winreg 0.52.0",
-]
-
-[[package]]
-name = "rfd"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251"
-dependencies = [
- "ashpd",
- "block",
- "dispatch",
- "glib-sys",
- "gobject-sys",
- "gtk-sys",
- "js-sys",
- "log",
- "objc",
- "objc-foundation",
- "objc_id",
- "raw-window-handle 0.6.2",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "ring"
-version = "0.17.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
-dependencies = [
- "cc",
- "cfg-if",
- "getrandom 0.2.15",
- "libc",
- "spin",
- "untrusted",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "rmp"
-version = "0.8.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
-dependencies = [
- "byteorder",
- "num-traits",
- "paste",
-]
-
-[[package]]
-name = "rsa"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
-dependencies = [
- "const-oid",
- "digest",
- "num-bigint-dig",
- "num-integer",
- "num-traits",
- "pkcs1",
- "pkcs8",
- "rand_core 0.6.4",
- "signature",
- "spki",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
-dependencies = [
- "bitflags 2.6.0",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "rustls"
-version = "0.21.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
-dependencies = [
- "log",
- "ring",
- "rustls-webpki 0.101.7",
- "sct",
-]
-
-[[package]]
-name = "rustls"
-version = "0.23.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
-dependencies = [
- "once_cell",
- "ring",
- "rustls-pki-types",
- "rustls-webpki 0.102.6",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "rustls-native-certs"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
-dependencies = [
- "openssl-probe",
- "rustls-pemfile 1.0.4",
- "schannel",
- "security-framework",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
-dependencies = [
- "base64 0.21.7",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
-dependencies = [
- "base64 0.22.1",
- "rustls-pki-types",
-]
-
-[[package]]
-name = "rustls-pki-types"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
-
-[[package]]
-name = "rustls-webpki"
-version = "0.101.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.102.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
-dependencies = [
- "ring",
- "rustls-pki-types",
- "untrusted",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
-
-[[package]]
-name = "rusty_paserk"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d3a81ecd341ee8abf4761350ecffe3518c284ed1626bbd58f5f4bd64c61d38"
-dependencies = [
- "argon2",
- "base64 0.22.1",
- "base64ct",
- "blake2",
- "chacha20",
- "cipher",
- "curve25519-dalek",
- "digest",
- "ed25519-dalek",
- "generic-array",
- "rand 0.8.5",
- "rusty_paseto",
- "serde",
- "sha2",
- "subtle",
-]
-
-[[package]]
-name = "rusty_paseto"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c28b9f48df2de43da68fb7dcbd60c4f85bca5f6ae4c92cdd9540bcd4a606cb3"
-dependencies = [
- "base64 0.22.1",
- "blake2",
- "chacha20",
- "digest",
- "ed25519-dalek",
- "hex",
- "iso8601",
- "rand_core 0.6.4",
- "ring",
- "thiserror",
- "time",
- "zeroize",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
-
-[[package]]
-name = "salsa20"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
-dependencies = [
- "cipher",
-]
-
-[[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 = "schannel"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "schemars"
-version = "0.8.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
-dependencies = [
- "dyn-clone",
- "indexmap 1.9.3",
- "schemars_derive",
- "serde",
- "serde_json",
- "url",
-]
-
-[[package]]
-name = "schemars_derive"
-version = "0.8.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde_derive_internals",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "scoped-tls"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "sct"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "security-framework"
-version = "2.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
-dependencies = [
- "bitflags 2.6.0",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "selectors"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
-dependencies = [
- "bitflags 1.3.2",
- "cssparser",
- "derive_more",
- "fxhash",
- "log",
- "matches",
- "phf 0.8.0",
- "phf_codegen 0.8.0",
- "precomputed-hash",
- "servo_arc",
- "smallvec",
- "thin-slice",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.204"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde-untagged"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6"
-dependencies = [
- "erased-serde",
- "serde",
- "typeid",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.204"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[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.72",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.120"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
-dependencies = [
- "itoa 1.0.11",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_regex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
-dependencies = [
- "regex",
- "serde",
-]
-
-[[package]]
-name = "serde_repr"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa 1.0.11",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_with"
-version = "3.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
-dependencies = [
- "base64 0.22.1",
- "chrono",
- "hex",
- "indexmap 1.9.3",
- "indexmap 2.2.6",
- "serde",
- "serde_derive",
- "serde_json",
- "serde_with_macros",
- "time",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "3.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
-dependencies = [
- "darling 0.20.10",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "serial"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1237a96570fc377c13baa1b88c7589ab66edced652e43ffb17088f003db3e86"
-dependencies = [
- "serial-core",
- "serial-unix",
- "serial-windows",
-]
-
-[[package]]
-name = "serial-core"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f46209b345401737ae2125fe5b19a77acce90cd53e1658cda928e4fe9a64581"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "serial-unix"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f03fbca4c9d866e24a459cbca71283f545a37f8e3e002ad8c70593871453cab7"
-dependencies = [
- "ioctl-rs",
- "libc",
- "serial-core",
- "termios",
-]
-
-[[package]]
-name = "serial-windows"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c6d3b776267a75d31bbdfd5d36c0ca051251caafc285827052bc53bcdc8162"
-dependencies = [
- "libc",
- "serial-core",
-]
-
-[[package]]
-name = "serialize-to-javascript"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
-dependencies = [
- "serde",
- "serde_json",
- "serialize-to-javascript-impl",
-]
-
-[[package]]
-name = "serialize-to-javascript-impl"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "servo_arc"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
-dependencies = [
- "nodrop",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "sha1"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "shared_child"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "shared_library"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11"
-dependencies = [
- "lazy_static",
- "libc",
-]
-
-[[package]]
-name = "shell-words"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
-
-[[package]]
-name = "shellexpand"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
-dependencies = [
- "dirs",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio 0.8.11",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "signature"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
-dependencies = [
- "digest",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-
-[[package]]
-name = "siphasher"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "slug"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4"
-dependencies = [
- "deunicode",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
-
-[[package]]
-name = "socket2"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "softbuffer"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd"
-dependencies = [
- "bytemuck",
- "cfg_aliases",
- "core-graphics",
- "foreign-types",
- "js-sys",
- "log",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
- "objc2-quartz-core",
- "raw-window-handle 0.6.2",
- "redox_syscall 0.5.3",
- "wasm-bindgen",
- "web-sys",
- "windows-sys 0.52.0",
-]
-
-[[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 = "spin"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "spki"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
-dependencies = [
- "base64ct",
- "der",
-]
-
-[[package]]
-name = "sql-builder"
-version = "3.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1008d95d2ec2d062959352527be30e10fec42a1aa5e5a48d990a5ff0fb9bdc0"
-dependencies = [
- "anyhow",
- "thiserror",
-]
-
-[[package]]
-name = "sqlformat"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f895e3734318cc55f1fe66258926c9b910c124d47520339efecbb6c59cec7c1f"
-dependencies = [
- "nom",
- "unicode_categories",
-]
-
-[[package]]
-name = "sqlx"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa"
-dependencies = [
- "sqlx-core",
- "sqlx-macros",
- "sqlx-mysql",
- "sqlx-postgres",
- "sqlx-sqlite",
-]
-
-[[package]]
-name = "sqlx-core"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6"
-dependencies = [
- "ahash",
- "atoi",
- "byteorder",
- "bytes",
- "crc",
- "crossbeam-queue",
- "either",
- "event-listener 2.5.3",
- "futures-channel",
- "futures-core",
- "futures-intrusive",
- "futures-io",
- "futures-util",
- "hashlink",
- "hex",
- "indexmap 2.2.6",
- "log",
- "memchr",
- "once_cell",
- "paste",
- "percent-encoding",
- "rustls 0.21.12",
- "rustls-pemfile 1.0.4",
- "serde",
- "serde_json",
- "sha2",
- "smallvec",
- "sqlformat",
- "thiserror",
- "time",
- "tokio",
- "tokio-stream",
- "tracing",
- "url",
- "uuid",
- "webpki-roots 0.25.4",
-]
-
-[[package]]
-name = "sqlx-macros"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127"
-dependencies = [
- "proc-macro2",
- "quote",
- "sqlx-core",
- "sqlx-macros-core",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "sqlx-macros-core"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8"
-dependencies = [
- "dotenvy",
- "either",
- "heck 0.4.1",
- "hex",
- "once_cell",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "sha2",
- "sqlx-core",
- "sqlx-mysql",
- "sqlx-postgres",
- "sqlx-sqlite",
- "syn 1.0.109",
- "tempfile",
- "tokio",
- "url",
-]
-
-[[package]]
-name = "sqlx-mysql"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418"
-dependencies = [
- "atoi",
- "base64 0.21.7",
- "bitflags 2.6.0",
- "byteorder",
- "bytes",
- "crc",
- "digest",
- "dotenvy",
- "either",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "generic-array",
- "hex",
- "hkdf",
- "hmac",
- "itoa 1.0.11",
- "log",
- "md-5",
- "memchr",
- "once_cell",
- "percent-encoding",
- "rand 0.8.5",
- "rsa",
- "serde",
- "sha1",
- "sha2",
- "smallvec",
- "sqlx-core",
- "stringprep",
- "thiserror",
- "time",
- "tracing",
- "uuid",
- "whoami",
-]
-
-[[package]]
-name = "sqlx-postgres"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e"
-dependencies = [
- "atoi",
- "base64 0.21.7",
- "bitflags 2.6.0",
- "byteorder",
- "crc",
- "dotenvy",
- "etcetera",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "hex",
- "hkdf",
- "hmac",
- "home",
- "itoa 1.0.11",
- "log",
- "md-5",
- "memchr",
- "once_cell",
- "rand 0.8.5",
- "serde",
- "serde_json",
- "sha2",
- "smallvec",
- "sqlx-core",
- "stringprep",
- "thiserror",
- "time",
- "tracing",
- "uuid",
- "whoami",
-]
-
-[[package]]
-name = "sqlx-sqlite"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa"
-dependencies = [
- "atoi",
- "flume",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-intrusive",
- "futures-util",
- "libsqlite3-sys",
- "log",
- "percent-encoding",
- "regex",
- "serde",
- "sqlx-core",
- "time",
- "tracing",
- "url",
- "urlencoding",
- "uuid",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "state"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8"
-dependencies = [
- "loom",
-]
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
-name = "string_cache"
-version = "0.8.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
-dependencies = [
- "new_debug_unreachable",
- "once_cell",
- "parking_lot",
- "phf_shared 0.10.0",
- "precomputed-hash",
- "serde",
-]
-
-[[package]]
-name = "string_cache_codegen"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
-dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "stringprep"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
- "unicode-properties",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strsim"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
-
-[[package]]
-name = "strum"
-version = "0.26.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
-dependencies = [
- "strum_macros",
-]
-
-[[package]]
-name = "strum_macros"
-version = "0.26.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
-dependencies = [
- "heck 0.5.0",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "subtle"
-version = "2.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
-
-[[package]]
-name = "swift-rs"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
-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.72"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "sync_wrapper"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-
-[[package]]
-name = "sync_wrapper"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
-
-[[package]]
-name = "syntect"
-version = "5.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
-dependencies = [
- "bincode",
- "bitflags 1.3.2",
- "fancy-regex",
- "flate2",
- "fnv",
- "once_cell",
- "onig",
- "plist",
- "regex-syntax 0.8.4",
- "serde",
- "serde_derive",
- "serde_json",
- "thiserror",
- "walkdir",
- "yaml-rust",
-]
-
-[[package]]
-name = "sys-locale"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "sysinfo"
-version = "0.30.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3"
-dependencies = [
- "cfg-if",
- "core-foundation-sys",
- "libc",
- "ntapi",
- "once_cell",
- "rayon",
- "windows 0.52.0",
-]
-
-[[package]]
-name = "system-configuration"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "system-configuration-sys",
-]
-
-[[package]]
-name = "system-configuration-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[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.28.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea538df05fbc2dcbbd740ba0cfe8607688535f4798d213cbbfa13ce494f3451f"
-dependencies = [
- "bitflags 2.6.0",
- "cocoa",
- "core-foundation",
- "core-graphics",
- "crossbeam-channel",
- "dispatch",
- "dlopen2",
- "dpi",
- "gdkwayland-sys",
- "gdkx11-sys",
- "gtk",
- "instant",
- "jni",
- "lazy_static",
- "libc",
- "log",
- "ndk",
- "ndk-context",
- "ndk-sys",
- "objc",
- "once_cell",
- "parking_lot",
- "raw-window-handle 0.6.2",
- "scopeguard",
- "tao-macros",
- "unicode-segmentation",
- "url",
- "windows 0.57.0",
- "windows-core 0.57.0",
- "windows-version",
- "x11-dl",
-]
-
-[[package]]
-name = "tao-macros"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "target-lexicon"
-version = "0.12.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2"
-
-[[package]]
-name = "tauri"
-version = "2.0.0-beta.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3eab508aad4ae86e23865e294b20a7bb89bd7afea523897b7478329b841d4295"
-dependencies = [
- "anyhow",
- "bytes",
- "cocoa",
- "dirs",
- "dunce",
- "embed_plist",
- "futures-util",
- "getrandom 0.2.15",
- "glob",
- "gtk",
- "heck 0.5.0",
- "http 1.1.0",
- "jni",
- "libc",
- "log",
- "mime",
- "muda",
- "objc",
- "percent-encoding",
- "raw-window-handle 0.6.2",
- "reqwest 0.12.5",
- "serde",
- "serde_json",
- "serde_repr",
- "serialize-to-javascript",
- "state",
- "swift-rs",
- "tauri-build",
- "tauri-macros",
- "tauri-runtime",
- "tauri-runtime-wry",
- "tauri-utils",
- "thiserror",
- "tokio",
- "tray-icon",
- "url",
- "urlpattern",
- "webkit2gtk",
- "webview2-com",
- "window-vibrancy",
- "windows 0.57.0",
-]
-
-[[package]]
-name = "tauri-build"
-version = "2.0.0-beta.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "498f587026501e4bbc5d6273b63f8956b03c37b3d3b2027f9c756fcd468e9c62"
-dependencies = [
- "anyhow",
- "cargo_toml",
- "dirs",
- "glob",
- "heck 0.5.0",
- "json-patch",
- "schemars",
- "semver",
- "serde",
- "serde_json",
- "tauri-utils",
- "tauri-winres",
- "toml 0.8.2",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-codegen"
-version = "2.0.0-beta.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43bbc731067e319ef60601bf5716d1e706ee9ae28e38c0587f7165c7d6824cdf"
-dependencies = [
- "base64 0.22.1",
- "brotli",
- "ico",
- "json-patch",
- "plist",
- "png",
- "proc-macro2",
- "quote",
- "semver",
- "serde",
- "serde_json",
- "sha2",
- "syn 2.0.72",
- "tauri-utils",
- "thiserror",
- "time",
- "url",
- "uuid",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-macros"
-version = "2.0.0-beta.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36b4a44346577ccde75a24c62405a4c3b4f7a3a76614ee6cf1ed14a0b756795c"
-dependencies = [
- "heck 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
- "tauri-codegen",
- "tauri-utils",
-]
-
-[[package]]
-name = "tauri-plugin"
-version = "2.0.0-beta.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1abe0b85472516d1033ba251ac81b9f18f02725aadcaad697c8b727e6505a6ad"
-dependencies = [
- "anyhow",
- "glob",
- "plist",
- "schemars",
- "serde",
- "serde_json",
- "tauri-utils",
- "toml 0.8.2",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-plugin-dialog"
-version = "2.0.0-beta.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8860dd73c96969eb14813f9f04d8665f2853342670456fb6619d637137ef0d09"
-dependencies = [
- "dunce",
- "log",
- "raw-window-handle 0.6.2",
- "rfd",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "tauri-plugin-fs",
- "thiserror",
-]
-
-[[package]]
-name = "tauri-plugin-fs"
-version = "2.0.0-beta.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "461853268fe115ca19ee21e5986d505944f0b826048fe1bd726d74753fdf1df6"
-dependencies = [
- "anyhow",
- "glob",
- "schemars",
- "serde",
- "serde_json",
- "serde_repr",
- "tauri",
- "tauri-plugin",
- "thiserror",
- "url",
- "uuid",
-]
-
-[[package]]
-name = "tauri-plugin-http"
-version = "2.0.0-beta.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b804bdf8fcb469951380221001c4037528df9b75e15b179f78710c7db906017"
-dependencies = [
- "data-url",
- "http 1.1.0",
- "regex",
- "reqwest 0.12.5",
- "schemars",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "tauri-plugin-fs",
- "thiserror",
- "tokio",
- "url",
- "urlpattern",
-]
-
-[[package]]
-name = "tauri-plugin-os"
-version = "2.0.0-beta.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79a0466f11f45fd3f640a17b5ba5e34c62912c9b391141c818155125ae9f0917"
-dependencies = [
- "gethostname",
- "log",
- "os_info",
- "serde",
- "serde_json",
- "serialize-to-javascript",
- "sys-locale",
- "tauri",
- "tauri-plugin",
- "thiserror",
-]
-
-[[package]]
-name = "tauri-plugin-shell"
-version = "2.0.0-beta.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9fa8c4e3d9ec343f6c3eb081672045566128a6c48ff6f6eeea85251ff38d3f"
-dependencies = [
- "encoding_rs",
- "log",
- "open",
- "os_pipe",
- "regex",
- "schemars",
- "serde",
- "serde_json",
- "shared_child",
- "tauri",
- "tauri-plugin",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "tauri-plugin-single-instance"
-version = "2.0.0-beta.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b21866e185e2f9c5d40afb851441e3292a4f94f4a26af6ae0dff6e7e5ba03f42"
-dependencies = [
- "log",
- "serde",
- "serde_json",
- "tauri",
- "thiserror",
- "windows-sys 0.52.0",
- "zbus",
-]
-
-[[package]]
-name = "tauri-plugin-sql"
-version = "2.0.0-beta.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0307b0e8abbe17aa7318521572aeb69bdb16740d54706608a9bed3f4c98bdd5"
-dependencies = [
- "futures-core",
- "indexmap 2.2.6",
- "log",
- "serde",
- "serde_json",
- "sqlx",
- "tauri",
- "tauri-plugin",
- "thiserror",
- "time",
- "tokio",
-]
-
-[[package]]
-name = "tauri-runtime"
-version = "2.0.0-beta.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe978df03966febbebc608931dc2cf26ef94df70855a18b05f07134cf474de09"
-dependencies = [
- "dpi",
- "gtk",
- "http 1.1.0",
- "jni",
- "raw-window-handle 0.6.2",
- "serde",
- "serde_json",
- "tauri-utils",
- "thiserror",
- "url",
- "windows 0.57.0",
-]
-
-[[package]]
-name = "tauri-runtime-wry"
-version = "2.0.0-beta.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11e4d568f61095f507b3fc4254dfbfff3b20de2a1d66167ffca3f6d90b14db8f"
-dependencies = [
- "cocoa",
- "gtk",
- "http 1.1.0",
- "jni",
- "log",
- "percent-encoding",
- "raw-window-handle 0.6.2",
- "softbuffer",
- "tao",
- "tauri-runtime",
- "tauri-utils",
- "url",
- "webkit2gtk",
- "webview2-com",
- "windows 0.57.0",
- "wry",
-]
-
-[[package]]
-name = "tauri-utils"
-version = "2.0.0-beta.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e20e51856f343c503892749b27d34042e6ca83a0369a12de3c5552d9874d04e8"
-dependencies = [
- "brotli",
- "cargo_metadata",
- "ctor",
- "dunce",
- "glob",
- "html5ever",
- "infer",
- "json-patch",
- "kuchikiki",
- "log",
- "memchr",
- "phf 0.11.2",
- "proc-macro2",
- "quote",
- "regex",
- "schemars",
- "semver",
- "serde",
- "serde-untagged",
- "serde_json",
- "serde_with",
- "swift-rs",
- "thiserror",
- "toml 0.8.2",
- "url",
- "urlpattern",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-winres"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb"
-dependencies = [
- "embed-resource",
- "toml 0.7.8",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
-dependencies = [
- "cfg-if",
- "fastrand",
- "rustix",
- "windows-sys 0.52.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 = "terminal_size"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
-dependencies = [
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "termios"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "thin-slice"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
-
-[[package]]
-name = "thiserror"
-version = "1.0.63"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.63"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
-
-[[package]]
-name = "time"
-version = "0.3.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
-dependencies = [
- "deranged",
- "itoa 1.0.11",
- "libc",
- "num-conv",
- "num_threads",
- "powerfmt",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-
-[[package]]
-name = "time-macros"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
-dependencies = [
- "num-conv",
- "time-core",
-]
-
-[[package]]
-name = "tiny-bip39"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861"
-dependencies = [
- "anyhow",
- "hmac",
- "once_cell",
- "pbkdf2",
- "rand 0.8.5",
- "rustc-hash",
- "sha2",
- "thiserror",
- "unicode-normalization",
- "wasm-bindgen",
- "zeroize",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "1.39.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio 1.0.1",
- "parking_lot",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "tokio-macros",
- "tracing",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
-dependencies = [
- "rustls 0.21.12",
- "tokio",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
-dependencies = [
- "rustls 0.23.12",
- "rustls-pki-types",
- "tokio",
-]
-
-[[package]]
-name = "tokio-stream"
-version = "0.1.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "toml"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.20.2",
-]
-
-[[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_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap 2.2.6",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.20.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
-dependencies = [
- "indexmap 2.2.6",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "tower"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project",
- "pin-project-lite",
- "tokio",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-layer"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-
-[[package]]
-name = "tower-service"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-[[package]]
-name = "tracing"
-version = "0.1.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "log",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
-dependencies = [
- "matchers",
- "nu-ansi-term",
- "once_cell",
- "regex",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "tray-icon"
-version = "0.14.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60"
-dependencies = [
- "cocoa",
- "core-graphics",
- "crossbeam-channel",
- "dirs",
- "libappindicator",
- "muda",
- "objc",
- "once_cell",
- "png",
- "serde",
- "thiserror",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-
-[[package]]
-name = "typed-arena"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
-
-[[package]]
-name = "typed-builder"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add"
-dependencies = [
- "typed-builder-macro",
-]
-
-[[package]]
-name = "typed-builder-macro"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "typeid"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf"
-
-[[package]]
-name = "typenum"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-[[package]]
-name = "uds_windows"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
-dependencies = [
- "memoffset 0.9.1",
- "tempfile",
- "winapi",
-]
-
-[[package]]
-name = "ui"
-version = "0.0.0"
-dependencies = [
- "atuin-client",
- "atuin-common",
- "atuin-dotfiles",
- "atuin-history",
- "bytes",
- "cocoa",
- "comrak",
- "eyre",
- "lazy_static",
- "nix 0.29.0",
- "portable-pty",
- "serde",
- "serde_json",
- "shellexpand",
- "sqlx",
- "syntect",
- "tauri",
- "tauri-build",
- "tauri-plugin-dialog",
- "tauri-plugin-http",
- "tauri-plugin-os",
- "tauri-plugin-shell",
- "tauri-plugin-single-instance",
- "tauri-plugin-sql",
- "time",
- "tokio",
- "uuid",
- "vt100",
-]
-
-[[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-bidi"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-properties"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
-
-[[package]]
-name = "unicode_categories"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
-
-[[package]]
-name = "universal-hash"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
-dependencies = [
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
-name = "url"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
-dependencies = [
- "form_urlencoded",
- "idna 0.5.0",
- "percent-encoding",
- "serde",
-]
-
-[[package]]
-name = "urlencoding"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
-
-[[package]]
-name = "urlpattern"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
-dependencies = [
- "derive_more",
- "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 = "utf8parse"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
-
-[[package]]
-name = "uuid"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
-dependencies = [
- "getrandom 0.2.15",
- "serde",
-]
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version-compare"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[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.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "vt100"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de"
-dependencies = [
- "itoa 1.0.11",
- "log",
- "unicode-width",
- "vte",
-]
-
-[[package]]
-name = "vte"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
-dependencies = [
- "arrayvec",
- "utf8parse",
- "vte_generate_state_changes",
-]
-
-[[package]]
-name = "vte_generate_state_changes"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[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.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasite"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 2.0.72",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
-dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
-
-[[package]]
-name = "wasm-streams"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
-dependencies = [
- "futures-util",
- "js-sys",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webkit2gtk"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a"
-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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c"
-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 = "webpki-roots"
-version = "0.25.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
-
-[[package]]
-name = "webpki-roots"
-version = "0.26.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
-dependencies = [
- "rustls-pki-types",
-]
-
-[[package]]
-name = "webview2-com"
-version = "0.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6516cfa64c6b3212686080eeec378e662c2af54bb2a5b2a22749673f5cb2226f"
-dependencies = [
- "webview2-com-macros",
- "webview2-com-sys",
- "windows 0.57.0",
- "windows-core 0.57.0",
- "windows-implement",
- "windows-interface",
-]
-
-[[package]]
-name = "webview2-com-macros"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "webview2-com-sys"
-version = "0.31.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c76d5b77320ff155660be1df3e6588bc85c75f1a9feef938cc4dc4dd60d1d7cf"
-dependencies = [
- "thiserror",
- "windows 0.57.0",
- "windows-core 0.57.0",
-]
-
-[[package]]
-name = "whoami"
-version = "1.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
-dependencies = [
- "redox_syscall 0.4.1",
- "wasite",
- "web-sys",
-]
-
-[[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.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[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.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33082acd404763b315866e14a0d5193f3422c81086657583937a750cdd3ec340"
-dependencies = [
- "cocoa",
- "objc",
- "raw-window-handle 0.6.2",
- "windows-sys 0.52.0",
- "windows-version",
-]
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
-dependencies = [
- "windows-core 0.52.0",
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows"
-version = "0.57.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
-dependencies = [
- "windows-core 0.57.0",
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.57.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
-dependencies = [
- "windows-implement",
- "windows-interface",
- "windows-result",
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-implement"
-version = "0.57.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "windows-interface"
-version = "0.57.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "windows-result"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[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.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
-]
-
-[[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",
- "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-version"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[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_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-
-[[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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[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_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-
-[[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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-
-[[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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[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_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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[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_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.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
-
-[[package]]
-name = "winnow"
-version = "0.5.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winreg"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winreg"
-version = "0.50.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "winreg"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wry"
-version = "0.41.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b00c945786b02d7805d09a969fa36d0eee4e0bd4fb3ec2a79d2bf45a1b44cd"
-dependencies = [
- "base64 0.22.1",
- "block",
- "cocoa",
- "core-graphics",
- "crossbeam-channel",
- "dpi",
- "dunce",
- "gdkx11",
- "gtk",
- "html5ever",
- "http 1.1.0",
- "javascriptcore-rs",
- "jni",
- "kuchikiki",
- "libc",
- "ndk",
- "ndk-context",
- "ndk-sys",
- "objc",
- "objc_id",
- "once_cell",
- "percent-encoding",
- "raw-window-handle 0.6.2",
- "sha2",
- "soup3",
- "tao-macros",
- "thiserror",
- "webkit2gtk",
- "webkit2gtk-sys",
- "webview2-com",
- "windows 0.57.0",
- "windows-core 0.57.0",
- "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 = "xdg"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
-
-[[package]]
-name = "xdg-home"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
-name = "zbus"
-version = "4.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030"
-dependencies = [
- "async-broadcast",
- "async-executor",
- "async-fs",
- "async-io",
- "async-lock",
- "async-process",
- "async-recursion",
- "async-task",
- "async-trait",
- "blocking",
- "derivative",
- "enumflags2",
- "event-listener 5.3.1",
- "futures-core",
- "futures-sink",
- "futures-util",
- "hex",
- "nix 0.27.1",
- "ordered-stream",
- "rand 0.8.5",
- "serde",
- "serde_repr",
- "sha1",
- "static_assertions",
- "tokio",
- "tracing",
- "uds_windows",
- "windows-sys 0.52.0",
- "xdg-home",
- "zbus_macros",
- "zbus_names",
- "zvariant",
-]
-
-[[package]]
-name = "zbus_macros"
-version = "4.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "regex",
- "syn 1.0.109",
- "zvariant_utils",
-]
-
-[[package]]
-name = "zbus_names"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
-dependencies = [
- "serde",
- "static_assertions",
- "zvariant",
-]
-
-[[package]]
-name = "zerocopy"
-version = "0.7.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.7.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "zeroize"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
-dependencies = [
- "zeroize_derive",
-]
-
-[[package]]
-name = "zeroize_derive"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.72",
-]
-
-[[package]]
-name = "zvariant"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65"
-dependencies = [
- "endi",
- "enumflags2",
- "serde",
- "static_assertions",
- "url",
- "zvariant_derive",
-]
-
-[[package]]
-name = "zvariant_derive"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "zvariant_utils",
-]
-
-[[package]]
-name = "zvariant_utils"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
diff --git a/ui/backend/Cargo.toml b/ui/backend/Cargo.toml
deleted file mode 100644
index 4477674e..00000000
--- a/ui/backend/Cargo.toml
+++ /dev/null
@@ -1,59 +0,0 @@
-[package]
-name = "ui"
-version = "0.0.0"
-description = "A Tauri App"
-publish = false
-authors = ["you"]
-edition = "2021"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[build-dependencies]
-tauri-build = { version = "2.0.0-beta", features = [] }
-
-[dependencies]
-atuin-client = { path = "../../crates/atuin-client", version = "18.4.0-beta.3" }
-atuin-common = { path = "../../crates/atuin-common", version = "18.4.0-beta.3" }
-atuin-dotfiles = { path = "../../crates/atuin-dotfiles", version = "18.4.0-beta.3" }
-atuin-history = { path = "../../crates/atuin-history", version = "18.4.0-beta.3" }
-
-eyre = "0.6"
-tauri = { version = "2.0.0-beta", features = ["tray-icon"] }
-serde = { version = "1.0", features = ["derive"] }
-serde_json = "1.0"
-time = "0.3.36"
-uuid = "1.7.0"
-syntect = "5.2.0"
-tokio = "1.38.0"
-comrak = "0.22"
-portable-pty = "0.8.1"
-vt100 = "0.15.2"
-bytes = "1.6.0"
-nix = "0.29.0"
-lazy_static = "1.5.0"
-shellexpand = "3.1.0"
-
-tauri-plugin-http = "2.0.0-beta"
-tauri-plugin-single-instance = "2.0.0-beta"
-tauri-plugin-os = "2.0.0-beta.8"
-tauri-plugin-shell = "2.0.0-beta.7"
-tauri-plugin-dialog = "2.0.0-beta.11"
-
-[target."cfg(target_os = \"macos\")".dependencies]
-cocoa = "0.25"
-
-[dependencies.sqlx]
-version = "0.7"
-features = ["runtime-tokio-rustls", "time", "postgres", "uuid"]
-
-[features]
-# this feature is used for production builds or when `devPath` points to the filesystem
-# DO NOT REMOVE!!
-custom-protocol = ["tauri/custom-protocol"]
-
-#[lib]
-#crate-type = ["staticlib", "cdylib", "rlib"]
-
-[dependencies.tauri-plugin-sql]
-features = ["sqlite"] # or "postgres", or "mysql"
-version = "2.0.0-beta"
diff --git a/ui/backend/build.rs b/ui/backend/build.rs
deleted file mode 100644
index d860e1e6..00000000
--- a/ui/backend/build.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-fn main() {
- tauri_build::build()
-}
diff --git a/ui/backend/capabilities/migrated.json b/ui/backend/capabilities/migrated.json
deleted file mode 100644
index 88d809ca..00000000
--- a/ui/backend/capabilities/migrated.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "identifier": "migrated",
- "description": "permissions that were migrated from v1",
- "context": "local",
- "windows": [
- "main"
- ],
- "permissions": [
- "path:default",
- "event:default",
- "window:default",
- "app:default",
- "resources:default",
- "menu:default",
- "tray:default",
- "shell:allow-open",
- "sql:allow-load",
- "sql:allow-execute",
- "sql:allow-select",
- "os:allow-platform",
- "window:allow-start-dragging",
- {
- "identifier": "http:default",
- "allow": [
- "https://api.atuin.sh/*"
- ]
- },
- "os:default",
- "dialog:default"
- ],
- "platforms": [
- "linux",
- "macOS",
- "windows"
- ]
-} \ No newline at end of file
diff --git a/ui/backend/icons/128x128.png b/ui/backend/icons/128x128.png
deleted file mode 100644
index 9bde3605..00000000
--- a/ui/backend/icons/128x128.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/128x128@2x.png b/ui/backend/icons/128x128@2x.png
deleted file mode 100644
index 76caf4af..00000000
--- a/ui/backend/icons/128x128@2x.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/32x32.png b/ui/backend/icons/32x32.png
deleted file mode 100644
index 6b613a60..00000000
--- a/ui/backend/icons/32x32.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square107x107Logo.png b/ui/backend/icons/Square107x107Logo.png
deleted file mode 100644
index 719f742d..00000000
--- a/ui/backend/icons/Square107x107Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square142x142Logo.png b/ui/backend/icons/Square142x142Logo.png
deleted file mode 100644
index 2b974dc5..00000000
--- a/ui/backend/icons/Square142x142Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square150x150Logo.png b/ui/backend/icons/Square150x150Logo.png
deleted file mode 100644
index 46b70a1c..00000000
--- a/ui/backend/icons/Square150x150Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square284x284Logo.png b/ui/backend/icons/Square284x284Logo.png
deleted file mode 100644
index 3ea7c5cc..00000000
--- a/ui/backend/icons/Square284x284Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square30x30Logo.png b/ui/backend/icons/Square30x30Logo.png
deleted file mode 100644
index f867ec36..00000000
--- a/ui/backend/icons/Square30x30Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square310x310Logo.png b/ui/backend/icons/Square310x310Logo.png
deleted file mode 100644
index ce610002..00000000
--- a/ui/backend/icons/Square310x310Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square44x44Logo.png b/ui/backend/icons/Square44x44Logo.png
deleted file mode 100644
index 953f3ac0..00000000
--- a/ui/backend/icons/Square44x44Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square71x71Logo.png b/ui/backend/icons/Square71x71Logo.png
deleted file mode 100644
index 57c1f847..00000000
--- a/ui/backend/icons/Square71x71Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/Square89x89Logo.png b/ui/backend/icons/Square89x89Logo.png
deleted file mode 100644
index add47228..00000000
--- a/ui/backend/icons/Square89x89Logo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/StoreLogo.png b/ui/backend/icons/StoreLogo.png
deleted file mode 100644
index f16f65ce..00000000
--- a/ui/backend/icons/StoreLogo.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/icon.icns b/ui/backend/icons/icon.icns
deleted file mode 100644
index 4cbc6816..00000000
--- a/ui/backend/icons/icon.icns
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/icon.ico b/ui/backend/icons/icon.ico
deleted file mode 100644
index ce92f8cd..00000000
--- a/ui/backend/icons/icon.ico
+++ /dev/null
Binary files differ
diff --git a/ui/backend/icons/icon.png b/ui/backend/icons/icon.png
deleted file mode 100644
index 570edbc8..00000000
--- a/ui/backend/icons/icon.png
+++ /dev/null
Binary files differ
diff --git a/ui/backend/rust-toolchain.toml b/ui/backend/rust-toolchain.toml
deleted file mode 100644
index c6e4d7d5..00000000
--- a/ui/backend/rust-toolchain.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[toolchain]
-channel = "1.79"
diff --git a/ui/backend/src/db.rs b/ui/backend/src/db.rs
deleted file mode 100644
index b08d8ebe..00000000
--- a/ui/backend/src/db.rs
+++ /dev/null
@@ -1,316 +0,0 @@
-// Some wrappers around the Atuin history DB
-// I'll probably use this to inform changes to the "upstream" client crate
-// We also use Strings a bunch for errors. They're passed to the Tauri frontend,
-// which requires that they be serializable.
-// Can rework that in the future too, but my main concern is avoiding tauri limitations/reqs
-// ending up in the main crate.
-
-use serde::Serialize;
-use sqlx::{sqlite::SqliteRow, Row};
-use std::collections::HashMap;
-use std::path::PathBuf;
-
-use atuin_client::settings::{FilterMode, SearchMode};
-use atuin_client::{
- database::{Context, Database, OptFilters, Sqlite},
- history::History,
-};
-use atuin_history::stats;
-
-// useful for preprocessing data for the frontend
-#[derive(Serialize, Debug)]
-pub struct NameValue<T> {
- pub name: String,
- pub value: T,
-}
-
-#[derive(Serialize, Debug)]
-pub struct GlobalStats {
- pub total_history: u64,
-
- pub daily: Vec<NameValue<u64>>,
- pub stats: Option<stats::Stats>,
-
- pub last_1d: u64,
- pub last_7d: u64,
- pub last_30d: u64,
-}
-
-#[derive(Serialize, Debug)]
-pub struct UIHistory {
- pub id: String,
- /// When the command was run.
- pub timestamp: i128,
- /// How long the command took to run.
- pub duration: i64,
- /// The exit code of the command.
- pub exit: i64,
- /// The command that was run.
- pub command: String,
- /// The current working directory when the command was run.
- pub cwd: String,
- /// The session ID, associated with a terminal session.
- pub session: String,
- /// The hostname of the machine the command was run on.
- pub user: String,
-
- pub host: String,
-}
-
-impl From<History> for UIHistory {
- fn from(history: History) -> Self {
- let parts: Vec<String> = history.hostname.split(':').map(str::to_string).collect();
-
- let (host, user) = if parts.len() == 2 {
- (parts[0].clone(), parts[1].clone())
- } else {
- ("no-host".to_string(), "no-user".to_string())
- };
-
- let mac = format!("/Users/{}", user);
- let linux = format!("/home/{}", user);
-
- let cwd = history.cwd.replace(mac.as_str(), "~");
- let cwd = cwd.replace(linux.as_str(), "~");
-
- UIHistory {
- id: history.id.0,
- timestamp: history.timestamp.unix_timestamp_nanos(),
- duration: history.duration,
- exit: history.exit,
- command: history.command,
- session: history.session,
- host,
- user,
- cwd,
- }
- }
-}
-
-pub struct HistoryDB(Sqlite);
-
-impl HistoryDB {
- pub async fn new(path: PathBuf, timeout: f64) -> Result<Self, String> {
- let sqlite = Sqlite::new(path, timeout)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(Self(sqlite))
- }
-
- pub async fn list(
- &self,
- offset: Option<u64>,
- limit: Option<usize>,
- ) -> Result<Vec<History>, String> {
- let query = if let Some(limit) = limit {
- sqlx::query("select * from history order by timestamp desc limit ?1 offset ?2")
- .bind(limit as i64)
- .bind(offset.unwrap_or(0) as i64)
- } else {
- sqlx::query("select * from history order by timestamp desc")
- };
-
- let history: Vec<History> = query
- .map(|row: SqliteRow| {
- History::from_db()
- .id(row.get("id"))
- .timestamp(
- time::OffsetDateTime::from_unix_timestamp_nanos(
- row.get::<i64, _>("timestamp") as i128,
- )
- .unwrap(),
- )
- .duration(row.get("duration"))
- .exit(row.get("exit"))
- .command(row.get("command"))
- .cwd(row.get("cwd"))
- .session(row.get("session"))
- .hostname(row.get("hostname"))
- .deleted_at(None)
- .build()
- .into()
- })
- .fetch_all(&self.0.pool)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(history)
- }
-
- pub async fn search(&self, offset: Option<u64>, query: &str) -> Result<Vec<UIHistory>, String> {
- let context = Context {
- session: "".to_string(),
- cwd: "".to_string(),
- host_id: "".to_string(),
- hostname: "".to_string(),
- git_root: None,
- };
-
- let filters = OptFilters {
- limit: Some(200),
- offset: offset.map(|offset| offset as i64),
- ..OptFilters::default()
- };
-
- let history = self
- .0
- .search(
- SearchMode::Fuzzy,
- FilterMode::Global,
- &context,
- query,
- filters,
- )
- .await
- .map_err(|e| e.to_string())?;
-
- let history = history
- .into_iter()
- .filter(|h| h.duration > 0)
- .map(|h| h.into())
- .collect();
-
- Ok(history)
- }
-
- pub async fn prefix_search(&self, query: &str) -> Result<Vec<UIHistory>, String> {
- let context = Context {
- session: "".to_string(),
- cwd: "".to_string(),
- host_id: "".to_string(),
- hostname: "".to_string(),
- git_root: None,
- };
-
- let filters = OptFilters {
- limit: Some(5),
- ..OptFilters::default()
- };
-
- let history = self
- .0
- .search(
- SearchMode::Prefix,
- FilterMode::Global,
- &context,
- query,
- filters,
- )
- .await
- .map_err(|e| e.to_string())?;
-
- let history = history
- .into_iter()
- .filter(|h| h.duration > 0)
- .map(|h| h.into())
- .collect();
-
- Ok(history)
- }
-
- pub async fn calendar(&self) -> Result<Vec<(String, u64)>, String> {
- let query = "select count(1) as count, strftime('%F', datetime(timestamp / 1000000000, 'unixepoch')) as day from history where timestamp > ((unixepoch() - 31536000) * 1000000000) group by day;";
-
- let calendar: Vec<(String, u64)> = sqlx::query(query)
- // safe to cast, count(x) is never < 0
- .map(|row: SqliteRow| {
- (
- row.get::<String, _>("day"),
- row.get::<i64, _>("count") as u64,
- )
- })
- .fetch_all(&self.0.pool)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(calendar)
- }
-
- pub async fn global_stats(&self) -> Result<GlobalStats, String> {
- let day_ago = time::OffsetDateTime::now_utc() - time::Duration::days(1);
- let day_ago = day_ago.unix_timestamp_nanos();
-
- let week_ago = time::OffsetDateTime::now_utc() - time::Duration::days(7);
- let week_ago = week_ago.unix_timestamp_nanos();
-
- let month_ago = time::OffsetDateTime::now_utc() - time::Duration::days(30);
- let month_ago = month_ago.unix_timestamp_nanos();
-
- // get the last 30 days of shell history
- let history: Vec<UIHistory> = sqlx::query("SELECT * FROM history WHERE timestamp > ?")
- .bind(month_ago as i64)
- .map(|row: SqliteRow| {
- History::from_db()
- .id(row.get("id"))
- .timestamp(
- time::OffsetDateTime::from_unix_timestamp_nanos(
- row.get::<i64, _>("timestamp") as i128,
- )
- .unwrap(),
- )
- .duration(row.get("duration"))
- .exit(row.get("exit"))
- .command(row.get("command"))
- .cwd(row.get("cwd"))
- .session(row.get("session"))
- .hostname(row.get("hostname"))
- .deleted_at(None)
- .build()
- .into()
- })
- .map(|h: History| h.into())
- .fetch_all(&self.0.pool)
- .await
- .map_err(|e| e.to_string())?;
-
- let total: (i64,) = sqlx::query_as("SELECT COUNT(*) FROM history")
- .fetch_one(&self.0.pool)
- .await
- .map_err(|e| e.to_string())?;
-
- let mut day = 0;
- let mut week = 0;
- let mut month = 0;
-
- let mut daily = HashMap::new();
- let ymd = time::format_description::parse("[year]-[month]-[day]").unwrap();
-
- for i in history {
- if i.timestamp > day_ago {
- day += 1;
- }
-
- if i.timestamp > week_ago {
- week += 1;
- }
-
- if i.timestamp > month_ago {
- month += 1;
-
- // get the start of the day, as a unix timestamp
- let date = time::OffsetDateTime::from_unix_timestamp_nanos(i.timestamp)
- .unwrap()
- .format(&ymd)
- .unwrap();
-
- daily.entry(date).and_modify(|v| *v += 1).or_insert(1);
- }
- }
-
- let mut daily: Vec<NameValue<u64>> = daily
- .into_iter()
- .map(|(k, v)| NameValue { name: k, value: v })
- .collect();
- daily.sort_by(|a, b| a.name.cmp(&b.name));
-
- Ok(GlobalStats {
- total_history: total.0 as u64,
- last_30d: month,
- last_7d: week,
- last_1d: day,
- daily,
- stats: None,
- })
- }
-}
diff --git a/ui/backend/src/dotfiles/aliases.rs b/ui/backend/src/dotfiles/aliases.rs
deleted file mode 100644
index 972466fe..00000000
--- a/ui/backend/src/dotfiles/aliases.rs
+++ /dev/null
@@ -1,91 +0,0 @@
-use std::path::PathBuf;
-
-use atuin_client::{encryption, record::sqlite_store::SqliteStore, settings::Settings};
-use atuin_common::shell::Shell;
-use atuin_dotfiles::{
- shell::{existing_aliases, Alias},
- store::AliasStore,
-};
-
-async fn alias_store() -> eyre::Result<AliasStore> {
- let settings = Settings::new()?;
-
- let record_store_path = PathBuf::from(settings.record_store_path.as_str());
- let sqlite_store = SqliteStore::new(record_store_path, settings.local_timeout).await?;
-
- let encryption_key: [u8; 32] = encryption::load_key(&settings)?.into();
-
- let host_id = Settings::host_id().expect("failed to get host_id");
-
- Ok(AliasStore::new(sqlite_store, host_id, encryption_key))
-}
-
-#[tauri::command]
-pub async fn aliases() -> Result<Vec<Alias>, String> {
- let alias_store = alias_store().await.map_err(|e| e.to_string())?;
-
- let aliases = alias_store
- .aliases()
- .await
- .map_err(|e| format!("failed to load aliases: {}", e))?;
-
- Ok(aliases)
-}
-
-#[tauri::command]
-pub async fn delete_alias(name: String) -> Result<(), String> {
- let alias_store = alias_store().await.map_err(|e| e.to_string())?;
-
- alias_store
- .delete(name.as_str())
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(())
-}
-
-#[tauri::command]
-pub async fn set_alias(name: String, value: String) -> Result<(), String> {
- let alias_store = alias_store().await.map_err(|e| e.to_string())?;
-
- alias_store
- .set(name.as_str(), value.as_str())
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(())
-}
-
-#[tauri::command]
-pub async fn import_aliases() -> Result<Vec<Alias>, String> {
- let store = alias_store().await.map_err(|e| e.to_string())?;
- let shell = Shell::default_shell().map_err(|e| e.to_string())?;
- let shell_name = shell.to_string();
-
- if !shell.is_posixish() {
- return Err(format!(
- "Default shell {shell_name} not supported for import"
- ));
- }
-
- let existing_aliases = existing_aliases(Some(shell)).map_err(|e| e.to_string())?;
- let store_aliases = store.aliases().await.map_err(|e| e.to_string())?;
-
- let mut res = Vec::new();
-
- for alias in existing_aliases {
- // O(n), but n is small, and imports infrequent
- // can always make a map
- if store_aliases.contains(&alias) {
- continue;
- }
-
- res.push(alias.clone());
- store
- .set(&alias.name, &alias.value)
- .await
- .map_err(|e| e.to_string())?;
- }
-
- Ok(res)
-}
diff --git a/ui/backend/src/dotfiles/mod.rs b/ui/backend/src/dotfiles/mod.rs
deleted file mode 100644
index feafe783..00000000
--- a/ui/backend/src/dotfiles/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod aliases;
-pub mod vars;
diff --git a/ui/backend/src/dotfiles/vars.rs b/ui/backend/src/dotfiles/vars.rs
deleted file mode 100644
index d8d5bd75..00000000
--- a/ui/backend/src/dotfiles/vars.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-use std::path::PathBuf;
-
-use atuin_client::{encryption, record::sqlite_store::SqliteStore, settings::Settings};
-use atuin_common::shell::Shell;
-use atuin_dotfiles::{
- shell::{existing_aliases, Alias, Var},
- store::var::VarStore,
-};
-
-async fn var_store() -> eyre::Result<VarStore> {
- let settings = Settings::new()?;
-
- let record_store_path = PathBuf::from(settings.record_store_path.as_str());
- let sqlite_store = SqliteStore::new(record_store_path, settings.local_timeout).await?;
-
- let encryption_key: [u8; 32] = encryption::load_key(&settings)?.into();
-
- let host_id = Settings::host_id().expect("failed to get host_id");
-
- Ok(VarStore::new(sqlite_store, host_id, encryption_key))
-}
-
-#[tauri::command]
-pub async fn vars() -> Result<Vec<Var>, String> {
- let var_store = var_store().await.map_err(|e| e.to_string())?;
-
- let vars = var_store
- .vars()
- .await
- .map_err(|e| format!("failed to load aliases: {}", e))?;
-
- Ok(vars)
-}
-
-#[tauri::command]
-pub async fn delete_var(name: String) -> Result<(), String> {
- let var_store = var_store().await.map_err(|e| e.to_string())?;
-
- var_store
- .delete(name.as_str())
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(())
-}
-
-#[tauri::command]
-pub async fn set_var(name: String, value: String, export: bool) -> Result<(), String> {
- let var_store = var_store().await.map_err(|e| e.to_string())?;
-
- var_store
- .set(name.as_str(), value.as_str(), export)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(())
-}
diff --git a/ui/backend/src/install.rs b/ui/backend/src/install.rs
deleted file mode 100644
index 17896e3a..00000000
--- a/ui/backend/src/install.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-// Handle installing the Atuin CLI
-// We can use the standard install script for this
-
-use std::process::Command;
-
-use tokio::{
- fs::{read_to_string, OpenOptions},
- io::AsyncWriteExt,
-};
-
-use atuin_common::shell::Shell;
-
-#[tauri::command]
-pub(crate) async fn install_cli() -> Result<(), String> {
- let output = Command::new("sh")
- .arg("-c")
- .arg("curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/latest/download/atuin-installer.sh | sh")
- .output().map_err(|e|format!("Failed to execute Atuin installer: {e}"));
-
- Ok(())
-}
-
-#[tauri::command]
-pub(crate) async fn is_cli_installed() -> Result<bool, String> {
- let shell = Shell::default_shell().map_err(|e| format!("Failed to get default shell: {e}"))?;
- let output = if shell == Shell::Powershell {
- shell
- .run_interactive(&["atuin --version; if ($?) {echo 'ATUIN FOUND'}"])
- .map_err(|e| format!("Failed to run interactive command"))?
- } else {
- shell
- .run_interactive(&["atuin --version && echo 'ATUIN FOUND'"])
- .map_err(|e| format!("Failed to run interactive command"))?
- };
-
- Ok(output.contains("ATUIN FOUND"))
-}
-
-#[tauri::command]
-pub(crate) async fn setup_cli() -> Result<(), String> {
- let shell = Shell::default_shell().map_err(|e| format!("Failed to get default shell: {e}"))?;
- let config_file_path = shell.config_file();
-
- if config_file_path.is_none() {
- return Err("Failed to fetch default config file".to_string());
- }
-
- let config_file_path = config_file_path.unwrap();
- let config_file = read_to_string(config_file_path.clone())
- .await
- .map_err(|e| format!("Failed to read config file: {e}"))?;
-
- if config_file.contains("atuin init") {
- return Ok(());
- }
-
- let mut file = OpenOptions::new()
- .write(true)
- .append(true)
- .open(config_file_path)
- .await
- .unwrap();
-
- let config = format!(
- "if [ -x \"$(command -v atuin)\" ]; then eval \"$(atuin init {})\"; fi",
- shell.to_string()
- );
- file.write_all(config.as_bytes())
- .await
- .map_err(|e| format!("Failed to write Atuin shell init: {e}"));
-
- Ok(())
-}
diff --git a/ui/backend/src/main.rs b/ui/backend/src/main.rs
deleted file mode 100644
index eed6bfd3..00000000
--- a/ui/backend/src/main.rs
+++ /dev/null
@@ -1,329 +0,0 @@
-// Prevents additional console window on Windows in release, DO NOT REMOVE!!
-#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
-
-use tauri::State;
-
-use std::path::PathBuf;
-
-use tauri::{AppHandle, Manager};
-use time::format_description::well_known::Rfc3339;
-
-mod db;
-mod dotfiles;
-mod install;
-mod pty;
-mod run;
-mod state;
-mod store;
-
-use atuin_client::settings::Settings;
-use atuin_client::{
- encryption, history::HISTORY_TAG, record::sqlite_store::SqliteStore, record::store::Store,
-};
-use atuin_history::stats;
-use db::{GlobalStats, HistoryDB, UIHistory};
-use dotfiles::aliases::aliases;
-
-#[derive(Debug, serde::Serialize)]
-struct HomeInfo {
- pub record_count: u64,
- pub history_count: u64,
- pub username: Option<String>,
- pub last_sync: Option<String>,
- pub top_commands: Vec<(String, u64)>,
- pub recent_commands: Vec<UIHistory>,
-}
-
-#[tauri::command]
-async fn list(offset: Option<u64>) -> Result<Vec<UIHistory>, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let history = db
- .list(Some(offset.unwrap_or(0)), Some(100))
- .await?
- .into_iter()
- .map(|h| h.into())
- .collect();
-
- Ok(history)
-}
-
-#[tauri::command]
-async fn search(query: String, offset: Option<u64>) -> Result<Vec<UIHistory>, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let history = db.search(offset, query.as_str()).await?;
-
- Ok(history)
-}
-
-#[tauri::command]
-async fn global_stats() -> Result<GlobalStats, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let mut stats = db.global_stats().await?;
-
- let history = db.list(None, None).await?;
- let history_stats = stats::compute(&settings, &history, 10, 1);
-
- stats.stats = history_stats;
-
- Ok(stats)
-}
-
-#[tauri::command]
-async fn config() -> Result<Settings, String> {
- Settings::new().map_err(|e| e.to_string())
-}
-
-#[tauri::command]
-async fn session() -> Result<String, String> {
- Settings::new()
- .map_err(|e| e.to_string())?
- .session_token()
- .map_err(|e| e.to_string())
-}
-
-#[tauri::command]
-async fn login(username: String, password: String, key: String) -> Result<String, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- let record_store_path = PathBuf::from(settings.record_store_path.as_str());
- let store = SqliteStore::new(record_store_path, settings.local_timeout)
- .await
- .map_err(|e| e.to_string())?;
-
- if settings.logged_in() {
- return Err(String::from("Already logged in"));
- }
-
- let session = atuin_client::login::login(&settings, &store, username, password, key)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(session)
-}
-
-#[tauri::command]
-async fn logout() -> Result<(), String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- atuin_client::logout::logout(&settings).map_err(|e| e.to_string())?;
-
- Ok(())
-}
-
-#[tauri::command]
-async fn register(username: String, email: String, password: String) -> Result<String, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- let session = atuin_client::register::register(&settings, username, email, password)
- .await
- .map_err(|e| e.to_string())?;
-
- Ok(session)
-}
-
-#[tauri::command]
-async fn home_info() -> Result<HomeInfo, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
- let record_store_path = PathBuf::from(settings.record_store_path.as_str());
- let sqlite_store = SqliteStore::new(record_store_path, settings.local_timeout)
- .await
- .map_err(|e| e.to_string())?;
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let last_sync = Settings::last_sync()
- .map_err(|e| e.to_string())?
- .format(&Rfc3339)
- .map_err(|e| e.to_string())?;
-
- let record_count = sqlite_store.len_all().await.map_err(|e| e.to_string())?;
- let history_count = sqlite_store
- .len_tag(HISTORY_TAG)
- .await
- .map_err(|e| e.to_string())?;
-
- let history = db.list(None, None).await?;
- let stats = stats::compute(&settings, &history, 10, 1)
- .map_or(vec![], |stats| stats.top[0..5].to_vec())
- .iter()
- .map(|(commands, count)| (commands.join(" "), *count as u64))
- .collect();
- let recent = if history.len() > 5 {
- history[0..5].to_vec()
- } else {
- vec![]
- };
- let recent = recent.into_iter().map(|h| h.into()).collect();
-
- let info = if !settings.logged_in() {
- HomeInfo {
- username: None,
- last_sync: None,
- record_count,
- history_count,
- top_commands: stats,
- recent_commands: recent,
- }
- } else {
- let client = atuin_client::api_client::Client::new(
- &settings.sync_address,
- settings
- .session_token()
- .map_err(|e| e.to_string())?
- .as_str(),
- settings.network_connect_timeout,
- settings.network_timeout,
- )
- .map_err(|e| e.to_string())?;
-
- let me = client.me().await.map_err(|e| e.to_string())?;
-
- HomeInfo {
- username: Some(me.username),
- last_sync: Some(last_sync.to_string()),
- record_count,
- history_count,
- top_commands: stats,
- recent_commands: recent,
- }
- };
-
- Ok(info)
-}
-
-// Match the format that the frontend library we use expects
-// All the processing in Rust, not JSunwrap.
-// Faaaassssssst af ⚡️🦀
-#[derive(Debug, serde::Serialize)]
-pub struct HistoryCalendarDay {
- pub date: String,
- pub count: u64,
- pub level: u8,
-}
-
-#[tauri::command]
-async fn history_calendar() -> Result<Vec<HistoryCalendarDay>, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let calendar = db.calendar().await?;
-
- // probs don't want to iterate _this_ many times, but it's only the last year. so 365
- // iterations at max. should be quick.
-
- let max = calendar
- .iter()
- .max_by_key(|d| d.1)
- .expect("Can't find max count");
-
- let ret = calendar
- .iter()
- .map(|d| {
- // calculate the "level". we have 5, so figure out which 5th it fits into
- let percent: f64 = d.1 as f64 / max.1 as f64;
- let level = if d.1 == 0 {
- 0.0
- } else {
- (percent / 0.2).round() + 1.0
- };
-
- HistoryCalendarDay {
- date: d.0.clone(),
- count: d.1,
- level: std::cmp::min(4, level as u8),
- }
- })
- .collect();
-
- Ok(ret)
-}
-
-#[tauri::command]
-async fn prefix_search(query: &str) -> Result<Vec<String>, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
-
- let db_path = PathBuf::from(settings.db_path.as_str());
- let db = HistoryDB::new(db_path, settings.local_timeout).await?;
-
- let history = db.prefix_search(query).await?;
- let commands = history.into_iter().map(|h| h.command).collect();
-
- Ok(commands)
-}
-
-#[tauri::command]
-async fn cli_settings() -> Result<Settings, String> {
- let settings = Settings::new().map_err(|e| e.to_string())?;
- Ok(settings)
-}
-
-fn show_window(app: &AppHandle) {
- let windows = app.webview_windows();
-
- windows
- .values()
- .next()
- .expect("Sorry, no window found")
- .set_focus()
- .expect("Can't Bring Window to Focus");
-}
-
-fn main() {
- tauri::Builder::default()
- .plugin(tauri_plugin_dialog::init())
- .plugin(tauri_plugin_os::init())
- .plugin(tauri_plugin_shell::init())
- .invoke_handler(tauri::generate_handler![
- list,
- search,
- prefix_search,
- global_stats,
- aliases,
- home_info,
- config,
- session,
- login,
- logout,
- register,
- history_calendar,
- cli_settings,
- run::pty::pty_open,
- run::pty::pty_write,
- run::pty::pty_resize,
- run::pty::pty_kill,
- install::install_cli,
- install::is_cli_installed,
- install::setup_cli,
- dotfiles::aliases::import_aliases,
- dotfiles::aliases::delete_alias,
- dotfiles::aliases::set_alias,
- dotfiles::vars::vars,
- dotfiles::vars::delete_var,
- dotfiles::vars::set_var,
- ])
- .plugin(
- tauri_plugin_sql::Builder::default()
- .add_migrations("sqlite:runbooks.db", run::migrations::migrations())
- .build(),
- )
- .plugin(tauri_plugin_http::init())
- .plugin(tauri_plugin_single_instance::init(|app, args, cwd| {
- let _ = show_window(app);
- }))
- .manage(state::AtuinState::default())
- .setup(|app| Ok(()))
- .run(tauri::generate_context!())
- .expect("error while running tauri application");
-}
diff --git a/ui/backend/src/pty.rs b/ui/backend/src/pty.rs
deleted file mode 100644
index af394d95..00000000
--- a/ui/backend/src/pty.rs
+++ /dev/null
@@ -1,124 +0,0 @@
-use std::{
- io::Write,
- sync::{Arc, Mutex},
-};
-
-use bytes::Bytes;
-use eyre::{eyre, Result};
-use portable_pty::{CommandBuilder, MasterPty, PtySize};
-
-pub struct Pty {
- tx: tokio::sync::mpsc::Sender<Bytes>,
-
- pub master: Arc<Mutex<Box<dyn MasterPty + Send>>>,
- pub reader: Arc<Mutex<Box<dyn std::io::Read + Send>>>,
- pub child: Arc<Mutex<Box<dyn portable_pty::Child + Send>>>,
-}
-
-impl Pty {
- pub async fn open<'a>(rows: u16, cols: u16, cwd: Option<String>) -> Result<Self> {
- let sys = portable_pty::native_pty_system();
-
- let pair = sys
- .openpty(PtySize {
- rows,
- cols,
- pixel_width: 0,
- pixel_height: 0,
- })
- .map_err(|e| eyre!("Failed to open pty: {}", e))?;
-
- let mut cmd = CommandBuilder::new_default_prog();
-
- if let Some(cwd) = cwd {
- cmd.cwd(cwd);
- }
-
- let child = pair.slave.spawn_command(cmd).unwrap();
- drop(pair.slave);
-
- // Handle input -> write to master writer
- let (master_tx, mut master_rx) = tokio::sync::mpsc::channel::<Bytes>(32);
-
- let mut writer = pair.master.take_writer().unwrap();
- let reader = pair
- .master
- .try_clone_reader()
- .map_err(|e| e.to_string())
- .expect("Failed to clone reader");
-
- tokio::spawn(async move {
- while let Some(bytes) = master_rx.recv().await {
- writer.write_all(&bytes).unwrap();
- writer.flush().unwrap();
- }
-
- // When the channel has been closed, we won't be getting any more input. Close the
- // writer and the master.
- // This will also close the writer, which sends EOF to the underlying shell. Ensuring
- // that is also closed.
- drop(writer);
- });
-
- Ok(Pty {
- tx: master_tx,
- master: Arc::new(Mutex::new(pair.master)),
- reader: Arc::new(Mutex::new(reader)),
- child: Arc::new(Mutex::new(child)),
- })
- }
-
- pub async fn resize(&self, rows: u16, cols: u16) -> Result<()> {
- let master = self
- .master
- .lock()
- .map_err(|e| eyre!("Failed to lock pty master: {e}"))?;
-
- master
- .resize(PtySize {
- rows,
- cols,
- pixel_width: 0,
- pixel_height: 0,
- })
- .map_err(|e| eyre!("Failed to resize terminal: {e}"))?;
-
- Ok(())
- }
-
- pub async fn send_bytes(&self, bytes: Bytes) -> Result<()> {
- self.tx
- .send(bytes)
- .await
- .map_err(|e| eyre!("Failed to write to master tx: {}", e))
- }
-
- pub async fn send_string(&self, cmd: &str) -> Result<()> {
- let bytes: Vec<u8> = cmd.bytes().collect();
- let bytes = Bytes::from(bytes);
-
- self.send_bytes(bytes).await
- }
-
- pub async fn send_single_string(&self, cmd: &str) -> Result<()> {
- let mut bytes: Vec<u8> = cmd.bytes().collect();
- bytes.push(0x04);
-
- let bytes = Bytes::from(bytes);
-
- self.send_bytes(bytes).await
- }
-
- pub async fn kill_child(&self) -> Result<()> {
- let mut child = self
- .child
- .lock()
- .map_err(|e| eyre!("Failed to lock pty child: {e}"))?;
-
- child
- .kill()
- .map_err(|e| eyre!("Failed to kill child: {e}"))?;
-
- Ok(())
- }
-}
diff --git a/ui/backend/src/run/migrations.rs b/ui/backend/src/run/migrations.rs
deleted file mode 100644
index 3516e62a..00000000
--- a/ui/backend/src/run/migrations.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-use lazy_static::lazy_static;
-use tauri_plugin_sql::{Builder, Migration, MigrationKind};
-
-pub fn migrations() -> Vec<Migration> {
- vec![
- Migration {
- version: 1,
- description: "create_initial_tables",
- sql: "CREATE TABLE runbooks(id string PRIMARY KEY, name TEXT, content TEXT, created bigint, updated bigint);",
- kind: MigrationKind::Up,
- }
- ]
-}
diff --git a/ui/backend/src/run/mod.rs b/ui/backend/src/run/mod.rs
deleted file mode 100644
index a7a28497..00000000
--- a/ui/backend/src/run/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod migrations;
-pub mod pty;
diff --git a/ui/backend/src/run/pty.rs b/ui/backend/src/run/pty.rs
deleted file mode 100644
index 72ca98d2..00000000
--- a/ui/backend/src/run/pty.rs
+++ /dev/null
@@ -1,103 +0,0 @@
-use eyre::{Result, WrapErr};
-use std::io::BufRead;
-use std::path::PathBuf;
-
-use crate::state::AtuinState;
-use tauri::{Emitter, Manager, State};
-
-use atuin_client::{database::Sqlite, record::sqlite_store::SqliteStore, settings::Settings};
-
-#[tauri::command]
-pub async fn pty_open<'a>(
- app: tauri::AppHandle,
- state: State<'a, AtuinState>,
- cwd: Option<String>,
-) -> Result<uuid::Uuid, String> {
- let id = uuid::Uuid::new_v4();
-
- let cwd = cwd.map(|c| shellexpand::tilde(c.as_str()).to_string());
- let pty = crate::pty::Pty::open(24, 80, cwd).await.unwrap();
-
- let reader = pty.reader.clone();
-
- tauri::async_runtime::spawn_blocking(move || loop {
- let mut buf = [0u8; 512];
-
- match reader.lock().unwrap().read(&mut buf) {
- // EOF
- Ok(0) => {
- println!("reader loop hit eof");
- break;
- }
-
- Ok(n) => {
- println!("read {n} bytes");
-
- // TODO: sort inevitable encoding issues
- let out = String::from_utf8_lossy(&buf).to_string();
- let out = out.trim_matches(char::from(0));
- let channel = format!("pty-{id}");
-
- app.emit(channel.as_str(), out).unwrap();
- }
-
- Err(e) => {
- println!("failed to read: {e}");
- break;
- }
- }
- });
-
- state.pty_sessions.write().await.insert(id, pty);
-
- Ok(id)
-}
-
-#[tauri::command]
-pub(crate) async fn pty_write(
- pid: uuid::Uuid,
- data: String,
- state: tauri::State<'_, AtuinState>,
-) -> Result<(), String> {
- let sessions = state.pty_sessions.read().await;
- let pty = sessions.get(&pid).ok_or("Pty not found")?;
-
- let bytes = data.as_bytes().to_vec();
- pty.send_bytes(bytes.into())
- .await
- .map_err(|e| e.to_string())?;
- Ok(())
-}
-
-#[tauri::command]
-pub(crate) async fn pty_resize(
- pid: uuid::Uuid,
- rows: u16,
- cols: u16,
- state: tauri::State<'_, AtuinState>,
-) -> Result<(), String> {
- let sessions = state.pty_sessions.read().await;
- let pty = sessions.get(&pid).ok_or("Pty not found")?;
-
- pty.resize(rows, cols).await.map_err(|e| e.to_string())?;
-
- Ok(())
-}
-
-#[tauri::command]
-pub(crate) async fn pty_kill(
- pid: uuid::Uuid,
- state: tauri::State<'_, AtuinState>,
-) -> Result<(), String> {
- let pty = state.pty_sessions.write().await.remove(&pid);
-
- match pty {
- Some(pty) => {
- pty.kill_child().await.map_err(|e| e.to_string())?;
- println!("RIP {pid:?}");
- }
- None => {}
- }
-
- Ok(())
-}
diff --git a/ui/backend/src/state.rs b/ui/backend/src/state.rs
deleted file mode 100644
index de53b4c5..00000000
--- a/ui/backend/src/state.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-use std::collections::HashMap;
-use std::sync::Mutex;
-use tauri::async_runtime::RwLock;
-
-use crate::pty::Pty;
-
-#[derive(Default)]
-pub(crate) struct AtuinState {
- pub pty_sessions: RwLock<HashMap<uuid::Uuid, Pty>>,
-}
diff --git a/ui/backend/src/store.rs b/ui/backend/src/store.rs
deleted file mode 100644
index 8b137891..00000000
--- a/ui/backend/src/store.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ui/backend/tauri.conf.json b/ui/backend/tauri.conf.json
deleted file mode 100644
index 7eda7ca7..00000000
--- a/ui/backend/tauri.conf.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "app": {
- "security": {
- "csp": null
- },
- "trayIcon": {
- "iconAsTemplate": false,
- "iconPath": "icons/icon.png"
- },
- "windows": [
- {
- "fullscreen": false,
- "resizable": true,
- "title": "Atuin",
- "width": 1200,
- "height": 800,
- "titleBarStyle": "Overlay",
- "hiddenTitle": true
- }
- ]
- },
- "build": {
- "beforeBuildCommand": "pnpm build",
- "beforeDevCommand": "pnpm dev",
- "devUrl": "http://localhost:1420",
- "frontendDist": "../dist"
- },
- "bundle": {
- "active": true,
- "icon": [
- "icons/32x32.png",
- "icons/128x128.png",
- "icons/128x128@2x.png",
- "icons/icon.icns",
- "icons/icon.ico"
- ],
- "targets": "all"
- },
- "identifier": "sh.atuin.app",
- "plugins": {
- "shell": {
- "open": true
- }
- },
- "productName": "Atuin",
- "version": "0.0.0"
-}
diff --git a/ui/components.json b/ui/components.json
deleted file mode 100644
index 9332c448..00000000
--- a/ui/components.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "default",
- "rsc": false,
- "tsx": true,
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "src/styles.css",
- "baseColor": "slate",
- "cssVariables": true,
- "prefix": ""
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils"
- }
-} \ No newline at end of file
diff --git a/ui/icon.png b/ui/icon.png
deleted file mode 100644
index edbce0a8..00000000
--- a/ui/icon.png
+++ /dev/null
Binary files differ
diff --git a/ui/index.html b/ui/index.html
deleted file mode 100644
index ab9b6dd1..00000000
--- a/ui/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html>
-<html lang="en" class="h-full bg-white">
- <head>
- <meta charset="UTF-8" />
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Tauri + React + TS</title>
- </head>
-
- <body class="h-full">
- <div id="root"></div>
- <script type="module" src="/src/main.tsx"></script>
- </body>
-</html>
diff --git a/ui/package.json b/ui/package.json
deleted file mode 100644
index afdffb04..00000000
--- a/ui/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "name": "ui",
- "private": true,
- "version": "0.0.0",
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "tsc && vite build",
- "preview": "vite preview",
- "tauri": "tauri"
- },
- "dependencies": {
- "@blocknote/core": "^0.15.3",
- "@blocknote/mantine": "^0.15.3",
- "@blocknote/react": "^0.15.3",
- "@codemirror/autocomplete": "^6.17.0",
- "@codemirror/commands": "^6.6.0",
- "@codemirror/language": "^6.10.2",
- "@codemirror/lint": "^6.8.1",
- "@codemirror/search": "^6.5.6",
- "@codemirror/state": "^6.4.1",
- "@codemirror/view": "^6.28.6",
- "@headlessui/react": "^2.1.2",
- "@heroicons/react": "^2.1.5",
- "@nextui-org/react": "^2.4.6",
- "@radix-ui/react-dialog": "^1.1.1",
- "@radix-ui/react-dropdown-menu": "^2.1.1",
- "@radix-ui/react-slot": "^1.1.0",
- "@radix-ui/react-toast": "^1.2.1",
- "@tailwindcss/forms": "^0.5.7",
- "@tanstack/react-table": "^8.19.3",
- "@tanstack/react-virtual": "^3.8.3",
- "@tauri-apps/api": "2.0.0-beta.15",
- "@tauri-apps/plugin-dialog": "2.0.0-beta.7",
- "@tauri-apps/plugin-http": "2.0.0-beta.8",
- "@tauri-apps/plugin-os": "2.0.0-beta.7",
- "@tauri-apps/plugin-shell": "2.0.0-beta.8",
- "@tauri-apps/plugin-sql": "2.0.0-beta.5",
- "@types/luxon": "^3.4.2",
- "@uiw/codemirror-extensions-langs": "^4.23.0",
- "@uiw/react-codemirror": "^4.23.0",
- "@xterm/addon-fit": "^0.10.0",
- "@xterm/addon-webgl": "^0.18.0",
- "@xterm/xterm": "^5.5.0",
- "class-variance-authority": "^0.7.0",
- "clsx": "^2.1.1",
- "core": "link:@tauri-apps/api/core",
- "date-fns": "^3.6.0",
- "framer-motion": "^11.3.8",
- "highlight.js": "^11.10.0",
- "lucide-react": "^0.402.0",
- "luxon": "^3.4.4",
- "prism-react-renderer": "^2.3.1",
- "prismjs": "^1.29.0",
- "react": "^18.3.1",
- "react-activity-calendar": "^2.2.11",
- "react-dom": "^18.3.1",
- "react-router-dom": "^6.25.1",
- "react-spinners": "^0.14.1",
- "react-tooltip": "^5.27.1",
- "react-window": "^1.8.10",
- "react-window-infinite-loader": "^1.0.9",
- "recharts": "^2.12.7",
- "tailwind-merge": "^2.4.0",
- "tailwindcss-animate": "^1.0.7",
- "usehooks-ts": "^3.1.0",
- "uuidv7": "^1.0.1",
- "vaul": "^0.9.1",
- "zustand": "^4.5.4"
- },
- "devDependencies": {
- "@iconify/react": "^5.0.1",
- "@tauri-apps/cli": "2.0.0-beta.22",
- "@types/react": "^18.3.3",
- "@types/react-dom": "^18.3.0",
- "@vitejs/plugin-react": "^4.3.1",
- "autoprefixer": "^10.4.19",
- "postcss": "^8.4.39",
- "tailwindcss": "^3.4.6",
- "typescript": "^5.5.3",
- "vite": "^5.3.4",
- "vite-tsconfig-paths": "^4.3.2"
- }
-}
diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml
deleted file mode 100644
index 4f2101ef..00000000
--- a/ui/pnpm-lock.yaml
+++ /dev/null
@@ -1,8525 +0,0 @@
-lockfileVersion: '6.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-dependencies:
- '@blocknote/core':
- specifier: ^0.15.3
- version: 0.15.3
- '@blocknote/mantine':
- specifier: ^0.15.3
- version: 0.15.3(@tiptap/pm@2.5.5)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@blocknote/react':
- specifier: ^0.15.3
- version: 0.15.3(@tiptap/pm@2.5.5)(react-dom@18.3.1)(react@18.3.1)
- '@codemirror/autocomplete':
- specifier: ^6.17.0
- version: 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/commands':
- specifier: ^6.6.0
- version: 6.6.0
- '@codemirror/language':
- specifier: ^6.10.2
- version: 6.10.2
- '@codemirror/lint':
- specifier: ^6.8.1
- version: 6.8.1
- '@codemirror/search':
- specifier: ^6.5.6
- version: 6.5.6
- '@codemirror/state':
- specifier: ^6.4.1
- version: 6.4.1
- '@codemirror/view':
- specifier: ^6.28.6
- version: 6.28.6
- '@headlessui/react':
- specifier: ^2.1.2
- version: 2.1.2(react-dom@18.3.1)(react@18.3.1)
- '@heroicons/react':
- specifier: ^2.1.5
- version: 2.1.5(react@18.3.1)
- '@nextui-org/react':
- specifier: ^2.4.6
- version: 2.4.6(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)(tailwindcss@3.4.6)
- '@radix-ui/react-dialog':
- specifier: ^1.1.1
- version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-dropdown-menu':
- specifier: ^2.1.1
- version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot':
- specifier: ^1.1.0
- version: 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-toast':
- specifier: ^1.2.1
- version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@tailwindcss/forms':
- specifier: ^0.5.7
- version: 0.5.7(tailwindcss@3.4.6)
- '@tanstack/react-table':
- specifier: ^8.19.3
- version: 8.19.3(react-dom@18.3.1)(react@18.3.1)
- '@tanstack/react-virtual':
- specifier: ^3.8.3
- version: 3.8.3(react-dom@18.3.1)(react@18.3.1)
- '@tauri-apps/api':
- specifier: 2.0.0-beta.15
- version: 2.0.0-beta.15
- '@tauri-apps/plugin-dialog':
- specifier: 2.0.0-beta.7
- version: 2.0.0-beta.7
- '@tauri-apps/plugin-http':
- specifier: 2.0.0-beta.8
- version: 2.0.0-beta.8
- '@tauri-apps/plugin-os':
- specifier: 2.0.0-beta.7
- version: 2.0.0-beta.7
- '@tauri-apps/plugin-shell':
- specifier: 2.0.0-beta.8
- version: 2.0.0-beta.8
- '@tauri-apps/plugin-sql':
- specifier: 2.0.0-beta.5
- version: 2.0.0-beta.5
- '@types/luxon':
- specifier: ^3.4.2
- version: 3.4.2
- '@uiw/codemirror-extensions-langs':
- specifier: ^4.23.0
- version: 4.23.0(@codemirror/autocomplete@6.17.0)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.2)(@codemirror/legacy-modes@6.4.0)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.1)
- '@uiw/react-codemirror':
- specifier: ^4.23.0
- version: 4.23.0(@babel/runtime@7.24.8)(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.28.6)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1)
- '@xterm/addon-fit':
- specifier: ^0.10.0
- version: 0.10.0(@xterm/xterm@5.5.0)
- '@xterm/addon-webgl':
- specifier: ^0.18.0
- version: 0.18.0(@xterm/xterm@5.5.0)
- '@xterm/xterm':
- specifier: ^5.5.0
- version: 5.5.0
- class-variance-authority:
- specifier: ^0.7.0
- version: 0.7.0
- clsx:
- specifier: ^2.1.1
- version: 2.1.1
- core:
- specifier: link:@tauri-apps/api/core
- version: link:@tauri-apps/api/core
- date-fns:
- specifier: ^3.6.0
- version: 3.6.0
- framer-motion:
- specifier: ^11.3.8
- version: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- highlight.js:
- specifier: ^11.10.0
- version: 11.10.0
- lucide-react:
- specifier: ^0.402.0
- version: 0.402.0(react@18.3.1)
- luxon:
- specifier: ^3.4.4
- version: 3.4.4
- prism-react-renderer:
- specifier: ^2.3.1
- version: 2.3.1(react@18.3.1)
- prismjs:
- specifier: ^1.29.0
- version: 1.29.0
- react:
- specifier: ^18.3.1
- version: 18.3.1
- react-activity-calendar:
- specifier: ^2.2.11
- version: 2.2.11(react-dom@18.3.1)(react@18.3.1)
- react-dom:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- react-router-dom:
- specifier: ^6.25.1
- version: 6.25.1(react-dom@18.3.1)(react@18.3.1)
- react-spinners:
- specifier: ^0.14.1
- version: 0.14.1(react-dom@18.3.1)(react@18.3.1)
- react-tooltip:
- specifier: ^5.27.1
- version: 5.27.1(react-dom@18.3.1)(react@18.3.1)
- react-window:
- specifier: ^1.8.10
- version: 1.8.10(react-dom@18.3.1)(react@18.3.1)
- react-window-infinite-loader:
- specifier: ^1.0.9
- version: 1.0.9(react-dom@18.3.1)(react@18.3.1)
- recharts:
- specifier: ^2.12.7
- version: 2.12.7(react-dom@18.3.1)(react@18.3.1)
- tailwind-merge:
- specifier: ^2.4.0
- version: 2.4.0
- tailwindcss-animate:
- specifier: ^1.0.7
- version: 1.0.7(tailwindcss@3.4.6)
- usehooks-ts:
- specifier: ^3.1.0
- version: 3.1.0(react@18.3.1)
- uuidv7:
- specifier: ^1.0.1
- version: 1.0.1
- vaul:
- specifier: ^0.9.1
- version: 0.9.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- zustand:
- specifier: ^4.5.4
- version: 4.5.4(@types/react@18.3.3)(react@18.3.1)
-
-devDependencies:
- '@iconify/react':
- specifier: ^5.0.1
- version: 5.0.1(react@18.3.1)
- '@tauri-apps/cli':
- specifier: 2.0.0-beta.22
- version: 2.0.0-beta.22
- '@types/react':
- specifier: ^18.3.3
- version: 18.3.3
- '@types/react-dom':
- specifier: ^18.3.0
- version: 18.3.0
- '@vitejs/plugin-react':
- specifier: ^4.3.1
- version: 4.3.1(vite@5.3.4)
- autoprefixer:
- specifier: ^10.4.19
- version: 10.4.19(postcss@8.4.39)
- postcss:
- specifier: ^8.4.39
- version: 8.4.39
- tailwindcss:
- specifier: ^3.4.6
- version: 3.4.6
- typescript:
- specifier: ^5.5.3
- version: 5.5.3
- vite:
- specifier: ^5.3.4
- version: 5.3.4
- vite-tsconfig-paths:
- specifier: ^4.3.2
- version: 4.3.2(typescript@5.5.3)(vite@5.3.4)
-
-packages:
-
- /@alloc/quick-lru@5.2.0:
- resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
- engines: {node: '>=10'}
-
- /@ampproject/remapping@2.3.0:
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
- dev: true
-
- /@babel/code-frame@7.24.7:
- resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.24.7
- picocolors: 1.0.1
- dev: true
-
- /@babel/compat-data@7.24.9:
- resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/core@7.24.9:
- resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.24.7
- '@babel/generator': 7.24.10
- '@babel/helper-compilation-targets': 7.24.8
- '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9)
- '@babel/helpers': 7.24.8
- '@babel/parser': 7.24.8
- '@babel/template': 7.24.7
- '@babel/traverse': 7.24.8
- '@babel/types': 7.24.9
- convert-source-map: 2.0.0
- debug: 4.3.5
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/generator@7.24.10:
- resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.24.9
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 2.5.2
- dev: true
-
- /@babel/helper-compilation-targets@7.24.8:
- resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/compat-data': 7.24.9
- '@babel/helper-validator-option': 7.24.8
- browserslist: 4.23.2
- lru-cache: 5.1.1
- semver: 6.3.1
- dev: true
-
- /@babel/helper-environment-visitor@7.24.7:
- resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/helper-function-name@7.24.7:
- resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/template': 7.24.7
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/helper-hoist-variables@7.24.7:
- resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/helper-module-imports@7.24.7:
- resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/traverse': 7.24.8
- '@babel/types': 7.24.9
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9):
- resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/core': 7.24.9
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-module-imports': 7.24.7
- '@babel/helper-simple-access': 7.24.7
- '@babel/helper-split-export-declaration': 7.24.7
- '@babel/helper-validator-identifier': 7.24.7
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/helper-plugin-utils@7.24.8:
- resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/helper-simple-access@7.24.7:
- resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/traverse': 7.24.8
- '@babel/types': 7.24.9
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/helper-split-export-declaration@7.24.7:
- resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/helper-string-parser@7.24.8:
- resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/helper-validator-identifier@7.24.7:
- resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/helper-validator-option@7.24.8:
- resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/helpers@7.24.8:
- resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/template': 7.24.7
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/highlight@7.24.7:
- resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.24.7
- chalk: 2.4.2
- js-tokens: 4.0.0
- picocolors: 1.0.1
- dev: true
-
- /@babel/parser@7.24.8:
- resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==}
- engines: {node: '>=6.0.0'}
- hasBin: true
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9):
- resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.24.9
- '@babel/helper-plugin-utils': 7.24.8
- dev: true
-
- /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.9):
- resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.24.9
- '@babel/helper-plugin-utils': 7.24.8
- dev: true
-
- /@babel/runtime@7.24.8:
- resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- regenerator-runtime: 0.14.1
- dev: false
-
- /@babel/template@7.24.7:
- resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/code-frame': 7.24.7
- '@babel/parser': 7.24.8
- '@babel/types': 7.24.9
- dev: true
-
- /@babel/traverse@7.24.8:
- resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/code-frame': 7.24.7
- '@babel/generator': 7.24.10
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-function-name': 7.24.7
- '@babel/helper-hoist-variables': 7.24.7
- '@babel/helper-split-export-declaration': 7.24.7
- '@babel/parser': 7.24.8
- '@babel/types': 7.24.9
- debug: 4.3.5
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/types@7.24.9:
- resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-string-parser': 7.24.8
- '@babel/helper-validator-identifier': 7.24.7
- to-fast-properties: 2.0.0
- dev: true
-
- /@blocknote/core@0.15.3:
- resolution: {integrity: sha512-2ZOWpxt4rm5YdH9Gn9YXYQsI9wYMAkFcKkuSpprHGCl7ALk+Iv7Gw+BswttlhKFyYoY/df7dlc9lcZr5zVAWWw==}
- dependencies:
- '@emoji-mart/data': 1.2.1
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/extension-bold': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-code': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-collaboration': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)(y-prosemirror@1.2.9)
- '@tiptap/extension-collaboration-cursor': 2.5.5(@tiptap/core@2.5.5)(y-prosemirror@1.2.9)
- '@tiptap/extension-dropcursor': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-gapcursor': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-hard-break': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-history': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-horizontal-rule': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-italic': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-link': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-paragraph': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-strike': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-table-cell': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-table-header': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-table-row': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-text': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/extension-underline': 2.5.5(@tiptap/core@2.5.5)
- '@tiptap/pm': 2.5.5
- emoji-mart: 5.6.0
- hast-util-from-dom: 4.2.0
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-tables: 1.4.0
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- rehype-format: 5.0.0
- rehype-parse: 8.0.5
- rehype-remark: 9.1.2
- rehype-stringify: 9.0.4
- remark-gfm: 3.0.1
- remark-parse: 10.0.2
- remark-rehype: 10.1.0
- remark-stringify: 10.0.3
- unified: 10.1.2
- uuid: 8.3.2
- y-prosemirror: 1.2.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6)(yjs@13.6.18)
- y-protocols: 1.0.6(yjs@13.6.18)
- yjs: 13.6.18
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@blocknote/mantine@0.15.3(@tiptap/pm@2.5.5)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-KEtRffEAjqmIW9sSpDdiEgOhsSZLcI2zV/0hHOe/ZM/01UE/V4Vl7VKicgDd7FUBzn2BoqqxOv0GW1n5mLsfCw==}
- peerDependencies:
- react: ^18
- react-dom: ^18
- dependencies:
- '@blocknote/core': 0.15.3
- '@blocknote/react': 0.15.3(@tiptap/pm@2.5.5)(react-dom@18.3.1)(react@18.3.1)
- '@mantine/core': 7.11.2(@mantine/hooks@7.11.2)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@mantine/hooks': 7.11.2(react@18.3.1)
- '@mantine/utils': 6.0.22(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-icons: 5.2.1(react@18.3.1)
- transitivePeerDependencies:
- - '@tiptap/pm'
- - '@types/react'
- - supports-color
- dev: false
-
- /@blocknote/react@0.15.3(@tiptap/pm@2.5.5)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-lawcNmXIo+dQkd7gZkCbvNmKLNL/3y82q5NT26VNQH0axQSTJ7/Mjiam6A82gCvcPWXx/1ILh6OClx8IV977ag==}
- peerDependencies:
- react: ^18
- react-dom: ^18
- dependencies:
- '@blocknote/core': 0.15.3
- '@floating-ui/react': 0.26.20(react-dom@18.3.1)(react@18.3.1)
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/react': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)(react-dom@18.3.1)(react@18.3.1)
- lodash.merge: 4.6.2
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-icons: 5.2.1(react@18.3.1)
- transitivePeerDependencies:
- - '@tiptap/pm'
- - supports-color
- dev: false
-
- /@codemirror/autocomplete@6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1):
- resolution: {integrity: sha512-fdfj6e6ZxZf8yrkMHUSJJir7OJkHkZKaOZGzLWIYp2PZ3jd+d+UjG8zVPqJF6d3bKxkhvXTPan/UZ1t7Bqm0gA==}
- peerDependencies:
- '@codemirror/language': ^6.0.0
- '@codemirror/state': ^6.0.0
- '@codemirror/view': ^6.0.0
- '@lezer/common': ^1.0.0
- dependencies:
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- dev: false
-
- /@codemirror/commands@6.6.0:
- resolution: {integrity: sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- dev: false
-
- /@codemirror/lang-angular@0.1.3:
- resolution: {integrity: sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==}
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/language': 6.10.2
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@codemirror/lang-cpp@6.0.2:
- resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/cpp': 1.1.2
- dev: false
-
- /@codemirror/lang-css@6.2.1(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/css': 1.1.8
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-go@6.0.1(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/go': 1.0.0
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-html@6.4.9:
- resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/css': 1.1.8
- '@lezer/html': 1.3.10
- dev: false
-
- /@codemirror/lang-java@6.0.1:
- resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/java': 1.1.2
- dev: false
-
- /@codemirror/lang-javascript@6.2.2:
- resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/lint': 6.8.1
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/javascript': 1.4.17
- dev: false
-
- /@codemirror/lang-json@6.0.1:
- resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/json': 1.0.2
- dev: false
-
- /@codemirror/lang-less@6.0.2(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==}
- dependencies:
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/language': 6.10.2
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-lezer@6.0.1:
- resolution: {integrity: sha512-WHwjI7OqKFBEfkunohweqA5B/jIlxaZso6Nl3weVckz8EafYbPZldQEKSDb4QQ9H9BUkle4PVELP4sftKoA0uQ==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/lezer': 1.1.2
- dev: false
-
- /@codemirror/lang-liquid@6.2.1:
- resolution: {integrity: sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@codemirror/lang-markdown@6.2.5:
- resolution: {integrity: sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/markdown': 1.3.0
- dev: false
-
- /@codemirror/lang-php@6.0.1:
- resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==}
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/php': 1.0.2
- dev: false
-
- /@codemirror/lang-python@6.1.6(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/python': 1.1.14
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-rust@6.0.1:
- resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/rust': 1.0.2
- dev: false
-
- /@codemirror/lang-sass@6.0.2(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==}
- dependencies:
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/sass': 1.0.6
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-sql@6.7.0(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-KMXp6rtyPYz6RaElvkh/77ClEAoQoHRPZo0zutRRialeFs/B/X8YaUJBCnAV2zqyeJPLZ4hgo48mG8TKoNXfZA==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/lang-vue@0.1.3:
- resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==}
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/language': 6.10.2
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@codemirror/lang-wast@6.0.2:
- resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@codemirror/lang-xml@6.1.0:
- resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/xml': 1.0.5
- dev: false
-
- /@codemirror/lang-yaml@6.1.1(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/yaml': 1.0.3
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/language-data@6.5.1(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==}
- dependencies:
- '@codemirror/lang-angular': 0.1.3
- '@codemirror/lang-cpp': 6.0.2
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/lang-go': 6.0.1(@codemirror/view@6.28.6)
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-java': 6.0.1
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/lang-json': 6.0.1
- '@codemirror/lang-less': 6.0.2(@codemirror/view@6.28.6)
- '@codemirror/lang-liquid': 6.2.1
- '@codemirror/lang-markdown': 6.2.5
- '@codemirror/lang-php': 6.0.1
- '@codemirror/lang-python': 6.1.6(@codemirror/view@6.28.6)
- '@codemirror/lang-rust': 6.0.1
- '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.28.6)
- '@codemirror/lang-sql': 6.7.0(@codemirror/view@6.28.6)
- '@codemirror/lang-vue': 0.1.3
- '@codemirror/lang-wast': 6.0.2
- '@codemirror/lang-xml': 6.1.0
- '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.28.6)
- '@codemirror/language': 6.10.2
- '@codemirror/legacy-modes': 6.4.0
- transitivePeerDependencies:
- - '@codemirror/view'
- dev: false
-
- /@codemirror/language@6.10.2:
- resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==}
- dependencies:
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- style-mod: 4.1.2
- dev: false
-
- /@codemirror/legacy-modes@6.4.0:
- resolution: {integrity: sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==}
- dependencies:
- '@codemirror/language': 6.10.2
- dev: false
-
- /@codemirror/lint@6.8.1:
- resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==}
- dependencies:
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- crelt: 1.0.6
- dev: false
-
- /@codemirror/search@6.5.6:
- resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==}
- dependencies:
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- crelt: 1.0.6
- dev: false
-
- /@codemirror/state@6.4.1:
- resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==}
- dev: false
-
- /@codemirror/theme-one-dark@6.1.2:
- resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/highlight': 1.2.0
- dev: false
-
- /@codemirror/view@6.28.6:
- resolution: {integrity: sha512-bhwB1AZ6zU4M3dNKm8Aa2BXwj5mWDqE9IWpqxYKJoLCnx+AcwcMuLO01tLWgc1mx4vT1IVYVqx86YoqUsATrqQ==}
- dependencies:
- '@codemirror/state': 6.4.1
- style-mod: 4.1.2
- w3c-keyname: 2.2.8
- dev: false
-
- /@emoji-mart/data@1.2.1:
- resolution: {integrity: sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==}
- dev: false
-
- /@esbuild/aix-ppc64@0.21.5:
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/android-arm64@0.21.5:
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/android-arm@0.21.5:
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/android-x64@0.21.5:
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/darwin-arm64@0.21.5:
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/darwin-x64@0.21.5:
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/freebsd-arm64@0.21.5:
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/freebsd-x64@0.21.5:
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-arm64@0.21.5:
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-arm@0.21.5:
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-ia32@0.21.5:
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-loong64@0.21.5:
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-mips64el@0.21.5:
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-ppc64@0.21.5:
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-riscv64@0.21.5:
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-s390x@0.21.5:
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/linux-x64@0.21.5:
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/netbsd-x64@0.21.5:
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/openbsd-x64@0.21.5:
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/sunos-x64@0.21.5:
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/win32-arm64@0.21.5:
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/win32-ia32@0.21.5:
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@esbuild/win32-x64@0.21.5:
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@floating-ui/core@1.6.5:
- resolution: {integrity: sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==}
- dependencies:
- '@floating-ui/utils': 0.2.5
- dev: false
-
- /@floating-ui/dom@1.6.8:
- resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==}
- dependencies:
- '@floating-ui/core': 1.6.5
- '@floating-ui/utils': 0.2.5
- dev: false
-
- /@floating-ui/react-dom@2.1.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
- dependencies:
- '@floating-ui/dom': 1.6.8
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@floating-ui/react@0.26.20(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-RixKJJG92fcIsVoqrFr4Onpzh7hlOx4U7NV4aLhMLmtvjZ5oTB/WzXaANYUZATKqXvvW7t9sCxtzejip26N5Ag==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
- dependencies:
- '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1)(react@18.3.1)
- '@floating-ui/utils': 0.2.5
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- tabbable: 6.2.0
- dev: false
-
- /@floating-ui/utils@0.2.5:
- resolution: {integrity: sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==}
- dev: false
-
- /@formatjs/ecma402-abstract@2.0.0:
- resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==}
- dependencies:
- '@formatjs/intl-localematcher': 0.5.4
- tslib: 2.6.3
- dev: false
-
- /@formatjs/fast-memoize@2.2.0:
- resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==}
- dependencies:
- tslib: 2.6.3
- dev: false
-
- /@formatjs/icu-messageformat-parser@2.7.8:
- resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==}
- dependencies:
- '@formatjs/ecma402-abstract': 2.0.0
- '@formatjs/icu-skeleton-parser': 1.8.2
- tslib: 2.6.3
- dev: false
-
- /@formatjs/icu-skeleton-parser@1.8.2:
- resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==}
- dependencies:
- '@formatjs/ecma402-abstract': 2.0.0
- tslib: 2.6.3
- dev: false
-
- /@formatjs/intl-localematcher@0.5.4:
- resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==}
- dependencies:
- tslib: 2.6.3
- dev: false
-
- /@headlessui/react@2.1.2(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Kb3hgk9gRNRcTZktBrKdHhF3xFhYkca1Rk6e1/im2ENf83dgN54orMW0uSKTXFnUpZOUFZ+wcY05LlipwgZIFQ==}
- engines: {node: '>=10'}
- peerDependencies:
- react: ^18
- react-dom: ^18
- dependencies:
- '@floating-ui/react': 0.26.20(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@tanstack/react-virtual': 3.8.3(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@heroicons/react@2.1.5(react@18.3.1):
- resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==}
- peerDependencies:
- react: '>= 16'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@iconify/react@5.0.1(react@18.3.1):
- resolution: {integrity: sha512-octpAJRtHZLLS1o6fmz2Ek2Rfwx75kVg48MZyGTqL3QqoxRddEsuLqOt6ADDhRosmlrYnIrVL+7obo1bz2ikNw==}
- peerDependencies:
- react: '>=16'
- dependencies:
- '@iconify/types': 2.0.0
- react: 18.3.1
- dev: true
-
- /@iconify/types@2.0.0:
- resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- dev: true
-
- /@internationalized/date@3.5.5:
- resolution: {integrity: sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==}
- dependencies:
- '@swc/helpers': 0.5.12
- dev: false
-
- /@internationalized/message@3.1.4:
- resolution: {integrity: sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==}
- dependencies:
- '@swc/helpers': 0.5.12
- intl-messageformat: 10.5.14
- dev: false
-
- /@internationalized/number@3.5.3:
- resolution: {integrity: sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==}
- dependencies:
- '@swc/helpers': 0.5.12
- dev: false
-
- /@internationalized/string@3.2.3:
- resolution: {integrity: sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw==}
- dependencies:
- '@swc/helpers': 0.5.12
- dev: false
-
- /@isaacs/cliui@8.0.2:
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
- dependencies:
- string-width: 5.1.2
- string-width-cjs: /string-width@4.2.3
- strip-ansi: 7.1.0
- strip-ansi-cjs: /strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: /wrap-ansi@7.0.0
-
- /@jridgewell/gen-mapping@0.3.5:
- resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
- engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
-
- /@jridgewell/resolve-uri@3.1.2:
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- /@jridgewell/set-array@1.2.1:
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
-
- /@jridgewell/sourcemap-codec@1.5.0:
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- /@jridgewell/trace-mapping@0.3.25:
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
-
- /@lezer/common@1.2.1:
- resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
- dev: false
-
- /@lezer/cpp@1.1.2:
- resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/css@1.1.8:
- resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/go@1.0.0:
- resolution: {integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/highlight@1.2.0:
- resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==}
- dependencies:
- '@lezer/common': 1.2.1
- dev: false
-
- /@lezer/html@1.3.10:
- resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/java@1.1.2:
- resolution: {integrity: sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/javascript@1.4.17:
- resolution: {integrity: sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/json@1.0.2:
- resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/lezer@1.1.2:
- resolution: {integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==}
- dependencies:
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/lr@1.4.1:
- resolution: {integrity: sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==}
- dependencies:
- '@lezer/common': 1.2.1
- dev: false
-
- /@lezer/markdown@1.3.0:
- resolution: {integrity: sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- dev: false
-
- /@lezer/php@1.0.2:
- resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/python@1.1.14:
- resolution: {integrity: sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/rust@1.0.2:
- resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/sass@1.0.6:
- resolution: {integrity: sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/xml@1.0.5:
- resolution: {integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@lezer/yaml@1.0.3:
- resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==}
- dependencies:
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@mantine/core@7.11.2(@mantine/hooks@7.11.2)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-T64RjdgY8UPAv249miW1lQyPPot1JbCcKKsAZMNQHgcttcxLhrFpKVvglc4/48hdSoxI4LYJPNvqp7zciZmucQ==}
- peerDependencies:
- '@mantine/hooks': 7.11.2
- react: ^18.2.0
- react-dom: ^18.2.0
- dependencies:
- '@floating-ui/react': 0.26.20(react-dom@18.3.1)(react@18.3.1)
- '@mantine/hooks': 7.11.2(react@18.3.1)
- clsx: 2.1.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-number-format: 5.4.0(react-dom@18.3.1)(react@18.3.1)
- react-remove-scroll: 2.5.10(@types/react@18.3.3)(react@18.3.1)
- react-textarea-autosize: 8.5.3(@types/react@18.3.3)(react@18.3.1)
- type-fest: 4.23.0
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@mantine/hooks@7.11.2(react@18.3.1):
- resolution: {integrity: sha512-jhyVe/sbDEG2U8rr2lMecUPgQxcfr5hh9HazqGfkS7ZRIMDO7uJ947yAcTMGGkp5Lxtt5TBFt1Cb6tiB2/1agg==}
- peerDependencies:
- react: ^18.2.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /@mantine/utils@6.0.22(react@18.3.1):
- resolution: {integrity: sha512-RSKlNZvxhMCkOFZ6slbYvZYbWjHUM+PxDQnupIOxIdsTZQQjx/BFfrfJ7kQFOP+g7MtpOds8weAetEs5obwMOQ==}
- peerDependencies:
- react: '>=16.8.0'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextjournal/lang-clojure@1.0.0:
- resolution: {integrity: sha512-gOCV71XrYD0DhwGoPMWZmZ0r92/lIHsqQu9QWdpZYYBwiChNwMO4sbVMP7eTuAqffFB2BTtCSC+1skSH9d3bNg==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@nextjournal/lezer-clojure': 1.0.0
- dev: false
-
- /@nextjournal/lezer-clojure@1.0.0:
- resolution: {integrity: sha512-VZyuGu4zw5mkTOwQBTaGVNWmsOZAPw5ZRxu1/Knk/Xfs7EDBIogwIs5UXTYkuECX5ZQB8eOB+wKA2pc7VyqaZQ==}
- dependencies:
- '@lezer/lr': 1.4.1
- dev: false
-
- /@nextui-org/accordion@2.0.38(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-kFCZU1VaKkUI295Fg3NxuQR2+kZ5vTH4ftIs0oByrOs0+l14dVQGFOd9ZV402fHNykZJt7Sk6oWjTp4Qwl83JA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/divider': 2.0.31(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-accordion': 2.0.7(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/button': 3.9.5(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tree': 3.8.1(react@18.3.1)
- '@react-types/accordion': 3.0.0-alpha.21(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/aria-utils@2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-YD+YvT01zFqN1Ey137OeFl9SEhAYf2BoZz+ykWiIJlMjl/LY1d5WE0nkzsjMHh6MV3HgS6CExxlf7TuApN6Piw==}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-rsc-utils': 2.0.13
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/collections': 3.10.7(react@18.3.1)
- '@react-stately/overlays': 3.6.7(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@nextui-org/theme'
- - framer-motion
- dev: false
-
- /@nextui-org/autocomplete@2.1.5(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-VcSe3B/CmIvfZnAJHHYKp3r83QrqI0T8v9jjrpQ0PN8qKOc7LmQUsvnAkBRuHCLlaC1xPwZtyJp0TJyRF8tM3w==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/input': 2.2.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/listbox': 2.1.25(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/popover': 2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/scroll-shadow': 2.1.19(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/spinner': 2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/combobox': 3.9.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/combobox': 3.8.4(react@18.3.1)
- '@react-types/combobox': 3.11.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/avatar@2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-2dCpIKuGvbOVLJ6m2AkNhPqqamIin3FDqDLop2ILNhyAxgxPYitqE3JqsUA/hlZCzu79sZudruuubzHWzHqf0Q==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-image': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/badge@2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ayOw9j6Fa/RxZjk+2AhhBzXFm2Xv2RNYMrXAqGaJ+cbhofsqu8QnP0/4W+CiVXx8C0jpPmNAgSklRXgbKHs10Q==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/breadcrumbs@2.0.12(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-PCZI7xqu1UrjJcCkd6HwGJ+h2L5k6LMBQRVbD8/7jMKkJxpoQXC7h5uCtEeLG2CafVih4cUCBTuzUnsubtKLnQ==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/breadcrumbs': 3.5.13(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/breadcrumbs': 3.7.5(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/button@2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-dBtdO30qfu+K4YYLNmmpUy16Q82H1ucY8A4NjP4iEAJ1sPunoAYvba7h9xabrpUKW9IOyItOThSesxsfpaXYug==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/ripple': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/spinner': 2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@react-aria/button': 3.9.5(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/calendar@2.0.11(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-pgCEekJHSr5QKxpJaABIFS2ItqgK8qZ7pKrCOJjmRHBh4Y9WGfndrIW6z3IkHZiO01CKJbpjb9ytTjufsU6kIA==}
- peerDependencies:
- '@nextui-org/system': '>=2.1.0'
- '@nextui-org/theme': '>=2.2.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@internationalized/date': 3.5.5
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@react-aria/calendar': 3.5.8(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/calendar': 3.5.1(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/calendar': 3.4.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@types/lodash.debounce': 4.0.9
- lodash.debounce: 4.0.8
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- scroll-into-view-if-needed: 3.0.10
- transitivePeerDependencies:
- - framer-motion
- dev: false
-
- /@nextui-org/card@2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-iO/ThbUz75YlcFrWO9EssMhOxbc9LN0SSk181+2QnPDbKls9wbkUEfGjq/d9k3h6jb9FaR5N5XwVpT4aUt2Usw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/ripple': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@react-aria/button': 3.9.5(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/checkbox@2.1.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-74AD4imL064mvs4trQKQj/efwIZYaBt0TmXO6jV+6xGE6S9YjCAy+OBotrgRBG9fURQVQU1qJGnwwsOIdxCXkA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-callback-ref': 2.0.6(react@18.3.1)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/checkbox': 3.14.3(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/checkbox': 3.6.5(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-types/checkbox': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/chip@2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-fGqXamG7xs+DvKPra+rJEkIAjaQwPi8FSvsJ4P4LWzQ3U+HjymEI07BW8xQmaLceHInbTLTfdbTjAYdGNzAdOQ==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/checkbox': 3.8.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/code@2.0.32(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-YBLCWDgR+ebWIr+noN02/ls+PsQV9leLskgPLFUfpRzHoXdGeUUhE8IjTv14KFP3XlW3Cf9ALFy3IgPuIZ+yuQ==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/date-input@2.1.3(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Y6d+AVPnM7uYy7boSHrk+cW/pft1fKbpXh/ed5omTgFx6rKRZ/agQmP5erMcmNzpv3Bis4wCc89WNnBtCjEZMw==}
- peerDependencies:
- '@nextui-org/system': '>=2.1.0'
- '@nextui-org/theme': '>=2.2.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@internationalized/date': 3.5.5
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/datepicker': 3.10.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/datepicker': 3.9.4(react@18.3.1)
- '@react-types/datepicker': 3.7.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/date-picker@2.1.6(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-PycYKAm1tmew64aQWQtZfTbV73S4GPGYJnK6hr9W0iXUCOQQH5UbzLwdWGXnVXvtrJzczFQllaXaQccwWCeTzg==}
- peerDependencies:
- '@nextui-org/system': '>=2.1.0'
- '@nextui-org/theme': '>=2.2.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@internationalized/date': 3.5.5
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/calendar': 2.0.11(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/date-input': 2.1.3(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/popover': 2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/datepicker': 3.10.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/datepicker': 3.9.4(react@18.3.1)
- '@react-stately/overlays': 3.6.7(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/datepicker': 3.7.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- - framer-motion
- dev: false
-
- /@nextui-org/divider@2.0.31(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-z9GhrpmhXhJGuW0GSO1OP01mwDTSItuIRIz0VGpKOPVTqOzOMHkXN978wgNXqJ+knWZcaiF7WHvd83O05jmbkg==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-rsc-utils': 2.0.13
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/dropdown@2.1.29(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ujHJVHzOcfwqNqlkt14t8YV3AAn03sME7gBxujQcwtDFGYMJeP9pvTU24L/FjBEb3Fd1XdhjwowU/sTuVTK4Yg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/menu': 2.0.28(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/popover': 2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/menu': 3.14.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/menu': 3.7.1(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/framer-utils@2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Fc5ugVaLsXhd3bgJg+hvw20uaaz9gAxYY2ouS/3leN7QBSRAwpy3Dl+tX8BbLeyx3ZosVrHIJ3w4bhDMzFVk9Q==}
- peerDependencies:
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/use-measure': 2.0.2(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@nextui-org/theme'
- dev: false
-
- /@nextui-org/image@2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-HxWaGUBtNaT9pLGvDo5Q2ruGxdhXYrdNcLvRhtoohiZeIKo1Y8jTbBUCVGxdxklTZAF3H7klrTcsdSwHTGfk0g==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-image': 2.0.6(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/input@2.2.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-CVeTwwUJn9pEJC+kq3Jg0nAFeYVGBbIU7U2YFSG8XJK2X75odj8RSQdVd3Dt2U/b5Mtwt5sBh9gMzCedtjffWg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/textfield': 3.14.5(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@react-types/textfield': 3.9.3(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-textarea-autosize: 8.5.3(@types/react@18.3.3)(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/kbd@2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-1Q7vKKJjfn5RPMsySQEljo2clf03Ta4V4ZA4O92ktJ8YzbdNnDfUiWtfFxF64R183ZVfe869RBSpuOdzZLNuKQ==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/link@2.0.34(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-497AvjzckEB/TE1eJEziS2QkxwCY81RPsWoApNSeHGdYrMO1tfgUFKATgadfBQjoba6FdCcLc2QaUapOetqFaA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-link': 2.0.19(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/link': 3.7.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/link': 3.5.5(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/listbox@2.1.25(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-WJqxhzPxADLIsenREaaoQ44bs3gQx5yqOvK86Jkiv/m9nXr0YuxZOJEsVa5GenkmyJBrEd6LkBV5cZ1TGNzbJw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/divider': 2.0.31(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-is-mobile': 2.0.9(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/listbox': 3.12.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/list': 3.10.5(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - framer-motion
- dev: false
-
- /@nextui-org/menu@2.0.28(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-/bcIeBCGpauDkdz6VZvl1YXP5xpSSSYVTvhsChkcvzWzDXLG004uVAsw4kjP2i9OGxoehrjkl9wkIzCFCEdsHw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/divider': 2.0.31(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-menu': 2.0.6(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/use-is-mobile': 2.0.9(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/menu': 3.14.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/menu': 3.7.1(react@18.3.1)
- '@react-stately/tree': 3.8.1(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - framer-motion
- dev: false
-
- /@nextui-org/modal@2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-b0G5IRNrfQumx8mQQO92rn2iC2ueUuk4XKvxYYmYNpx3/qpdEP9tckozw+s0QFyZocRPY+yYa0pBtMBGC2lWGQ==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@nextui-org/use-aria-modal-overlay': 2.0.11(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/use-disclosure': 2.0.10(react@18.3.1)
- '@react-aria/dialog': 3.5.14(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/overlays': 3.6.7(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/navbar@2.0.36(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-uobdPsh4TSPm2Us74/Vey43z0/oRqWb6x4+eHIJf9VhYP9pY733N2n17v2mvU7SvcNhkold/PWfXPYiA8kMlug==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-toggle-button': 2.0.10(react@18.3.1)
- '@nextui-org/use-scroll-position': 2.0.8(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.10(@types/react@18.3.3)(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/pagination@2.0.35(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-07KJgZcJBt2e9RY6TsiQm5qrjDLH+gT3yB7yQ4jPdCK9fkTB0r2kvTOYdPUvrtVJYRq2bwFCWOz+9mokdNfcwg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-pagination': 2.0.9(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- scroll-into-view-if-needed: 3.0.10
- dev: false
-
- /@nextui-org/popover@2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-UV42nqvUR9IOy7Hgc5S2Xo+2YWzBAHCcU+C/9O9SchXL0DyU/ol+IPqxuBxdJDi5fiFYr9mTBoPZgAEGDoJjDg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/dialog': 3.5.14(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/overlays': 3.6.7(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.10(@types/react@18.3.3)(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/progress@2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-rP54lZbH7BSzX9sFj7k3ylrUpk10XDWngc1dB1M+GlPsI2XRnzI3s+GE9kuZG2+N6eL/KLVG1YOg8u9eAYnwpA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-is-mounted': 2.0.6(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/progress': 3.4.13(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/progress': 3.5.4(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/radio@2.1.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Y18TXvGVz/G1E3jjYmutSSx1EdQRs5iMCVZNS/Bz4avE9QMSrHl6fOhZIndrm8LwCTqn7lbKRQngZLN4tvPinQ==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/radio': 3.10.4(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/radio': 3.10.4(react@18.3.1)
- '@react-types/radio': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/react-rsc-utils@2.0.13:
- resolution: {integrity: sha512-QewsXtoQlMsR9stThdazKEImg9oyZkPLs7wsymhrzh6/HdQCl9bTdb6tJcROg4vg5LRYKGG11USSQO2nKlfCcQ==}
- dev: false
-
- /@nextui-org/react-utils@2.0.16(react@18.3.1):
- resolution: {integrity: sha512-QdDoqzhx+4t9cDTVmtw5iOrfyLvpqyKsq8PARHUniCiQQDQd1ao7FCpzHgvU9poYcEdRk+Lsna66zbeMkFBB6w==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/react-rsc-utils': 2.0.13
- '@nextui-org/shared-utils': 2.0.7
- react: 18.3.1
- dev: false
-
- /@nextui-org/react@2.4.6(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)(tailwindcss@3.4.6):
- resolution: {integrity: sha512-8o/k5A5g0xXj6hmV2AulkAswQnZGt2WI64Coq+toWBTumQLcW6iAqPJBDztCDiz+6yiU6Nvk/1ZuZJeRs3XMRw==}
- peerDependencies:
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/accordion': 2.0.38(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/autocomplete': 2.1.5(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/avatar': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/badge': 2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/breadcrumbs': 2.0.12(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/calendar': 2.0.11(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/card': 2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/checkbox': 2.1.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/chip': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/code': 2.0.32(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/date-input': 2.1.3(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/date-picker': 2.1.6(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/divider': 2.0.31(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/dropdown': 2.1.29(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/image': 2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/input': 2.2.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/kbd': 2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/link': 2.0.34(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/listbox': 2.1.25(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/menu': 2.0.28(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/modal': 2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/navbar': 2.0.36(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/pagination': 2.0.35(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/popover': 2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/progress': 2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/radio': 2.1.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/ripple': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/scroll-shadow': 2.1.19(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/select': 2.2.5(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/skeleton': 2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/slider': 2.2.15(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/snippet': 2.0.41(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/spacer': 2.0.32(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/spinner': 2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/switch': 2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/table': 2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/tabs': 2.0.35(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/tooltip': 2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/user': 2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- - tailwindcss
- dev: false
-
- /@nextui-org/ripple@2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-xOqoHWzpvv5KRh7P8pXt3aZEmI1tyhiTNhrwjJaRME0d5xSA0gNzYhrjP5g0+Dxy4nKRDIZ1znJcd87KI07JFA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/scroll-shadow@2.1.19(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-od5AnhX6iO0sHoTAVReWv1O1dbNCEeOBOFdnyzFins6ZC5EnAl/oBPR/KLd8glHtgM3Jt8dvIVlBXPEPZKZwaw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-data-scroll-overflow': 2.1.6(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/select@2.2.5(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Il1eigjSXOBgJ745nhn6TDPD1jj1avrnvk9WV/DCjOsFRwfstRnDzsS1aNpZKHqJgHhFRQZ1ivz8hA4x3Zgasg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/listbox': 2.1.25(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/popover': 2.1.27(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(@types/react@18.3.3)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/scroll-shadow': 2.1.19(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/spinner': 2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@nextui-org/use-aria-multiselect': 2.2.3(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/form': 3.0.5(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /@nextui-org/shared-icons@2.0.9(react@18.3.1):
- resolution: {integrity: sha512-WG3yinVY7Tk9VqJgcdF4V8Ok9+fcm5ey7S1els7kujrfqLYxtqoKywgiY/7QHwZlfQkzpykAfy+NAlHkTP5hMg==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/shared-utils@2.0.7:
- resolution: {integrity: sha512-FxY3N0i1Al7Oz3yOQN0dSpG8UUrLIP3iYh3ubD7BhdQoZLl5xbG6++q1gqOzZXV+ZWeUFMY/or0ofzWxGHiOow==}
- dev: false
-
- /@nextui-org/skeleton@2.0.31(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-pT0l2skPP6Nq9edLJNQxUJI/WLKu4Lx5Vvs7nlE/9NpkxyQ805l4LiYsMD30dkjjxe+WpXtIjjAXY0BQqdid0Q==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/slider@2.2.15(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ImsxvxAJ2wxRL45y4IbVWThZI/vw2Gq/6qUVZFAwyF54dlro08eJZJIOOG7bKfA5Ob63JLfroUijrlZ9kGP5cA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/tooltip': 2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/slider': 3.7.8(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/slider': 3.5.4(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - framer-motion
- dev: false
-
- /@nextui-org/snippet@2.0.41(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ZZopaecAZbKJIdabwGVF3ahL2MM7L0zZII61SO3LDPAwqXOuta9ixMYk1XVCI0V2PVqTkabQgdpt1ZLgmFH+Kw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/button': 2.0.37(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/tooltip': 2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/use-clipboard': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/spacer@2.0.32(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-NxqEYTig4OfkLDPlO2/jASB4gV8L9DLpsNZSqzaacIJZwk4BCTsNoBi3CuNt5ZsMoGYujtFP6QU0zH9fZbuzwA==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/spinner@2.0.33(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-c1wW4YEbzdn0t1MJAXhJ2W0PuNxrxtZg2DVqJeqh3180y4iQPYDzEy7oFoU0FpK53LcBPxjfsKHNL6v1pn+60A==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/switch@2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-T7w+8+ex7Pey9HVGXkNft4D11mO5J9iPfmemfLbSOYqbSydcOuINuGRQ1QWy7X+lLYhhZBHb9Ykcf4QtR4dqTQ==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/switch': 3.6.4(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/system-rsc@2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1):
- resolution: {integrity: sha512-tkJLAyJu34Rr5KUMMqoB7cZjOVXB+7a/7N4ushZfuiLdoYijgmcXFMzLxjm+tbt9zA5AV+ivsfbHvscg77dJ6w==}
- peerDependencies:
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- dependencies:
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-types/shared': 3.23.1(react@18.3.1)
- clsx: 1.2.1
- react: 18.3.1
- dev: false
-
- /@nextui-org/system@2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-nrX6768aiyWtpxX3OTFBIVWR+v9nlMsC3KaBinNfek97sNm7gAfTHi7q5kylE3L5yIMpNG+DclAKpuxgDQEmvw==}
- peerDependencies:
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@internationalized/date': 3.5.5
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/system-rsc': 2.1.5(@nextui-org/theme@2.2.9)(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@nextui-org/theme'
- dev: false
-
- /@nextui-org/table@2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-VYvmrQ6GliwmzukKLZ7Nxp3sFXdskWZp8/BjwROLFE9Zco22CC0++7VPG3ebOYAIhi4e1Je+QUTx4/eh2wZZgg==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/checkbox': 2.1.4(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-icons': 2.0.9(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/spacer': 2.0.32(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/table': 3.14.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/table': 3.11.8(react@18.3.1)
- '@react-stately/virtualizer': 3.7.1(react@18.3.1)
- '@react-types/grid': 3.2.6(react@18.3.1)
- '@react-types/table': 3.9.5(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/tabs@2.0.35(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-K6uDZbJwn1qLRw8XeBS2TwGQl9zKXg3Q1ShLzVG2IjTGHGNAn9lwkUzn0FNUNaU1GK2o8wOyKhX7K02J3Ev5fw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-is-mounted': 2.0.6(react@18.3.1)
- '@nextui-org/use-update-effect': 2.0.6(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/tabs': 3.9.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tabs': 3.6.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@react-types/tabs': 3.3.7(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- scroll-into-view-if-needed: 3.0.10
- dev: false
-
- /@nextui-org/theme@2.2.9(tailwindcss@3.4.6):
- resolution: {integrity: sha512-TN2I9sMriLaj00pXsIMlg19+UHeOdjzS2JV0u4gjL14mSbQl5BYNxgbvU3gbMqkZZQ6OpwT4RnT8RS+ks6TXCw==}
- peerDependencies:
- tailwindcss: '>=3.4.0'
- dependencies:
- clsx: 1.2.1
- color: 4.2.3
- color2k: 2.0.3
- deepmerge: 4.3.1
- flat: 5.0.2
- lodash.foreach: 4.5.0
- lodash.get: 4.4.2
- lodash.kebabcase: 4.1.1
- lodash.mapkeys: 4.6.0
- lodash.omit: 4.5.0
- tailwind-merge: 1.14.0
- tailwind-variants: 0.1.20(tailwindcss@3.4.6)
- tailwindcss: 3.4.6
- dev: false
-
- /@nextui-org/tooltip@2.0.39(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-DWP3XAmVb/SlcdI4SQodtT8ZyMzYMuvRbq4+JQwm+qq1+FGs55z15+8h9DRFQEseEEaDs0hCs6+kgbieZlUitw==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- framer-motion: '>=10.17.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/aria-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/framer-utils': 2.0.24(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/tooltip': 3.7.4(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tooltip': 3.4.9(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- '@react-types/tooltip': 3.4.9(react@18.3.1)
- framer-motion: 11.3.8(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/use-aria-accordion@2.0.7(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-VzGlxmsu2tWG2Pht1e0PBz40jz95v0OEKYVXq91WpDMwj8Bl1CYvxrw2Qz41/5Xi0X843Mmo4sPwrc/hk0+RHA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@react-aria/button': 3.9.5(react@18.3.1)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/selection': 3.18.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tree': 3.8.1(react@18.3.1)
- '@react-types/accordion': 3.0.0-alpha.21(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- transitivePeerDependencies:
- - react-dom
- dev: false
-
- /@nextui-org/use-aria-button@2.0.10(react@18.3.1):
- resolution: {integrity: sha512-tUpp4QMr1zugKPevyToeRHIufTuc/g+67/r/oQLRTG0mMo3yGVmggykQuYn22fqqZPpW6nHcB9VYc+XtZZ27TQ==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-aria-link@2.0.19(react@18.3.1):
- resolution: {integrity: sha512-ef61cJLlwcR4zBWiaeHZy4K18juFjUup2SslfLIAiZz3kVosBCGKmkJkw1SASYY8+D/oUc2B6BFIk25YEsRKRw==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/link': 3.5.5(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-aria-menu@2.0.6(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-fGDF25E99THbgeDV2r2w4BHw5ZbGW3Lu6Y+vbLUcLBBh6x8/W8cqrpYFrzSUzn1RCun1t17yOAHZEV2rbvtMzA==}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/menu': 3.14.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/selection': 3.18.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/collections': 3.10.7(react@18.3.1)
- '@react-stately/tree': 3.8.1(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/use-aria-modal-overlay@2.0.11(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-crMOCHyGIiBJiihxqidJCNR3AHH62uewfImDLEwyE/SlIkhAqW5jteUhkq0QfCSH4U/ydWisQ14niWDEgtzxXg==}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/overlays': 3.6.7(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/use-aria-multiselect@2.2.3(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-VeRoyyUUVgJ7DrdfzU6onjohHxJfG7bmwpIfQyurMzvTZcmcVUGTnddAnRPVEoOro68tTAj4IuPs/4xkf1aXxg==}
- peerDependencies:
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/label': 3.7.8(react@18.3.1)
- '@react-aria/listbox': 3.12.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/menu': 3.14.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/selection': 3.18.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/form': 3.0.3(react@18.3.1)
- '@react-stately/list': 3.10.5(react@18.3.1)
- '@react-stately/menu': 3.7.1(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- '@react-types/select': 3.9.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nextui-org/use-aria-toggle-button@2.0.10(react@18.3.1):
- resolution: {integrity: sha512-U5jOmEO+nMIgYvBF0+gJtdq8C6dynGMjzAboPG4FhuHOzDoNiC12G5FIbGnRe8K1hMsKVuaI72p9986NhfqNgw==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/use-aria-button': 2.0.10(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-callback-ref@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-2WcwWuK1L/wIpTbibnLrysmmkzWomvkVIcgWayB6n/w+bpPrPCG7Zyg2WHzmMmDhe6imV//KKBgNKRi8Xhu/VA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-clipboard@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-UQbCoAX1vqEKYeMF8Xp2RdTqbDD8Or16+7W4f8OQc5+uaJeKaAL6LPITi5M5ipgruTvzM845XooHdiAStH322Q==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-data-scroll-overflow@2.1.6(react@18.3.1):
- resolution: {integrity: sha512-z9XzBF64qjTSp6jTttMDEPku7Xpgci/tYTokEQHWgydRg3FZEaBqRgOOMeiXAV1Py/kQB062MjPSneUtwYlozA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/shared-utils': 2.0.7
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-disclosure@2.0.10(react@18.3.1):
- resolution: {integrity: sha512-s2I58d7x2f1JRriZnNm9ZoxrGmxF+DnC9BXM1sD99Wq1VNMd0dhitmx0mUWfUB7l5HLyZgKOeiSLG+ugy1F1Yw==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/use-callback-ref': 2.0.6(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-image@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-VelN9y3vzwIpPfubFMh00YRQ0f4+I5FElcAvAqoo0Kfb0K7sGrTo1lZNApHm6yBN2gJMMeccG9u7bZB+wcDGZQ==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/use-safe-layout-effect': 2.0.6(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-is-mobile@2.0.9(react@18.3.1):
- resolution: {integrity: sha512-u5pRmPV0wacdpOcAkQnWwE30yNBl2uk1WvbWkrSELxIVRN22+fTIYn8ynnHK0JbJFTA6/5zh7uIfETQu3L6KjA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@react-aria/ssr': 3.9.4(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-is-mounted@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-/lcMdYnwBZ1EuKMLRIhHeAZG8stXWNTz7wBweAlLId23VC4VHgCp/s9K9Vbj1A5/r8FiFQeoTmXQuMAMUoPRtg==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-measure@2.0.2(react@18.3.1):
- resolution: {integrity: sha512-H/RSPPA9B5sZ10wiXR3jLlYFEuiVnc0O/sgLLQfrb5M0hvHoaqMThnsZpm//5iyS7tD7kxPeYNLa1EhzlQKxDA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-pagination@2.0.9(react@18.3.1):
- resolution: {integrity: sha512-p5Gssyb71/SjRezq2o1aRsYTmC9idziW3pLCJFpVwLGfgWNARf9C6NS1oQsqKgjF5lvzoa88soZRDhKKvRAt/g==}
- peerDependencies:
- react: '>=18'
- dependencies:
- '@nextui-org/shared-utils': 2.0.7
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-safe-layout-effect@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-xzEJXf/g9GaSqjLpQ4+Z2/pw1GPq2Fc5cWRGqEXbGauEMXuH8UboRls1BmIV1RuOpqI6FgxkEmxL1EuVIRVmvQ==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-scroll-position@2.0.8(react@18.3.1):
- resolution: {integrity: sha512-sUuoLEPWxCNlgzayy3VZSneVA1rKSdh4kBuBbYJTp/g2yyrpZYnyYzWpeNJ4dhDQr1cpTDODehJekWPBhNN+uw==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/use-update-effect@2.0.6(react@18.3.1):
- resolution: {integrity: sha512-n5Qiv3ferKn+cSxU3Vv+96LdG8I/00mzc7Veoan+P9GL0aCTrsPB6RslTsiblaiAXQcqTiFXd8xwsK309DXOXA==}
- peerDependencies:
- react: '>=18'
- dependencies:
- react: 18.3.1
- dev: false
-
- /@nextui-org/user@2.0.33(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-v6gGTlsaqM7Ndwtx9N/AAQFRICcIE5DuFxRZRqPfLa+jbZhJuWG2OSIATPeUOxgr8pKWpeV78nETdFKEKcsUPA==}
- peerDependencies:
- '@nextui-org/system': '>=2.0.0'
- '@nextui-org/theme': '>=2.1.0'
- react: '>=18'
- react-dom: '>=18'
- dependencies:
- '@nextui-org/avatar': 2.0.32(@nextui-org/system@2.2.5)(@nextui-org/theme@2.2.9)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/react-utils': 2.0.16(react@18.3.1)
- '@nextui-org/shared-utils': 2.0.7
- '@nextui-org/system': 2.2.5(@nextui-org/theme@2.2.9)(framer-motion@11.3.8)(react-dom@18.3.1)(react@18.3.1)
- '@nextui-org/theme': 2.2.9(tailwindcss@3.4.6)
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@nodelib/fs.scandir@2.1.5:
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
-
- /@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'}
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
-
- /@pkgjs/parseargs@0.11.0:
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
- requiresBuild: true
- optional: true
-
- /@popperjs/core@2.11.8:
- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- dev: false
-
- /@radix-ui/primitive@1.1.0:
- resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
- dev: false
-
- /@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==}
- 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
- dependencies:
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==}
- 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
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1)
- dev: false
-
- /@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
- 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
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1)
- dev: false
-
- /@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==}
- 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
- dependencies:
- '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/rect': 1.1.0
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
- 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
- dependencies:
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
- 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
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
- 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
- dependencies:
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-toast@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-5trl7piMXcZiCq7MW6r8YYmu0bK5qDpTWz+FdEPdKyft2UixkspheYbjbrLXVN5NGKHFbOP7lm8eD0biiSqZqg==}
- 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
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/rect': 1.1.0
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==}
- 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
- dependencies:
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@radix-ui/rect@1.1.0:
- resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
- dev: false
-
- /@react-aria/breadcrumbs@3.5.13(react@18.3.1):
- resolution: {integrity: sha512-G1Gqf/P6kVdfs94ovwP18fTWuIxadIQgHsXS08JEVcFVYMjb9YjqnEBaohUxD1tq2WldMbYw53ahQblT4NTG+g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/link': 3.7.2(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/breadcrumbs': 3.7.5(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/button@3.9.5(react@18.3.1):
- resolution: {integrity: sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/toggle': 3.7.5(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/calendar@3.5.8(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Whlp4CeAA5/ZkzrAHUv73kgIRYjw088eYGSc+cvSOCxfrc/2XkBm9rNrnSBv0DvhJ8AG0Fjz3vYakTmF3BgZBw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/live-announcer': 3.3.4
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/calendar': 3.5.1(react@18.3.1)
- '@react-types/button': 3.9.4(react@18.3.1)
- '@react-types/calendar': 3.4.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/checkbox@3.14.3(react@18.3.1):
- resolution: {integrity: sha512-EtBJL6iu0gvrw3A4R7UeVLR6diaVk/mh4kFBc7c8hQjpEJweRr4hmJT3hrNg3MBcTWLxFiMEXPGgWEwXDBygtA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/form': 3.0.6(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/toggle': 3.10.5(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/checkbox': 3.6.5(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-types/checkbox': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/combobox@3.9.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-SpK92dCmT8qn8aEcUAihRQrBb5LZUhwIbDExFII8PvUvEFy/PoQHXIo3j1V29WkutDBDpMvBv/6XRCHGXPqrhQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/listbox': 3.13.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/live-announcer': 3.3.4
- '@react-aria/menu': 3.15.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/overlays': 3.23.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/textfield': 3.14.6(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/combobox': 3.8.4(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/combobox': 3.11.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/datepicker@3.10.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-4HZL593nrNMa1GjBmWEN/OTvNS6d3/16G1YJWlqiUlv11ADulSbqBIjMmkgwrJVFcjrgqtXFy+yyrTA/oq94Zw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@internationalized/number': 3.5.3
- '@internationalized/string': 3.2.3
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/form': 3.0.6(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/spinbutton': 3.6.6(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/datepicker': 3.9.4(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/calendar': 3.4.7(react@18.3.1)
- '@react-types/datepicker': 3.7.4(react@18.3.1)
- '@react-types/dialog': 3.5.11(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/dialog@3.5.14(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/overlays': 3.22.1(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/dialog': 3.5.11(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/focus@3.17.1(react@18.3.1):
- resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- clsx: 2.1.1
- react: 18.3.1
- dev: false
-
- /@react-aria/focus@3.18.0(react@18.3.1):
- resolution: {integrity: sha512-Sslmq2DQ9GblF4Tk6tbldnsxK3GFrXfGSnLFpsOJgk7Vjs2uufda/41LkhXmSkygzUXMk4wit5XEB+cc2O6Jkw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- clsx: 2.1.1
- react: 18.3.1
- dev: false
-
- /@react-aria/form@3.0.5(react@18.3.1):
- resolution: {integrity: sha512-n290jRwrrRXO3fS82MyWR+OKN7yznVesy5Q10IclSTVYHHI3VI53xtAPr/WzNjJR1um8aLhOcDNFKwnNIUUCsQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/form@3.0.6(react@18.3.1):
- resolution: {integrity: sha512-5mYE8HNqKywnrYHFtl5lMLabMpC4rwOMa2XVAVtenLgCqkqS3Yg5UGujk1ePdO2+qyHdzUtJ+9QK/rdbJSscXA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/grid@3.10.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-/Dip+esQZfu1cPQEqgeeGmX9t6S5uQ58Ov9lNWmFWPj1TeLyzGcda3hEcA4F/QpjudPAC3VcVmh5OB55QPhQpw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/live-announcer': 3.3.4
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/grid': 3.9.0(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-types/checkbox': 3.8.2(react@18.3.1)
- '@react-types/grid': 3.2.7(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/i18n@3.11.1(react@18.3.1):
- resolution: {integrity: sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@internationalized/message': 3.1.4
- '@internationalized/number': 3.5.3
- '@internationalized/string': 3.2.3
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/i18n@3.12.0(react@18.3.1):
- resolution: {integrity: sha512-d/w/snV798ZEluipTjROjDi5htS36ks6XprYquqotgraOjuFOhbfv1F8seigh0AyLz0VBHveTd2t2hfrQKZ+Ww==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@internationalized/message': 3.1.4
- '@internationalized/number': 3.5.3
- '@internationalized/string': 3.2.3
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/interactions@3.21.3(react@18.3.1):
- resolution: {integrity: sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/interactions@3.22.0(react@18.3.1):
- resolution: {integrity: sha512-7DdoaQXpLiSygaw9QI/cI8pHTqLEVOJBNmPTLYgLT1nnW+V8trYTFSYMQjtOUt5Lsa0dOgXgA8LZQnxYfsYDWQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/label@3.7.8(react@18.3.1):
- resolution: {integrity: sha512-MzgTm5+suPA3KX7Ug6ZBK2NX9cin/RFLsv1BdafJ6CZpmUSpWnGE/yQfYUB7csN7j31OsZrD3/P56eShYWAQfg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/label@3.7.9(react@18.3.1):
- resolution: {integrity: sha512-zUd2Pmea49TI1Qsfrf3P7cucNnIpi9bhnfMrt91282g/B+kTJb+VeFKhGQTK5Zb6ZiOlYvEhV2ST9ZYcOk5vcg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/link@3.7.1(react@18.3.1):
- resolution: {integrity: sha512-a4IaV50P3fXc7DQvEIPYkJJv26JknFbRzFT5MJOMgtzuhyJoQdILEUK6XHYjcSSNCA7uLgzpojArVk5Hz3lCpw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/link': 3.5.5(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/link@3.7.2(react@18.3.1):
- resolution: {integrity: sha512-2BCfZA1pkrlkYBPUDZZkwJPKCSet1xB48Cide0oY5QwwGCRelhLAuFFHsoEN4I0jDFM1v/M1yDbAeA4bgLuPtg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/link': 3.5.6(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/listbox@3.12.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-7JiUp0NGykbv/HgSpmTY1wqhuf/RmjFxs1HZcNaTv8A+DlzgJYc7yQqFjP3ZA/z5RvJFuuIxggIYmgIFjaRYdA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/list': 3.10.5(react@18.3.1)
- '@react-types/listbox': 3.5.0(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/listbox@3.13.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-rSpwJCHRcsLmTPyQmUA6GJLp5v5pxf3YAl5opx7ndGiVuyl15MiFux3y7HO6LfMLm1KfeFje0DP8h7iWluilqw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/list': 3.10.6(react@18.3.1)
- '@react-types/listbox': 3.5.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/live-announcer@3.3.4:
- resolution: {integrity: sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA==}
- dependencies:
- '@swc/helpers': 0.5.12
- dev: false
-
- /@react-aria/menu@3.14.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-BYliRb38uAzq05UOFcD5XkjA5foQoXRbcH3ZufBsc4kvh79BcP1PMW6KsXKGJ7dC/PJWUwCui6QL1kUg8PqMHA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/overlays': 3.23.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/menu': 3.7.1(react@18.3.1)
- '@react-stately/tree': 3.8.2(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/menu@3.15.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-MKrmzdYpI9ua36sRSa19d5FodvGhknrfF5q88wwQBjs5nlLgrGY2E4lqRetS9MR7vXxx2Z49Npg5YBArZ/uHQQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/overlays': 3.23.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/menu': 3.8.0(react@18.3.1)
- '@react-stately/tree': 3.8.2(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/menu': 3.9.10(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/overlays@3.22.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/overlays@3.23.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-o1qgVeJ6KOO7w0DFa25hmsoUS57hCJhB8gFpYrE0DFvedTIwMJBapfAM6+7y2NoR9s1bizIme5jaKbppra/SOg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.13(react@18.3.1)
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/progress@3.4.13(react@18.3.1):
- resolution: {integrity: sha512-YBV9bOO5JzKvG8QCI0IAA00o6FczMgIDiK8Q9p5gKorFMatFUdRayxlbIPoYHMi+PguLil0jHgC7eOyaUcrZ0g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/progress': 3.5.4(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/radio@3.10.4(react@18.3.1):
- resolution: {integrity: sha512-3fmoMcQtCpgjTwJReFjnvIE/C7zOZeCeWUn4JKDqz9s1ILYsC3Rk5zZ4q66tFn6v+IQnecrKT52wH6+hlVLwTA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/form': 3.0.6(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/radio': 3.10.4(react@18.3.1)
- '@react-types/radio': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/selection@3.18.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-GSqN2jX6lh7v+ldqhVjAXDcrWS3N4IsKXxO6L6Ygsye86Q9q9Mq9twWDWWu5IjHD6LoVZLUBCMO+ENGbOkyqeQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/selection@3.19.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-1bqPrX/TROkAALIDXpFEOZ/h2goD41dfNretqPmt2LXxNe5Yba2znAcEv4V3ef9VWbbdT/NuNiphIwXRWAAhJA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/slider@3.7.8(react@18.3.1):
- resolution: {integrity: sha512-MYvPcM0K8jxEJJicUK2+WxUkBIM/mquBxOTOSSIL3CszA80nXIGVnLlCUnQV3LOUzpWtabbWaZokSPtGgOgQOw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.11.1(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/slider': 3.5.4(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/slider': 3.7.4(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/spinbutton@3.6.6(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-F/XYlm6DBZ9vC+Pxhg3GjQ1GCmMiV864dSpGt8iFVZw187CaZ3vbaybmY8fL6vdn0+PDiliwamKPcURXg3jHTA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/live-announcer': 3.3.4
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/button': 3.9.5(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/ssr@3.9.4(react@18.3.1):
- resolution: {integrity: sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==}
- engines: {node: '>= 12'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/ssr@3.9.5(react@18.3.1):
- resolution: {integrity: sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==}
- engines: {node: '>= 12'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/switch@3.6.4(react@18.3.1):
- resolution: {integrity: sha512-2nVqz4ZuJyof47IpGSt3oZRmp+EdS8wzeDYgf42WHQXrx4uEOk1mdLJ20+NnsYhj/2NHZsvXVrjBeKMjlMs+0w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/toggle': 3.10.5(react@18.3.1)
- '@react-stately/toggle': 3.7.4(react@18.3.1)
- '@react-types/switch': 3.5.4(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/table@3.14.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-WaPgQe4zQF5OaluO5rm+Y2nEoFR63vsLd4BT4yjK1uaFhKhDY2Zk+1SCVQvBLLKS4WK9dhP05nrNzT0vp/ZPOw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/grid': 3.10.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/live-announcer': 3.3.4
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-aria/visually-hidden': 3.8.12(react@18.3.1)
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/flags': 3.0.3
- '@react-stately/table': 3.11.8(react@18.3.1)
- '@react-stately/virtualizer': 3.7.1(react@18.3.1)
- '@react-types/checkbox': 3.8.2(react@18.3.1)
- '@react-types/grid': 3.2.6(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/table': 3.9.5(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/tabs@3.9.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-S5v/0sRcOaSXaJYZuuy1ZVzYc7JD4sDyseG1133GjyuNjJOFHgoWMb+b4uxNIJbZxnLgynn/ZDBZSO+qU+fIxw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/i18n': 3.12.0(react@18.3.1)
- '@react-aria/selection': 3.19.0(react-dom@18.3.1)(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tabs': 3.6.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@react-types/tabs': 3.3.7(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@react-aria/textfield@3.14.5(react@18.3.1):
- resolution: {integrity: sha512-hj7H+66BjB1iTKKaFXwSZBZg88YT+wZboEXZ0DNdQB2ytzoz/g045wBItUuNi4ZjXI3P+0AOZznVMYadWBAmiA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.17.1(react@18.3.1)
- '@react-aria/form': 3.0.6(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@react-types/textfield': 3.9.3(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/textfield@3.14.6(react@18.3.1):
- resolution: {integrity: sha512-LaybMPoOdF2eLnetsK2487ARL4txwmWremrx/r6ZC4yLYFtbgkrFxGatHXsd62rf94Kkv5BfQjzZ5HhcAktQ0w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/form': 3.0.6(react@18.3.1)
- '@react-aria/label': 3.7.9(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/textfield': 3.9.4(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/toggle@3.10.5(react@18.3.1):
- resolution: {integrity: sha512-bB24yUzUlZ3RpomR0UUB+EmZQiC4WzkJ1R2tKRHqoEckHpBNu3tIonGpBedzLjtGWDUbIBH2BesuSdSZocsPkw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-stately/toggle': 3.7.5(react@18.3.1)
- '@react-types/checkbox': 3.8.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/tooltip@3.7.4(react@18.3.1):
- resolution: {integrity: sha512-+XRx4HlLYqWY3fB8Z60bQi/rbWDIGlFUtXYbtoa1J+EyRWfhpvsYImP8qeeNO/vgjUtDy1j9oKa8p6App9mBMQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/focus': 3.18.0(react@18.3.1)
- '@react-aria/interactions': 3.21.3(react@18.3.1)
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-stately/tooltip': 3.4.9(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/tooltip': 3.4.9(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/utils@3.24.1(react@18.3.1):
- resolution: {integrity: sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- clsx: 2.1.1
- react: 18.3.1
- dev: false
-
- /@react-aria/utils@3.25.0(react@18.3.1):
- resolution: {integrity: sha512-DO0gx0OhEmdw+lUlcwQfuulk1ul82NhStYfgt3SDuf5yYchC/3YvIOrPLjh05NmMxc9jQxDPeuyujMI5plfAvQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/ssr': 3.9.5(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- clsx: 2.1.1
- react: 18.3.1
- dev: false
-
- /@react-aria/visually-hidden@3.8.12(react@18.3.1):
- resolution: {integrity: sha512-Bawm+2Cmw3Xrlr7ARzl2RLtKh0lNUdJ0eNqzWcyx4c0VHUAWtThmH5l+HRqFUGzzutFZVo89SAy40BAbd0gjVw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-aria/visually-hidden@3.8.13(react@18.3.1):
- resolution: {integrity: sha512-rj/Jp1wEEKddxrHUDHZpkyYxctAsR14zXtL7bB7pIuVIw0lcZfCieqju/b9g3NsU/QVOij/5mX1UugHBQJKT1g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-aria/interactions': 3.22.0(react@18.3.1)
- '@react-aria/utils': 3.25.0(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/calendar@3.5.1(react@18.3.1):
- resolution: {integrity: sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@react-stately/utils': 3.10.1(react@18.3.1)
- '@react-types/calendar': 3.4.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/checkbox@3.6.5(react@18.3.1):
- resolution: {integrity: sha512-IXV3f9k+LtmfQLE+DKIN41Q5QB/YBLDCB1YVx5PEdRp52S9+EACD5683rjVm8NVRDwjMi2SP6RnFRk7fVb5Azg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/checkbox': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/collections@3.10.7(react@18.3.1):
- resolution: {integrity: sha512-KRo5O2MWVL8n3aiqb+XR3vP6akmHLhLWYZEmPKjIv0ghQaEebBTrN3wiEjtd6dzllv0QqcWvDLM1LntNfJ2TsA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/collections@3.10.8(react@18.3.1):
- resolution: {integrity: sha512-vjatckkgKmEyvDFW2Iktf3g4qF0rxnQdpKV4mkvWdTJaYLVoLmy0PjLP+bp+Re38o7CV3TcrURK+YweYUNKyQA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/combobox@3.8.4(react@18.3.1):
- resolution: {integrity: sha512-iLVGvKRRz0TeJXZhZyK783hveHpYA6xovOSdzSD+WGYpiPXo1QrcrNoH3AE0Z2sHtorU+8nc0j58vh5PB+m2AA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/list': 3.10.6(react@18.3.1)
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-stately/select': 3.6.5(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/combobox': 3.11.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/datepicker@3.9.4(react@18.3.1):
- resolution: {integrity: sha512-yBdX01jn6gq4NIVvHIqdjBUPo+WN8Bujc4OnPw+ZnfA4jI0eIgq04pfZ84cp1LVXW0IB0VaCu1AlQ/kvtZjfGA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@internationalized/string': 3.2.3
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/datepicker': 3.7.4(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/flags@3.0.3:
- resolution: {integrity: sha512-/ha7XFA0RZTQsbzSPwu3KkbNMgbvuM0GuMTYLTBWpgBrovBNTM+QqI/PfZTdHg8PwCYF4H5Y8gjdSpdulCvJFw==}
- dependencies:
- '@swc/helpers': 0.5.12
- dev: false
-
- /@react-stately/form@3.0.3(react@18.3.1):
- resolution: {integrity: sha512-92YYBvlHEWUGUpXgIaQ48J50jU9XrxfjYIN8BTvvhBHdD63oWgm8DzQnyT/NIAMzdLnhkg7vP+fjG8LjHeyIAg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/form@3.0.4(react@18.3.1):
- resolution: {integrity: sha512-LsV3FihvpoOv9i6N9jmvToTghKjhwsOfJDffkTDWcoPx7oSR+rLmTmV4oHNhtpDK0GK1tktlM7Oq+IwnFvIrZA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/grid@3.9.0(react@18.3.1):
- resolution: {integrity: sha512-L7z56Fncj0IJ9Z2rV0hwoYVtpf3b7BapScikp5aEj7I5EhR8sGxtWvlcJ5nkUvR/zHUtz5gT3UB79zgSzqKZTg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-types/grid': 3.2.7(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/list@3.10.5(react@18.3.1):
- resolution: {integrity: sha512-fV9plO+6QDHiewsYIhboxcDhF17GO95xepC5ki0bKXo44gr14g/LSo/BMmsaMnV+1BuGdBunB05bO4QOIaigXA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/list@3.10.6(react@18.3.1):
- resolution: {integrity: sha512-0jUlw0BqUrz/0g2TDZTY4z86mAoBcdoDSTHTuu+NixqvrPPhlBQp0m9kS6R/s2xgSrUXVyWAL546QhZLp4IoQQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/menu@3.7.1(react@18.3.1):
- resolution: {integrity: sha512-mX1w9HHzt+xal1WIT2xGrTQsoLvDwuB2R1Er1MBABs//MsJzccycatcgV/J/28m6tO5M9iuFQQvLV+i1dCtodg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/menu': 3.9.9(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/menu@3.8.0(react@18.3.1):
- resolution: {integrity: sha512-ofOVew88MEX4E7R3+vxXo9N7tFth52CtzJWeDzTk4GlX8KuBThbaxNlLKJs2OVhSdh4wHQ4jeYdeHz4WFjMtfQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/menu': 3.9.10(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/overlays@3.6.7(react@18.3.1):
- resolution: {integrity: sha512-6zp8v/iNUm6YQap0loaFx6PlvN8C0DgWHNlrlzMtMmNuvjhjR0wYXVaTfNoUZBWj25tlDM81ukXOjpRXg9rLrw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/overlays': 3.8.7(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/overlays@3.6.8(react@18.3.1):
- resolution: {integrity: sha512-zuy4iS8JCWe+Pxdl2/cT+GyaYj+sj5hOISTSJJC4Tp3mdQ4VFnfn4GbttUrmMZKqgCumJ0YPqJWukbsERpEjIg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/radio@3.10.4(react@18.3.1):
- resolution: {integrity: sha512-kCIc7tAl4L7Hu4Wt9l2jaa+MzYmAJm0qmC8G8yPMbExpWbLRu6J8Un80GZu+JxvzgDlqDyrVvyv9zFifwH/NkQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/radio': 3.8.1(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/select@3.6.5(react@18.3.1):
- resolution: {integrity: sha512-PM/7xyIXrtj76K9YsdPzKgBr1ncFmsy5yOOSj1Xj2z6Q0bpRvy6SV6r/1B+9GHoecPgHt9ngB6pG6NO/CzxdSg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/form': 3.0.4(react@18.3.1)
- '@react-stately/list': 3.10.6(react@18.3.1)
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/select': 3.9.5(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/selection@3.16.0(react@18.3.1):
- resolution: {integrity: sha512-9aD69pFs9eImmPy1i3TN+xslaC3ymwWL8wNYVv/zTwjGbjfJ2OnLpwe1rUW6J4ZRjNNFfousKJVe/3LGtSMe2A==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/slider@3.5.4(react@18.3.1):
- resolution: {integrity: sha512-Jsf7K17dr93lkNKL9ij8HUcoM1sPbq8TvmibD6DhrK9If2lje+OOL8y4n4qreUnfMT56HCAeS9wCO3fg3eMyrw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/slider': 3.7.4(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/table@3.11.8(react@18.3.1):
- resolution: {integrity: sha512-EdyRW3lT1/kAVDp5FkEIi1BQ7tvmD2YgniGdLuW/l9LADo0T+oxZqruv60qpUS6sQap+59Riaxl91ClDxrJnpg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/flags': 3.0.3
- '@react-stately/grid': 3.9.0(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/grid': 3.2.6(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@react-types/table': 3.9.5(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/tabs@3.6.6(react@18.3.1):
- resolution: {integrity: sha512-sOLxorH2uqjAA+v1ppkMCc2YyjgqvSGeBDgtR/lyPSDd4CVMoTExszROX2dqG0c8il9RQvzFuufUtQWMY6PgSA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/list': 3.10.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@react-types/tabs': 3.3.7(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/toggle@3.7.4(react@18.3.1):
- resolution: {integrity: sha512-CoYFe9WrhLkDP4HGDpJYQKwfiYCRBAeoBQHv+JWl5eyK61S8xSwoHsveYuEZ3bowx71zyCnNAqWRrmNOxJ4CKA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/checkbox': 3.8.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/toggle@3.7.5(react@18.3.1):
- resolution: {integrity: sha512-ytGuFlOVcMGT9KwK8uAAGpKRwGntq9IvUq+jItIr1kgC1izidhcFHSEzMggSZe2Oy2UYobzoL04Geu5UR4fhvw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/checkbox': 3.8.2(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/tooltip@3.4.9(react@18.3.1):
- resolution: {integrity: sha512-P7CDJsdoKarz32qFwf3VNS01lyC+63gXpDZG31pUu+EO5BeQd4WKN/AH1Beuswpr4GWzxzFc1aXQgERFGVzraA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/overlays': 3.6.8(react@18.3.1)
- '@react-types/tooltip': 3.4.9(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/tree@3.8.1(react@18.3.1):
- resolution: {integrity: sha512-LOdkkruJWch3W89h4B/bXhfr0t0t1aRfEp+IMrrwdRAl23NaPqwl5ILHs4Xu5XDHqqhg8co73pHrJwUyiTWEjw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/tree@3.8.2(react@18.3.1):
- resolution: {integrity: sha512-7+bI/4ZKJbUMOQArml5XGBzHp5sIiiRzLUqDnmM52bi7iCpARN3RbvHmzjVMOWaezwkOr0C6ISkzk4iTY7VS1g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-stately/collections': 3.10.8(react@18.3.1)
- '@react-stately/selection': 3.16.0(react@18.3.1)
- '@react-stately/utils': 3.10.2(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/utils@3.10.1(react@18.3.1):
- resolution: {integrity: sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/utils@3.10.2(react@18.3.1):
- resolution: {integrity: sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-stately/virtualizer@3.7.1(react@18.3.1):
- resolution: {integrity: sha512-voHgE6EQ+oZaLv6u2umKxakvIKNkCQuUihqKACTjdslp7SJh4Mvs3oLBI0hf0JOh+rCcFIKDvQtFwy1fXFRYBA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-aria/utils': 3.24.1(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- '@swc/helpers': 0.5.12
- react: 18.3.1
- dev: false
-
- /@react-types/accordion@3.0.0-alpha.21(react@18.3.1):
- resolution: {integrity: sha512-cbE06jH/ZoI+1898xd7ocQ/A/Rtkz8wTJAVOYgc8VRY1SYNQ/XZTGH5T6dD6aERAmiDwL/kjD7xhsE80DyaEKA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/breadcrumbs@3.7.5(react@18.3.1):
- resolution: {integrity: sha512-lV9IDYsMiu2TgdMIjEmsOE0YWwjb3jhUNK1DCZZfq6uWuiHLgyx2EncazJBUWSjHJ4ta32j7xTuXch+8Ai6u/A==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/link': 3.5.6(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/button@3.9.4(react@18.3.1):
- resolution: {integrity: sha512-raeQBJUxBp0axNF74TXB8/H50GY8Q3eV6cEKMbZFP1+Dzr09Ngv0tJBeW0ewAxAguNH5DRoMUAUGIXtSXskVdA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/button@3.9.5(react@18.3.1):
- resolution: {integrity: sha512-drk7HE/S43pxCAwLXH1Yyb65xd4dtwfEWUjKLtjQb5PPSUqwjuzzZZvyhwo/zc4jPC6zfzVAKsdsCk1sce6UHg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/calendar@3.4.6(react@18.3.1):
- resolution: {integrity: sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/calendar@3.4.7(react@18.3.1):
- resolution: {integrity: sha512-g5dJpvV8MeWsjcZcR2dEBAln/kK767yFeIJq/C84Y45K4bPJhQDGB+w1JtzrU1AL2+J7hUKNbV8MlefWsLQilg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/checkbox@3.8.1(react@18.3.1):
- resolution: {integrity: sha512-5/oVByPw4MbR/8QSdHCaalmyWC71H/QGgd4aduTJSaNi825o+v/hsN2/CH7Fq9atkLKsC8fvKD00Bj2VGaKriQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/checkbox@3.8.2(react@18.3.1):
- resolution: {integrity: sha512-9TYvx9lrnI+5xEqmlkjepynTiUVU1+j3a74bfPXwf4l5itbEmPPe7i6eM2yNKwfemfiQWrThexhxSJEIEEw3Cg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/combobox@3.11.1(react@18.3.1):
- resolution: {integrity: sha512-UNc3OHt5cUt5gCTHqhQIqhaWwKCpaNciD8R7eQazmHiA9fq8ROlV+7l3gdNgdhJbTf5Bu/V5ISnN7Y1xwL3zqQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/datepicker@3.7.4(react@18.3.1):
- resolution: {integrity: sha512-ZfvgscvNzBJpYyVWg3nstJtA/VlWLwErwSkd1ivZYam859N30w8yH+4qoYLa6FzWLCFlrsRHyvtxlEM7lUAt5A==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@internationalized/date': 3.5.5
- '@react-types/calendar': 3.4.7(react@18.3.1)
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/dialog@3.5.11(react@18.3.1):
- resolution: {integrity: sha512-BYusYG2hhxcPLaT+LVARE3g6sZNrrFmcWsbyAdS9B0vldViYlzCBG9CAzsbnxHokOfrpPeYNdyLE1aaj0H2qpg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/grid@3.2.6(react@18.3.1):
- resolution: {integrity: sha512-XfHenL2jEBUYrhKiPdeM24mbLRXUn79wVzzMhrNYh24nBwhsPPpxF+gjFddT3Cy8dt6tRInfT6pMEu9nsXwaHw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/grid@3.2.7(react@18.3.1):
- resolution: {integrity: sha512-yGerEhLibu7pqLvJwhD5hpe6LmOu5Ys1OHzGq/bsYVdjjS3Qxge2C/GTZpEaQA85iKdt6eAfOyGzzdwJvQbcgw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/link@3.5.5(react@18.3.1):
- resolution: {integrity: sha512-G6P5WagHDR87npN7sEuC5IIgL1GsoY4WFWKO4734i2CXRYx24G9P0Su3AX4GA3qpspz8sK1AWkaCzBMmvnunfw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/link@3.5.6(react@18.3.1):
- resolution: {integrity: sha512-Mg8kPk7fJtOqiH03P+vbFCGspfif7b7l8wpRaDGek3Cq9nErAUGlm5LyHHszfqsD9fEho5kWwLtoxDi8n/hr8g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/listbox@3.5.0(react@18.3.1):
- resolution: {integrity: sha512-HzFGlW3u37GWgdTIulShv4NN65IZ0dS2XDDNaqa62qEJWc3ApDo6AX/ZrdPiOZD7cZvVzpLWe6m9ZnRt3Q+GRw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/menu@3.9.10(react@18.3.1):
- resolution: {integrity: sha512-Wc0UbKlAHSqXTd5LLZ/vTdXT9DVqK9mdK5gOzWZQ5poAWNvnzW9UdntgzwNPHF+9sRUT0825yWsk/KkVBGihBA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/menu@3.9.9(react@18.3.1):
- resolution: {integrity: sha512-FamUaPVs1Fxr4KOMI0YcR2rYZHoN7ypGtgiEiJ11v/tEPjPPGgeKDxii0McCrdOkjheatLN1yd2jmMwYj6hTDg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/overlays': 3.8.8(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/overlays@3.8.7(react@18.3.1):
- resolution: {integrity: sha512-zCOYvI4at2DkhVpviIClJ7bRrLXYhSg3Z3v9xymuPH3mkiuuP/dm8mUCtkyY4UhVeUTHmrQh1bzaOP00A+SSQA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/overlays@3.8.8(react@18.3.1):
- resolution: {integrity: sha512-J9kroDFbwSrrDrZHby3RVQSJuOVbz+aUyn5iT2SinKUxbz8X6gUjpXexsT9rLkHBYMpqXKxpdzomeae6vzPlpA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/progress@3.5.4(react@18.3.1):
- resolution: {integrity: sha512-JNc246sTjasPyx5Dp7/s0rp3Bz4qlu4LrZTulZlxWyb53WgBNL7axc26CCi+I20rWL9+c7JjhrRxnLl/1cLN5g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/radio@3.8.1(react@18.3.1):
- resolution: {integrity: sha512-bK0gio/qj1+0Ldu/3k/s9BaOZvnnRgvFtL3u5ky479+aLG5qf1CmYed3SKz8ErZ70JkpuCSrSwSCFf0t1IHovw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/select@3.9.4(react@18.3.1):
- resolution: {integrity: sha512-xI7dnOW2st91fPPcv6hdtrTdcfetYiqZuuVPZ5TRobY7Q10/Zqqe/KqtOw1zFKUj9xqNJe4Ov3xP5GSdcO60Eg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/select@3.9.5(react@18.3.1):
- resolution: {integrity: sha512-YVzVrGk2YFvIXnVUo+rWb8jvyGpaFs8LKupHFBgdz/vZJRL/0hfHaD4G0T1heZw83Nnk8VX0X5HV6BJNe+d+1Q==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/shared@3.23.1(react@18.3.1):
- resolution: {integrity: sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /@react-types/shared@3.24.0(react@18.3.1):
- resolution: {integrity: sha512-0mTSGqxq1ETwVLgpBKb7XzCLh0/agnH7a9EbOMonVwWJbuYw2YP8S3VwOMvFrvVToqYir4Z/xS5Waiz+0Ix1dQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /@react-types/slider@3.7.4(react@18.3.1):
- resolution: {integrity: sha512-k92x81bDLkZNA72weCkwtaoWMfGWYewWoBdhxGoqLUSUtQoqSFez6apVj9Xyl8SgwTevz3LKY64OwP/ok3YENg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/switch@3.5.4(react@18.3.1):
- resolution: {integrity: sha512-guOM+Xo5l8qpFvJQ2tlU4zu8JUo8c8wNolwSBTYZGSfDUB0GEJqBUD66UDtARBtGyBM9NghSyHN8y55I56ipWA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/table@3.9.5(react@18.3.1):
- resolution: {integrity: sha512-fgM2j9F/UR4Anmd28CueghCgBwOZoCVyN8fjaIFPd2MN4gCwUUfANwxLav65gZk4BpwUXGoQdsW+X50L3555mg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/grid': 3.2.6(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/tabs@3.3.7(react@18.3.1):
- resolution: {integrity: sha512-ZdLe5xOcFX6+/ni45Dl2jO0jFATpTnoSqj6kLIS/BYv8oh0n817OjJkLf+DS3CLfNjApJWrHqAk34xNh6nRnEg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/textfield@3.9.3(react@18.3.1):
- resolution: {integrity: sha512-DoAY6cYOL0pJhgNGI1Rosni7g72GAt4OVr2ltEx2S9ARmFZ0DBvdhA9lL2nywcnKMf27PEJcKMXzXc10qaHsJw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/shared': 3.23.1(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/textfield@3.9.4(react@18.3.1):
- resolution: {integrity: sha512-ORnGM4vVSxqFeI28GrY44SX+dM5Ka1blvMQn3ckin6jEeT0tEaNl3JEZcozvzgKGMKGDMabxNm/OkG24RbGbqQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0
- dependencies:
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@react-types/tooltip@3.4.9(react@18.3.1):
- resolution: {integrity: sha512-wZ+uF1+Zc43qG+cOJzioBmLUNjRa7ApdcT0LI1VvaYvH5GdfjzUJOorLX9V/vAci0XMJ50UZ+qsh79aUlw2yqg==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0
- dependencies:
- '@react-types/overlays': 3.8.7(react@18.3.1)
- '@react-types/shared': 3.24.0(react@18.3.1)
- react: 18.3.1
- dev: false
-
- /@remirror/core-constants@2.0.2:
- resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==}
- dev: false
-
- /@remix-run/router@1.18.0:
- resolution: {integrity: sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==}
- engines: {node: '>=14.0.0'}
- dev: false
-
- /@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/lr@1.4.1):
- resolution: {integrity: sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==}
- peerDependencies:
- '@codemirror/autocomplete': ^6.0.0
- '@codemirror/language': ^6.0.0
- '@codemirror/state': ^6.0.0
- '@codemirror/view': ^6.0.0
- '@lezer/common': ^1.0.0
- '@lezer/highlight': ^1.0.0
- '@lezer/lr': ^1.0.0
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/lr@1.4.1):
- resolution: {integrity: sha512-lvzjoYn9nfJzBD5qdm3Ut6G3+Or2wEacYIDJ49h9+19WSChVnxv4ojf+rNmQ78ncuxIt/bfbMvDLMeMP0xze6g==}
- peerDependencies:
- '@codemirror/autocomplete': ^6.0.0
- '@codemirror/language': ^6.0.0
- '@codemirror/state': ^6.0.0
- '@codemirror/view': ^6.0.0
- '@lezer/common': ^1.0.0
- '@lezer/highlight': ^1.0.0
- '@lezer/lr': ^1.0.0
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /@replit/codemirror-lang-solidity@6.0.2(@codemirror/language@6.10.2):
- resolution: {integrity: sha512-/dpTVH338KFV6SaDYYSadkB4bI/0B0QRF/bkt1XS3t3QtyR49mn6+2k0OUQhvt2ZSO7kt10J+OPilRAtgbmX0w==}
- peerDependencies:
- '@codemirror/language': ^6.0.0
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/highlight': 1.2.0
- dev: false
-
- /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.17.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.1):
- resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==}
- peerDependencies:
- '@codemirror/autocomplete': ^6.0.0
- '@codemirror/lang-css': ^6.0.1
- '@codemirror/lang-html': ^6.2.0
- '@codemirror/lang-javascript': ^6.1.1
- '@codemirror/language': ^6.0.0
- '@codemirror/state': ^6.0.0
- '@codemirror/view': ^6.0.0
- '@lezer/common': ^1.0.0
- '@lezer/highlight': ^1.0.0
- '@lezer/javascript': ^1.2.0
- '@lezer/lr': ^1.0.0
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/language': 6.10.2
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- '@lezer/common': 1.2.1
- '@lezer/highlight': 1.2.0
- '@lezer/javascript': 1.4.17
- '@lezer/lr': 1.4.1
- dev: false
-
- /@rollup/rollup-android-arm-eabi@4.19.0:
- resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-android-arm64@4.19.0:
- resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-arm64@4.19.0:
- resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-x64@4.19.0:
- resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm-gnueabihf@4.19.0:
- resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm-musleabihf@4.19.0:
- resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-gnu@4.19.0:
- resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-musl@4.19.0:
- resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-powerpc64le-gnu@4.19.0:
- resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-riscv64-gnu@4.19.0:
- resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-s390x-gnu@4.19.0:
- resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-x64-gnu@4.19.0:
- resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-x64-musl@4.19.0:
- resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-arm64-msvc@4.19.0:
- resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-ia32-msvc@4.19.0:
- resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-x64-msvc@4.19.0:
- resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@swc/helpers@0.5.12:
- resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==}
- dependencies:
- tslib: 2.6.3
- dev: false
-
- /@tailwindcss/forms@0.5.7(tailwindcss@3.4.6):
- resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
- dependencies:
- mini-svg-data-uri: 1.4.4
- tailwindcss: 3.4.6
- dev: false
-
- /@tanstack/react-table@8.19.3(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-MtgPZc4y+cCRtU16y1vh1myuyZ2OdkWgMEBzyjYsoMWMicKZGZvcDnub3Zwb6XF2pj9iRMvm1SO1n57lS0vXLw==}
- engines: {node: '>=12'}
- peerDependencies:
- react: '>=16.8'
- react-dom: '>=16.8'
- dependencies:
- '@tanstack/table-core': 8.19.3
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@tanstack/react-virtual@3.8.3(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-9ICwbDUUzN99CJIGc373i8NLoj6zFTKI2Hlcmo0+lCSAhPQ5mxq4dGOMKmLYoEFyHcGQ64Bd6ZVbnPpM6lNK5w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- '@tanstack/virtual-core': 3.8.3
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /@tanstack/table-core@8.19.3:
- resolution: {integrity: sha512-IqREj9ADoml9zCAouIG/5kCGoyIxPFdqdyoxis9FisXFi5vT+iYfEfLosq4xkU/iDbMcEuAj+X8dWRLvKYDNoQ==}
- engines: {node: '>=12'}
- dev: false
-
- /@tanstack/virtual-core@3.8.3:
- resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==}
- dev: false
-
- /@tauri-apps/api@2.0.0-beta.13:
- resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==}
- engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
- dev: false
-
- /@tauri-apps/api@2.0.0-beta.15:
- resolution: {integrity: sha512-H9w6iISmR+NvH4XuyCZB4zDN10tf9RFt6i/9JHEjaRhAowdAaJ+oiXq/3kedizNClHMtbTQ5j0oqDVPkZDAI8g==}
- engines: {node: '>= 18.18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
- dev: false
-
- /@tauri-apps/cli-darwin-arm64@2.0.0-beta.22:
- resolution: {integrity: sha512-Ofhythvg1Ks2IM87WUYNtgFzm21aU1Zn+8QP81lJy9Y7ZGMxP8FYfqeHz6GIWKI+CYf6I77HA8LHkT9pyE5PYg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-darwin-x64@2.0.0-beta.22:
- resolution: {integrity: sha512-/lWIixo7WgmMUqcxlPT7Ojlkl6qbVlNDwUZ+9DtTpoWnaaBxv/YpSe1k62vDWEC7l0apFY+Fz7cRONN2wglFyQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.22:
- resolution: {integrity: sha512-9nJCSStoxu4BKaKVJhu/uBJ8IsIofwAdsX0TWFxqo0obaZbeQSEpPhVsCy+uk3u/28dF+qyUtMCYawO2Uljnag==}
- engines: {node: '>= 10'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.22:
- resolution: {integrity: sha512-TF9q9zHFBx9LaG2fJJC+BcpIokOmX1UIniBapndvx3dJmdDiK4F6w2QYKDkrBQVzDzcIducmdo2zNBv17O9tFQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.22:
- resolution: {integrity: sha512-ak/RdmaV7sATQmNOxlpHVlbKlrdquH7WH8nOv82X+iK+1HgAOGGqLqBUMzzhkGqo9SHQ9zJ6A2yOo7Z6TJXMmQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.22:
- resolution: {integrity: sha512-9t+jQeMqBdXz51ikTh1PQFG/gs9PBzXmtMcIzUxE0juvH/ynjw0Vf+yZbNmwqVS9g7cj8XiBXoc6/N41SZE2cA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.22:
- resolution: {integrity: sha512-PemcztfHG3HAuuo7HcnhfDrtN9NT7kueyNg8ipxJNPMa+s4K7kfieViyEiMW5pTr2F5WG/UuBSNcuwY+DVCcPA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.22:
- resolution: {integrity: sha512-EgKoG/jGEtTzhOp7ISjMdQsfd8IOG/5yZhO9Z4L/u7oB9mprKAJohYs24+ZxJtq2bOz4f/ZIysZ19nbkpxUzrg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.22:
- resolution: {integrity: sha512-67OrM2m4FB3KujPbjd/i+9lqcLDO3/ixqL1GMc3BoHhcjF+7QY08OxqWeitdsP/8ihnMIIdir2xEjNUKc6Zelw==}
- engines: {node: '>= 10'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.22:
- resolution: {integrity: sha512-BsO5xMUxliTZTImXnOC73sKT2U9VUeqR8AtklSObBcAg5LaZKpYOdF2pZzU6rIMAZwzROTAT1hYsr4r/nx2UZg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@tauri-apps/cli@2.0.0-beta.22:
- resolution: {integrity: sha512-OAuiDdSRKxNmr/dseQKKMoZZxIhQ6aAxmXJctGYJxCnkd62tQ8xeq87roVXGNS5Qkuv7WpySAyR0ntiMjvNLUA==}
- engines: {node: '>= 10'}
- hasBin: true
- optionalDependencies:
- '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.22
- '@tauri-apps/cli-darwin-x64': 2.0.0-beta.22
- '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.22
- '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.22
- '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.22
- '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.22
- '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.22
- '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.22
- '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.22
- '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.22
- dev: true
-
- /@tauri-apps/plugin-dialog@2.0.0-beta.7:
- resolution: {integrity: sha512-myywwpsKbquDDzl5zaOmmLLv5O8EJ/GgHDAoVSPwO97R4iWzkDvj3HFF91tNh7i25Tu/bP6jYPAdZA1NCRxxtg==}
- dependencies:
- '@tauri-apps/api': 2.0.0-beta.15
- dev: false
-
- /@tauri-apps/plugin-http@2.0.0-beta.8:
- resolution: {integrity: sha512-FhZP4WtS1o69Mn7z2RpNIdVS+2nPqmXyz6LhqweuP1FTjgTVraVxIfGLQCOMLpEUwo8zWY2uChllolV6WGYZ/A==}
- dependencies:
- '@tauri-apps/api': 2.0.0-beta.15
- dev: false
-
- /@tauri-apps/plugin-os@2.0.0-beta.7:
- resolution: {integrity: sha512-CHo09ecxUU0NFkAqctXeQzdaXw02EXulqcaZnbjrBfRJ2ulmGq7zaUCsHihfcqWcdnmNwmP9Wh/gyznMc1JF9Q==}
- dependencies:
- '@tauri-apps/api': 2.0.0-beta.15
- dev: false
-
- /@tauri-apps/plugin-shell@2.0.0-beta.8:
- resolution: {integrity: sha512-rFXI6MvsCdSGbuKbDu/NaOePREb9YTVTdeugHdvvljnKWW3dvmThBb2h/8Hxj+Z7Cd8MUoRxPeJWUZbPbJ2Imw==}
- dependencies:
- '@tauri-apps/api': 2.0.0-beta.15
- dev: false
-
- /@tauri-apps/plugin-sql@2.0.0-beta.5:
- resolution: {integrity: sha512-EuhrMeIGmIQmGYuzxk6i+PPqIMMgT+nApNsjYbpuVwYuav60RiI0pIC76B77BfmO5J7Sj9ueJyhiugwUevsYmQ==}
- dependencies:
- '@tauri-apps/api': 2.0.0-beta.13
- dev: false
-
- /@tiptap/core@2.5.5(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-VnAnyWnsqN65QijtUFHbe7EPSJCkhNEAwlatsG/HvrZvUv9KmoWWbMsHAU73wozKzPXR3nHRbCxN+LuxP5bADg==}
- peerDependencies:
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/pm': 2.5.5
- dev: false
-
- /@tiptap/extension-bold@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-vXqaeTKy4nf4X+s7NkFt0OsuS1eKMQhrdt7SzACf0gWi3M761WGkaKHy8XUlo7zhWhqHtkgey53Gaw0nbEY54Q==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-bubble-menu@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-7k0HqrnhQGVZk86MEc5vt8stNRxIY65AMjZfszY/mQw0Dza7EQig/9b/AEmi9n+TNW5/8Qu+OMJD9ln92d/Eog==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- tippy.js: 6.3.7
- dev: false
-
- /@tiptap/extension-code@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-PrCuq+cBXMMJQKP3xx6p00gOWxMtnLAgSTCm86rz5U9FzNK7AU3LTlNUD5q1jtJct7Kv4gVpAUAOiBw7nfjHQA==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-collaboration-cursor@2.5.5(@tiptap/core@2.5.5)(y-prosemirror@1.2.9):
- resolution: {integrity: sha512-DWX3eOplWyLegOWeZa0CAVbb9/UYbngiZyKjVMpDlx5qzhUuLL+Df54/UGKqB1ZrBZrxKCVQE3APMyXkxI/2VQ==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- y-prosemirror: ^1.2.6
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- y-prosemirror: 1.2.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6)(yjs@13.6.18)
- dev: false
-
- /@tiptap/extension-collaboration@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)(y-prosemirror@1.2.9):
- resolution: {integrity: sha512-HpDW+1VTKdtK7BglQNLFv2UzJIxtzZ9zvT+wdYDWPB3ZstoL8drpp4wGP2xt3tbki6wzGpUFkDCpVNl0oOunXQ==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- y-prosemirror: ^1.2.6
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- y-prosemirror: 1.2.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6)(yjs@13.6.18)
- dev: false
-
- /@tiptap/extension-dropcursor@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-+K/qd115c3zFgHdvxtOkZhSTKNyPpjM0Np2v4cehqn0j+/3stOMGlAH2Jm/b2L8RylFKGtQP1b/1wsKY5feuAg==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- dev: false
-
- /@tiptap/extension-floating-menu@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-1mgpxZGfy1ziNSvWz6m1nGb9ZF9fVVz4X4XwrIqwGw1Vqt9oXflm6puglnzwVLDeaMDT014VUfczJ4My3wDZzA==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- tippy.js: 6.3.7
- dev: false
-
- /@tiptap/extension-gapcursor@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-An/HwTheUP+D4UU1GVy2e4ypqA1TanZ7haNcm5WB+wSZQo6UNPIszIa49TTGenkk86hP2DH9cQSlTREsyAW6wg==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- dev: false
-
- /@tiptap/extension-hard-break@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-VtrwKU0LYS/0rfH5rGz8ztKwA0bsHRyBF53G7aP2FS4BiN8aOEu8t7VkvBZAewXDITDah9K6rqfXk+MNwoul2Q==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-history@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-CYxFpE9wayc+iZQIlXd3cbq47WP+KqjDhprbKF5Tb7+WoWLS2FB5WK3n+r/SrcoIaslIt5SYDRQPzx4fS3N7LA==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- dev: false
-
- /@tiptap/extension-horizontal-rule@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-8oV0oLgGwJqr44wk7+bHxTAenR0bvk9aVdmE/owg1oy2tkSX0bwtvQEOnwwxtfPJGTwq8JGhefUGYcpHfG2YYg==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- dev: false
-
- /@tiptap/extension-italic@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-PEeI68/u7Bm4n4xIcxVAV12jPhEa72fpHRnYfJe4CGp4x8mJfz/dowKN/P0/6CfjROB7Q8rY26u5E9fS+Cg73w==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-link@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5):
- resolution: {integrity: sha512-zVpNvMD8R9uW1SX1PJoj3fLyOHwuFWqiqEHN2KWfLbEnbL/KXNnpIyKdpHnI9lqFrsMf2dmyZCS3R6xIrynviQ==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- linkifyjs: 4.1.3
- dev: false
-
- /@tiptap/extension-paragraph@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-XZO1rqsU1vlt9qeG2pVVAt2gXjD0twl2D+uxy4Nw6gxqbhSgfbNq3RP72mmtcS4KyFJi7ETANpcRpb8ZNvXfmg==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-strike@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-xnVdSsP7+4yQ1E+rI77ZHvzDH1Gwe2Ty1tgXeOaLjt3RfeVx4xy75o09yHzab6J4hgPebonoXKbZV0JVTGnjtQ==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-table-cell@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-gVqwPzeyz7XKwak5bS5TsOOD1UqWCgo16r7XGxkb2l/VEIYytA0LqMDSGCdweaEZopTNq7b/pjd869NhqVWuaQ==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-table-header@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-mq1DOKR+ckAEmUyMSuBMhMdewB4YKhhk/cUn/HL9Ju12v6xNKjl6ks0TOlHShBoXLgEbMUzIN28RsuDLsVbk+w==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-table-row@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-FsPp8gLqr7dwPPjVvlfJlzjMyVefl2+y8PmpVGhQCpKfXKKGPqKeFk3/2TjN0/UsDA0EYAfC1KG8WTiXMZS5Dw==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-text@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-8c/hxcw7t/S3iKGSFwGNxC2I6AkKpRiySQJ95ML2miwSOAxWhnltoYYV7gobWCRgm25lnvzX/Z6BdpFzXBrBKA==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/extension-underline@2.5.5(@tiptap/core@2.5.5):
- resolution: {integrity: sha512-3uog8d4G/AdqaJC8qutIIgkYnU2TfXW3QbtEy0Yg2WdjCz97bWXkFkNhhVZM/hvXjFCbYboRN5HLcIHl8+Zgmg==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- dev: false
-
- /@tiptap/pm@2.5.5:
- resolution: {integrity: sha512-ppePiLaeG6IKkm8Yq+mRENT4LIAS4qQyLT8EnKadznaTL6SNj/72mm0MjD44URkM38ySzIyvt/vqHDapNK0Hww==}
- dependencies:
- prosemirror-changeset: 2.2.1
- prosemirror-collab: 1.3.1
- prosemirror-commands: 1.5.2
- prosemirror-dropcursor: 1.8.1
- prosemirror-gapcursor: 1.3.2
- prosemirror-history: 1.4.1
- prosemirror-inputrules: 1.4.0
- prosemirror-keymap: 1.2.2
- prosemirror-markdown: 1.13.0
- prosemirror-menu: 1.2.4
- prosemirror-model: 1.22.2
- prosemirror-schema-basic: 1.2.3
- prosemirror-schema-list: 1.4.1
- prosemirror-state: 1.4.3
- prosemirror-tables: 1.4.0
- prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- dev: false
-
- /@tiptap/react@2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-V3cfrDWMtOViheMkIQ3qRnKLs0CZaouoB6LBtw96vo8G7IFKAvtgvmau0fjdJKRtHJp5xYiecP6RHt3lHulu+g==}
- peerDependencies:
- '@tiptap/core': ^2.5.5
- '@tiptap/pm': ^2.5.5
- react: ^17.0.0 || ^18.0.0
- react-dom: ^17.0.0 || ^18.0.0
- dependencies:
- '@tiptap/core': 2.5.5(@tiptap/pm@2.5.5)
- '@tiptap/extension-bubble-menu': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/extension-floating-menu': 2.5.5(@tiptap/core@2.5.5)(@tiptap/pm@2.5.5)
- '@tiptap/pm': 2.5.5
- '@types/use-sync-external-store': 0.0.6
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- use-sync-external-store: 1.2.2(react@18.3.1)
- dev: false
-
- /@types/babel__core@7.20.5:
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
- dependencies:
- '@babel/parser': 7.24.8
- '@babel/types': 7.24.9
- '@types/babel__generator': 7.6.8
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.6
- dev: true
-
- /@types/babel__generator@7.6.8:
- resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@types/babel__template@7.4.4:
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
- dependencies:
- '@babel/parser': 7.24.8
- '@babel/types': 7.24.9
- dev: true
-
- /@types/babel__traverse@7.20.6:
- resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
- dependencies:
- '@babel/types': 7.24.9
- dev: true
-
- /@types/chroma-js@2.4.4:
- resolution: {integrity: sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ==}
- dev: false
-
- /@types/d3-array@3.2.1:
- resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
- dev: false
-
- /@types/d3-color@3.1.3:
- resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
- dev: false
-
- /@types/d3-ease@3.0.2:
- resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
- dev: false
-
- /@types/d3-interpolate@3.0.4:
- resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
- dependencies:
- '@types/d3-color': 3.1.3
- dev: false
-
- /@types/d3-path@3.1.0:
- resolution: {integrity: sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==}
- dev: false
-
- /@types/d3-scale@4.0.8:
- resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==}
- dependencies:
- '@types/d3-time': 3.0.3
- dev: false
-
- /@types/d3-shape@3.1.6:
- resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==}
- dependencies:
- '@types/d3-path': 3.1.0
- dev: false
-
- /@types/d3-time@3.0.3:
- resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==}
- dev: false
-
- /@types/d3-timer@3.0.2:
- resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
- dev: false
-
- /@types/debug@4.1.12:
- resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
- dependencies:
- '@types/ms': 0.7.34
- dev: false
-
- /@types/estree@1.0.5:
- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
- dev: true
-
- /@types/extend@3.0.4:
- resolution: {integrity: sha512-ArMouDUTJEz1SQRpFsT2rIw7DeqICFv5aaVzLSIYMYQSLcwcGOfT3VyglQs/p7K3F7fT4zxr0NWxYZIdifD6dA==}
- dev: false
-
- /@types/hast@2.3.10:
- resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
- dependencies:
- '@types/unist': 2.0.10
- dev: false
-
- /@types/hast@3.0.4:
- resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
- dependencies:
- '@types/unist': 3.0.2
- dev: false
-
- /@types/lodash.debounce@4.0.9:
- resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==}
- dependencies:
- '@types/lodash': 4.17.7
- dev: false
-
- /@types/lodash@4.17.7:
- resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==}
- dev: false
-
- /@types/luxon@3.4.2:
- resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==}
- dev: false
-
- /@types/mdast@3.0.15:
- resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
- dependencies:
- '@types/unist': 2.0.10
- dev: false
-
- /@types/ms@0.7.34:
- resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
- dev: false
-
- /@types/parse5@6.0.3:
- resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
- dev: false
-
- /@types/prismjs@1.26.4:
- resolution: {integrity: sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==}
- dev: false
-
- /@types/prop-types@15.7.12:
- resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
-
- /@types/react-dom@18.3.0:
- resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
- dependencies:
- '@types/react': 18.3.3
-
- /@types/react@18.3.3:
- resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==}
- dependencies:
- '@types/prop-types': 15.7.12
- csstype: 3.1.3
-
- /@types/unist@2.0.10:
- resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
- dev: false
-
- /@types/unist@3.0.2:
- resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
- dev: false
-
- /@types/use-sync-external-store@0.0.6:
- resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
- dev: false
-
- /@uiw/codemirror-extensions-basic-setup@4.23.0(@codemirror/autocomplete@6.17.0)(@codemirror/commands@6.6.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6):
- resolution: {integrity: sha512-+k5nkRpUWGaHr1JWT8jcKsVewlXw5qBgSopm9LW8fZ6KnSNZBycz8kHxh0+WSvckmXEESGptkIsb7dlkmJT/hQ==}
- peerDependencies:
- '@codemirror/autocomplete': '>=6.0.0'
- '@codemirror/commands': '>=6.0.0'
- '@codemirror/language': '>=6.0.0'
- '@codemirror/lint': '>=6.0.0'
- '@codemirror/search': '>=6.0.0'
- '@codemirror/state': '>=6.0.0'
- '@codemirror/view': '>=6.0.0'
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/commands': 6.6.0
- '@codemirror/language': 6.10.2
- '@codemirror/lint': 6.8.1
- '@codemirror/search': 6.5.6
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- dev: false
-
- /@uiw/codemirror-extensions-langs@4.23.0(@codemirror/autocomplete@6.17.0)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.2)(@codemirror/legacy-modes@6.4.0)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.1):
- resolution: {integrity: sha512-WUJnTgS3CIV5TZPjwYO+mvRqxfvSSSKC2a+Wm5Uk3uFoZZ7O/GKi4bKKLsIHQkCwNnd9CHJzwN2dpIVrK1AmLA==}
- peerDependencies:
- '@codemirror/language-data': '>=6.0.0'
- '@codemirror/legacy-modes': '>=6.0.0'
- dependencies:
- '@codemirror/lang-angular': 0.1.3
- '@codemirror/lang-cpp': 6.0.2
- '@codemirror/lang-css': 6.2.1(@codemirror/view@6.28.6)
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-java': 6.0.1
- '@codemirror/lang-javascript': 6.2.2
- '@codemirror/lang-json': 6.0.1
- '@codemirror/lang-less': 6.0.2(@codemirror/view@6.28.6)
- '@codemirror/lang-lezer': 6.0.1
- '@codemirror/lang-liquid': 6.2.1
- '@codemirror/lang-markdown': 6.2.5
- '@codemirror/lang-php': 6.0.1
- '@codemirror/lang-python': 6.1.6(@codemirror/view@6.28.6)
- '@codemirror/lang-rust': 6.0.1
- '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.28.6)
- '@codemirror/lang-sql': 6.7.0(@codemirror/view@6.28.6)
- '@codemirror/lang-vue': 0.1.3
- '@codemirror/lang-wast': 6.0.2
- '@codemirror/lang-xml': 6.1.0
- '@codemirror/language-data': 6.5.1(@codemirror/view@6.28.6)
- '@codemirror/legacy-modes': 6.4.0
- '@nextjournal/lang-clojure': 1.0.0
- '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/lr@1.4.1)
- '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/lr@1.4.1)
- '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.10.2)
- '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.17.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.1)
- codemirror-lang-mermaid: 0.5.0
- transitivePeerDependencies:
- - '@codemirror/autocomplete'
- - '@codemirror/language'
- - '@codemirror/state'
- - '@codemirror/view'
- - '@lezer/common'
- - '@lezer/highlight'
- - '@lezer/javascript'
- - '@lezer/lr'
- dev: false
-
- /@uiw/react-codemirror@4.23.0(@babel/runtime@7.24.8)(@codemirror/autocomplete@6.17.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.28.6)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-MnqTXfgeLA3fsUUQjqjJgemEuNyoGALgsExVm0NQAllAAi1wfj+IoKFeK+h3XXMlTFRCFYOUh4AHDv0YXJLsOg==}
- peerDependencies:
- '@babel/runtime': '>=7.11.0'
- '@codemirror/state': '>=6.0.0'
- '@codemirror/theme-one-dark': '>=6.0.0'
- '@codemirror/view': '>=6.0.0'
- codemirror: '>=6.0.0'
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
- dependencies:
- '@babel/runtime': 7.24.8
- '@codemirror/commands': 6.6.0
- '@codemirror/state': 6.4.1
- '@codemirror/theme-one-dark': 6.1.2
- '@codemirror/view': 6.28.6
- '@uiw/codemirror-extensions-basic-setup': 4.23.0(@codemirror/autocomplete@6.17.0)(@codemirror/commands@6.6.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)
- codemirror: 6.0.1(@lezer/common@1.2.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@codemirror/autocomplete'
- - '@codemirror/language'
- - '@codemirror/lint'
- - '@codemirror/search'
- dev: false
-
- /@vitejs/plugin-react@4.3.1(vite@5.3.4):
- resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- vite: ^4.2.0 || ^5.0.0
- dependencies:
- '@babel/core': 7.24.9
- '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.9)
- '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.9)
- '@types/babel__core': 7.20.5
- react-refresh: 0.14.2
- vite: 5.3.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@xterm/addon-fit@0.10.0(@xterm/xterm@5.5.0):
- resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==}
- peerDependencies:
- '@xterm/xterm': ^5.0.0
- dependencies:
- '@xterm/xterm': 5.5.0
- dev: false
-
- /@xterm/addon-webgl@0.18.0(@xterm/xterm@5.5.0):
- resolution: {integrity: sha512-xCnfMBTI+/HKPdRnSOHaJDRqEpq2Ugy8LEj9GiY4J3zJObo3joylIFaMvzBwbYRg8zLtkO0KQaStCeSfoaI2/w==}
- peerDependencies:
- '@xterm/xterm': ^5.0.0
- dependencies:
- '@xterm/xterm': 5.5.0
- dev: false
-
- /@xterm/xterm@5.5.0:
- resolution: {integrity: sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==}
- dev: false
-
- /ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- /ansi-regex@6.0.1:
- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
- engines: {node: '>=12'}
-
- /ansi-styles@3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
- dependencies:
- color-convert: 1.9.3
- dev: true
-
- /ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
- dependencies:
- color-convert: 2.0.1
-
- /ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
-
- /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'}
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
-
- /arg@5.0.2:
- resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
-
- /argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- dev: false
-
- /aria-hidden@1.2.4:
- resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
- engines: {node: '>=10'}
- dependencies:
- tslib: 2.6.3
- dev: false
-
- /autoprefixer@10.4.19(postcss@8.4.39):
- resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
- engines: {node: ^10 || ^12 || >=14}
- hasBin: true
- peerDependencies:
- postcss: ^8.1.0
- dependencies:
- browserslist: 4.23.2
- caniuse-lite: 1.0.30001643
- fraction.js: 4.3.7
- normalize-range: 0.1.2
- picocolors: 1.0.1
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
- dev: true
-
- /bail@2.0.2:
- resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
- dev: false
-
- /balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- /binary-extensions@2.3.0:
- resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
- engines: {node: '>=8'}
-
- /brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
- dependencies:
- balanced-match: 1.0.2
-
- /braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
- dependencies:
- fill-range: 7.1.1
-
- /browserslist@4.23.2:
- resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
- dependencies:
- caniuse-lite: 1.0.30001643
- electron-to-chromium: 1.4.832
- node-releases: 2.0.18
- update-browserslist-db: 1.1.0(browserslist@4.23.2)
- dev: true
-
- /camelcase-css@2.0.1:
- resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
- engines: {node: '>= 6'}
-
- /caniuse-lite@1.0.30001643:
- resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==}
- dev: true
-
- /ccount@2.0.1:
- resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
- dev: false
-
- /chalk@2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- engines: {node: '>=4'}
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
- dev: true
-
- /character-entities-html4@2.1.0:
- resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
- dev: false
-
- /character-entities-legacy@3.0.0:
- resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
- dev: false
-
- /character-entities@2.0.2:
- resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
- dev: false
-
- /chokidar@3.6.0:
- resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
- engines: {node: '>= 8.10.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
-
- /chroma-js@2.4.2:
- resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==}
- dev: false
-
- /class-variance-authority@0.7.0:
- resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
- dependencies:
- clsx: 2.0.0
- dev: false
-
- /classnames@2.5.1:
- resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
- dev: false
-
- /clsx@1.2.1:
- resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
- engines: {node: '>=6'}
- dev: false
-
- /clsx@2.0.0:
- resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
- engines: {node: '>=6'}
- dev: false
-
- /clsx@2.1.1:
- resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
- engines: {node: '>=6'}
- dev: false
-
- /codemirror-lang-mermaid@0.5.0:
- resolution: {integrity: sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==}
- dependencies:
- '@codemirror/language': 6.10.2
- '@lezer/highlight': 1.2.0
- '@lezer/lr': 1.4.1
- dev: false
-
- /codemirror@6.0.1(@lezer/common@1.2.1):
- resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
- dependencies:
- '@codemirror/autocomplete': 6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.6)(@lezer/common@1.2.1)
- '@codemirror/commands': 6.6.0
- '@codemirror/language': 6.10.2
- '@codemirror/lint': 6.8.1
- '@codemirror/search': 6.5.6
- '@codemirror/state': 6.4.1
- '@codemirror/view': 6.28.6
- transitivePeerDependencies:
- - '@lezer/common'
- dev: false
-
- /color-convert@1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- dependencies:
- color-name: 1.1.3
- dev: true
-
- /color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
- dependencies:
- color-name: 1.1.4
-
- /color-name@1.1.3:
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- dev: true
-
- /color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- /color-string@1.9.1:
- resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
- dependencies:
- color-name: 1.1.4
- simple-swizzle: 0.2.2
- dev: false
-
- /color2k@2.0.3:
- resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==}
- dev: false
-
- /color@4.2.3:
- resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
- engines: {node: '>=12.5.0'}
- dependencies:
- color-convert: 2.0.1
- color-string: 1.9.1
- dev: false
-
- /comma-separated-tokens@2.0.3:
- resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
- dev: false
-
- /commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
-
- /compute-scroll-into-view@3.1.0:
- resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==}
- dev: false
-
- /convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
- dev: true
-
- /crelt@1.0.6:
- resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
- dev: false
-
- /cross-spawn@7.0.3:
- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
- engines: {node: '>= 8'}
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- /cssesc@3.0.0:
- resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
- engines: {node: '>=4'}
- hasBin: true
-
- /csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
-
- /d3-array@3.2.4:
- resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
- engines: {node: '>=12'}
- dependencies:
- internmap: 2.0.3
- dev: false
-
- /d3-color@3.1.0:
- resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-ease@3.0.1:
- resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-format@3.1.0:
- resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-interpolate@3.0.1:
- resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
- engines: {node: '>=12'}
- dependencies:
- d3-color: 3.1.0
- dev: false
-
- /d3-path@3.1.0:
- resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-scale@4.0.2:
- resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.2.4
- d3-format: 3.1.0
- d3-interpolate: 3.0.1
- d3-time: 3.1.0
- d3-time-format: 4.1.0
- dev: false
-
- /d3-shape@3.2.0:
- resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
- engines: {node: '>=12'}
- dependencies:
- d3-path: 3.1.0
- dev: false
-
- /d3-time-format@4.1.0:
- resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
- engines: {node: '>=12'}
- dependencies:
- d3-time: 3.1.0
- dev: false
-
- /d3-time@3.1.0:
- resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.2.4
- dev: false
-
- /d3-timer@3.0.1:
- resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
- engines: {node: '>=12'}
- dev: false
-
- /date-fns@3.6.0:
- resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==}
- dev: false
-
- /debug@4.3.5:
- resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.1.2
-
- /decimal.js-light@2.5.1:
- resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
- dev: false
-
- /decode-named-character-reference@1.0.2:
- resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
- dependencies:
- character-entities: 2.0.2
- dev: false
-
- /deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
- dev: false
-
- /detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
- dev: false
-
- /didyoumean@1.2.2:
- resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
-
- /diff@5.2.0:
- resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
- engines: {node: '>=0.3.1'}
- dev: false
-
- /dlv@1.1.3:
- resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
-
- /dom-helpers@5.2.1:
- resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
- dependencies:
- '@babel/runtime': 7.24.8
- csstype: 3.1.3
- dev: false
-
- /eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- /electron-to-chromium@1.4.832:
- resolution: {integrity: sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==}
- dev: true
-
- /emoji-mart@5.6.0:
- resolution: {integrity: sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==}
- dev: false
-
- /emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- /emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- /entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
- dev: false
-
- /esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
- hasBin: true
- requiresBuild: true
- 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
- dev: true
-
- /escalade@3.1.2:
- resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
- engines: {node: '>=6'}
- dev: true
-
- /escape-string-regexp@1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
- dev: true
-
- /escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
- dev: false
-
- /escape-string-regexp@5.0.0:
- resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
- engines: {node: '>=12'}
- dev: false
-
- /eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
- dev: false
-
- /extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
- dev: false
-
- /fast-equals@5.0.1:
- resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==}
- engines: {node: '>=6.0.0'}
- dev: false
-
- /fast-glob@3.3.2:
- resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
- engines: {node: '>=8.6.0'}
- 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.7
-
- /fastq@1.17.1:
- resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
- dependencies:
- reusify: 1.0.4
-
- /fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
- dependencies:
- to-regex-range: 5.0.1
-
- /flat@5.0.2:
- resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
- hasBin: true
- dev: false
-
- /foreground-child@3.2.1:
- resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==}
- engines: {node: '>=14'}
- dependencies:
- cross-spawn: 7.0.3
- signal-exit: 4.1.0
-
- /fraction.js@4.3.7:
- resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
- dev: true
-
- /framer-motion@11.3.8(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-1D+RDTsIp4Rz2dq/oToqSEc9idEQwgBRQyBq4rGpFba+0Z+GCbj9z1s0+ikFbanWe3YJ0SqkNlDe08GcpFGj5A==}
- peerDependencies:
- '@emotion/is-prop-valid': '*'
- react: ^18.0.0
- react-dom: ^18.0.0
- peerDependenciesMeta:
- '@emotion/is-prop-valid':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- tslib: 2.6.3
- dev: false
-
- /fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
- requiresBuild: true
- optional: true
-
- /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'}
- dev: true
-
- /get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
- dev: false
-
- /glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
- dependencies:
- is-glob: 4.0.3
-
- /glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
- dependencies:
- is-glob: 4.0.3
-
- /glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
- hasBin: true
- dependencies:
- foreground-child: 3.2.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.0
- path-scurry: 1.11.1
-
- /globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
- dev: true
-
- /globrex@0.1.2:
- resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
- dev: true
-
- /has-flag@3.0.0:
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
- engines: {node: '>=4'}
- dev: true
-
- /hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- function-bind: 1.1.2
-
- /hast-util-embedded@2.0.1:
- resolution: {integrity: sha512-QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==}
- dependencies:
- hast-util-is-element: 2.1.3
- dev: false
-
- /hast-util-embedded@3.0.0:
- resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==}
- dependencies:
- '@types/hast': 3.0.4
- hast-util-is-element: 3.0.0
- dev: false
-
- /hast-util-from-dom@4.2.0:
- resolution: {integrity: sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ==}
- dependencies:
- hastscript: 7.2.0
- web-namespaces: 2.0.1
- dev: false
-
- /hast-util-from-parse5@7.1.2:
- resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/unist': 2.0.10
- hastscript: 7.2.0
- property-information: 6.5.0
- vfile: 5.3.7
- vfile-location: 4.1.0
- web-namespaces: 2.0.1
- dev: false
-
- /hast-util-has-property@2.0.1:
- resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==}
- dev: false
-
- /hast-util-has-property@3.0.0:
- resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==}
- dependencies:
- '@types/hast': 3.0.4
- dev: false
-
- /hast-util-is-body-ok-link@2.0.0:
- resolution: {integrity: sha512-S58hCexyKdD31vMsErvgLfflW6vYWo/ixRLPJTtkOvLld24vyI8vmYmkgLA5LG3la2ME7nm7dLGdm48gfLRBfw==}
- dependencies:
- '@types/hast': 2.3.10
- hast-util-has-property: 2.0.1
- hast-util-is-element: 2.1.3
- dev: false
-
- /hast-util-is-body-ok-link@3.0.0:
- resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==}
- dependencies:
- '@types/hast': 3.0.4
- dev: false
-
- /hast-util-is-element@2.1.3:
- resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/unist': 2.0.10
- dev: false
-
- /hast-util-is-element@3.0.0:
- resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
- dependencies:
- '@types/hast': 3.0.4
- dev: false
-
- /hast-util-parse-selector@3.1.1:
- resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==}
- dependencies:
- '@types/hast': 2.3.10
- dev: false
-
- /hast-util-phrasing@2.0.2:
- resolution: {integrity: sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==}
- dependencies:
- '@types/hast': 2.3.10
- hast-util-embedded: 2.0.1
- hast-util-has-property: 2.0.1
- hast-util-is-body-ok-link: 2.0.0
- hast-util-is-element: 2.1.3
- dev: false
-
- /hast-util-phrasing@3.0.1:
- resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==}
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-has-property: 3.0.0
- hast-util-is-body-ok-link: 3.0.0
- hast-util-is-element: 3.0.0
- dev: false
-
- /hast-util-raw@7.2.3:
- resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/parse5': 6.0.3
- hast-util-from-parse5: 7.1.2
- hast-util-to-parse5: 7.1.0
- html-void-elements: 2.0.1
- parse5: 6.0.1
- unist-util-position: 4.0.4
- unist-util-visit: 4.1.2
- vfile: 5.3.7
- web-namespaces: 2.0.1
- zwitch: 2.0.4
- dev: false
-
- /hast-util-to-html@8.0.4:
- resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/unist': 2.0.10
- ccount: 2.0.1
- comma-separated-tokens: 2.0.3
- hast-util-raw: 7.2.3
- hast-util-whitespace: 2.0.1
- html-void-elements: 2.0.1
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- stringify-entities: 4.0.4
- zwitch: 2.0.4
- dev: false
-
- /hast-util-to-mdast@8.4.1:
- resolution: {integrity: sha512-tfmBLASuCgyhCzpkTXM5kU8xeuS5jkMZ17BYm2YftGT5wvgc7uHXTZ/X8WfNd6F5NV/IGmrLsuahZ+jXQir4zQ==}
- dependencies:
- '@types/extend': 3.0.4
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.10
- extend: 3.0.2
- hast-util-has-property: 2.0.1
- hast-util-is-element: 2.1.3
- hast-util-phrasing: 2.0.2
- hast-util-to-text: 3.1.2
- mdast-util-phrasing: 3.0.1
- mdast-util-to-string: 3.2.0
- rehype-minify-whitespace: 5.0.1
- trim-trailing-lines: 2.1.0
- unist-util-is: 5.2.1
- unist-util-visit: 4.1.2
- dev: false
-
- /hast-util-to-parse5@7.1.0:
- resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==}
- dependencies:
- '@types/hast': 2.3.10
- comma-separated-tokens: 2.0.3
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- web-namespaces: 2.0.1
- zwitch: 2.0.4
- dev: false
-
- /hast-util-to-text@3.1.2:
- resolution: {integrity: sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/unist': 2.0.10
- hast-util-is-element: 2.1.3
- unist-util-find-after: 4.0.1
- dev: false
-
- /hast-util-whitespace@2.0.1:
- resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==}
- dev: false
-
- /hast-util-whitespace@3.0.0:
- resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
- dependencies:
- '@types/hast': 3.0.4
- dev: false
-
- /hastscript@7.2.0:
- resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==}
- dependencies:
- '@types/hast': 2.3.10
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 3.1.1
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- dev: false
-
- /highlight.js@11.10.0:
- resolution: {integrity: sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==}
- engines: {node: '>=12.0.0'}
- dev: false
-
- /html-void-elements@2.0.1:
- resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
- dev: false
-
- /html-whitespace-sensitive-tag-names@3.0.0:
- resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==}
- dev: false
-
- /internmap@2.0.3:
- resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
- engines: {node: '>=12'}
- dev: false
-
- /intl-messageformat@10.5.14:
- resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==}
- dependencies:
- '@formatjs/ecma402-abstract': 2.0.0
- '@formatjs/fast-memoize': 2.2.0
- '@formatjs/icu-messageformat-parser': 2.7.8
- tslib: 2.6.3
- dev: false
-
- /invariant@2.2.4:
- resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
- dependencies:
- loose-envify: 1.4.0
- dev: false
-
- /is-arrayish@0.3.2:
- resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
- dev: false
-
- /is-binary-path@2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
- dependencies:
- binary-extensions: 2.3.0
-
- /is-buffer@2.0.5:
- resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
- engines: {node: '>=4'}
- dev: false
-
- /is-core-module@2.15.0:
- resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==}
- engines: {node: '>= 0.4'}
- dependencies:
- hasown: 2.0.2
-
- /is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- /is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- /is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-extglob: 2.1.1
-
- /is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- /is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
- dev: false
-
- /isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- /isomorphic.js@0.2.5:
- resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==}
- dev: false
-
- /jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
- /jiti@1.21.6:
- resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
- hasBin: true
-
- /js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- /jsesc@2.5.2:
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
- engines: {node: '>=4'}
- hasBin: true
- dev: true
-
- /json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
- dev: true
-
- /kleur@4.1.5:
- resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
- engines: {node: '>=6'}
- dev: false
-
- /lib0@0.2.94:
- resolution: {integrity: sha512-hZ3p54jL4Wpu7IOg26uC7dnEWiMyNlUrb9KoG7+xYs45WkQwpVvKFndVq2+pqLYKe1u8Fp3+zAfZHVvTK34PvQ==}
- engines: {node: '>=16'}
- hasBin: true
- dependencies:
- isomorphic.js: 0.2.5
- dev: false
-
- /lilconfig@2.1.0:
- resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
- engines: {node: '>=10'}
-
- /lilconfig@3.1.2:
- resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
- engines: {node: '>=14'}
-
- /lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-
- /linkify-it@5.0.0:
- resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
- dependencies:
- uc.micro: 2.1.0
- dev: false
-
- /linkifyjs@4.1.3:
- resolution: {integrity: sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==}
- dev: false
-
- /lodash.debounce@4.0.8:
- resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- dev: false
-
- /lodash.foreach@4.5.0:
- resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
- dev: false
-
- /lodash.get@4.4.2:
- resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
- dev: false
-
- /lodash.kebabcase@4.1.1:
- resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
- dev: false
-
- /lodash.mapkeys@4.6.0:
- resolution: {integrity: sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==}
- dev: false
-
- /lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- dev: false
-
- /lodash.omit@4.5.0:
- resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==}
- dev: false
-
- /lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
- dev: false
-
- /longest-streak@3.1.0:
- resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
- dev: false
-
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
- dependencies:
- js-tokens: 4.0.0
-
- /lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- /lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- dependencies:
- yallist: 3.1.1
- dev: true
-
- /lucide-react@0.402.0(react@18.3.1):
- resolution: {integrity: sha512-V2ModWMXzoZbQy4dhVUY4snrOplw+DwH0tsr8SLf8N0+irwO5okFcMS4eFHrXHttt24sLFZP3IJQo832o3fUWQ==}
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /luxon@3.4.4:
- resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
- engines: {node: '>=12'}
- dev: false
-
- /markdown-it@14.1.0:
- resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
- hasBin: true
- dependencies:
- argparse: 2.0.1
- entities: 4.5.0
- linkify-it: 5.0.0
- mdurl: 2.0.0
- punycode.js: 2.3.1
- uc.micro: 2.1.0
- dev: false
-
- /markdown-table@3.0.3:
- resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
- dev: false
-
- /mdast-util-definitions@5.1.2:
- resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==}
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.10
- unist-util-visit: 4.1.2
- dev: false
-
- /mdast-util-find-and-replace@2.2.2:
- resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==}
- dependencies:
- '@types/mdast': 3.0.15
- escape-string-regexp: 5.0.0
- unist-util-is: 5.2.1
- unist-util-visit-parents: 5.1.3
- dev: false
-
- /mdast-util-from-markdown@1.3.1:
- resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==}
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.10
- decode-named-character-reference: 1.0.2
- mdast-util-to-string: 3.2.0
- micromark: 3.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-decode-string: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- unist-util-stringify-position: 3.0.3
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /mdast-util-gfm-autolink-literal@1.0.3:
- resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==}
- dependencies:
- '@types/mdast': 3.0.15
- ccount: 2.0.1
- mdast-util-find-and-replace: 2.2.2
- micromark-util-character: 1.2.0
- dev: false
-
- /mdast-util-gfm-footnote@1.0.2:
- resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-to-markdown: 1.5.0
- micromark-util-normalize-identifier: 1.1.0
- dev: false
-
- /mdast-util-gfm-strikethrough@1.0.3:
- resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-to-markdown: 1.5.0
- dev: false
-
- /mdast-util-gfm-table@1.0.7:
- resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==}
- dependencies:
- '@types/mdast': 3.0.15
- markdown-table: 3.0.3
- mdast-util-from-markdown: 1.3.1
- mdast-util-to-markdown: 1.5.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /mdast-util-gfm-task-list-item@1.0.2:
- resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-to-markdown: 1.5.0
- dev: false
-
- /mdast-util-gfm@2.0.2:
- resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==}
- dependencies:
- mdast-util-from-markdown: 1.3.1
- mdast-util-gfm-autolink-literal: 1.0.3
- mdast-util-gfm-footnote: 1.0.2
- mdast-util-gfm-strikethrough: 1.0.3
- mdast-util-gfm-table: 1.0.7
- mdast-util-gfm-task-list-item: 1.0.2
- mdast-util-to-markdown: 1.5.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /mdast-util-phrasing@3.0.1:
- resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==}
- dependencies:
- '@types/mdast': 3.0.15
- unist-util-is: 5.2.1
- dev: false
-
- /mdast-util-to-hast@12.3.0:
- resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- mdast-util-definitions: 5.1.2
- micromark-util-sanitize-uri: 1.2.0
- trim-lines: 3.0.1
- unist-util-generated: 2.0.1
- unist-util-position: 4.0.4
- unist-util-visit: 4.1.2
- dev: false
-
- /mdast-util-to-markdown@1.5.0:
- resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==}
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.10
- longest-streak: 3.1.0
- mdast-util-phrasing: 3.0.1
- mdast-util-to-string: 3.2.0
- micromark-util-decode-string: 1.1.0
- unist-util-visit: 4.1.2
- zwitch: 2.0.4
- dev: false
-
- /mdast-util-to-string@3.2.0:
- resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==}
- dependencies:
- '@types/mdast': 3.0.15
- dev: false
-
- /mdurl@2.0.0:
- resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
- dev: false
-
- /memoize-one@5.2.1:
- resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
- dev: false
-
- /merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- /micromark-core-commonmark@1.1.0:
- resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==}
- dependencies:
- decode-named-character-reference: 1.0.2
- micromark-factory-destination: 1.1.0
- micromark-factory-label: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-factory-title: 1.1.0
- micromark-factory-whitespace: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-classify-character: 1.1.0
- micromark-util-html-tag-name: 1.2.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-extension-gfm-autolink-literal@1.0.5:
- resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-sanitize-uri: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-extension-gfm-footnote@1.1.2:
- resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==}
- dependencies:
- micromark-core-commonmark: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-sanitize-uri: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-extension-gfm-strikethrough@1.0.7:
- resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==}
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-classify-character: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-extension-gfm-table@1.0.7:
- resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==}
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-extension-gfm-tagfilter@1.0.2:
- resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==}
- dependencies:
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-extension-gfm-task-list-item@1.0.5:
- resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==}
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-extension-gfm@2.0.3:
- resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==}
- dependencies:
- micromark-extension-gfm-autolink-literal: 1.0.5
- micromark-extension-gfm-footnote: 1.1.2
- micromark-extension-gfm-strikethrough: 1.0.7
- micromark-extension-gfm-table: 1.0.7
- micromark-extension-gfm-tagfilter: 1.0.2
- micromark-extension-gfm-task-list-item: 1.0.5
- micromark-util-combine-extensions: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-factory-destination@1.1.0:
- resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-factory-label@1.1.0:
- resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-factory-space@1.1.0:
- resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-factory-title@1.1.0:
- resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==}
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-factory-whitespace@1.1.0:
- resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==}
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-util-character@1.2.0:
- resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
- dependencies:
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-util-chunked@1.1.0:
- resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==}
- dependencies:
- micromark-util-symbol: 1.1.0
- dev: false
-
- /micromark-util-classify-character@1.1.0:
- resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-util-combine-extensions@1.1.0:
- resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==}
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-util-decode-numeric-character-reference@1.1.0:
- resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==}
- dependencies:
- micromark-util-symbol: 1.1.0
- dev: false
-
- /micromark-util-decode-string@1.1.0:
- resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==}
- dependencies:
- decode-named-character-reference: 1.0.2
- micromark-util-character: 1.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-symbol: 1.1.0
- dev: false
-
- /micromark-util-encode@1.1.0:
- resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==}
- dev: false
-
- /micromark-util-html-tag-name@1.2.0:
- resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
- dev: false
-
- /micromark-util-normalize-identifier@1.1.0:
- resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==}
- dependencies:
- micromark-util-symbol: 1.1.0
- dev: false
-
- /micromark-util-resolve-all@1.1.0:
- resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==}
- dependencies:
- micromark-util-types: 1.1.0
- dev: false
-
- /micromark-util-sanitize-uri@1.2.0:
- resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==}
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-encode: 1.1.0
- micromark-util-symbol: 1.1.0
- dev: false
-
- /micromark-util-subtokenize@1.1.0:
- resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==}
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- dev: false
-
- /micromark-util-symbol@1.1.0:
- resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
- dev: false
-
- /micromark-util-types@1.1.0:
- resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
- dev: false
-
- /micromark@3.2.0:
- resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
- dependencies:
- '@types/debug': 4.1.12
- debug: 4.3.5
- decode-named-character-reference: 1.0.2
- micromark-core-commonmark: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-combine-extensions: 1.1.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-encode: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-sanitize-uri: 1.2.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /micromatch@4.0.7:
- resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
- engines: {node: '>=8.6'}
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- /mini-svg-data-uri@1.4.4:
- resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
- hasBin: true
- dev: false
-
- /minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
- dependencies:
- brace-expansion: 2.0.1
-
- /minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- /mri@1.2.0:
- resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
- engines: {node: '>=4'}
- dev: false
-
- /ms@2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-
- /mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
- dependencies:
- any-promise: 1.3.0
- object-assign: 4.1.1
- thenify-all: 1.6.0
-
- /nanoid@3.3.7:
- resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- /node-releases@2.0.18:
- resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
- dev: true
-
- /normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- /normalize-range@0.1.2:
- resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /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'}
-
- /orderedmap@2.1.1:
- resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
- dev: false
-
- /package-json-from-dist@1.0.0:
- resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
-
- /parse5@6.0.1:
- resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
- dev: false
-
- /path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- /path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-
- /path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
- /picocolors@1.0.1:
- resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
-
- /picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- /pify@2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
-
- /pirates@4.0.6:
- resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
- engines: {node: '>= 6'}
-
- /postcss-import@15.1.0(postcss@8.4.39):
- resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- postcss: ^8.0.0
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.8
-
- /postcss-js@4.0.1(postcss@8.4.39):
- resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.4.21
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.4.39
-
- /postcss-load-config@4.0.2(postcss@8.4.39):
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
- dependencies:
- lilconfig: 3.1.2
- postcss: 8.4.39
- yaml: 2.4.5
-
- /postcss-nested@6.2.0(postcss@8.4.39):
- resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
- dependencies:
- postcss: 8.4.39
- postcss-selector-parser: 6.1.1
-
- /postcss-selector-parser@6.1.1:
- resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==}
- engines: {node: '>=4'}
- dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
-
- /postcss-value-parser@4.2.0:
- resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
-
- /postcss@8.4.39:
- resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
- engines: {node: ^10 || ^12 || >=14}
- dependencies:
- nanoid: 3.3.7
- picocolors: 1.0.1
- source-map-js: 1.2.0
-
- /prism-react-renderer@2.3.1(react@18.3.1):
- resolution: {integrity: sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==}
- peerDependencies:
- react: '>=16.0.0'
- dependencies:
- '@types/prismjs': 1.26.4
- clsx: 2.1.1
- react: 18.3.1
- dev: false
-
- /prismjs@1.29.0:
- resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
- engines: {node: '>=6'}
- dev: false
-
- /prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
- dev: false
-
- /property-information@6.5.0:
- resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
- dev: false
-
- /prosemirror-changeset@2.2.1:
- resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==}
- dependencies:
- prosemirror-transform: 1.9.0
- dev: false
-
- /prosemirror-collab@1.3.1:
- resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
- dependencies:
- prosemirror-state: 1.4.3
- dev: false
-
- /prosemirror-commands@1.5.2:
- resolution: {integrity: sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==}
- dependencies:
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- dev: false
-
- /prosemirror-dropcursor@1.8.1:
- resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==}
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- dev: false
-
- /prosemirror-gapcursor@1.3.2:
- resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
- dependencies:
- prosemirror-keymap: 1.2.2
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-view: 1.33.9
- dev: false
-
- /prosemirror-history@1.4.1:
- resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- rope-sequence: 1.3.4
- dev: false
-
- /prosemirror-inputrules@1.4.0:
- resolution: {integrity: sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==}
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- dev: false
-
- /prosemirror-keymap@1.2.2:
- resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==}
- dependencies:
- prosemirror-state: 1.4.3
- w3c-keyname: 2.2.8
- dev: false
-
- /prosemirror-markdown@1.13.0:
- resolution: {integrity: sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==}
- dependencies:
- markdown-it: 14.1.0
- prosemirror-model: 1.22.2
- dev: false
-
- /prosemirror-menu@1.2.4:
- resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==}
- dependencies:
- crelt: 1.0.6
- prosemirror-commands: 1.5.2
- prosemirror-history: 1.4.1
- prosemirror-state: 1.4.3
- dev: false
-
- /prosemirror-model@1.22.2:
- resolution: {integrity: sha512-I4lS7HHIW47D0Xv/gWmi4iUWcQIDYaJKd8Hk4+lcSps+553FlQrhmxtItpEvTr75iAruhzVShVp6WUwsT6Boww==}
- dependencies:
- orderedmap: 2.1.1
- dev: false
-
- /prosemirror-schema-basic@1.2.3:
- resolution: {integrity: sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==}
- dependencies:
- prosemirror-model: 1.22.2
- dev: false
-
- /prosemirror-schema-list@1.4.1:
- resolution: {integrity: sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==}
- dependencies:
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- dev: false
-
- /prosemirror-state@1.4.3:
- resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
- dependencies:
- prosemirror-model: 1.22.2
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- dev: false
-
- /prosemirror-tables@1.4.0:
- resolution: {integrity: sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA==}
- dependencies:
- prosemirror-keymap: 1.2.2
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- prosemirror-view: 1.33.9
- dev: false
-
- /prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9):
- resolution: {integrity: sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg==}
- peerDependencies:
- prosemirror-model: ^1.22.1
- prosemirror-state: ^1.4.2
- prosemirror-view: ^1.33.8
- dependencies:
- '@remirror/core-constants': 2.0.2
- escape-string-regexp: 4.0.0
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-view: 1.33.9
- dev: false
-
- /prosemirror-transform@1.9.0:
- resolution: {integrity: sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==}
- dependencies:
- prosemirror-model: 1.22.2
- dev: false
-
- /prosemirror-view@1.33.9:
- resolution: {integrity: sha512-xV1A0Vz9cIcEnwmMhKKFAOkfIp8XmJRnaZoPqNXrPS7EK5n11Ov8V76KhR0RsfQd/SIzmWY+bg+M44A2Lx/Nnw==}
- dependencies:
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.9.0
- dev: false
-
- /punycode.js@2.3.1:
- resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
- engines: {node: '>=6'}
- dev: false
-
- /queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- /react-activity-calendar@2.2.11(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-KblrtieAiUCT3Tn549mD6b5C+CaUJUN26NuBFc277s29HlUPI5bu0HSkpqP0LVicNX+Ng8apkyOgnbQpxQpnYg==}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
- dependencies:
- '@types/chroma-js': 2.4.4
- chroma-js: 2.4.2
- date-fns: 3.6.0
- prism-react-renderer: 2.3.1(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-dom@18.3.1(react@18.3.1):
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
- peerDependencies:
- react: ^18.3.1
- dependencies:
- loose-envify: 1.4.0
- react: 18.3.1
- scheduler: 0.23.2
- dev: false
-
- /react-icons@5.2.1(react@18.3.1):
- resolution: {integrity: sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==}
- peerDependencies:
- react: '*'
- dependencies:
- react: 18.3.1
- dev: false
-
- /react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
- dev: false
-
- /react-number-format@5.4.0(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==}
- peerDependencies:
- react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- dependencies:
- prop-types: 15.8.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-refresh@0.14.2:
- resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
- tslib: 2.6.3
- dev: false
-
- /react-remove-scroll@2.5.10(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
- tslib: 2.6.3
- use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1)
- dev: false
-
- /react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
- tslib: 2.6.3
- use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1)
- dev: false
-
- /react-router-dom@6.25.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- react: '>=16.8'
- react-dom: '>=16.8'
- dependencies:
- '@remix-run/router': 1.18.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-router: 6.25.1(react@18.3.1)
- dev: false
-
- /react-router@6.25.1(react@18.3.1):
- resolution: {integrity: sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- react: '>=16.8'
- dependencies:
- '@remix-run/router': 1.18.0
- react: 18.3.1
- dev: false
-
- /react-smooth@4.0.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- fast-equals: 5.0.1
- prop-types: 15.8.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1)
- dev: false
-
- /react-spinners@0.14.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-2Izq+qgQ08HTofCVEdcAQCXFEYfqTDdfeDQJeo/HHQiQJD4imOicNLhkfN2eh1NYEWVOX4D9ok2lhuDB0z3Aag==}
- peerDependencies:
- react: ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- get-nonce: 1.0.1
- invariant: 2.2.4
- react: 18.3.1
- tslib: 2.6.3
- dev: false
-
- /react-textarea-autosize@8.5.3(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==}
- engines: {node: '>=10'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- '@babel/runtime': 7.24.8
- react: 18.3.1
- use-composed-ref: 1.3.0(react@18.3.1)
- use-latest: 1.2.1(@types/react@18.3.3)(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- dev: false
-
- /react-tooltip@5.27.1(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-a+micPXcMOMt11CYlwJD4XShcqGziasHco4NPe1OFw298WBTILMyzUgNC1LAFViAe791JdHNVSJIpzhZm2MvDA==}
- peerDependencies:
- react: '>=16.14.0'
- react-dom: '>=16.14.0'
- dependencies:
- '@floating-ui/dom': 1.6.8
- classnames: 2.5.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-transition-group@4.4.5(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
- peerDependencies:
- react: '>=16.6.0'
- react-dom: '>=16.6.0'
- dependencies:
- '@babel/runtime': 7.24.8
- dom-helpers: 5.2.1
- loose-envify: 1.4.0
- prop-types: 15.8.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-window-infinite-loader@1.0.9(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-5Hg89IdU4Vrp0RT8kZYKeTIxWZYhNkVXeI1HbKo01Vm/Z7qztDvXljwx16sMzsa9yapRJQW3ODZfMUw38SOWHw==}
- engines: {node: '>8.0.0'}
- peerDependencies:
- react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0
- react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react-window@1.8.10(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==}
- engines: {node: '>8.0.0'}
- peerDependencies:
- react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- dependencies:
- '@babel/runtime': 7.24.8
- memoize-one: 5.2.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- dev: false
-
- /react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- loose-envify: 1.4.0
-
- /read-cache@1.0.0:
- resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
- dependencies:
- pify: 2.3.0
-
- /readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
- dependencies:
- picomatch: 2.3.1
-
- /recharts-scale@0.4.5:
- resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==}
- dependencies:
- decimal.js-light: 2.5.1
- dev: false
-
- /recharts@2.12.7(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==}
- engines: {node: '>=14'}
- peerDependencies:
- react: ^16.0.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0
- dependencies:
- clsx: 2.1.1
- eventemitter3: 4.0.7
- lodash: 4.17.21
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-is: 16.13.1
- react-smooth: 4.0.1(react-dom@18.3.1)(react@18.3.1)
- recharts-scale: 0.4.5
- tiny-invariant: 1.3.3
- victory-vendor: 36.9.2
- dev: false
-
- /regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
- dev: false
-
- /rehype-format@5.0.0:
- resolution: {integrity: sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==}
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-is-element: 3.0.0
- hast-util-phrasing: 3.0.1
- hast-util-whitespace: 3.0.0
- html-whitespace-sensitive-tag-names: 3.0.0
- rehype-minify-whitespace: 6.0.0
- unist-util-visit-parents: 6.0.1
- dev: false
-
- /rehype-minify-whitespace@5.0.1:
- resolution: {integrity: sha512-PPp4lWJiBPlePI/dv1BeYktbwkfgXkrK59MUa+tYbMPgleod+4DvFK2PLU0O0O60/xuhHfiR9GUIUlXTU8sRIQ==}
- dependencies:
- '@types/hast': 2.3.10
- hast-util-embedded: 2.0.1
- hast-util-is-element: 2.1.3
- hast-util-whitespace: 2.0.1
- unified: 10.1.2
- unist-util-is: 5.2.1
- dev: false
-
- /rehype-minify-whitespace@6.0.0:
- resolution: {integrity: sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==}
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-is-element: 3.0.0
- hast-util-whitespace: 3.0.0
- unist-util-is: 6.0.0
- dev: false
-
- /rehype-parse@8.0.5:
- resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==}
- dependencies:
- '@types/hast': 2.3.10
- hast-util-from-parse5: 7.1.2
- parse5: 6.0.1
- unified: 10.1.2
- dev: false
-
- /rehype-remark@9.1.2:
- resolution: {integrity: sha512-c0fG3/CrJ95zAQ07xqHSkdpZybwdsY7X5dNWvgL2XqLKZuqmG3+vk6kP/4miCnp+R+x/0uKKRSpfXb9aGR8Z5w==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- hast-util-to-mdast: 8.4.1
- unified: 10.1.2
- dev: false
-
- /rehype-stringify@9.0.4:
- resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==}
- dependencies:
- '@types/hast': 2.3.10
- hast-util-to-html: 8.0.4
- unified: 10.1.2
- dev: false
-
- /remark-gfm@3.0.1:
- resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-gfm: 2.0.2
- micromark-extension-gfm: 2.0.3
- unified: 10.1.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /remark-parse@10.0.2:
- resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-from-markdown: 1.3.1
- unified: 10.1.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /remark-rehype@10.1.0:
- resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==}
- dependencies:
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- mdast-util-to-hast: 12.3.0
- unified: 10.1.2
- dev: false
-
- /remark-stringify@10.0.3:
- resolution: {integrity: sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==}
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-to-markdown: 1.5.0
- unified: 10.1.2
- dev: false
-
- /resolve@1.22.8:
- resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
- hasBin: true
- dependencies:
- is-core-module: 2.15.0
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
- /reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-
- /rollup@4.19.0:
- resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
- dependencies:
- '@types/estree': 1.0.5
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.19.0
- '@rollup/rollup-android-arm64': 4.19.0
- '@rollup/rollup-darwin-arm64': 4.19.0
- '@rollup/rollup-darwin-x64': 4.19.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.19.0
- '@rollup/rollup-linux-arm-musleabihf': 4.19.0
- '@rollup/rollup-linux-arm64-gnu': 4.19.0
- '@rollup/rollup-linux-arm64-musl': 4.19.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.19.0
- '@rollup/rollup-linux-riscv64-gnu': 4.19.0
- '@rollup/rollup-linux-s390x-gnu': 4.19.0
- '@rollup/rollup-linux-x64-gnu': 4.19.0
- '@rollup/rollup-linux-x64-musl': 4.19.0
- '@rollup/rollup-win32-arm64-msvc': 4.19.0
- '@rollup/rollup-win32-ia32-msvc': 4.19.0
- '@rollup/rollup-win32-x64-msvc': 4.19.0
- fsevents: 2.3.3
- dev: true
-
- /rope-sequence@1.3.4:
- resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
- dev: false
-
- /run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- dependencies:
- queue-microtask: 1.2.3
-
- /sade@1.8.1:
- resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
- engines: {node: '>=6'}
- dependencies:
- mri: 1.2.0
- dev: false
-
- /scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
- dependencies:
- loose-envify: 1.4.0
- dev: false
-
- /scroll-into-view-if-needed@3.0.10:
- resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==}
- dependencies:
- compute-scroll-into-view: 3.1.0
- dev: false
-
- /semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
- dev: true
-
- /shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
- dependencies:
- shebang-regex: 3.0.0
-
- /shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- /signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
- /simple-swizzle@0.2.2:
- resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
- dependencies:
- is-arrayish: 0.3.2
- dev: false
-
- /source-map-js@1.2.0:
- resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
- engines: {node: '>=0.10.0'}
-
- /space-separated-tokens@2.0.2:
- resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
- dev: false
-
- /string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- /string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.0
-
- /stringify-entities@4.0.4:
- resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
- dependencies:
- character-entities-html4: 2.1.0
- character-entities-legacy: 3.0.0
- dev: false
-
- /strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
- dependencies:
- ansi-regex: 5.0.1
-
- /strip-ansi@7.1.0:
- resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-regex: 6.0.1
-
- /style-mod@4.1.2:
- resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
- dev: false
-
- /sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
- dependencies:
- '@jridgewell/gen-mapping': 0.3.5
- commander: 4.1.1
- glob: 10.4.5
- lines-and-columns: 1.2.4
- mz: 2.7.0
- pirates: 4.0.6
- ts-interface-checker: 0.1.13
-
- /supports-color@5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- engines: {node: '>=4'}
- dependencies:
- has-flag: 3.0.0
- dev: true
-
- /supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
-
- /tabbable@6.2.0:
- resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
- dev: false
-
- /tailwind-merge@1.14.0:
- resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==}
- dev: false
-
- /tailwind-merge@2.4.0:
- resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==}
- dev: false
-
- /tailwind-variants@0.1.20(tailwindcss@3.4.6):
- resolution: {integrity: sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==}
- engines: {node: '>=16.x', pnpm: '>=7.x'}
- peerDependencies:
- tailwindcss: '*'
- dependencies:
- tailwind-merge: 1.14.0
- tailwindcss: 3.4.6
- dev: false
-
- /tailwindcss-animate@1.0.7(tailwindcss@3.4.6):
- resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders'
- dependencies:
- tailwindcss: 3.4.6
- dev: false
-
- /tailwindcss@3.4.6:
- resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==}
- engines: {node: '>=14.0.0'}
- hasBin: true
- 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.2
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.21.6
- lilconfig: 2.1.0
- micromatch: 4.0.7
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.0.1
- postcss: 8.4.39
- postcss-import: 15.1.0(postcss@8.4.39)
- postcss-js: 4.0.1(postcss@8.4.39)
- postcss-load-config: 4.0.2(postcss@8.4.39)
- postcss-nested: 6.2.0(postcss@8.4.39)
- postcss-selector-parser: 6.1.1
- resolve: 1.22.8
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
-
- /thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
- dependencies:
- thenify: 3.3.1
-
- /thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
- dependencies:
- any-promise: 1.3.0
-
- /tiny-invariant@1.3.3:
- resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
- dev: false
-
- /tippy.js@6.3.7:
- resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
- dependencies:
- '@popperjs/core': 2.11.8
- dev: false
-
- /to-fast-properties@2.0.0:
- resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
- engines: {node: '>=4'}
- dev: true
-
- /to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
- dependencies:
- is-number: 7.0.0
-
- /trim-lines@3.0.1:
- resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
- dev: false
-
- /trim-trailing-lines@2.1.0:
- resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==}
- dev: false
-
- /trough@2.2.0:
- resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
- dev: false
-
- /ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
-
- /tsconfck@3.1.1(typescript@5.5.3):
- resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==}
- engines: {node: ^18 || >=20}
- hasBin: true
- peerDependencies:
- typescript: ^5.0.0
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- typescript: 5.5.3
- dev: true
-
- /tslib@2.6.3:
- resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
- dev: false
-
- /type-fest@4.23.0:
- resolution: {integrity: sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==}
- engines: {node: '>=16'}
- dev: false
-
- /typescript@5.5.3:
- resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
- engines: {node: '>=14.17'}
- hasBin: true
- dev: true
-
- /uc.micro@2.1.0:
- resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
- dev: false
-
- /unified@10.1.2:
- resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
- dependencies:
- '@types/unist': 2.0.10
- bail: 2.0.2
- extend: 3.0.2
- is-buffer: 2.0.5
- is-plain-obj: 4.1.0
- trough: 2.2.0
- vfile: 5.3.7
- dev: false
-
- /unist-util-find-after@4.0.1:
- resolution: {integrity: sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==}
- dependencies:
- '@types/unist': 2.0.10
- unist-util-is: 5.2.1
- dev: false
-
- /unist-util-generated@2.0.1:
- resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==}
- dev: false
-
- /unist-util-is@5.2.1:
- resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
- dependencies:
- '@types/unist': 2.0.10
- dev: false
-
- /unist-util-is@6.0.0:
- resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
- dependencies:
- '@types/unist': 3.0.2
- dev: false
-
- /unist-util-position@4.0.4:
- resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==}
- dependencies:
- '@types/unist': 2.0.10
- dev: false
-
- /unist-util-stringify-position@3.0.3:
- resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
- dependencies:
- '@types/unist': 2.0.10
- dev: false
-
- /unist-util-visit-parents@5.1.3:
- resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
- dependencies:
- '@types/unist': 2.0.10
- unist-util-is: 5.2.1
- dev: false
-
- /unist-util-visit-parents@6.0.1:
- resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
- dependencies:
- '@types/unist': 3.0.2
- unist-util-is: 6.0.0
- dev: false
-
- /unist-util-visit@4.1.2:
- resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
- dependencies:
- '@types/unist': 2.0.10
- unist-util-is: 5.2.1
- unist-util-visit-parents: 5.1.3
- dev: false
-
- /update-browserslist-db@1.1.0(browserslist@4.23.2):
- resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
- dependencies:
- browserslist: 4.23.2
- escalade: 3.1.2
- picocolors: 1.0.1
- dev: true
-
- /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- tslib: 2.6.3
- dev: false
-
- /use-composed-ref@1.3.0(react@18.3.1):
- resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /use-isomorphic-layout-effect@1.1.2(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- dev: false
-
- /use-latest@1.2.1(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.3)(react@18.3.1)
- dev: false
-
- /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
- dependencies:
- '@types/react': 18.3.3
- detect-node-es: 1.1.0
- react: 18.3.1
- tslib: 2.6.3
- dev: false
-
- /use-sync-external-store@1.2.0(react@18.3.1):
- resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /use-sync-external-store@1.2.2(react@18.3.1):
- resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- dependencies:
- react: 18.3.1
- dev: false
-
- /usehooks-ts@3.1.0(react@18.3.1):
- resolution: {integrity: sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==}
- engines: {node: '>=16.15.0'}
- peerDependencies:
- react: ^16.8.0 || ^17 || ^18
- dependencies:
- lodash.debounce: 4.0.8
- react: 18.3.1
- dev: false
-
- /util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- /uuid@8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
- dev: false
-
- /uuidv7@1.0.1:
- resolution: {integrity: sha512-2noB909GbI352dKfASOY6VHHl59KvevZ1FF8gCAXCwDyrt2kkZhuFbczF9udqTfeejiRYEmO4wzUZ0WhVP+IUA==}
- hasBin: true
- dev: false
-
- /uvu@0.5.6:
- resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
- engines: {node: '>=8'}
- hasBin: true
- dependencies:
- dequal: 2.0.3
- diff: 5.2.0
- kleur: 4.1.5
- sade: 1.8.1
- dev: false
-
- /vaul@0.9.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1):
- resolution: {integrity: sha512-fAhd7i4RNMinx+WEm6pF3nOl78DFkAazcN04ElLPFF9BMCNGbY/kou8UMhIcicm0rJCNePJP0Yyza60gGOD0Jw==}
- peerDependencies:
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
- dependencies:
- '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- - '@types/react-dom'
- dev: false
-
- /vfile-location@4.1.0:
- resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==}
- dependencies:
- '@types/unist': 2.0.10
- vfile: 5.3.7
- dev: false
-
- /vfile-message@3.1.4:
- resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
- dependencies:
- '@types/unist': 2.0.10
- unist-util-stringify-position: 3.0.3
- dev: false
-
- /vfile@5.3.7:
- resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
- dependencies:
- '@types/unist': 2.0.10
- is-buffer: 2.0.5
- unist-util-stringify-position: 3.0.3
- vfile-message: 3.1.4
- dev: false
-
- /victory-vendor@36.9.2:
- resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==}
- dependencies:
- '@types/d3-array': 3.2.1
- '@types/d3-ease': 3.0.2
- '@types/d3-interpolate': 3.0.4
- '@types/d3-scale': 4.0.8
- '@types/d3-shape': 3.1.6
- '@types/d3-time': 3.0.3
- '@types/d3-timer': 3.0.2
- d3-array: 3.2.4
- d3-ease: 3.0.1
- d3-interpolate: 3.0.1
- d3-scale: 4.0.2
- d3-shape: 3.2.0
- d3-time: 3.1.0
- d3-timer: 3.0.1
- dev: false
-
- /vite-tsconfig-paths@4.3.2(typescript@5.5.3)(vite@5.3.4):
- resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==}
- peerDependencies:
- vite: '*'
- peerDependenciesMeta:
- vite:
- optional: true
- dependencies:
- debug: 4.3.5
- globrex: 0.1.2
- tsconfck: 3.1.1(typescript@5.5.3)
- vite: 5.3.4
- transitivePeerDependencies:
- - supports-color
- - typescript
- dev: true
-
- /vite@5.3.4:
- resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==}
- 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: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
- dependencies:
- esbuild: 0.21.5
- postcss: 8.4.39
- rollup: 4.19.0
- optionalDependencies:
- fsevents: 2.3.3
- dev: true
-
- /w3c-keyname@2.2.8:
- resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
- dev: false
-
- /web-namespaces@2.0.1:
- resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
- dev: false
-
- /which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
- dependencies:
- isexe: 2.0.0
-
- /wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- /wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
- dependencies:
- ansi-styles: 6.2.1
- string-width: 5.1.2
- strip-ansi: 7.1.0
-
- /y-prosemirror@1.2.9(prosemirror-model@1.22.2)(prosemirror-state@1.4.3)(prosemirror-view@1.33.9)(y-protocols@1.0.6)(yjs@13.6.18):
- resolution: {integrity: sha512-fThGIVmSqrqnG/ckywEGlHM9ElfILC4TcMZd5zxWPe/i+UuP97TEr4swsopRKG3Y+KHBVt4Y/5NVBC3AAsUoUg==}
- engines: {node: '>=16.0.0', npm: '>=8.0.0'}
- peerDependencies:
- prosemirror-model: ^1.7.1
- prosemirror-state: ^1.2.3
- prosemirror-view: ^1.9.10
- y-protocols: ^1.0.1
- yjs: ^13.5.38
- dependencies:
- lib0: 0.2.94
- prosemirror-model: 1.22.2
- prosemirror-state: 1.4.3
- prosemirror-view: 1.33.9
- y-protocols: 1.0.6(yjs@13.6.18)
- yjs: 13.6.18
- dev: false
-
- /y-protocols@1.0.6(yjs@13.6.18):
- resolution: {integrity: sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q==}
- engines: {node: '>=16.0.0', npm: '>=8.0.0'}
- peerDependencies:
- yjs: ^13.0.0
- dependencies:
- lib0: 0.2.94
- yjs: 13.6.18
- dev: false
-
- /yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
- dev: true
-
- /yaml@2.4.5:
- resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==}
- engines: {node: '>= 14'}
- hasBin: true
-
- /yjs@13.6.18:
- resolution: {integrity: sha512-GBTjO4QCmv2HFKFkYIJl7U77hIB1o22vSCSQD1Ge8ZxWbIbn8AltI4gyXbtL+g5/GJep67HCMq3Y5AmNwDSyEg==}
- engines: {node: '>=16.0.0', npm: '>=8.0.0'}
- dependencies:
- lib0: 0.2.94
- dev: false
-
- /zustand@4.5.4(@types/react@18.3.3)(react@18.3.1):
- resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==}
- engines: {node: '>=12.7.0'}
- peerDependencies:
- '@types/react': '>=16.8'
- immer: '>=9.0.6'
- react: '>=16.8'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- immer:
- optional: true
- react:
- optional: true
- dependencies:
- '@types/react': 18.3.3
- react: 18.3.1
- use-sync-external-store: 1.2.0(react@18.3.1)
- dev: false
-
- /zwitch@2.0.4:
- resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
- dev: false
diff --git a/ui/postcss.config.js b/ui/postcss.config.js
deleted file mode 100644
index 2e7af2b7..00000000
--- a/ui/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-}
diff --git a/ui/public/tauri.svg b/ui/public/tauri.svg
deleted file mode 100644
index 31b62c92..00000000
--- a/ui/public/tauri.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="206" height="231" viewBox="0 0 206 231" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M143.143 84C143.143 96.1503 133.293 106 121.143 106C108.992 106 99.1426 96.1503 99.1426 84C99.1426 71.8497 108.992 62 121.143 62C133.293 62 143.143 71.8497 143.143 84Z" fill="#FFC131"/>
-<ellipse cx="84.1426" cy="147" rx="22" ry="22" transform="rotate(180 84.1426 147)" fill="#24C8DB"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M166.738 154.548C157.86 160.286 148.023 164.269 137.757 166.341C139.858 160.282 141 153.774 141 147C141 144.543 140.85 142.121 140.558 139.743C144.975 138.204 149.215 136.139 153.183 133.575C162.73 127.404 170.292 118.608 174.961 108.244C179.63 97.8797 181.207 86.3876 179.502 75.1487C177.798 63.9098 172.884 53.4021 165.352 44.8883C157.82 36.3744 147.99 30.2165 137.042 27.1546C126.095 24.0926 114.496 24.2568 103.64 27.6274C92.7839 30.998 83.1319 37.4317 75.8437 46.1553C74.9102 47.2727 74.0206 48.4216 73.176 49.5993C61.9292 50.8488 51.0363 54.0318 40.9629 58.9556C44.2417 48.4586 49.5653 38.6591 56.679 30.1442C67.0505 17.7298 80.7861 8.57426 96.2354 3.77762C111.685 -1.01901 128.19 -1.25267 143.769 3.10474C159.348 7.46215 173.337 16.2252 184.056 28.3411C194.775 40.457 201.767 55.4101 204.193 71.404C206.619 87.3978 204.374 103.752 197.73 118.501C191.086 133.25 180.324 145.767 166.738 154.548ZM41.9631 74.275L62.5557 76.8042C63.0459 72.813 63.9401 68.9018 65.2138 65.1274C57.0465 67.0016 49.2088 70.087 41.9631 74.275Z" fill="#FFC131"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M38.4045 76.4519C47.3493 70.6709 57.2677 66.6712 67.6171 64.6132C65.2774 70.9669 64 77.8343 64 85.0001C64 87.1434 64.1143 89.26 64.3371 91.3442C60.0093 92.8732 55.8533 94.9092 51.9599 97.4256C42.4128 103.596 34.8505 112.392 30.1816 122.756C25.5126 133.12 23.9357 144.612 25.6403 155.851C27.3449 167.09 32.2584 177.598 39.7906 186.112C47.3227 194.626 57.153 200.784 68.1003 203.846C79.0476 206.907 90.6462 206.743 101.502 203.373C112.359 200.002 122.011 193.568 129.299 184.845C130.237 183.722 131.131 182.567 131.979 181.383C143.235 180.114 154.132 176.91 164.205 171.962C160.929 182.49 155.596 192.319 148.464 200.856C138.092 213.27 124.357 222.426 108.907 227.222C93.458 232.019 76.9524 232.253 61.3736 227.895C45.7948 223.538 31.8055 214.775 21.0867 202.659C10.3679 190.543 3.37557 175.59 0.949823 159.596C-1.47592 143.602 0.768139 127.248 7.41237 112.499C14.0566 97.7497 24.8183 85.2327 38.4045 76.4519ZM163.062 156.711L163.062 156.711C162.954 156.773 162.846 156.835 162.738 156.897C162.846 156.835 162.954 156.773 163.062 156.711Z" fill="#24C8DB"/>
-</svg>
diff --git a/ui/public/vite.svg b/ui/public/vite.svg
deleted file mode 100644
index e7b8dfb1..00000000
--- a/ui/public/vite.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg> \ No newline at end of file
diff --git a/ui/src/App.css b/ui/src/App.css
deleted file mode 100644
index 29ca80f1..00000000
--- a/ui/src/App.css
+++ /dev/null
@@ -1,27 +0,0 @@
-html {
- overscroll-behavior: none;
-}
-
-.logo.vite:hover {
- filter: drop-shadow(0 0 2em #747bff);
-}
-
-.logo.react:hover {
- filter: drop-shadow(0 0 2em #61dafb);
-}
-
-.history-header {
- height: 150px;
-}
-
-.history-search {
- height: 64px;
-}
-
-.history-list {
- height: calc(100dvh - 4rem - 2rem);
-}
-
-.history-item {
- height: 90px;
-}
diff --git a/ui/src/App.tsx b/ui/src/App.tsx
deleted file mode 100644
index 361a6fea..00000000
--- a/ui/src/App.tsx
+++ /dev/null
@@ -1,237 +0,0 @@
-import "./App.css";
-import { open } from "@tauri-apps/plugin-shell";
-
-import { useState, ReactElement } from "react";
-import { useStore } from "@/state/store";
-
-import { Toaster } from "@/components/ui/toaster";
-import { KeyRoundIcon } from "lucide-react";
-import { Icon } from "@iconify/react";
-
-import Home from "./pages/Home.tsx";
-import History from "./pages/History.tsx";
-import Dotfiles from "./pages/Dotfiles.tsx";
-import LoginOrRegister from "./components/LoginOrRegister.tsx";
-import Runbooks from "./pages/Runbooks.tsx";
-
-import {
- Avatar,
- User,
- Button,
- ScrollShadow,
- Spacer,
- Dropdown,
- DropdownItem,
- DropdownMenu,
- DropdownSection,
- DropdownTrigger,
- Modal,
- ModalContent,
- useDisclosure,
-} from "@nextui-org/react";
-import Sidebar, { SidebarItem } from "@/components/Sidebar";
-import icon from "@/assets/icon.svg";
-import { logout } from "./state/client.ts";
-
-enum Section {
- Home,
- History,
- Dotfiles,
- Runbooks,
-}
-
-function renderMain(section: Section): ReactElement {
- switch (section) {
- case Section.Home:
- return <Home />;
- case Section.History:
- return <History />;
- case Section.Dotfiles:
- return <Dotfiles />;
- case Section.Runbooks:
- return <Runbooks />;
- }
-}
-
-function App() {
- // routers don't really work in Tauri. It's not a browser!
- // I think hashrouter may work, but I'd rather avoiding thinking of them as
- // pages
- const [section, setSection] = useState(Section.Home);
- const user = useStore((state: any) => state.user);
- const refreshUser = useStore((state: any) => state.refreshUser);
- const { isOpen, onOpen, onOpenChange } = useDisclosure();
-
- const navigation: SidebarItem[] = [
- {
- key: "personal",
- title: "Personal",
- items: [
- {
- key: "home",
- icon: "solar:home-2-linear",
- title: "Home",
- onPress: () => setSection(Section.Home),
- },
- {
- key: "runbooks",
- icon: "solar:notebook-linear",
- title: "Runbooks",
- onPress: () => {
- console.log("runbooks");
- setSection(Section.Runbooks);
- },
- },
- {
- key: "history",
- icon: "solar:history-outline",
- title: "History",
- onPress: () => setSection(Section.History),
- },
- {
- key: "dotfiles",
- icon: "solar:file-smile-linear",
- title: "Dotfiles",
- onPress: () => setSection(Section.Dotfiles),
- },
- ],
- },
- ];
-
- return (
- <div
- className="flex w-screen select-none"
- style={{ maxWidth: "100vw", height: "calc(100dvh - 2rem)" }}
- >
- <div className="flex w-full">
- <div className="relative flex flex-col !border-r-small border-divider transition-width pb-6 pt-4 items-center">
- <div className="flex items-center gap-0 px-3 justify-center">
- <div className="flex h-8 w-8">
- <img src={icon} alt="icon" className="h-8 w-8" />
- </div>
- </div>
-
- <ScrollShadow className="-mr-6 h-full max-h-full py-6 pr-6">
- <Sidebar
- defaultSelectedKey="home"
- isCompact={true}
- items={navigation}
- className="z-50"
- />
- </ScrollShadow>
-
- <Spacer y={2} />
-
- <div className="flex items-center gap-3 px-3">
- <Dropdown showArrow placement="right-start">
- <DropdownTrigger>
- <Button disableRipple isIconOnly radius="full" variant="light">
- <Avatar
- isBordered
- className="flex-none"
- size="sm"
- name={user.username || ""}
- />
- </Button>
- </DropdownTrigger>
- <DropdownMenu aria-label="Custom item styles">
- <DropdownItem
- key="profile"
- isReadOnly
- className="h-14 opacity-100"
- textValue="Signed in as"
- >
- <User
- avatarProps={{
- size: "sm",
- name: user.username || "Anonymous User",
- showFallback: true,
- imgProps: {
- className: "transition-none",
- },
- }}
- classNames={{
- name: "text-default-600",
- description: "text-default-500",
- }}
- description={
- user.bio || (user.username && "No bio") || "Sign up now"
- }
- name={user.username || "Anonymous User"}
- />
- </DropdownItem>
-
- <DropdownItem
- key="settings"
- description="Configure Atuin"
- startContent={
- <Icon icon="solar:settings-linear" width={24} />
- }
- >
- Settings
- </DropdownItem>
-
- <DropdownSection aria-label="Help & Feedback">
- <DropdownItem
- key="help_and_feedback"
- description="Get in touch"
- onPress={() => open("https://forum.atuin.sh")}
- startContent={
- <Icon width={24} icon="solar:question-circle-linear" />
- }
- >
- Help & Feedback
- </DropdownItem>
-
- {(user.username && (
- <DropdownItem
- key="logout"
- startContent={
- <Icon width={24} icon="solar:logout-broken" />
- }
- onClick={() => {
- logout();
- refreshUser();
- }}
- >
- Log Out
- </DropdownItem>
- )) || (
- <DropdownItem
- key="signup"
- description="Sync, backup and share your data"
- className="bg-emerald-100"
- startContent={<KeyRoundIcon size="18px" />}
- onPress={onOpen}
- >
- Log in or Register
- </DropdownItem>
- )}
- </DropdownSection>
- </DropdownMenu>
- </Dropdown>
- </div>
- </div>
-
- {renderMain(section)}
-
- <Toaster />
- <Modal
- isOpen={isOpen}
- onOpenChange={onOpenChange}
- placement="top-center"
- >
- <ModalContent className="p-8">
- {(onClose) => (
- <>
- <LoginOrRegister onClose={onClose} />
- </>
- )}
- </ModalContent>
- </Modal>
- </div>
- </div>
- );
-}
-
-export default App;
diff --git a/ui/src/assets/icon.svg b/ui/src/assets/icon.svg
deleted file mode 100644
index 0e4dd607..00000000
--- a/ui/src/assets/icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" width="344.41" height="309.08" viewBox="0 0 344.41 309.08"><g id="Layer_1-2"><path d="m99.75,291.76c0-5.07,4.12-9.19,9.19-9.19,2.46,0,4.77.96,6.5,2.7,1.4,1.38,2.29,3.16,2.59,5.13.07.41.11.87.11,1.36v10.52s-1.68.27-1.68.27c-2.22.36-4.56.63-6.95.83-2.36.22-4.89.36-7.71.43l-2.05.05v-12.1Zm-2.84,12.05c-.1,0-.19,0-.28,0-2.45-.06-4.4-.15-6.2-.3h-.13c-2.76-.21-5.49-.52-8.1-.94l-1.68-.27v-10.52c0-5.07,4.12-9.19,9.19-9.19,2.46,0,4.77.96,6.5,2.7,1.74,1.72,2.7,4.03,2.7,6.49v12.05h-2Zm22.07-15.26c0-.43.03-.91.1-1.38.68-4.47,4.59-7.82,9.1-7.82,2.44,0,4.74.96,6.49,2.69,1.75,1.76,2.71,4.07,2.71,6.51v5.57s-.54.58-.54.58c-1.71,1.81-4.39,3.42-7.97,4.79-2.19.83-4.7,1.56-7.45,2.17l-2.43.54v-13.65Zm146.15-19.7c0-4.73,3.84-8.58,8.57-8.58,2.29,0,4.44.89,6.06,2.52,1.3,1.3,2.14,2.96,2.41,4.79.06.33.1.77.1,1.28v9.76s-1.68.27-1.68.27c-2.09.33-4.23.59-6.38.76-2.15.2-4.54.33-7.04.39l-2.04.04v-11.22Zm-2.43,11.18c-.08,0-.17,0-.25,0-2.07-.04-3.9-.13-5.68-.27h-.13c-2.55-.2-5.05-.49-7.41-.86l-1.69-.27v-9.37s6.25-1.01,6.25-1.01c3.03-.49,5.97-1.43,8.74-2.8l1,2.01,1-.21c.11.52.16,1.06.16,1.61v11.18h-2Zm20.01-14.12c0-.37.03-.76.08-1.24.65-4.21,4.29-7.33,8.49-7.33,2.28,0,4.43.89,6.06,2.5,1.63,1.63,2.53,3.79,2.53,6.07v5.17s-.55.58-.55.58c-1.6,1.68-4.07,3.17-7.35,4.42-1.95.75-4.25,1.41-6.83,1.99l-2.43.54v-12.69Zm-240.96-5.95c-.09,0-.18,0-.26,0-2.12-.05-3.94-.15-5.66-.28h-.13c-2.46-.18-4.95-.47-7.41-.86l-1.69-.27v-9.77c0-4.31,3.22-7.96,7.49-8.5l1.41-.18,4.2,8.42c1.01,2.01,2.23,3.91,3.61,5.63l.44.55v5.27h-2Z" fill="#fff"/><path d="m14.35,190.88l25.24,50.06c-1.34-.76-2.85-1.16-4.42-1.16-4.96,0-9,4.04-9,9v7.45l-2.45-.57c-1.67-.39-3.27-.84-4.76-1.33-3.39-1.17-9.03-3.68-9.03-7.47v-39.14c.16-6.06,1.7-11.84,4.42-16.84Zm275.98,14.02c-.1-.12-.2-.23-.31-.34l-17.42,42.87c-2.38,5.85-6.64,10.61-11.98,13.64.68.38,1.32.87,1.89,1.44.29.29.55.59.81.93l1.59,2.14,1.61-2.13c1.72-2.28,4.34-3.59,7.18-3.59,2.38,0,4.63.93,6.33,2.61l1.96,1.94,1.23-2.47c1.53-3.05,4.7-5.02,8.06-5.02,1.64,0,3.25.45,4.65,1.28l3.03,1.82v-32.27c-.24-8.66-3.3-16.77-8.63-22.85Zm-163.34,17.02c-6.75-7.69-16.31-11.75-27.65-11.75s-20.91,4.06-27.66,11.75c-5.81,6.62-9.14,15.45-9.39,24.92v42.82c0,4.03,6.09,6.73,9.75,7.99,1.62.53,3.37,1.02,5.19,1.45l2.46.58v-7.92c0-5.53,4.5-10.03,10.03-10.03,2.67,0,5.19,1.04,7.11,2.95.32.32.62.66.91,1.04l1.59,2.14,1.61-2.13c1.92-2.55,4.84-4.01,8.01-4.01,2.66,0,5.16,1.03,7.05,2.91l1.96,1.94,1.24-2.47c1.7-3.4,5.23-5.6,8.99-5.6,1.83,0,3.62.49,5.18,1.43l3.03,1.81v-34.97c-.25-9.42-3.59-18.26-9.39-24.87ZM332.31,60.61c-12.06-21.14-27.47-44.23-52.73-52.68-20.59-7.09-44.02-1.54-59.24,13.76-10.03,9.84-15.89,22.44-19.46,35.27-6.24,23.59-7.07,46.88-7.01,70.75.07,23.56,3.41,44.38,5.07,56.48,1.23,8.87,2.45,16.24,3.36,21.46-4.12,2.78-8.46,6.59-12.06,11.81-9.35,13.58-8.75,29.48-6.64,40.36,1.26,6.49,3.04,11.19,3.59,12.58,5.91,1.03,25.44,4.02,44.35-1.25,1.59,2.58,5.68,4.35,8.37,5.26,1.49.5,3.1.94,4.76,1.33l2.46.58v-7.45c0-1.4.32-2.72.9-3.91l-9.1,1.66c6.45-2.65,12.6-6.46,17.84-11.88,12.54-12.97,15.02-30.01,19.42-60.94,3.06-21.5,3.21-39.68,2.73-52.52,11.25,1.45,23.01-.57,33.51-6.77,6.36-3.67,11.69-8.43,15.91-13.91,12.92-16.83,15.23-40.44,3.98-59.97Z" fill="#26bd65"/><path d="m272.86,215.67c-.92,5.25-1.89,9.97-3.05,14.26l3.05-14.26Z" fill="#26bd65"/><path d="m112.87,102.44c-5.02-.03-9.86-1.12-14.38-3.23l-19.37-9.02c-1.93-.91-2.91-2.84-2.5-4.93.41-2.09,2.05-3.51,4.18-3.61l94.48-4.69c.5-.03,1.02-.04,1.54-.05h.22c1.94,0,3.92.15,5.88.45l10.68,1.68-.25,1.93c-.8,6.24-1.39,12.79-1.75,19.49l-.08,1.6-1.58.26c-1.82.3-3.71.46-5.6.46l-71.47-.35Z" fill="#b3e5fc"/><path d="m280.91,177.2c.86-10.19,1.2-20.5,1-30.64l-.04-2.1,2.1.07c.63.02,1.26.03,1.89.03.89,0,1.77-.02,2.66-.06l1.53-.07.46,1.46c2.85,9.01,2.29,18.71-1.56,27.32-1.06,2.36-2.77,4.38-4.94,5.83l-3.45,2.3.35-4.14Zm-137.27,20.12c2.2,0,4.4-.51,6.37-1.47l44.66-21.73-.19-1.43c-1.58-11.73-3.39-27.44-3.44-44.98,0-4.91,0-10.76.16-16.86v-.46s-.45-1.03-.45-1.03c-1.65-3.67-5.31-6.06-9.32-6.08l-68.83-.34c-4.28,0-8.15,2.7-9.63,6.71l-15.99,43.19c-2.47,6.69.22,14.12,6.38,17.67l42.99,24.85c2.22,1.28,4.74,1.96,7.3,1.96h0Zm-110.02-17.32c2.26,0,4.49-.38,6.62-1.12l32.98-11.48c5.71-1.99,10.19-6.38,12.28-12.04l16.11-43.53c1.88-5.07-.49-10.83-5.39-13.12l-22.31-10.4c-2.09-.98-4.33-1.47-6.64-1.47h-.3c-5.08.09-9.89,2.75-12.88,7.1l-38.98,57.01c-4.92,7.21-3.45,17.12,3.36,22.58l2.55,2.04c3.56,2.85,8.04,4.43,12.61,4.43h0Z" fill="#4fc3f7"/><path d="m162.77,274.65c-4.85,0-9.04-3.62-9.74-8.43l-7.79-53.52c-1.16-7.93,2.91-15.63,10.12-19.15l39.32-19.13,1.07,7.47.38,2.67c.87,6.3,1.84,12.55,2.86,18.57l.2,1.19-.96.73c-4.05,3.09-7.53,6.72-10.34,10.78-9.89,14.37-9.31,31.05-7.08,42.51.89,4.58,2.04,8.32,2.84,10.66l.77,2.24-20.06,3.27c-.57.09-1.06.13-1.53.13h-.06Zm-17.7-.33c-.45,0-.91-.04-1.36-.12l-1.65-.29v-27.24c-.51-20.29-14.11-42.18-42.73-42.18-20.07,0-42,13.21-42.73,42.23v8.28s-3.45-3.63-3.45-3.63c-2.33-2.45-4.07-5.46-5.05-8.7l-13.75-45.29c-2.45-8.07,1.87-16.57,9.84-19.34l31.41-10.93c1.66-.58,3.39-.87,5.16-.87,2.75,0,5.46.73,7.83,2.1l47.65,27.55c4.17,2.41,6.96,6.53,7.67,11.3l8.52,58.55c.32,2.2-.3,4.31-1.73,5.96-1.4,1.64-3.45,2.6-5.61,2.62h-.01ZM11.32,173.97l3.04-2.46,10.23,8.2c3.53,2.82,6.09,6.6,7.4,10.93l12.23,40.27-3.7,1.48-29.2-58.42Zm264.02,43.95c1.26-6.95,2.36-14.63,3.63-23.52l.03-.22c.14-.99.27-2.01.4-3.02v-.09s.12-.5.12-.5c.9-4.25,2.89-8.25,5.75-11.55l8.28-9.59,3.39,2.01-17.75,47.54-3.84-1.06Z" fill="#0288d1"/><path d="m252.88,68.7c-5.28,0-9.56,4.28-9.56,9.56s4.28,9.56,9.56,9.56,9.56-4.28,9.56-9.56-4.28-9.56-9.56-9.56Z" fill="#263238"/><circle cx="317.93" cy="78.26" r="9.56" fill="#263238"/><path d="m310.52,94.56c-1.41,1.55-2.91,2.72-4.44,3.48-1.11.55-2.21.86-3.28.99-.16.02-.32.04-.47.04h-.01c-2.84.2-5.46-.84-7.57-2.15-1.62-.8-3-1.71-4.07-2.5-.4-.29-.88-.49-1.4-.58-.5.12-.96.4-1.29.8-1.53,1.84-4.48,4.75-8.41,5.73-.71.19-1.44.31-2.21.35-.53.02-1.05.01-1.55-.04-4.13-.39-7.31-3.05-8.95-4.71-.94-.96-2.47-.98-3.43-.05-.95.94-.97,2.47-.04,3.43,2.22,2.26,6.68,5.91,12.67,6.2.25.01.5.02.76.02s.52,0,.78-.02c.74-.04,1.45-.12,2.14-.25,4.49-.83,8-3.46,10.31-5.76,4.11,3.18,8.49,4.67,12.69,4.36.66-.05,1.32-.14,1.98-.29,1.19-.25,2.35-.66,3.49-1.22,2.08-1.03,4.06-2.57,5.88-4.56.9-.99.83-2.52-.16-3.42-.99-.9-2.52-.83-3.42.15Z" fill="#263238"/><path d="m336.51,58.2c-13.31-23.33-29.23-46.12-55.36-54.86-22.35-7.7-47.57-1.84-64.2,14.87-9.54,9.36-16.33,21.61-20.75,37.49-1.17,4.42-2.14,8.84-2.97,13.23l-10.17-1.61c-1.8-.28-3.63-.42-5.44-.4-.46,0-.93.01-1.39.04l-103.33,5.13c-10.32.51-19.96,5.9-25.79,14.43L5.8,146.95c-6.81,9.95-7.69,22.82-2.3,33.61l4.02,8.04c-2.64,5.28-4.25,11.58-4.44,18.94v39.31c0,4.21,2.36,10.04,13.68,13.95,7.73,2.53,16.68,3.8,26.69,3.8,3,0,6.1-.11,9.28-.35.61.31,1.24.6,1.87.87v24.54c0,4.61,2.59,10.99,14.97,15.26,8.46,2.77,18.25,4.16,29.2,4.16,3.6,0,7.31-.14,11.16-.44.1-.01.22-.02.33-.04,1.07-.16,2.22-.31,3.42-.47,11.06-1.45,27.76-3.65,30.3-17.6.05-.29.08-.58.08-.87v-5.25l3.96.83c2.3.48,4.66.71,7.02.7,1.7-.02,3.41-.16,5.09-.43l53.15-8.66c4.63-.23,9.46-.77,14.32-1.78,2.08,2.1,5.27,4.13,10.11,5.8,7.74,2.53,16.68,3.81,26.7,3.81,3.28,0,6.68-.13,10.19-.41.1-.01.21-.02.3-.03.99-.15,2.04-.29,3.14-.43,10.1-1.33,25.37-3.33,27.69-16.09.05-.26.07-.53.07-.79v-39.31c-.27-10.59-3.49-18.97-8.44-25.29l10.22-27.36c3.82-10.22,2.37-21.67-3.86-30.62l-.36-.52c3.98-1.28,7.82-2.99,11.48-5.15,6.77-3.91,12.6-9.01,17.33-15.16,8.11-10.56,12.24-23.19,12.24-35.89,0-10.11-2.61-20.25-7.9-29.43Zm-147.48,69.5c.05,17.37,1.84,33.18,3.46,45.24l-43.36,21.1c-3.75,1.83-8.17,1.67-11.79-.42l-42.99-24.85c-5.31-3.06-7.63-9.51-5.51-15.25l15.99-43.19c1.2-3.26,4.32-5.42,7.8-5.4l68.77.34c3.25.02,6.18,1.94,7.51,4.9l.28.62c-.15,5.83-.17,11.48-.16,16.91Zm-110.44-42.06c.18-.92.88-1.93,2.31-2l94.48-4.69c.49-.03.99-.04,1.48-.05,1.92,0,3.86.14,5.76.43l8.75,1.38c-.86,6.67-1.42,13.23-1.76,19.64-1.8.3-3.63.44-5.45.43l-71.28-.35c-4.68-.03-9.3-1.06-13.54-3.04l-19.37-9.02c-1.29-.61-1.56-1.81-1.38-2.73Zm-61.84,66.43l38.98-57.01c2.56-3.74,6.73-6.15,11.26-6.23,2.11-.04,4.16.39,6.07,1.28l22.31,10.4c3.99,1.86,5.89,6.48,4.36,10.61l-16.11,43.53c-1.88,5.09-5.94,9.07-11.06,10.85l-32.98,11.48c-5.9,2.05-12.44.93-17.32-2.98l-2.55-2.04c-6-4.81-7.3-13.54-2.96-19.89Zm7.42,96.7v4.93c-1.58-.37-3.11-.8-4.59-1.28-4.73-1.63-7.65-3.76-7.65-5.57v-39.14c.07-2.67.44-5.38,1.13-8.03l19.23,38.48c-4.67,1.26-8.12,5.54-8.12,10.61Zm17.58,9.19c-.11,0-.21,0-.3,0-1.99-.05-3.8-.14-5.54-.28h-.07c-2.48-.18-4.92-.47-7.24-.84v-8.06c0-3.34,2.5-6.11,5.74-6.52l3.57,7.15c1.08,2.15,2.37,4.16,3.84,5.99v2.57Zm-28.64-84.89l10.23,8.2c3.2,2.56,5.55,6.03,6.74,9.95l12.23,40.27-29.2-58.42Zm83.8,128.74c-.12,0-.23-.01-.33-.01-2.17-.05-4.16-.14-6.06-.3h-.07c-2.72-.2-5.38-.51-7.93-.92v-8.82c0-3.96,3.22-7.19,7.19-7.19,1.92,0,3.73.75,5.09,2.11,1.36,1.35,2.11,3.16,2.11,5.08v10.05Zm19.23-1.23c-2.19.35-4.46.62-6.8.81-2.46.23-5,.36-7.59.42v-10.05c0-3.96,3.22-7.19,7.19-7.19,1.92,0,3.73.75,5.08,2.11,1.11,1.1,1.8,2.48,2.03,4.02.06.34.09.69.09,1.06v8.82Zm1.26-17.37c-2.26-2.24-5.27-3.48-8.46-3.48-3.92,0-7.41,1.89-9.6,4.8-.34-.46-.71-.88-1.12-1.28-2.27-2.26-5.29-3.52-8.51-3.52-6.64,0-12.03,5.4-12.03,12.03v5.39c-1.73-.4-3.41-.87-5.02-1.4-5.17-1.78-8.38-4.11-8.38-6.09v-42.82c.45-16.71,11.6-34.68,35.06-34.68s34.6,17.96,35.04,34.68v31.39c-1.86-1.12-3.99-1.72-6.2-1.72-1.75,0-3.43.38-4.95,1.07-2.51,1.15-4.59,3.14-5.83,5.63Zm17.98,10.12c-1.49,1.58-3.97,3.05-7.23,4.3-2.09.79-4.5,1.49-7.17,2.08v-11.16c0-.36.03-.74.08-1.1.53-3.47,3.59-6.1,7.12-6.1,1.91,0,3.72.76,5.08,2.11,1.36,1.37,2.12,3.18,2.12,5.09v4.78Zm13.8-22.95c-1.04,1.22-2.54,1.92-4.11,1.93-.33,0-.67-.03-1.01-.09v-25.56c-.77-30.35-23.73-44.18-44.73-44.18s-43.97,13.83-44.73,44.18v3.32c-2.09-2.2-3.68-4.89-4.59-7.9l-13.75-45.29c-2.13-7.01,1.66-14.46,8.58-16.87l31.41-10.93c3.75-1.31,7.89-.92,11.33,1.07l47.65,27.55c3.62,2.09,6.08,5.72,6.69,9.86l8.52,58.55c.23,1.6-.21,3.15-1.26,4.36Zm29.67-11.66c.9,4.63,2.05,8.43,2.91,10.93l-17.72,2.89c-.4.06-.81.1-1.21.1-3.9.03-7.26-2.86-7.82-6.72l-7.79-53.52c-1.03-7.05,2.62-13.94,9.02-17.06l36.86-17.93c.16,1.11.31,2.2.46,3.23.21,1.49.41,2.89.59,4.19.86,6.19,1.82,12.45,2.87,18.63-4.23,3.23-7.84,7-10.77,11.23-10.28,14.94-9.7,32.19-7.4,44.03Zm66.28,15.06c-1.59-.37-3.12-.8-4.59-1.29-.05-.01-.1-.03-.15-.05l4.74-.77v2.11Zm17.57-4.93v9.18c-.1,0-.2,0-.3,0-1.98-.04-3.8-.13-5.54-.27h-.06c-2.49-.19-4.92-.47-7.25-.84v-5.96l4.57-.74c3.28-.53,6.41-1.55,9.31-2.98-.28.14-.56.28-.85.41.08.39.12.8.12,1.21Zm17.58,8.06c-2,.32-4.07.57-6.22.74-2.24.21-4.56.33-6.93.38v-9.18c0-3.62,2.94-6.58,6.57-6.58,1.75,0,3.41.69,4.65,1.93,1.01,1.01,1.64,2.27,1.85,3.67.06.31.08.64.08.98v8.06Zm1.15-15.88c-1.78-1.76-4.06-2.84-6.52-3.11-.05.06-.1.12-.15.18,2.15-2.7,3.91-5.74,5.15-9.06l13.45-35.99c2.27,4.62,3.46,9.74,3.6,14.74v28.69c-1.7-1.02-3.65-1.57-5.68-1.57-4.23,0-8.01,2.47-9.85,6.12Zm2.48-114.52c1.58.05,3.14.04,4.7-.03,2.69,8.51,2.17,17.75-1.48,25.9-.94,2.09-2.43,3.78-4.23,4.98.87-10.27,1.21-20.58,1.01-30.85Zm2.87,33.81l8.28-9.59-17.75,47.54c1.28-7.05,2.4-14.92,3.67-23.82.14-1.01.27-2.03.4-3.05l.09-.41c.84-3.95,2.67-7.62,5.31-10.67Zm11.09,85.59v4.37c-1.37,1.44-3.63,2.79-6.61,3.93-1.91.73-4.11,1.36-6.55,1.9v-10.2c0-.33.03-.67.07-1,.49-3.18,3.28-5.57,6.5-5.57,1.76,0,3.41.69,4.65,1.92,1.25,1.25,1.94,2.91,1.94,4.65Zm26.62-148.29c-3.95,5.14-8.82,9.4-14.53,12.7-5.05,2.98-10.52,4.96-16.21,5.9-4.62.77-9.39.85-14.21.23-.06-.01-.12-.01-.18-.01-.02-.01-.04-.01-.07-.02-6.87-.53-13.53-2.18-19.78-4.9-3.9-1.7-7.61-3.8-11.05-6.25-4.46-3.16-8.49-6.9-11.99-11.11-1.7-2.06-4.75-2.34-6.81-.63-2.06,1.7-2.34,4.75-.64,6.81,4.04,4.86,8.69,9.17,13.83,12.82,3.98,2.83,8.28,5.26,12.79,7.23,5.92,2.58,12.14,4.31,18.55,5.2.37,15.84-.56,31.79-2.79,47.5-4.26,29.89-6.61,46.35-18.11,58.26-6.22,6.44-24.61,20.5-62.52,14.7-.72-2.13-1.67-5.33-2.42-9.17-1.94-10.03-2.5-24.53,5.87-36.69,1.44-2.08,3.08-4.01,4.92-5.8.14.56.25,1.12.39,1.68.32,1.29.67,2.59,1.04,3.88.61,2.12,2.55,3.5,4.65,3.5.45,0,.9-.06,1.34-.19,2.57-.74,4.06-3.42,3.32-5.99-.34-1.18-.66-2.37-.96-3.56-.73-2.91-1.35-5.9-1.84-8.86,0-.01,0-.02-.01-.03v-.02c-1.23-7.05-2.35-14.22-3.33-21.29-.18-1.31-.38-2.73-.59-4.23-1.75-12.31-4.38-30.92-4.44-51.61-.05-20.06.62-37.61,3.6-54.59.86-4.98,1.93-9.91,3.23-14.84,3.94-14.14,9.89-24.98,18.23-33.16,14.07-14.14,35.36-19.08,54.27-12.57,23.09,7.72,37.71,28.83,50.07,50.5,9.98,17.33,8.56,38.76-3.62,54.61Z" fill="#263238"/></g></svg> \ No newline at end of file
diff --git a/ui/src/assets/logo-light.svg b/ui/src/assets/logo-light.svg
deleted file mode 100644
index 697df883..00000000
--- a/ui/src/assets/logo-light.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" width="1161.98" height="309.08" viewBox="0 0 1161.98 309.08"><g id="Layer_1-2"><path d="m99.75,291.76c0-5.07,4.12-9.19,9.19-9.19,2.46,0,4.77.96,6.5,2.7,1.4,1.38,2.29,3.16,2.59,5.13.07.41.11.87.11,1.36v10.52s-1.68.27-1.68.27c-2.22.36-4.56.63-6.95.83-2.36.22-4.89.36-7.71.43l-2.05.05v-12.1Zm-2.84,12.05c-.1,0-.19,0-.28,0-2.45-.06-4.4-.15-6.2-.3h-.13c-2.76-.21-5.49-.52-8.1-.94l-1.68-.27v-10.52c0-5.07,4.12-9.19,9.19-9.19,2.46,0,4.77.96,6.5,2.7,1.74,1.72,2.7,4.03,2.7,6.49v12.05h-2Zm22.07-15.26c0-.43.03-.91.1-1.38.68-4.47,4.59-7.82,9.1-7.82,2.44,0,4.74.96,6.49,2.69,1.75,1.76,2.71,4.07,2.71,6.51v5.57s-.54.58-.54.58c-1.71,1.81-4.39,3.42-7.97,4.79-2.19.83-4.7,1.56-7.45,2.17l-2.43.54v-13.65Zm146.15-19.7c0-4.73,3.84-8.58,8.57-8.58,2.29,0,4.44.89,6.06,2.52,1.3,1.3,2.14,2.96,2.41,4.79.06.33.1.77.1,1.28v9.76s-1.68.27-1.68.27c-2.09.33-4.23.59-6.38.76-2.15.2-4.54.33-7.04.39l-2.04.04v-11.22Zm-2.43,11.18c-.08,0-.17,0-.25,0-2.07-.04-3.9-.13-5.68-.27h-.13c-2.55-.2-5.05-.49-7.41-.86l-1.69-.27v-9.37s6.25-1.01,6.25-1.01c3.03-.49,5.97-1.43,8.74-2.8l1,2.01,1-.21c.11.52.16,1.06.16,1.61v11.18h-2Zm20.01-14.12c0-.37.03-.76.08-1.24.65-4.21,4.29-7.33,8.49-7.33,2.28,0,4.43.89,6.06,2.5,1.63,1.63,2.53,3.79,2.53,6.07v5.17s-.55.58-.55.58c-1.6,1.68-4.07,3.17-7.35,4.42-1.95.75-4.25,1.41-6.83,1.99l-2.43.54v-12.69Zm-240.96-5.95c-.09,0-.18,0-.26,0-2.12-.05-3.94-.15-5.66-.28h-.13c-2.46-.18-4.95-.47-7.41-.86l-1.69-.27v-9.77c0-4.31,3.22-7.96,7.49-8.5l1.41-.18,4.2,8.42c1.01,2.01,2.23,3.91,3.61,5.63l.44.55v5.27h-2Z" fill="#fff"/><path d="m14.35,190.88l25.24,50.06c-1.34-.76-2.85-1.16-4.42-1.16-4.96,0-9,4.04-9,9v7.45l-2.45-.57c-1.67-.39-3.27-.84-4.76-1.33-3.39-1.17-9.03-3.68-9.03-7.47v-39.14c.16-6.06,1.7-11.84,4.42-16.84Zm275.98,14.02c-.1-.12-.2-.23-.31-.34l-17.42,42.87c-2.38,5.85-6.64,10.61-11.98,13.64.68.38,1.32.87,1.89,1.44.29.29.55.59.81.93l1.59,2.14,1.61-2.13c1.72-2.28,4.34-3.59,7.18-3.59,2.38,0,4.63.93,6.33,2.61l1.96,1.94,1.23-2.47c1.53-3.05,4.7-5.02,8.06-5.02,1.64,0,3.25.45,4.65,1.28l3.03,1.82v-32.27c-.24-8.66-3.3-16.77-8.63-22.85Zm-163.34,17.02c-6.75-7.69-16.31-11.75-27.65-11.75s-20.91,4.06-27.66,11.75c-5.81,6.62-9.14,15.45-9.39,24.92v42.82c0,4.03,6.09,6.73,9.75,7.99,1.62.53,3.37,1.02,5.19,1.45l2.46.58v-7.92c0-5.53,4.5-10.03,10.03-10.03,2.67,0,5.19,1.04,7.11,2.95.32.32.62.66.91,1.04l1.59,2.14,1.61-2.13c1.92-2.55,4.84-4.01,8.01-4.01,2.66,0,5.16,1.03,7.05,2.91l1.96,1.94,1.24-2.47c1.7-3.4,5.23-5.6,8.99-5.6,1.83,0,3.62.49,5.18,1.43l3.03,1.81v-34.97c-.25-9.42-3.59-18.26-9.39-24.87ZM332.31,60.61c-12.06-21.14-27.47-44.23-52.73-52.68-20.59-7.09-44.02-1.54-59.24,13.76-10.03,9.84-15.89,22.44-19.46,35.27-6.24,23.59-7.07,46.88-7.01,70.75.07,23.56,3.41,44.38,5.07,56.48,1.23,8.87,2.45,16.24,3.36,21.46-4.12,2.78-8.46,6.59-12.06,11.81-9.35,13.58-8.75,29.48-6.64,40.36,1.26,6.49,3.04,11.19,3.59,12.58,5.91,1.03,25.44,4.02,44.35-1.25,1.59,2.58,5.68,4.35,8.37,5.26,1.49.5,3.1.94,4.76,1.33l2.46.58v-7.45c0-1.4.32-2.72.9-3.91l-9.1,1.66c6.45-2.65,12.6-6.46,17.84-11.88,12.54-12.97,15.02-30.01,19.42-60.94,3.06-21.5,3.21-39.68,2.73-52.52,11.25,1.45,23.01-.57,33.51-6.77,6.36-3.67,11.69-8.43,15.91-13.91,12.92-16.83,15.23-40.44,3.98-59.97Z" fill="#26bd65"/><path d="m272.86,215.67c-.92,5.25-1.89,9.97-3.05,14.26l3.05-14.26Z" fill="#26bd65"/><path d="m112.87,102.44c-5.02-.03-9.86-1.12-14.38-3.23l-19.37-9.02c-1.93-.91-2.91-2.84-2.5-4.93.41-2.09,2.05-3.51,4.18-3.61l94.48-4.69c.5-.03,1.02-.04,1.54-.05h.22c1.94,0,3.92.15,5.88.45l10.68,1.68-.25,1.93c-.8,6.24-1.39,12.79-1.75,19.49l-.08,1.6-1.58.26c-1.82.3-3.71.46-5.6.46l-71.47-.35Z" fill="#b3e5fc"/><path d="m280.91,177.2c.86-10.19,1.2-20.5,1-30.64l-.04-2.1,2.1.07c.63.02,1.26.03,1.89.03.89,0,1.77-.02,2.66-.06l1.53-.07.46,1.46c2.85,9.01,2.29,18.71-1.56,27.32-1.06,2.36-2.77,4.38-4.94,5.83l-3.45,2.3.35-4.14Zm-137.27,20.12c2.2,0,4.4-.51,6.37-1.47l44.66-21.73-.19-1.43c-1.58-11.73-3.39-27.44-3.44-44.98,0-4.91,0-10.76.16-16.86v-.46s-.45-1.03-.45-1.03c-1.65-3.67-5.31-6.06-9.32-6.08l-68.83-.34c-4.28,0-8.15,2.7-9.63,6.71l-15.99,43.19c-2.47,6.69.22,14.12,6.38,17.67l42.99,24.85c2.22,1.28,4.74,1.96,7.3,1.96h0Zm-110.02-17.32c2.26,0,4.49-.38,6.62-1.12l32.98-11.48c5.71-1.99,10.19-6.38,12.28-12.04l16.11-43.53c1.88-5.07-.49-10.83-5.39-13.12l-22.31-10.4c-2.09-.98-4.33-1.47-6.64-1.47h-.3c-5.08.09-9.89,2.75-12.88,7.1l-38.98,57.01c-4.92,7.21-3.45,17.12,3.36,22.58l2.55,2.04c3.56,2.85,8.04,4.43,12.61,4.43h0Z" fill="#4fc3f7"/><path d="m162.77,274.65c-4.85,0-9.04-3.62-9.74-8.43l-7.79-53.52c-1.16-7.93,2.91-15.63,10.12-19.15l39.32-19.13,1.07,7.47.38,2.67c.87,6.3,1.84,12.55,2.86,18.57l.2,1.19-.96.73c-4.05,3.09-7.53,6.72-10.34,10.78-9.89,14.37-9.31,31.05-7.08,42.51.89,4.58,2.04,8.32,2.84,10.66l.77,2.24-20.06,3.27c-.57.09-1.06.13-1.53.13h-.06Zm-17.7-.33c-.45,0-.91-.04-1.36-.12l-1.65-.29v-27.24c-.51-20.29-14.11-42.18-42.73-42.18-20.07,0-42,13.21-42.73,42.23v8.28s-3.45-3.63-3.45-3.63c-2.33-2.45-4.07-5.46-5.05-8.7l-13.75-45.29c-2.45-8.07,1.87-16.57,9.84-19.34l31.41-10.93c1.66-.58,3.39-.87,5.16-.87,2.75,0,5.46.73,7.83,2.1l47.65,27.55c4.17,2.41,6.96,6.53,7.67,11.3l8.52,58.55c.32,2.2-.3,4.31-1.73,5.96-1.4,1.64-3.45,2.6-5.61,2.62h-.01ZM11.32,173.97l3.04-2.46,10.23,8.2c3.53,2.82,6.09,6.6,7.4,10.93l12.23,40.27-3.7,1.48-29.2-58.42Zm264.02,43.95c1.26-6.95,2.36-14.63,3.63-23.52l.03-.22c.14-.99.27-2.01.4-3.02v-.09s.12-.5.12-.5c.9-4.25,2.89-8.25,5.75-11.55l8.28-9.59,3.39,2.01-17.75,47.54-3.84-1.06Z" fill="#0288d1"/><path d="m252.88,68.7c-5.28,0-9.56,4.28-9.56,9.56s4.28,9.56,9.56,9.56,9.56-4.28,9.56-9.56-4.28-9.56-9.56-9.56Z" fill="#263238"/><circle cx="317.93" cy="78.26" r="9.56" fill="#263238"/><path d="m310.52,94.56c-1.41,1.55-2.91,2.72-4.44,3.48-1.11.55-2.21.86-3.28.99-.16.02-.32.04-.47.04h-.01c-2.84.2-5.46-.84-7.57-2.15-1.62-.8-3-1.71-4.07-2.5-.4-.29-.88-.49-1.4-.58-.5.12-.96.4-1.29.8-1.53,1.84-4.48,4.75-8.41,5.73-.71.19-1.44.31-2.21.35-.53.02-1.05.01-1.55-.04-4.13-.39-7.31-3.05-8.95-4.71-.94-.96-2.47-.98-3.43-.05-.95.94-.97,2.47-.04,3.43,2.22,2.26,6.68,5.91,12.67,6.2.25.01.5.02.76.02s.52,0,.78-.02c.74-.04,1.45-.12,2.14-.25,4.49-.83,8-3.46,10.31-5.76,4.11,3.18,8.49,4.67,12.69,4.36.66-.05,1.32-.14,1.98-.29,1.19-.25,2.35-.66,3.49-1.22,2.08-1.03,4.06-2.57,5.88-4.56.9-.99.83-2.52-.16-3.42-.99-.9-2.52-.83-3.42.15Z" fill="#263238"/><path d="m336.51,58.2c-13.31-23.33-29.23-46.12-55.36-54.86-22.35-7.7-47.57-1.84-64.2,14.87-9.54,9.36-16.33,21.61-20.75,37.49-1.17,4.42-2.14,8.84-2.97,13.23l-10.17-1.61c-1.8-.28-3.63-.42-5.44-.4-.46,0-.93.01-1.39.04l-103.33,5.13c-10.32.51-19.96,5.9-25.79,14.43L5.8,146.95c-6.81,9.95-7.69,22.82-2.3,33.61l4.02,8.04c-2.64,5.28-4.25,11.58-4.44,18.94v39.31c0,4.21,2.36,10.04,13.68,13.95,7.73,2.53,16.68,3.8,26.69,3.8,3,0,6.1-.11,9.28-.35.61.31,1.24.6,1.87.87v24.54c0,4.61,2.59,10.99,14.97,15.26,8.46,2.77,18.25,4.16,29.2,4.16,3.6,0,7.31-.14,11.16-.44.1-.01.22-.02.33-.04,1.07-.16,2.22-.31,3.42-.47,11.06-1.45,27.76-3.65,30.3-17.6.05-.29.08-.58.08-.87v-5.25l3.96.83c2.3.48,4.66.71,7.02.7,1.7-.02,3.41-.16,5.09-.43l53.15-8.66c4.63-.23,9.46-.77,14.32-1.78,2.08,2.1,5.27,4.13,10.11,5.8,7.74,2.53,16.68,3.81,26.7,3.81,3.28,0,6.68-.13,10.19-.41.1-.01.21-.02.3-.03.99-.15,2.04-.29,3.14-.43,10.1-1.33,25.37-3.33,27.69-16.09.05-.26.07-.53.07-.79v-39.31c-.27-10.59-3.49-18.97-8.44-25.29l10.22-27.36c3.82-10.22,2.37-21.67-3.86-30.62l-.36-.52c3.98-1.28,7.82-2.99,11.48-5.15,6.77-3.91,12.6-9.01,17.33-15.16,8.11-10.56,12.24-23.19,12.24-35.89,0-10.11-2.61-20.25-7.9-29.43Zm-147.48,69.5c.05,17.37,1.84,33.18,3.46,45.24l-43.36,21.1c-3.75,1.83-8.17,1.67-11.79-.42l-42.99-24.85c-5.31-3.06-7.63-9.51-5.51-15.25l15.99-43.19c1.2-3.26,4.32-5.42,7.8-5.4l68.77.34c3.25.02,6.18,1.94,7.51,4.9l.28.62c-.15,5.83-.17,11.48-.16,16.91Zm-110.44-42.06c.18-.92.88-1.93,2.31-2l94.48-4.69c.49-.03.99-.04,1.48-.05,1.92,0,3.86.14,5.76.43l8.75,1.38c-.86,6.67-1.42,13.23-1.76,19.64-1.8.3-3.63.44-5.45.43l-71.28-.35c-4.68-.03-9.3-1.06-13.54-3.04l-19.37-9.02c-1.29-.61-1.56-1.81-1.38-2.73Zm-61.84,66.43l38.98-57.01c2.56-3.74,6.73-6.15,11.26-6.23,2.11-.04,4.16.39,6.07,1.28l22.31,10.4c3.99,1.86,5.89,6.48,4.36,10.61l-16.11,43.53c-1.88,5.09-5.94,9.07-11.06,10.85l-32.98,11.48c-5.9,2.05-12.44.93-17.32-2.98l-2.55-2.04c-6-4.81-7.3-13.54-2.96-19.89Zm7.42,96.7v4.93c-1.58-.37-3.11-.8-4.59-1.28-4.73-1.63-7.65-3.76-7.65-5.57v-39.14c.07-2.67.44-5.38,1.13-8.03l19.23,38.48c-4.67,1.26-8.12,5.54-8.12,10.61Zm17.58,9.19c-.11,0-.21,0-.3,0-1.99-.05-3.8-.14-5.54-.28h-.07c-2.48-.18-4.92-.47-7.24-.84v-8.06c0-3.34,2.5-6.11,5.74-6.52l3.57,7.15c1.08,2.15,2.37,4.16,3.84,5.99v2.57Zm-28.64-84.89l10.23,8.2c3.2,2.56,5.55,6.03,6.74,9.95l12.23,40.27-29.2-58.42Zm83.8,128.74c-.12,0-.23-.01-.33-.01-2.17-.05-4.16-.14-6.06-.3h-.07c-2.72-.2-5.38-.51-7.93-.92v-8.82c0-3.96,3.22-7.19,7.19-7.19,1.92,0,3.73.75,5.09,2.11,1.36,1.35,2.11,3.16,2.11,5.08v10.05Zm19.23-1.23c-2.19.35-4.46.62-6.8.81-2.46.23-5,.36-7.59.42v-10.05c0-3.96,3.22-7.19,7.19-7.19,1.92,0,3.73.75,5.08,2.11,1.11,1.1,1.8,2.48,2.03,4.02.06.34.09.69.09,1.06v8.82Zm1.26-17.37c-2.26-2.24-5.27-3.48-8.46-3.48-3.92,0-7.41,1.89-9.6,4.8-.34-.46-.71-.88-1.12-1.28-2.27-2.26-5.29-3.52-8.51-3.52-6.64,0-12.03,5.4-12.03,12.03v5.39c-1.73-.4-3.41-.87-5.02-1.4-5.17-1.78-8.38-4.11-8.38-6.09v-42.82c.45-16.71,11.6-34.68,35.06-34.68s34.6,17.96,35.04,34.68v31.39c-1.86-1.12-3.99-1.72-6.2-1.72-1.75,0-3.43.38-4.95,1.07-2.51,1.15-4.59,3.14-5.83,5.63Zm17.98,10.12c-1.49,1.58-3.97,3.05-7.23,4.3-2.09.79-4.5,1.49-7.17,2.08v-11.16c0-.36.03-.74.08-1.1.53-3.47,3.59-6.1,7.12-6.1,1.91,0,3.72.76,5.08,2.11,1.36,1.37,2.12,3.18,2.12,5.09v4.78Zm13.8-22.95c-1.04,1.22-2.54,1.92-4.11,1.93-.33,0-.67-.03-1.01-.09v-25.56c-.77-30.35-23.73-44.18-44.73-44.18s-43.97,13.83-44.73,44.18v3.32c-2.09-2.2-3.68-4.89-4.59-7.9l-13.75-45.29c-2.13-7.01,1.66-14.46,8.58-16.87l31.41-10.93c3.75-1.31,7.89-.92,11.33,1.07l47.65,27.55c3.62,2.09,6.08,5.72,6.69,9.86l8.52,58.55c.23,1.6-.21,3.15-1.26,4.36Zm29.67-11.66c.9,4.63,2.05,8.43,2.91,10.93l-17.72,2.89c-.4.06-.81.1-1.21.1-3.9.03-7.26-2.86-7.82-6.72l-7.79-53.52c-1.03-7.05,2.62-13.94,9.02-17.06l36.86-17.93c.16,1.11.31,2.2.46,3.23.21,1.49.41,2.89.59,4.19.86,6.19,1.82,12.45,2.87,18.63-4.23,3.23-7.84,7-10.77,11.23-10.28,14.94-9.7,32.19-7.4,44.03Zm66.28,15.06c-1.59-.37-3.12-.8-4.59-1.29-.05-.01-.1-.03-.15-.05l4.74-.77v2.11Zm17.57-4.93v9.18c-.1,0-.2,0-.3,0-1.98-.04-3.8-.13-5.54-.27h-.06c-2.49-.19-4.92-.47-7.25-.84v-5.96l4.57-.74c3.28-.53,6.41-1.55,9.31-2.98-.28.14-.56.28-.85.41.08.39.12.8.12,1.21Zm17.58,8.06c-2,.32-4.07.57-6.22.74-2.24.21-4.56.33-6.93.38v-9.18c0-3.62,2.94-6.58,6.57-6.58,1.75,0,3.41.69,4.65,1.93,1.01,1.01,1.64,2.27,1.85,3.67.06.31.08.64.08.98v8.06Zm1.15-15.88c-1.78-1.76-4.06-2.84-6.52-3.11-.05.06-.1.12-.15.18,2.15-2.7,3.91-5.74,5.15-9.06l13.45-35.99c2.27,4.62,3.46,9.74,3.6,14.74v28.69c-1.7-1.02-3.65-1.57-5.68-1.57-4.23,0-8.01,2.47-9.85,6.12Zm2.48-114.52c1.58.05,3.14.04,4.7-.03,2.69,8.51,2.17,17.75-1.48,25.9-.94,2.09-2.43,3.78-4.23,4.98.87-10.27,1.21-20.58,1.01-30.85Zm2.87,33.81l8.28-9.59-17.75,47.54c1.28-7.05,2.4-14.92,3.67-23.82.14-1.01.27-2.03.4-3.05l.09-.41c.84-3.95,2.67-7.62,5.31-10.67Zm11.09,85.59v4.37c-1.37,1.44-3.63,2.79-6.61,3.93-1.91.73-4.11,1.36-6.55,1.9v-10.2c0-.33.03-.67.07-1,.49-3.18,3.28-5.57,6.5-5.57,1.76,0,3.41.69,4.65,1.92,1.25,1.25,1.94,2.91,1.94,4.65Zm26.62-148.29c-3.95,5.14-8.82,9.4-14.53,12.7-5.05,2.98-10.52,4.96-16.21,5.9-4.62.77-9.39.85-14.21.23-.06-.01-.12-.01-.18-.01-.02-.01-.04-.01-.07-.02-6.87-.53-13.53-2.18-19.78-4.9-3.9-1.7-7.61-3.8-11.05-6.25-4.46-3.16-8.49-6.9-11.99-11.11-1.7-2.06-4.75-2.34-6.81-.63-2.06,1.7-2.34,4.75-.64,6.81,4.04,4.86,8.69,9.17,13.83,12.82,3.98,2.83,8.28,5.26,12.79,7.23,5.92,2.58,12.14,4.31,18.55,5.2.37,15.84-.56,31.79-2.79,47.5-4.26,29.89-6.61,46.35-18.11,58.26-6.22,6.44-24.61,20.5-62.52,14.7-.72-2.13-1.67-5.33-2.42-9.17-1.94-10.03-2.5-24.53,5.87-36.69,1.44-2.08,3.08-4.01,4.92-5.8.14.56.25,1.12.39,1.68.32,1.29.67,2.59,1.04,3.88.61,2.12,2.55,3.5,4.65,3.5.45,0,.9-.06,1.34-.19,2.57-.74,4.06-3.42,3.32-5.99-.34-1.18-.66-2.37-.96-3.56-.73-2.91-1.35-5.9-1.84-8.86,0-.01,0-.02-.01-.03v-.02c-1.23-7.05-2.35-14.22-3.33-21.29-.18-1.31-.38-2.73-.59-4.23-1.75-12.31-4.38-30.92-4.44-51.61-.05-20.06.62-37.61,3.6-54.59.86-4.98,1.93-9.91,3.23-14.84,3.94-14.14,9.89-24.98,18.23-33.16,14.07-14.14,35.36-19.08,54.27-12.57,23.09,7.72,37.71,28.83,50.07,50.5,9.98,17.33,8.56,38.76-3.62,54.61Z" fill="#263238"/><path d="m425.44,285.08h-44.92c-2.5,0-3.43-1.87-1.87-3.74l161.6-212.76c.94-1.56,2.5-1.87,4.06-1.87h44.92c1.87,0,3.12,1.25,3.12,3.12v212.14c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-1.25-3.12-3.12v-25.89c0-1.56-.94-2.5-2.5-2.5h-84.23c-1.25,0-2.5.62-3.12,1.56l-22.46,28.08c-.94,1.25-2.5,1.87-4.06,1.87Zm69.57-72.06h44.3c1.56,0,2.5-.94,2.5-2.5v-58.34c0-2.18-1.87-2.81-3.12-.94l-44.92,58.65c-1.25,1.87-.62,3.12,1.25,3.12Zm199.03-127.59v41.18c0,1.56.94,2.5,2.5,2.5h21.21c1.87,0,3.12,1.25,3.12,3.12v31.82c0,1.87-1.25,3.12-3.12,3.12h-21.21c-1.56,0-2.5.94-2.5,2.5v112.31c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-1.25-3.12-3.12v-112.31c0-1.56-.94-2.5-2.5-2.5h-23.71c-1.87,0-3.12-1.25-3.12-3.12v-31.82c0-1.87,1.25-3.12,3.12-3.12h23.71c1.56,0,2.5-.94,2.5-2.5v-41.18c0-1.87,1.25-3.12,3.12-3.12h44.3c1.87,0,3.12,1.25,3.12,3.12Zm96.08,46.8l.31,74.87c0,26.21,12.48,33.69,26.52,33.69,22.46,0,30.89-16.53,30.89-35.56v-73c0-1.87,1.25-3.12,3.12-3.12h44.3c1.87,0,3.12,1.25,3.12,3.12v149.74c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-1.25-3.12-3.12v-10.61c0-2.18-1.25-2.5-3.12-1.25-10.3,9.67-23.4,15.29-37.75,15.6-35.25.62-67.07-27.77-67.07-71.13l-.31-82.36c0-1.87,1.25-3.12,3.12-3.12h44.3c1.87,0,3.12.94,3.12,3.12Zm160.66-71.13c15.6,0,27.45,11.85,27.45,26.52s-12.17,26.52-27.45,26.52-27.45-11.85-27.45-26.52,12.17-26.52,27.45-26.52Zm-25.27,220.87v-149.74c0-1.87,1.25-3.12,3.12-3.12h44.3c1.87,0,3.12,1.25,3.12,3.12v149.74c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-1.25-3.12-3.12Zm185.93,0l-.31-74.25c0-26.21-12.48-33.69-26.52-33.69-22.46,0-30.89,16.53-30.89,35.56v72.38c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-1.25-3.12-3.12v-149.74c0-1.87,1.25-3.12,3.12-3.12h44.3c1.87,0,3.12,1.25,3.12,3.12v9.05c0,2.18,1.56,2.81,3.12,1.25,10.3-9.67,23.71-15.91,37.75-15.91,35.25,0,67.07,30.26,67.07,73.62l.31,81.74c0,1.87-1.25,3.12-3.12,3.12h-44.3c-1.87,0-3.12-.94-3.12-3.12Z" fill="#263238"/></g></svg> \ No newline at end of file
diff --git a/ui/src/assets/react.svg b/ui/src/assets/react.svg
deleted file mode 100644
index 6c87de9b..00000000
--- a/ui/src/assets/react.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg> \ No newline at end of file
diff --git a/ui/src/components/Button.tsx b/ui/src/components/Button.tsx
deleted file mode 100644
index 5f7e1160..00000000
--- a/ui/src/components/Button.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-export enum ButtonStyle {
- PrimarySm = "bg-emerald-500 hover:bg-emerald-600",
- PrimarySmFill = "bg-emerald-500 hover:bg-emerald-600 w-full text-sm",
-}
-
-interface ButtonProps {
- text: string;
- style: ButtonStyle;
-}
-
-export default function Button(props: ButtonProps) {
- return (
- <button
- type="button"
- className={`rounded ${props.style} px-2 py-1 font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-500`}
- >
- {props.text}
- </button>
- );
-}
diff --git a/ui/src/components/CodeBlock.tsx b/ui/src/components/CodeBlock.tsx
deleted file mode 100644
index 4eb54a1c..00000000
--- a/ui/src/components/CodeBlock.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Highlight, themes } from "prism-react-renderer";
-
-// @ts-ignore
-import Prism from "prismjs";
-
-// @ts-ignore
-import "prismjs/components/prism-bash";
-
-export default function CodeBlock({ code, language }: any) {
- return (
- <div className="overflow-auto">
- <Highlight
- theme={themes.github}
- code={code}
- prism={Prism}
- language={language}
- >
- {({ style, tokens, getLineProps, getTokenProps }) => (
- <pre style={style} className="p-4 break-words whitespace-pre-wrap">
- {tokens.map((line, i) => (
- <div key={i} {...getLineProps({ line })} data-vaul-no-drag>
- {i == 0 && (
- <span className="text-gray-500 select-none">$ </span>
- )}
- {line.map((token, key) => (
- <span
- key={key}
- {...getTokenProps({ token })}
- data-vaul-no-drag
- />
- ))}
- </div>
- ))}
- </pre>
- )}
- </Highlight>
- </div>
- );
-}
diff --git a/ui/src/components/Drawer.tsx b/ui/src/components/Drawer.tsx
deleted file mode 100644
index 91753624..00000000
--- a/ui/src/components/Drawer.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Drawer as VDrawer } from "vaul";
-
-export default function Drawer({
- trigger,
- children,
- width,
- open,
- onOpenChange,
-}: any) {
- return (
- <VDrawer.Root direction="right" open={open} onOpenChange={onOpenChange}>
- <VDrawer.Trigger asChild>{trigger}</VDrawer.Trigger>
- <VDrawer.Portal>
- <VDrawer.Overlay className="fixed inset-0 bg-black/40 z-50" />
- <VDrawer.Content
- style={{ width: width || "400px" }}
- className={`bg-white flex flex-col z-50 h-full mt-24 fixed bottom-0 right-0`}
- >
- {children}
- </VDrawer.Content>
- </VDrawer.Portal>
- </VDrawer.Root>
- );
-}
diff --git a/ui/src/components/HistoryList.tsx b/ui/src/components/HistoryList.tsx
deleted file mode 100644
index 948aa5c9..00000000
--- a/ui/src/components/HistoryList.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import HistoryRow from "./history/HistoryRow";
-
-export default function HistoryList(props: any) {
- return (
- <div
- role="list"
- className="divide-y divide-gray-100 bg-white shadow-sm ring-1 ring-gray-900/5 overflow-auto"
- style={{
- height: `${props.height}px`,
- position: "relative",
- }}
- >
- {props.items.map((i: any) => {
- let h = props.history[i.index];
-
- return (
- <div
- style={{
- position: "absolute",
- top: 0,
- left: 0,
- width: "100%",
- height: `${i.size}px`,
- transform: `translateY(${i.start}px)`,
- }}
- >
- <HistoryRow h={h} />
- </div>
- );
- })}
- </div>
- );
-}
diff --git a/ui/src/components/HistorySearch.tsx b/ui/src/components/HistorySearch.tsx
deleted file mode 100644
index 33a3e536..00000000
--- a/ui/src/components/HistorySearch.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import { ArrowPathIcon } from "@heroicons/react/24/outline";
-import { MagnifyingGlassIcon } from "@heroicons/react/20/solid";
-
-interface HistorySearchProps {
- query: string;
- refresh: () => void;
- setQuery: (query: string) => void;
-}
-
-export default function HistorySearch(props: HistorySearchProps) {
- return (
- <div className="flex flex-1 gap-x-4 self-stretch lg:gap-x-6">
- <form
- className="relative flex flex-1"
- onSubmit={(e) => {
- e.preventDefault();
- }}
- >
- <label htmlFor="search-field" className="sr-only">
- Search
- </label>
- <MagnifyingGlassIcon
- className="pointer-events-none absolute inset-y-0 left-0 h-full w-5 text-gray-400"
- aria-hidden="true"
- />
- <input
- id="search-field"
- className="block h-full w-full border-0 py-0 pl-8 pr-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm outline-none"
- placeholder="Search..."
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- type="search"
- name="search"
- onChange={(query) => {
- props.setQuery(query.target.value);
- }}
- />
- </form>
- <div className="flex items-center gap-x-4 lg:gap-x-6">
- <button
- type="button"
- className="-m-2.5 p-2.5 text-gray-400 hover:text-gray-500"
- onClick={() => {
- props.refresh();
- }}
- >
- <ArrowPathIcon className="h-6 w-6" aria-hidden="true" />
- </button>
- </div>
- </div>
- );
-}
diff --git a/ui/src/components/LoginOrRegister.tsx b/ui/src/components/LoginOrRegister.tsx
deleted file mode 100644
index 97f8a790..00000000
--- a/ui/src/components/LoginOrRegister.tsx
+++ /dev/null
@@ -1,341 +0,0 @@
-import Logo from "@/assets/logo-light.svg";
-import { useState } from "react";
-
-import { login, register } from "@/state/client";
-import { useStore } from "@/state/store";
-
-interface LoginProps {
- toggleRegister: () => void;
- onClose: () => void;
-}
-
-function Login(props: LoginProps) {
- const refreshUser = useStore((state) => state.refreshUser);
- const [errors, setErrors] = useState<string | null>(null);
-
- const doLogin = async (e: React.FormEvent<HTMLFormElement>) => {
- e.preventDefault();
-
- const form = e.currentTarget;
- const username = form.username.value;
- const password = form.password.value;
- const key = form.key.value;
-
- console.log("Logging in...");
- try {
- await login(username, password, key);
- refreshUser();
- props.onClose();
- } catch (e: any) {
- console.error(e);
- setErrors(e);
- }
- };
-
- return (
- <>
- <div className="flex min-h-full flex-1 flex-col justify-center px-6 ">
- <div className="sm:mx-auto sm:w-full sm:max-w-sm">
- <img className="mx-auto h-10 w-auto" src={Logo} alt="Atuin" />
-
- <h2 className="mt-5 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900">
- Sign in to your account
- </h2>
-
- <p className="text-sm text-center text-gray-600 mt-4 text-wrap">
- Backup and sync your data across devices. All data is end-to-end
- encrypted and stored securely in the cloud.
- </p>
- </div>
-
- <div className="mt-10 sm:mx-auto sm:w-full sm:max-w-sm">
- <form
- className="space-y-6"
- action="#"
- method="POST"
- onSubmit={doLogin}
- >
- <div>
- <label
- htmlFor="username"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- Username
- </label>
- <div className="mt-2">
- <input
- id="username"
- name="username"
- type="username"
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 outline-none text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <div className="flex items-center justify-between">
- <label
- htmlFor="password"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- Password
- </label>
- <div className="text-sm">
- {/* You can't right now. Sorry. Validate emails first.
- <a
- href="#"
- className="font-semibold text-emerald-600 hover:text-emerald-500"
- >
- Forgot password?
- </a>
- */}
- </div>
- </div>
- <div className="mt-2">
- <input
- id="password"
- name="password"
- type="password"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- autoComplete="current-password"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset outline-none focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <div className="flex items-center justify-between">
- <label
- htmlFor="key"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- <p>Key</p>
- <p className="text-xs text-gray-500 font-normal">
- Paste the output of "atuin key" from another machine
- </p>
- </label>
- </div>
- <div className="mt-2">
- <input
- id="key"
- name="key"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- autoComplete="off"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset outline-none focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <button
- type="submit"
- className="flex w-full justify-center rounded-md bg-emerald-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-emerald-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-600"
- >
- Sign in
- </button>
- </div>
- </form>
-
- {errors && (
- <p className="mt-4 text-center text-sm text-red-500">{errors}</p>
- )}
-
- <p className="mt-10 text-center text-sm text-gray-500">
- Not a member?{" "}
- <a
- href="#"
- className="font-semibold leading-6 text-emerald-600 hover:text-emerald-500"
- onClick={(e) => {
- e.preventDefault();
- props.toggleRegister();
- }}
- >
- Register
- </a>
- </p>
- </div>
- </div>
- </>
- );
-}
-
-interface RegisterProps {
- toggleLogin: () => void;
- onClose: () => void;
-}
-
-function Register(props: RegisterProps) {
- const refreshUser = useStore((state) => state.refreshUser);
- const [errors, setErrors] = useState<string | null>(null);
-
- const doRegister = async (e: React.FormEvent<HTMLFormElement>) => {
- e.preventDefault();
-
- const form = e.currentTarget;
- const username = form.username.value;
- const email = form.email.value;
- const password = form.password.value;
-
- try {
- await register(username, email, password);
- refreshUser();
- props.onClose();
- } catch (e: any) {
- setErrors(e);
- }
- };
-
- return (
- <>
- <div className="flex min-h-full flex-1 flex-col justify-center px-6 ">
- <div className="sm:mx-auto sm:w-full sm:max-w-sm">
- <img className="mx-auto h-10 w-auto" src={Logo} alt="Atuin" />
-
- <h2 className="mt-5 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900">
- Register for an account
- </h2>
-
- <p className="text-sm text-center text-gray-600 mt-4 text-wrap">
- Backup and sync your data across devices. All data is end-to-end
- encrypted and stored securely in the cloud.
- </p>
- </div>
-
- <div className="mt-10 sm:mx-auto sm:w-full sm:max-w-sm">
- <form
- className="space-y-6"
- action="#"
- method="POST"
- onSubmit={doRegister}
- >
- <div>
- <label
- htmlFor="username"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- Username
- </label>
- <div className="mt-2">
- <input
- id="username"
- name="username"
- type="username"
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 outline-none text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <label
- htmlFor="email"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- Email
- </label>
- <div className="mt-2">
- <input
- id="email"
- name="email"
- type="email"
- autoComplete="email"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 outline-none text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <div className="flex items-center justify-between">
- <label
- htmlFor="password"
- className="block text-sm font-medium leading-6 text-gray-900"
- >
- Password
- </label>
- <div className="text-sm">
- {/* You can't right now. Sorry. Validate emails first.
- <a
- href="#"
- className="font-semibold text-emerald-600 hover:text-emerald-500"
- >
- Forgot password?
- </a>
- */}
- </div>
- </div>
- <div className="mt-2">
- <input
- id="password"
- name="password"
- type="password"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- autoComplete="current-password"
- required
- className="block w-full rounded-md border-0 px-1.5 py-1.5 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset outline-none focus:ring-emerald-600 sm:text-sm sm:leading-6"
- />
- </div>
- </div>
-
- <div>
- <button
- type="submit"
- className="flex w-full justify-center rounded-md bg-emerald-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-emerald-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-600"
- >
- Register
- </button>
- </div>
- </form>
-
- {errors && (
- <p className="mt-4 text-center text-sm text-red-500">{errors}</p>
- )}
-
- <p className="mt-10 text-center text-sm text-gray-500">
- Already have an account?{" "}
- <a
- href="#"
- className="font-semibold leading-6 text-emerald-600 hover:text-emerald-500"
- onClick={(e) => {
- e.preventDefault();
- props.toggleLogin();
- }}
- >
- Login
- </a>
- </p>
- </div>
- </div>
- </>
- );
-}
-
-export default function LoginOrRegister({ onClose }: { onClose: () => void }) {
- let [login, setLogin] = useState<boolean>(false);
-
- if (login) {
- return <Login onClose={onClose} toggleRegister={() => setLogin(false)} />;
- }
-
- return <Register onClose={onClose} toggleLogin={() => setLogin(true)} />;
-}
diff --git a/ui/src/components/Sidebar/Sidebar.tsx b/ui/src/components/Sidebar/Sidebar.tsx
deleted file mode 100644
index 99e2bf82..00000000
--- a/ui/src/components/Sidebar/Sidebar.tsx
+++ /dev/null
@@ -1,328 +0,0 @@
-"use client";
-
-import {
- Accordion,
- AccordionItem,
- type ListboxProps,
- type ListboxSectionProps,
- type Selection,
-} from "@nextui-org/react";
-import React from "react";
-import {
- Listbox,
- Tooltip,
- ListboxItem,
- ListboxSection,
-} from "@nextui-org/react";
-import { Icon } from "@iconify/react";
-
-import { cn } from "@/lib/utils";
-
-export enum SidebarItemType {
- Nest = "nest",
-}
-
-export type SidebarItem = {
- key: string;
- title: string;
- icon?: string;
- href?: string;
- onPress?: () => void;
- type?: SidebarItemType.Nest;
- startContent?: React.ReactNode;
- endContent?: React.ReactNode;
- items?: SidebarItem[];
- className?: string;
-};
-
-export type SidebarProps = Omit<ListboxProps<SidebarItem>, "children"> & {
- items: SidebarItem[];
- isCompact?: boolean;
- hideEndContent?: boolean;
- iconClassName?: string;
- sectionClasses?: ListboxSectionProps["classNames"];
- classNames?: ListboxProps["classNames"];
- defaultSelectedKey: string;
- onSelect?: (key: string) => void;
-};
-
-const Sidebar = React.forwardRef<HTMLElement, SidebarProps>(
- (
- {
- items,
- isCompact,
- defaultSelectedKey,
- onSelect,
- hideEndContent,
- sectionClasses: sectionClassesProp = {},
- itemClasses: itemClassesProp = {},
- iconClassName,
- classNames,
- className,
- ...props
- },
- ref,
- ) => {
- const [selected, setSelected] =
- React.useState<React.Key>(defaultSelectedKey);
-
- const sectionClasses = {
- ...sectionClassesProp,
- base: cn(sectionClassesProp?.base, "w-full", {
- "p-0 max-w-[44px]": isCompact,
- }),
- group: cn(sectionClassesProp?.group, {
- "flex flex-col gap-1": isCompact,
- }),
- heading: cn(sectionClassesProp?.heading, {
- hidden: isCompact,
- }),
- };
-
- const itemClasses = {
- ...itemClassesProp,
- base: cn(itemClassesProp?.base, {
- "w-11 h-11 gap-0 p-0": isCompact,
- }),
- };
-
- const renderNestItem = React.useCallback(
- (item: SidebarItem) => {
- const isNestType =
- item.items &&
- item.items?.length > 0 &&
- item?.type === SidebarItemType.Nest;
-
- if (isNestType) {
- // Is a nest type item , so we need to remove the href
- delete item.href;
- }
-
- return (
- <ListboxItem
- {...item}
- key={item.key}
- classNames={{
- base: cn(
- {
- "h-auto p-0": !isCompact && isNestType,
- },
- {
- "inline-block w-11": isCompact && isNestType,
- },
- ),
- }}
- endContent={
- isCompact || isNestType || hideEndContent
- ? null
- : item.endContent ?? null
- }
- startContent={
- isCompact || isNestType ? null : item.icon ? (
- <Icon
- className={cn(
- "text-default-500 group-data-[selected=true]:text-foreground",
- iconClassName,
- )}
- icon={item.icon}
- width={24}
- />
- ) : (
- item.startContent ?? null
- )
- }
- title={isCompact || isNestType ? null : item.title}
- >
- {isCompact ? (
- <Tooltip content={item.title} placement="right">
- <div className="flex w-full items-center justify-center">
- {item.icon ? (
- <Icon
- className={cn(
- "text-default-500 group-data-[selected=true]:text-foreground",
- iconClassName,
- )}
- icon={item.icon}
- width={24}
- />
- ) : (
- item.startContent ?? null
- )}
- </div>
- </Tooltip>
- ) : null}
- {!isCompact && isNestType ? (
- <Accordion className={"p-0"}>
- <AccordionItem
- key={item.key}
- aria-label={item.title}
- classNames={{
- heading: "pr-3",
- trigger: "p-0",
- content: "py-0 pl-4",
- }}
- title={
- item.icon ? (
- <div
- className={"flex h-11 items-center gap-2 px-2 py-1.5"}
- >
- <Icon
- className={cn(
- "text-default-500 group-data-[selected=true]:text-foreground",
- iconClassName,
- )}
- icon={item.icon}
- width={24}
- />
- <span className="text-small font-medium text-default-500 group-data-[selected=true]:text-foreground">
- {item.title}
- </span>
- </div>
- ) : (
- item.startContent ?? null
- )
- }
- >
- {item.items && item.items?.length > 0 ? (
- <Listbox
- className={"mt-0.5"}
- classNames={{
- list: cn("border-l border-default-200 pl-4"),
- }}
- items={item.items}
- variant="flat"
- >
- {item.items.map(renderItem)}
- </Listbox>
- ) : (
- renderItem(item)
- )}
- </AccordionItem>
- </Accordion>
- ) : null}
- </ListboxItem>
- );
- },
- [isCompact, hideEndContent, iconClassName, items],
- );
-
- const renderItem = React.useCallback(
- (item: SidebarItem) => {
- const isNestType =
- item.items &&
- item.items?.length > 0 &&
- item?.type === SidebarItemType.Nest;
-
- if (isNestType) {
- return renderNestItem(item);
- }
-
- return (
- <ListboxItem
- {...item}
- key={item.key}
- endContent={
- isCompact || hideEndContent ? null : item.endContent ?? null
- }
- startContent={
- isCompact ? null : item.icon ? (
- <Icon
- className={cn(
- "text-default-500 group-data-[selected=true]:text-foreground",
- iconClassName,
- )}
- icon={item.icon}
- width={24}
- />
- ) : (
- item.startContent ?? null
- )
- }
- textValue={item.title}
- title={isCompact ? null : item.title}
- >
- {isCompact ? (
- <Tooltip content={item.title} placement="right">
- <div className="flex w-full items-center justify-center">
- {item.icon ? (
- <Icon
- className={cn(
- "text-default-500 group-data-[selected=true]:text-foreground",
- iconClassName,
- )}
- icon={item.icon}
- width={24}
- />
- ) : (
- item.startContent ?? null
- )}
- </div>
- </Tooltip>
- ) : null}
- </ListboxItem>
- );
- },
- [isCompact, hideEndContent, iconClassName, itemClasses?.base],
- );
-
- return (
- <Listbox
- key={isCompact ? "compact" : "default"}
- ref={ref}
- hideSelectedIcon
- as="nav"
- className={cn("list-none", className)}
- classNames={{
- ...classNames,
- list: cn("items-center", classNames?.list),
- }}
- color="default"
- itemClasses={{
- ...itemClasses,
- base: cn(
- "px-3 min-h-11 rounded-large h-[44px] data-[selected=true]:bg-default-100",
- itemClasses?.base,
- ),
- title: cn(
- "text-small font-medium text-default-500 group-data-[selected=true]:text-foreground",
- itemClasses?.title,
- ),
- }}
- items={items}
- selectedKeys={[selected] as unknown as Selection}
- selectionMode="single"
- variant="flat"
- onSelectionChange={(keys) => {
- const key = Array.from(keys)[0];
-
- setSelected(key as React.Key);
- onSelect?.(key as string);
- }}
- {...props}
- >
- {(item) => {
- return item.items &&
- item.items?.length > 0 &&
- item?.type === SidebarItemType.Nest ? (
- renderNestItem(item)
- ) : item.items && item.items?.length > 0 ? (
- <ListboxSection
- key={item.key}
- classNames={sectionClasses}
- showDivider={isCompact}
- title={item.title}
- >
- {item.items.map(renderItem)}
- </ListboxSection>
- ) : (
- renderItem(item)
- );
- }}
- </Listbox>
- );
- },
-);
-
-Sidebar.displayName = "Sidebar";
-
-export default Sidebar;
diff --git a/ui/src/components/Sidebar/index.tsx b/ui/src/components/Sidebar/index.tsx
deleted file mode 100644
index 10020952..00000000
--- a/ui/src/components/Sidebar/index.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-import Sidebar, { SidebarItem } from "./Sidebar";
-
-export type { SidebarItem };
-export default Sidebar;
diff --git a/ui/src/components/dotfiles/Aliases.tsx b/ui/src/components/dotfiles/Aliases.tsx
deleted file mode 100644
index 61fd001c..00000000
--- a/ui/src/components/dotfiles/Aliases.tsx
+++ /dev/null
@@ -1,180 +0,0 @@
-import { useEffect, useState } from "react";
-
-import DataTable from "@/components/ui/data-table";
-import { Button } from "@/components/ui/button";
-import { MoreHorizontal } from "lucide-react";
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu";
-
-import { ColumnDef } from "@tanstack/react-table";
-
-import { invoke } from "@tauri-apps/api/core";
-import Drawer from "@/components/Drawer";
-
-import { Alias } from "@/state/models";
-import { useStore } from "@/state/store";
-
-function deleteAlias(name: string, refreshAliases: () => void) {
- invoke("delete_alias", { name: name })
- .then(() => {
- refreshAliases();
- })
- .catch(() => {
- console.error("Failed to delete alias");
- });
-}
-
-function AddAlias({ onAdd: onAdd }: { onAdd?: () => void }) {
- let [name, setName] = useState("");
- let [value, setValue] = useState("");
-
- // simple form to add aliases
- return (
- <div className="p-4">
- <h2 className="text-xl font-semibold leading-6 text-gray-900">
- Add alias
- </h2>
- <p className="mt-2">Add a new alias to your shell</p>
-
- <form
- className="mt-4"
- onSubmit={(e) => {
- e.preventDefault();
-
- invoke("set_alias", { name: name, value: value })
- .then(() => {
- console.log("Added alias");
-
- if (onAdd) onAdd();
- })
- .catch(() => {
- console.error("Failed to add alias");
- });
- }}
- >
- <input
- className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-md focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
- type="text"
- value={name}
- onChange={(e) => setName(e.target.value)}
- placeholder="Alias name"
- />
-
- <input
- className="mt-4 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-md focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- type="text"
- value={value}
- onChange={(e) => setValue(e.target.value)}
- placeholder="Alias value"
- />
-
- <input
- type="submit"
- className="block mt-4 rounded-md bg-green-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600"
- value="Add alias"
- />
- </form>
- </div>
- );
-}
-
-export default function Aliases() {
- const aliases = useStore((state) => state.aliases);
- const refreshAliases = useStore((state) => state.refreshAliases);
-
- let [aliasDrawerOpen, setAliasDrawerOpen] = useState(false);
-
- const columns: ColumnDef<Alias>[] = [
- {
- accessorKey: "name",
- header: "Name",
- },
- {
- accessorKey: "value",
- header: "Value",
- },
- {
- id: "actions",
- cell: ({ row }: any) => {
- const alias = row.original;
-
- return (
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <Button variant="ghost" className="h-8 w-8 p-0 float-right">
- <span className="sr-only">Open menu</span>
- <MoreHorizontal className="h-4 w-4 text-right" />
- </Button>
- </DropdownMenuTrigger>
- <DropdownMenuContent align="end">
- <DropdownMenuLabel>Actions</DropdownMenuLabel>
- <DropdownMenuItem
- onClick={() => deleteAlias(alias.name, refreshAliases)}
- >
- Delete
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- );
- },
- },
- ];
-
- useEffect(() => {
- refreshAliases();
- }, []);
-
- return (
- <div className="pt-10">
- <div className="sm:flex sm:items-center">
- <div className="sm:flex-auto">
- <h1 className="text-base font-semibold leading-6 text-gray-900">
- Aliases
- </h1>
- <p className="mt-2 text-sm text-gray-700">
- Aliases allow you to condense long commands into short,
- easy-to-remember commands.
- </p>
- </div>
- <div className="mt-4 sm:ml-16 sm:mt-0 flex-row">
- <Drawer
- open={aliasDrawerOpen}
- onOpenChange={setAliasDrawerOpen}
- width="30%"
- trigger={
- <button
- type="button"
- className="block rounded-md bg-green-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600"
- >
- Add
- </button>
- }
- >
- <AddAlias
- onAdd={() => {
- refreshAliases();
- setAliasDrawerOpen(false);
- }}
- />
- </Drawer>
- </div>
- </div>
- <div className="mt-8 flow-root">
- <div className="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
- <div className="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8">
- <DataTable columns={columns} data={aliases} />
- </div>
- </div>
- </div>
- </div>
- );
-}
diff --git a/ui/src/components/dotfiles/Vars.tsx b/ui/src/components/dotfiles/Vars.tsx
deleted file mode 100644
index b2379aa7..00000000
--- a/ui/src/components/dotfiles/Vars.tsx
+++ /dev/null
@@ -1,194 +0,0 @@
-import { useEffect, useState } from "react";
-
-import DataTable from "@/components/ui/data-table";
-import { Button } from "@/components/ui/button";
-import { MoreHorizontal } from "lucide-react";
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu";
-
-import { ColumnDef } from "@tanstack/react-table";
-
-import { invoke } from "@tauri-apps/api/core";
-import Drawer from "@/components/Drawer";
-
-import { Var } from "@/state/models";
-import { useStore } from "@/state/store";
-
-function deleteVar(name: string, refreshVars: () => void) {
- invoke("delete_var", { name: name })
- .then(() => {
- refreshVars();
- })
- .catch(() => {
- console.error("Failed to delete var");
- });
-}
-
-function AddVar({ onAdd: onAdd }: { onAdd?: () => void }) {
- let [name, setName] = useState("");
- let [value, setValue] = useState("");
- let [exp, setExport] = useState<boolean>(false);
-
- // simple form to add vars
- return (
- <div className="p-4">
- <h2 className="text-xl font-semibold leading-6 text-gray-900">Add var</h2>
- <p className="mt-2">Add a new var to your shell</p>
-
- <form
- className="mt-4"
- onSubmit={(e) => {
- e.preventDefault();
-
- invoke("set_var", { name: name, value: value, export: exp })
- .then(() => {
- console.log("Added var");
-
- if (onAdd) onAdd();
- })
- .catch(() => {
- console.error("Failed to add var");
- });
- }}
- >
- <input
- className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-md focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
- type="text"
- value={name}
- onChange={(e) => setName(e.target.value)}
- placeholder="Var name"
- />
-
- <input
- className="mt-4 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-md focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5"
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- type="text"
- value={value}
- onChange={(e) => setValue(e.target.value)}
- placeholder="Var value"
- />
-
- <div>
- <label>
- <input
- className="mt-4 bg-gray-50 mr-2 inline"
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- type="checkbox"
- value={exp.toString()}
- onChange={(e) => setExport(e.target.checked)}
- />
- Export the var and make it visible to subprocesses
- </label>
- </div>
-
- <input
- type="submit"
- className="block mt-4 rounded-md bg-green-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600"
- value="Add var"
- />
- </form>
- </div>
- );
-}
-
-export default function Vars() {
- const vars = useStore((state) => state.vars);
- const refreshVars = useStore((state) => state.refreshVars);
-
- let [varDrawerOpen, setVarDrawerOpen] = useState(false);
-
- const columns: ColumnDef<Var>[] = [
- {
- accessorKey: "name",
- header: "Name",
- },
- {
- accessorKey: "value",
- header: "Value",
- },
- {
- id: "actions",
- cell: ({ row }: any) => {
- const shell_var = row.original;
-
- return (
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <Button variant="ghost" className="h-8 w-8 p-0 float-right">
- <span className="sr-only">Open menu</span>
- <MoreHorizontal className="h-4 w-4 text-right" />
- </Button>
- </DropdownMenuTrigger>
- <DropdownMenuContent align="end">
- <DropdownMenuLabel>Actions</DropdownMenuLabel>
- <DropdownMenuItem
- onClick={() => deleteVar(shell_var.name, refreshVars)}
- >
- Delete
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- );
- },
- },
- ];
-
- useEffect(() => {
- refreshVars();
- }, []);
-
- return (
- <div className="pt-10">
- <div className="sm:flex sm:items-center">
- <div className="sm:flex-auto">
- <h1 className="text-base font-semibold leading-6 text-gray-900">
- Vars
- </h1>
- <p className="mt-2 text-sm text-gray-700">
- Configure environment variables here
- </p>
- </div>
- <div className="mt-4 sm:ml-16 sm:mt-0 flex-row">
- <Drawer
- open={varDrawerOpen}
- onOpenChange={setVarDrawerOpen}
- width="30%"
- trigger={
- <button
- type="button"
- className="block rounded-md bg-green-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600"
- >
- Add
- </button>
- }
- >
- <AddVar
- onAdd={() => {
- refreshVars();
- setVarDrawerOpen(false);
- }}
- />
- </Drawer>
- </div>
- </div>
- <div className="mt-8 flow-root">
- <div className="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
- <div className="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8">
- <DataTable columns={columns} data={vars} />
- </div>
- </div>
- </div>
- </div>
- );
-}
diff --git a/ui/src/components/history/HistoryInspect.tsx b/ui/src/components/history/HistoryInspect.tsx
deleted file mode 100644
index 6c46f2db..00000000
--- a/ui/src/components/history/HistoryInspect.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { useState, useEffect } from "react";
-
-import PacmanLoader from "react-spinners/PacmanLoader";
-
-import CodeBlock from "@/components/CodeBlock";
-import HistoryRow from "@/components/history/HistoryRow";
-import { ShellHistory, inspectCommandHistory } from "@/state/models";
-
-function renderLoading() {
- return (
- <div className="flex items-center justify-center h-full">
- <PacmanLoader color="#26bd65" />
- </div>
- );
-}
-
-export default function HistoryInspect({ history }: any) {
- let [other, setOther] = useState<ShellHistory[]>([]);
-
- useEffect(() => {
- (async () => {
- let inspect = await inspectCommandHistory(history);
- setOther(inspect.other);
- })();
- }, []);
-
- if (other.length == 0) return renderLoading();
-
- return (
- <div className="overflow-y-auto">
- <CodeBlock code={history.command} language="bash" />
-
- <div>
- {other.map((i: any) => {
- return <HistoryRow h={i} />;
- })}
- </div>
- </div>
- );
-}
diff --git a/ui/src/components/history/HistoryRow.tsx b/ui/src/components/history/HistoryRow.tsx
deleted file mode 100644
index 4d893e61..00000000
--- a/ui/src/components/history/HistoryRow.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-// @ts-ignore
-import { DateTime } from "luxon";
-import { ChevronRightIcon } from "@heroicons/react/20/solid";
-import { Highlight, themes } from "prism-react-renderer";
-
-// @ts-ignore
-import Prism from "prismjs";
-
-// @ts-ignore
-import "prismjs/components/prism-bash";
-
-import Drawer from "../Drawer";
-import HistoryInspect from "./HistoryInspect";
-import { cn } from "@/lib/utils";
-
-function msToTime(ms: number) {
- let milliseconds = parseInt(ms.toFixed(1));
- let seconds = parseInt((ms / 1000).toFixed(1));
- let minutes = parseInt((ms / (1000 * 60)).toFixed(1));
- let hours = parseInt((ms / (1000 * 60 * 60)).toFixed(1));
- let days = parseInt((ms / (1000 * 60 * 60 * 24)).toFixed(1));
-
- if (milliseconds < 1000) return milliseconds + "ms";
- else if (seconds < 60) return seconds + "s";
- else if (minutes < 60) return minutes + "m";
- else if (hours < 24) return hours + "hr";
- else return days + " Days";
-}
-
-export default function HistoryRow({ h, compact }: any) {
- return (
- <li
- key={h.id}
- className={cn(
- "relative flex justify-between gap-x-6 px-4 py-5 hover:bg-gray-50 sm:px-6",
- { "py-5": !compact },
- { "py-1": compact },
- )}
- >
- <div className="flex min-w-0 gap-x-4">
- {!compact && (
- <div className="flex flex-col justify-center">
- <p className="flex text-xs text-gray-500 justify-center">
- {DateTime.fromMillis(h.timestamp / 1000000).toLocaleString(
- DateTime.TIME_WITH_SECONDS,
- )}
- </p>
- <p className="flex text-xs mt-1 text-gray-400 justify-center">
- {DateTime.fromMillis(h.timestamp / 1000000).toLocaleString(
- DateTime.DATE_SHORT,
- )}
- </p>
- </div>
- )}
- <div className="min-w-0 flex-col justify-center truncate">
- <Highlight
- theme={themes.github}
- code={h.command}
- language="bash"
- prism={Prism}
- >
- {({ style, tokens, getLineProps, getTokenProps }) => (
- <pre style={style} className="!bg-inherit text-sm">
- {tokens &&
- tokens.map((line, i) => {
- if (i != 0) return;
- return (
- <div key={i} {...getLineProps({ line })}>
- {line.map((token, key) => (
- <span key={key} {...getTokenProps({ token })} />
- ))}
- </div>
- );
- })}
- </pre>
- )}
- </Highlight>
- <p className="mt-1 flex text-xs leading-5 text-gray-500">
- <span className="relative truncate ">{h.user}</span>
-
- <span>&nbsp;on&nbsp;</span>
-
- <span className="relative truncate ">{h.host}</span>
-
- <span>&nbsp;in&nbsp;</span>
-
- <span className="relative truncate ">{h.cwd}</span>
- </p>
- </div>
- </div>
- <div className="flex shrink-0 items-center gap-x-4">
- <div className="hidden sm:flex sm:flex-col sm:items-end">
- <p className="text-sm leading-6 text-gray-900">{h.exit}</p>
- {h.duration ? (
- <p className="mt-1 text-xs leading-5 text-gray-500">
- <time dateTime={h.duration}>
- {msToTime(h.duration / 1000000)}
- </time>
- </p>
- ) : (
- <div />
- )}
- </div>
- <Drawer
- width="60%"
- trigger={
- <button type="button">
- <ChevronRightIcon
- className="h-5 w-5 flex-none text-gray-400"
- aria-hidden="true"
- />
- </button>
- }
- >
- <HistoryInspect history={h} />
- </Drawer>
- </div>
- </li>
- );
-}
diff --git a/ui/src/components/history/Stats.tsx b/ui/src/components/history/Stats.tsx
deleted file mode 100644
index f399eaf0..00000000
--- a/ui/src/components/history/Stats.tsx
+++ /dev/null
@@ -1,161 +0,0 @@
-import { useState, useEffect } from "react";
-import { invoke } from "@tauri-apps/api/core";
-import PacmanLoader from "react-spinners/PacmanLoader";
-
-import {
- BarChart,
- Bar,
- XAxis,
- YAxis,
- Tooltip,
- ResponsiveContainer,
-} from "recharts";
-
-function renderLoading() {
- return (
- <div className="flex flex-col items-center justify-center h-full ">
- <div>
- <PacmanLoader color="#26bd65" />
- </div>
- <div className="block mt-4">
- <p>Crunching the latest numbers...</p>
- </div>
- </div>
- );
-}
-
-function TopTable({ stats }: any) {
- return (
- <div className="px-4 sm:px-6 lg:px-8">
- <div className="flex items-center">
- <div className="flex-auto">
- <h1 className="text-base font-semibold">Top commands</h1>
- </div>
- </div>
- <div className="mt-4 flow-root">
- <div className="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
- <div className="inline-block min-w-full py-2 align-middle">
- <table className="min-w-full divide-y divide-gray-300">
- <thead>
- <tr>
- <th
- scope="col"
- className="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6 lg:pl-8"
- >
- Command
- </th>
- <th
- scope="col"
- className="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
- >
- Count
- </th>
- </tr>
- </thead>
- <tbody className="divide-y divide-gray-200 bg-white">
- {stats.map((stat: any) => (
- <tr>
- <td className="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-6 lg:pl-8">
- {stat[0][0]}
- </td>
- <td className="whitespace-nowrap px-3 py-4 text-sm text-gray-500">
- {stat[1]}
- </td>
- </tr>
- ))}
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
- );
-}
-
-export default function Stats() {
- const [stats, setStats]: any = useState([]);
- const [top, setTop]: any = useState([]);
- const [chart, setChart]: any = useState([]);
-
- useEffect(() => {
- if (stats.length != 0) return;
-
- invoke("global_stats")
- .then((s: any) => {
- console.log(s.daily);
-
- setStats([
- {
- name: "Total history",
- stat: s.total_history.toLocaleString(),
- },
- {
- name: "Unique history",
- stat: s.stats.unique_commands.toLocaleString(),
- },
- {
- name: "Last 1d",
- stat: s.last_1d.toLocaleString(),
- },
- {
- name: "Last 7d",
- stat: s.last_7d.toLocaleString(),
- },
- {
- name: "Last 30d",
- stat: s.last_30d.toLocaleString(),
- },
- ]);
-
- setChart(s.daily);
-
- setTop(s.stats);
- })
- .catch((e) => {
- console.log(e);
- });
- }, []);
-
- if (stats.length == 0) {
- return renderLoading();
- }
-
- return (
- <div className="flex flex-col overflow-y-scroll">
- <div className="flexfull">
- <dl className="grid grid-cols-1 sm:grid-cols-5 w-full">
- {stats.map((item: any) => (
- <div
- key={item.name}
- className="overflow-hidden bg-white px-4 py-5 shadow sm:p-6"
- >
- <dt className="truncate text-sm font-medium text-gray-500">
- {item.name}
- </dt>
- <dd className="mt-1 text-3xl font-semibold tracking-tight text-gray-900">
- {item.stat}
- </dd>
- </div>
- ))}
- </dl>
- </div>
-
- <div className="flex flex-col h-54 py-4 pl-5">
- <div className="flex flex-col h-48 pt-5 pr-5">
- <ResponsiveContainer width="100%" height="100%">
- <BarChart width={500} height={300} data={chart}>
- <XAxis dataKey="name" hide={true} />
- <YAxis />
- <Tooltip />
- <Bar dataKey="value" fill="#26bd65" />
- </BarChart>
- </ResponsiveContainer>
- </div>
- </div>
-
- <div>
- <TopTable stats={top.top} />
- </div>
- </div>
- );
-}
diff --git a/ui/src/components/home/QuickActions.tsx b/ui/src/components/home/QuickActions.tsx
deleted file mode 100644
index a22e4493..00000000
--- a/ui/src/components/home/QuickActions.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export default function QuickActions() {}
diff --git a/ui/src/components/runbooks/List.tsx b/ui/src/components/runbooks/List.tsx
deleted file mode 100644
index 42da3885..00000000
--- a/ui/src/components/runbooks/List.tsx
+++ /dev/null
@@ -1,141 +0,0 @@
-import { useEffect } from "react";
-import {
- Button,
- ButtonGroup,
- Tooltip,
- Listbox,
- ListboxItem,
- Dropdown,
- DropdownTrigger,
- DropdownMenu,
- DropdownItem,
- Badge,
-} from "@nextui-org/react";
-
-import { EllipsisVerticalIcon } from "lucide-react";
-
-import { DateTime } from "luxon";
-
-import { NotebookPenIcon } from "lucide-react";
-import Runbook from "@/state/runbooks/runbook";
-import { AtuinState, useStore } from "@/state/store";
-
-const NoteSidebar = () => {
- const runbooks = useStore((state: AtuinState) => state.runbooks);
- const refreshRunbooks = useStore(
- (state: AtuinState) => state.refreshRunbooks,
- );
-
- const currentRunbook = useStore((state: AtuinState) => state.currentRunbook);
- const setCurrentRunbook = useStore(
- (state: AtuinState) => state.setCurrentRunbook,
- );
- const runbookInfo = useStore((state: AtuinState) => state.runbookInfo);
-
- useEffect(() => {
- refreshRunbooks();
- }, []);
-
- return (
- <div className="w-48 flex flex-col border-r-1">
- <div className="overflow-y-auto flex-grow">
- <Listbox
- hideSelectedIcon
- items={runbooks.map((runbook: any): any => {
- return [runbook, runbookInfo[runbook.id]];
- })}
- variant="flat"
- aria-label="Runbook list"
- selectionMode="single"
- selectedKeys={currentRunbook ? [currentRunbook] : []}
- itemClasses={{ base: "data-[selected=true]:bg-gray-200" }}
- topContent={
- <ButtonGroup className="z-20">
- <Tooltip showArrow content="New Runbook" closeDelay={50}>
- <Button
- isIconOnly
- aria-label="New note"
- variant="light"
- size="sm"
- onPress={async () => {
- // otherwise the cursor is weirdly positioned in the new document
- window.getSelection()?.removeAllRanges();
-
- let runbook = await Runbook.create();
- setCurrentRunbook(runbook.id);
- refreshRunbooks();
- }}
- >
- <NotebookPenIcon className="p-[0.15rem]" />
- </Button>
- </Tooltip>
- </ButtonGroup>
- }
- >
- {([runbook, info]: [Runbook, { ptys: number }]) => (
- <ListboxItem
- key={runbook.id}
- onPress={() => {
- setCurrentRunbook(runbook.id);
- }}
- textValue={runbook.name || "Untitled"}
- endContent={
- <Dropdown>
- <Badge
- content={info?.ptys}
- color="primary"
- style={
- info && info?.ptys > 0
- ? {}
- : {
- display: "none",
- }
- }
- >
- <DropdownTrigger className="bg-transparent">
- <Button isIconOnly>
- <EllipsisVerticalIcon
- size="16px"
- className="bg-transparent"
- />
- </Button>
- </DropdownTrigger>
- </Badge>
- <DropdownMenu aria-label="Dynamic Actions">
- <DropdownItem
- key={"delete"}
- color="danger"
- className="text-danger"
- onPress={async () => {
- await Runbook.delete(runbook.id);
-
- if (runbook.id == currentRunbook) setCurrentRunbook("");
-
- refreshRunbooks();
- }}
- >
- Delete
- </DropdownItem>
- </DropdownMenu>
- </Dropdown>
- }
- >
- <div className="flex flex-col">
- <div className="text-md">{runbook.name || "Untitled"}</div>
- <div className="text-xs text-gray-500">
- <em>
- {DateTime.fromJSDate(runbook.updated).toLocaleString(
- DateTime.DATETIME_SHORT,
- )}
- </em>
- </div>
- </div>
- </ListboxItem>
- )}
- </Listbox>
- </div>
- </div>
- );
-};
-
-export default NoteSidebar;
diff --git a/ui/src/components/runbooks/editor/Editor.tsx b/ui/src/components/runbooks/editor/Editor.tsx
deleted file mode 100644
index 6b0522f5..00000000
--- a/ui/src/components/runbooks/editor/Editor.tsx
+++ /dev/null
@@ -1,200 +0,0 @@
-import { useEffect, useMemo, useState } from "react";
-
-import "./index.css";
-
-import { Spinner } from "@nextui-org/react";
-
-// Errors, but it all works fine and is there. Maybe missing ts defs?
-// I'll figure it out later
-import {
- // @ts-ignore
- BlockNoteSchema,
- // @ts-ignore
- BlockNoteEditor,
- // @ts-ignore
- defaultBlockSpecs,
- // @ts-ignore
- filterSuggestionItems,
- // @ts-ignore
- insertOrUpdateBlock,
-} from "@blocknote/core";
-
-import {
- //@ts-ignore
- SuggestionMenuController,
- // @ts-ignore
- AddBlockButton,
- // @ts-ignore
- getDefaultReactSlashMenuItems,
- // @ts-ignore
- SideMenu,
- // @ts-ignore
- SideMenuController,
-} from "@blocknote/react";
-import { BlockNoteView } from "@blocknote/mantine";
-
-import "@blocknote/core/fonts/inter.css";
-import "@blocknote/mantine/style.css";
-
-import { CodeIcon, FolderOpenIcon } from "lucide-react";
-import { useDebounceCallback } from "usehooks-ts";
-
-import Run from "@/components/runbooks/editor/blocks/Run";
-import Directory from "@/components/runbooks/editor/blocks/Directory";
-
-import { DeleteBlock } from "@/components/runbooks/editor/ui/DeleteBlockButton";
-import { AtuinState, useStore } from "@/state/store";
-import Runbook from "@/state/runbooks/runbook";
-
-// Our schema with block specs, which contain the configs and implementations for blocks
-// that we want our editor to use.
-const schema = BlockNoteSchema.create({
- blockSpecs: {
- // Adds all default blocks.
- ...defaultBlockSpecs,
-
- // Adds the code block.
- run: Run,
- directory: Directory,
- },
-});
-
-// Slash menu item to insert an Alert block
-const insertRun = (editor: typeof schema.BlockNoteEditor) => ({
- title: "Code",
- onItemClick: () => {
- insertOrUpdateBlock(editor, {
- type: "run",
- });
- },
- icon: <CodeIcon size={18} />,
- aliases: ["code", "run"],
- group: "Execute",
-});
-
-const insertDirectory = (editor: typeof schema.BlockNoteEditor) => ({
- title: "Directory",
- onItemClick: () => {
- insertOrUpdateBlock(editor, {
- type: "directory",
- });
- },
- icon: <FolderOpenIcon size={18} />,
- aliases: ["directory", "dir", "folder"],
- group: "Execute",
-});
-
-export default function Editor() {
- const runbookId = useStore((store: AtuinState) => store.currentRunbook);
- const refreshRunbooks = useStore(
- (store: AtuinState) => store.refreshRunbooks,
- );
- let [runbook, setRunbook] = useState<Runbook | null>(null);
-
- useEffect(() => {
- if (!runbookId) return;
-
- const fetchRunbook = async () => {
- let rb = await Runbook.load(runbookId);
-
- setRunbook(rb);
- };
-
- fetchRunbook();
- }, [runbookId]);
-
- const onChange = async () => {
- if (!runbook) return;
-
- console.log("saved!");
- runbook.name = fetchName();
- if (editor) runbook.content = JSON.stringify(editor.document);
-
- await runbook.save();
- refreshRunbooks();
- };
-
- const debouncedOnChange = useDebounceCallback(onChange, 1000);
-
- const editor = useMemo(() => {
- if (!runbook) return undefined;
- if (runbook.content) {
- return BlockNoteEditor.create({
- initialContent: JSON.parse(runbook.content),
- schema,
- });
- }
-
- return BlockNoteEditor.create({ schema });
- }, [runbook]);
-
- const fetchName = (): string => {
- // Infer the title from the first text block
- if (!editor) return "Untitled";
-
- let blocks = editor.document;
- for (const block of blocks) {
- if (block.type == "heading" || block.type == "paragraph") {
- if (block.content.length == 0) continue;
- // @ts-ignore
- if (block.content[0].text.length == 0) continue;
-
- // @ts-ignore
- return block.content[0].text;
- }
- }
-
- return "Untitled";
- };
-
- if (!runbook) {
- return (
- <div className="flex w-full h-full flex-col justify-center items-center">
- <Spinner />
- </div>
- );
- }
-
- if (editor === undefined) {
- return (
- <div className="flex w-full h-full flex-col justify-center items-center">
- <Spinner />
- </div>
- );
- }
-
- // Renders the editor instance.
- return (
- <div className="overflow-y-scroll w-full">
- <BlockNoteView
- editor={editor}
- slashMenu={false}
- sideMenu={false}
- onChange={debouncedOnChange}
- >
- <SuggestionMenuController
- triggerCharacter={"/"}
- getItems={async (query: any) =>
- filterSuggestionItems(
- [
- ...getDefaultReactSlashMenuItems(editor),
- insertRun(editor),
- insertDirectory(editor),
- ],
- query,
- )
- }
- />
-
- <SideMenuController
- sideMenu={(props: any) => (
- <SideMenu {...props}>
- <AddBlockButton {...props} />
- <DeleteBlock {...props} />
- </SideMenu>
- )}
- />
- </BlockNoteView>
- </div>
- );
-}
diff --git a/ui/src/components/runbooks/editor/blocks/Directory/index.tsx b/ui/src/components/runbooks/editor/blocks/Directory/index.tsx
deleted file mode 100644
index 3e4f93d9..00000000
--- a/ui/src/components/runbooks/editor/blocks/Directory/index.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-import { useState } from "react";
-import { Input, Tooltip, Button } from "@nextui-org/react";
-import { FolderInputIcon } from "lucide-react";
-
-// @ts-ignore
-import { createReactBlockSpec } from "@blocknote/react";
-
-import { open } from "@tauri-apps/plugin-dialog";
-
-interface DirectoryProps {
- path: string;
- onInputChange: (val: string) => void;
-}
-
-const Directory = ({ path, onInputChange }: DirectoryProps) => {
- const [value, setValue] = useState(path);
-
- const selectFolder = async () => {
- const path = await open({
- multiple: false,
- directory: true,
- });
-
- setValue(path || "");
- onInputChange(path || "");
- };
-
- return (
- <div className="w-full !max-w-full !outline-none overflow-none">
- <Tooltip
- content="Change working directory for all subsequent code blocks"
- delay={1000}
- >
- <div className="flex flex-row">
- <div className="mr-2">
- <Button
- isIconOnly
- variant="flat"
- aria-label="Select folder"
- onPress={selectFolder}
- >
- <FolderInputIcon />
- </Button>
- </div>
-
- <div className="w-full">
- <Input
- placeholder="~"
- value={value}
- autoComplete="off"
- autoCapitalize="off"
- autoCorrect="off"
- spellCheck="false"
- onValueChange={(val) => {
- setValue(val);
- onInputChange(val);
- }}
- />
- </div>
- </div>
- </Tooltip>
- </div>
- );
-};
-
-export default createReactBlockSpec(
- {
- type: "directory",
- propSchema: {
- path: { default: "" },
- },
- content: "none",
- },
- {
- // @ts-ignore
- render: ({ block, editor, code, type }) => {
- const onInputChange = (val: string) => {
- editor.updateBlock(block, {
- // @ts-ignore
- props: { ...block.props, path: val },
- });
- };
-
- return (
- <Directory path={block.props.path} onInputChange={onInputChange} />
- );
- },
- },
-);
diff --git a/ui/src/components/runbooks/editor/blocks/Run/extensions.ts b/ui/src/components/runbooks/editor/blocks/Run/extensions.ts
deleted file mode 100644
index 76fc4343..00000000
--- a/ui/src/components/runbooks/editor/blocks/Run/extensions.ts
+++ /dev/null
@@ -1,158 +0,0 @@
-// Based on the basicSetup extension, as suggested by the source. Customized for Atuin.
-
-import {
- KeyBinding,
- lineNumbers,
- highlightActiveLineGutter,
- highlightSpecialChars,
- drawSelection,
- dropCursor,
- rectangularSelection,
- crosshairCursor,
- highlightActiveLine,
- keymap,
-} from "@codemirror/view";
-import { EditorState, Extension } from "@codemirror/state";
-import { history, defaultKeymap, historyKeymap } from "@codemirror/commands";
-import { highlightSelectionMatches, searchKeymap } from "@codemirror/search";
-
-import {
- closeBrackets,
- autocompletion,
- closeBracketsKeymap,
- completionKeymap,
- CompletionContext,
-} from "@codemirror/autocomplete";
-
-import {
- foldGutter,
- indentOnInput,
- syntaxHighlighting,
- defaultHighlightStyle,
- bracketMatching,
- indentUnit,
- foldKeymap,
-} from "@codemirror/language";
-
-import { lintKeymap } from "@codemirror/lint";
-import { invoke } from "@tauri-apps/api/core";
-
-export interface MinimalSetupOptions {
- highlightSpecialChars?: boolean;
- history?: boolean;
- drawSelection?: boolean;
- syntaxHighlighting?: boolean;
-
- defaultKeymap?: boolean;
- historyKeymap?: boolean;
-}
-
-export interface BasicSetupOptions extends MinimalSetupOptions {
- lineNumbers?: boolean;
- highlightActiveLineGutter?: boolean;
- foldGutter?: boolean;
- dropCursor?: boolean;
- allowMultipleSelections?: boolean;
- indentOnInput?: boolean;
- bracketMatching?: boolean;
- closeBrackets?: boolean;
- autocompletion?: boolean;
- rectangularSelection?: boolean;
- crosshairCursor?: boolean;
- highlightActiveLine?: boolean;
- highlightSelectionMatches?: boolean;
-
- closeBracketsKeymap?: boolean;
- searchKeymap?: boolean;
- foldKeymap?: boolean;
- completionKeymap?: boolean;
- lintKeymap?: boolean;
- tabSize?: number;
-}
-
-function myCompletions(context: CompletionContext) {
- let word = context.matchBefore(/^.*/);
-
- if (!word) return null;
- if (word.from == word.to && !context.explicit) return null;
-
- return invoke("prefix_search", { query: word.text }).then(
- // @ts-ignore
- (results: string[]) => {
- let options = results.map((i) => {
- return { label: i, type: "text" };
- });
-
- return {
- from: word.from,
- options,
- };
- },
- );
-}
-
-const buildAutocomplete = (): Extension => {
- let ac = autocompletion({ override: [myCompletions] });
-
- return ac;
-};
-
-export const extensions = (options: BasicSetupOptions = {}): Extension[] => {
- const { crosshairCursor: initCrosshairCursor = false } = options;
-
- let keymaps: KeyBinding[] = [];
- if (options.closeBracketsKeymap !== false) {
- keymaps = keymaps.concat(closeBracketsKeymap);
- }
- if (options.defaultKeymap !== false) {
- keymaps = keymaps.concat(defaultKeymap);
- }
- if (options.searchKeymap !== false) {
- keymaps = keymaps.concat(searchKeymap);
- }
- if (options.historyKeymap !== false) {
- keymaps = keymaps.concat(historyKeymap);
- }
- if (options.foldKeymap !== false) {
- keymaps = keymaps.concat(foldKeymap);
- }
- if (options.completionKeymap !== false) {
- keymaps = keymaps.concat(completionKeymap);
- }
- if (options.lintKeymap !== false) {
- keymaps = keymaps.concat(lintKeymap);
- }
- const extensions: Extension[] = [];
- if (options.lineNumbers !== false) extensions.push(lineNumbers());
- if (options.highlightActiveLineGutter !== false)
- extensions.push(highlightActiveLineGutter());
- if (options.highlightSpecialChars !== false)
- extensions.push(highlightSpecialChars());
- if (options.history !== false) extensions.push(history());
- if (options.foldGutter !== false) extensions.push(foldGutter());
- if (options.drawSelection !== false) extensions.push(drawSelection());
- if (options.dropCursor !== false) extensions.push(dropCursor());
- if (options.allowMultipleSelections !== false)
- extensions.push(EditorState.allowMultipleSelections.of(true));
- if (options.indentOnInput !== false) extensions.push(indentOnInput());
- if (options.syntaxHighlighting !== false)
- extensions.push(
- syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
- );
-
- if (options.bracketMatching !== false) extensions.push(bracketMatching());
- if (options.closeBrackets !== false) extensions.push(closeBrackets());
- if (options.autocompletion !== false) extensions.push(buildAutocomplete());
-
- if (options.rectangularSelection !== false)
- extensions.push(rectangularSelection());
- if (initCrosshairCursor !== false) extensions.push(crosshairCursor());
- if (options.highlightActiveLine !== false)
- extensions.push(highlightActiveLine());
- if (options.highlightSelectionMatches !== false)
- extensions.push(highlightSelectionMatches());
- if (options.tabSize && typeof options.tabSize === "number")
- extensions.push(indentUnit.of(" ".repeat(options.tabSize)));
-
- return extensions.concat([keymap.of(keymaps.flat())]).filter(Boolean);
-};
diff --git a/ui/src/components/runbooks/editor/blocks/Run/index.css b/ui/src/components/runbooks/editor/blocks/Run/index.css
deleted file mode 100644
index e854c03b..00000000
--- a/ui/src/components/runbooks/editor/blocks/Run/index.css
+++ /dev/null
@@ -1,9 +0,0 @@
-ProseMirror-focused {
- outline: none !important;
- box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1) !important;
-}
-
-.cm-editor.cm-focused {
- outline: none !important;
- box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1) !important;
-}
diff --git a/ui/src/components/runbooks/editor/blocks/Run/index.tsx b/ui/src/components/runbooks/editor/blocks/Run/index.tsx
deleted file mode 100644
index bef083ba..00000000
--- a/ui/src/components/runbooks/editor/blocks/Run/index.tsx
+++ /dev/null
@@ -1,229 +0,0 @@
-// @ts-ignore
-import { createReactBlockSpec } from "@blocknote/react";
-
-import "./index.css";
-
-import CodeMirror from "@uiw/react-codemirror";
-import { keymap } from "@codemirror/view";
-import { langs } from "@uiw/codemirror-extensions-langs";
-
-import { Play, Square } from "lucide-react";
-import { useState } from "react";
-
-import { extensions } from "./extensions";
-import { platform } from "@tauri-apps/plugin-os";
-import { invoke } from "@tauri-apps/api/core";
-import Terminal from "./terminal.tsx";
-
-import "@xterm/xterm/css/xterm.css";
-import { AtuinState, useStore } from "@/state/store.ts";
-
-interface RunBlockProps {
- onChange: (val: string) => void;
- onRun?: (pty: string) => void;
- onStop?: (pty: string) => void;
- id: string;
- code: string;
- type: string;
- pty: string;
- isEditable: boolean;
- editor: any;
-}
-
-const findFirstParentOfType = (editor: any, id: string, type: string): any => {
- // TODO: the types for blocknote aren't working. Now I'm doing this sort of shit,
- // really need to fix that.
- const document = editor.document;
- var lastOfType = null;
-
- // Iterate through ALL of the blocks.
- for (let i = 0; i < document.length; i++) {
- if (document[i].id == id) return lastOfType;
-
- if (document[i].type == type) lastOfType = document[i];
- }
-
- return lastOfType;
-};
-
-const RunBlock = ({
- onChange,
- id,
- code,
- isEditable,
- onRun,
- onStop,
- pty,
- editor,
-}: RunBlockProps) => {
- const [value, setValue] = useState<String>(code);
- const cleanupPtyTerm = useStore((store: AtuinState) => store.cleanupPtyTerm);
- const terminals = useStore((store: AtuinState) => store.terminals);
-
- const [currentRunbook, incRunbookPty, decRunbookPty] = useStore(
- (store: AtuinState) => [
- store.currentRunbook,
- store.incRunbookPty,
- store.decRunbookPty,
- ],
- );
-
- const isRunning = pty !== null && pty !== "";
-
- const handleToggle = async (event: any | null) => {
- if (event) event.stopPropagation();
-
- // If there's no code, don't do anything
- if (!value) return;
-
- if (isRunning) {
- await invoke("pty_kill", { pid: pty });
-
- terminals[pty].terminal.dispose();
- cleanupPtyTerm(pty);
-
- if (onStop) onStop(pty);
- if (currentRunbook) decRunbookPty(currentRunbook);
- }
-
- if (!isRunning) {
- let cwd = findFirstParentOfType(editor, id, "directory");
-
- if (cwd) {
- cwd = cwd.props.path;
- } else {
- cwd = "~";
- }
-
- let pty = await invoke<string>("pty_open", { cwd });
- if (onRun) onRun(pty);
-
- if (currentRunbook) incRunbookPty(currentRunbook);
-
- let isWindows = platform() == "windows";
- let cmdEnd = isWindows ? "\r\n" : "\n";
-
- let val = !value.endsWith("\n") ? value + cmdEnd : value;
- await invoke("pty_write", { pid: pty, data: val });
- }
- };
-
- const handleCmdEnter = () => {
- handleToggle(null);
- return true;
- };
-
- const customKeymap = keymap.of([
- {
- key: "Mod-Enter",
- run: handleCmdEnter,
- },
- ]);
-
- return (
- <div className="w-full !max-w-full !outline-none overflow-none">
- <div className="flex flex-row items-start">
- <div className="flex">
- <button
- onClick={handleToggle}
- className={`flex items-center justify-center flex-shrink-0 w-8 h-8 mr-2 rounded border focus:outline-none focus:ring-2 transition-all duration-300 ease-in-out ${
- isRunning
- ? "border-red-200 bg-red-50 text-red-600 hover:bg-red-100 hover:border-red-300 focus:ring-red-300"
- : "border-green-200 bg-green-50 text-green-600 hover:bg-green-100 hover:border-green-300 focus:ring-green-300"
- }`}
- aria-label={isRunning ? "Stop code" : "Run code"}
- >
- <span
- className={`inline-block transition-transform duration-300 ease-in-out ${isRunning ? "rotate-180" : ""}`}
- >
- {isRunning ? <Square size={16} /> : <Play size={16} />}
- </span>
- </button>
- </div>
- <div className="flex-1 min-w-0 w-40">
- <CodeMirror
- id={id}
- placeholder={"Write your code here..."}
- className="!pt-0 max-w-full border border-gray-300 rounded"
- value={code}
- editable={isEditable}
- autoFocus
- onChange={(val) => {
- setValue(val);
- onChange(val);
- }}
- extensions={[customKeymap, ...extensions(), langs.shell()]}
- basicSetup={false}
- />
- <div
- className={`overflow-hidden transition-all duration-300 ease-in-out min-w-0 ${
- isRunning ? "block" : "hidden"
- }`}
- >
- {pty && <Terminal pty={pty} />}
- </div>
- </div>
- </div>
- </div>
- );
-};
-
-export default createReactBlockSpec(
- {
- type: "run",
- propSchema: {
- type: {
- default: "bash",
- },
- code: { default: "" },
- pty: { default: "" },
- global: { default: false },
- },
- content: "none",
- },
- {
- // @ts-ignore
- render: ({ block, editor, code, type }) => {
- const onInputChange = (val: string) => {
- editor.updateBlock(block, {
- // @ts-ignore
- props: { ...block.props, code: val },
- });
- };
-
- const onRun = (pty: string) => {
- editor.updateBlock(block, {
- // @ts-ignore
- props: { ...block.props, pty: pty },
- });
- };
-
- const onStop = (_pty: string) => {
- editor?.updateBlock(block, {
- props: { ...block.props, pty: "" },
- });
- };
-
- return (
- <RunBlock
- onChange={onInputChange}
- id={block?.id}
- code={block.props.code}
- type={block.props.type}
- pty={block.props.pty}
- isEditable={editor.isEditable}
- onRun={onRun}
- onStop={onStop}
- editor={editor}
- />
- );
- },
- toExternalHTML: ({ block }) => {
- return (
- <pre lang="beep boop">
- <code lang="bash">{block?.props?.code}</code>
- </pre>
- );
- },
- },
-);
diff --git a/ui/src/components/runbooks/editor/blocks/Run/terminal.tsx b/ui/src/components/runbooks/editor/blocks/Run/terminal.tsx
deleted file mode 100644
index a6dc589f..00000000
--- a/ui/src/components/runbooks/editor/blocks/Run/terminal.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-import { useState, useEffect, useRef } from "react";
-import { listen } from "@tauri-apps/api/event";
-import "@xterm/xterm/css/xterm.css";
-import { useStore } from "@/state/store";
-import { invoke } from "@tauri-apps/api/core";
-import { IDisposable } from "@xterm/xterm";
-
-const usePersistentTerminal = (pty: string) => {
- const newPtyTerm = useStore((store) => store.newPtyTerm);
- const terminals = useStore((store) => store.terminals);
- const [isReady, setIsReady] = useState(false);
-
- useEffect(() => {
- if (!terminals.hasOwnProperty(pty)) {
- // create a new terminal and store it in the store.
- // this means we can resume the same instance even across mount/dismount
- newPtyTerm(pty);
- }
-
- setIsReady(true);
-
- return () => {
- // We don't dispose of the terminal when the component unmounts
- };
- }, [pty, terminals, newPtyTerm]);
-
- return { terminalData: terminals[pty], isReady };
-};
-
-const TerminalComponent = ({ pty }: any) => {
- const terminalRef = useRef(null);
- const { terminalData, isReady } = usePersistentTerminal(pty);
- const [isAttached, setIsAttached] = useState(false);
- const cleanupListenerRef = useRef<(() => void) | null>(null);
- const keyDispose = useRef<IDisposable | null>(null);
-
- useEffect(() => {
- // no pty? no terminal
- if (pty == null) return;
-
- // the terminal may still be being created so hold off
- if (!isReady) return;
-
- const windowResize = () => {
- if (!terminalData || !terminalData.fitAddon) return;
-
- terminalData.fitAddon.fit();
- };
-
- // terminal object needs attaching to a ref to a div
- if (!isAttached && terminalData && terminalData.terminal) {
- // If it's never been attached, attach it
- if (!terminalData.terminal.element && terminalRef.current) {
- terminalData.terminal.open(terminalRef.current);
-
- // it might have been previously attached, but need moving elsewhere
- } else if (terminalData && terminalRef.current) {
- // @ts-ignore
- terminalRef.current.appendChild(terminalData.terminal.element);
- }
-
- terminalData.fitAddon.fit();
- setIsAttached(true);
-
- window.addEventListener("resize", windowResize);
-
- const disposeOnKey = terminalData.terminal.onKey(async (event) => {
- await invoke("pty_write", { pid: pty, data: event.key });
- });
-
- keyDispose.current = disposeOnKey;
- }
-
- listen(`pty-${pty}`, (event: any) => {
- terminalData.terminal.write(event.payload);
- }).then((ul) => {
- cleanupListenerRef.current = ul;
- });
-
- // Customize further as needed
- return () => {
- if (
- terminalData &&
- terminalData.terminal &&
- terminalData.terminal.element
- ) {
- // Instead of removing, we just detach
- if (terminalData.terminal.element.parentElement) {
- terminalData.terminal.element.parentElement.removeChild(
- terminalData.terminal.element,
- );
- }
- setIsAttached(false);
- }
-
- if (cleanupListenerRef.current) {
- cleanupListenerRef.current();
- }
-
- if (keyDispose.current) keyDispose.current.dispose();
-
- window.removeEventListener("resize", windowResize);
- };
- }, [terminalData, isReady]);
-
- if (!isReady) return null;
-
- return (
- <div className="!max-w-full min-w-0 overflow-hidden" ref={terminalRef} />
- );
-};
-
-export default TerminalComponent;
diff --git a/ui/src/components/runbooks/editor/index.css b/ui/src/components/runbooks/editor/index.css
deleted file mode 100644
index 067cc500..00000000
--- a/ui/src/components/runbooks/editor/index.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.editor a {
- color: #0000ee;
-}
-
-.editor a:hover {
- cursor: pointer;
-}
diff --git a/ui/src/components/runbooks/editor/ui/DeleteBlockButton.tsx b/ui/src/components/runbooks/editor/ui/DeleteBlockButton.tsx
deleted file mode 100644
index 84a9f5c8..00000000
--- a/ui/src/components/runbooks/editor/ui/DeleteBlockButton.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import {
- SideMenuProps,
- useBlockNoteEditor,
- useComponentsContext,
-} from "@blocknote/react";
-import { TrashIcon } from "lucide-react";
-
-// Custom Side Menu button to remove the hovered block.
-export function DeleteBlock(props: SideMenuProps) {
- const editor = useBlockNoteEditor();
-
- const Components = useComponentsContext()!;
-
- return (
- <Components.SideMenu.Button
- label="Remove block"
- className="mx-1"
- icon={
- <TrashIcon
- size={24}
- onClick={() => {
- editor.removeBlocks([props.block]);
- }}
- />
- }
- />
- );
-}
diff --git a/ui/src/components/ui/alert.tsx b/ui/src/components/ui/alert.tsx
deleted file mode 100644
index 41fa7e05..00000000
--- a/ui/src/components/ui/alert.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import * as React from "react"
-import { cva, type VariantProps } from "class-variance-authority"
-
-import { cn } from "@/lib/utils"
-
-const alertVariants = cva(
- "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
- {
- variants: {
- variant: {
- default: "bg-background text-foreground",
- destructive:
- "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
- },
- },
- defaultVariants: {
- variant: "default",
- },
- }
-)
-
-const Alert = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>
->(({ className, variant, ...props }, ref) => (
- <div
- ref={ref}
- role="alert"
- className={cn(alertVariants({ variant }), className)}
- {...props}
- />
-))
-Alert.displayName = "Alert"
-
-const AlertTitle = React.forwardRef<
- HTMLParagraphElement,
- React.HTMLAttributes<HTMLHeadingElement>
->(({ className, ...props }, ref) => (
- <h5
- ref={ref}
- className={cn("mb-1 font-medium leading-none tracking-tight", className)}
- {...props}
- />
-))
-AlertTitle.displayName = "AlertTitle"
-
-const AlertDescription = React.forwardRef<
- HTMLParagraphElement,
- React.HTMLAttributes<HTMLParagraphElement>
->(({ className, ...props }, ref) => (
- <div
- ref={ref}
- className={cn("text-sm [&_p]:leading-relaxed", className)}
- {...props}
- />
-))
-AlertDescription.displayName = "AlertDescription"
-
-export { Alert, AlertTitle, AlertDescription }
diff --git a/ui/src/components/ui/button.tsx b/ui/src/components/ui/button.tsx
deleted file mode 100644
index 0ba42773..00000000
--- a/ui/src/components/ui/button.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import * as React from "react"
-import { Slot } from "@radix-ui/react-slot"
-import { cva, type VariantProps } from "class-variance-authority"
-
-import { cn } from "@/lib/utils"
-
-const buttonVariants = cva(
- "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
- {
- variants: {
- variant: {
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
- destructive:
- "bg-destructive text-destructive-foreground hover:bg-destructive/90",
- outline:
- "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
- secondary:
- "bg-secondary text-secondary-foreground hover:bg-secondary/80",
- ghost: "hover:bg-accent hover:text-accent-foreground",
- link: "text-primary underline-offset-4 hover:underline",
- },
- size: {
- default: "h-10 px-4 py-2",
- sm: "h-9 rounded-md px-3",
- lg: "h-11 rounded-md px-8",
- icon: "h-10 w-10",
- },
- },
- defaultVariants: {
- variant: "default",
- size: "default",
- },
- }
-)
-
-export interface ButtonProps
- extends React.ButtonHTMLAttributes<HTMLButtonElement>,
- VariantProps<typeof buttonVariants> {
- asChild?: boolean
-}
-
-const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
- ({ className, variant, size, asChild = false, ...props }, ref) => {
- const Comp = asChild ? Slot : "button"
- return (
- <Comp
- className={cn(buttonVariants({ variant, size, className }))}
- ref={ref}
- {...props}
- />
- )
- }
-)
-Button.displayName = "Button"
-
-export { Button, buttonVariants }
diff --git a/ui/src/components/ui/card.tsx b/ui/src/components/ui/card.tsx
deleted file mode 100644
index afa13ecf..00000000
--- a/ui/src/components/ui/card.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-
-const Card = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes<HTMLDivElement>
->(({ className, ...props }, ref) => (
- <div
- ref={ref}
- className={cn(
- "rounded-lg border bg-card text-card-foreground shadow-sm",
- className
- )}
- {...props}
- />
-))
-Card.displayName = "Card"
-
-const CardHeader = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes<HTMLDivElement>
->(({ className, ...props }, ref) => (
- <div
- ref={ref}
- className={cn("flex flex-col space-y-1.5 p-6", className)}
- {...props}
- />
-))
-CardHeader.displayName = "CardHeader"
-
-const CardTitle = React.forwardRef<
- HTMLParagraphElement,
- React.HTMLAttributes<HTMLHeadingElement>
->(({ className, ...props }, ref) => (
- <h3
- ref={ref}
- className={cn(
- "text-2xl font-semibold leading-none tracking-tight",
- className
- )}
- {...props}
- />
-))
-CardTitle.displayName = "CardTitle"
-
-const CardDescription = React.forwardRef<
- HTMLParagraphElement,
- React.HTMLAttributes<HTMLParagraphElement>
->(({ className, ...props }, ref) => (
- <p
- ref={ref}
- className={cn("text-sm text-muted-foreground", className)}
- {...props}
- />
-))
-CardDescription.displayName = "CardDescription"
-
-const CardContent = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes<HTMLDivElement>
->(({ className, ...props }, ref) => (
- <div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
-))
-CardContent.displayName = "CardContent"
-
-const CardFooter = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes<HTMLDivElement>
->(({ className, ...props }, ref) => (
- <div
- ref={ref}
- className={cn("flex items-center p-6 pt-0", className)}
- {...props}
- />
-))
-CardFooter.displayName = "CardFooter"
-
-export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
diff --git a/ui/src/components/ui/chart.tsx b/ui/src/components/ui/chart.tsx
deleted file mode 100644
index a21d77ee..00000000
--- a/ui/src/components/ui/chart.tsx
+++ /dev/null
@@ -1,363 +0,0 @@
-import * as React from "react"
-import * as RechartsPrimitive from "recharts"
-
-import { cn } from "@/lib/utils"
-
-// Format: { THEME_NAME: CSS_SELECTOR }
-const THEMES = { light: "", dark: ".dark" } as const
-
-export type ChartConfig = {
- [k in string]: {
- label?: React.ReactNode
- icon?: React.ComponentType
- } & (
- | { color?: string; theme?: never }
- | { color?: never; theme: Record<keyof typeof THEMES, string> }
- )
-}
-
-type ChartContextProps = {
- config: ChartConfig
-}
-
-const ChartContext = React.createContext<ChartContextProps | null>(null)
-
-function useChart() {
- const context = React.useContext(ChartContext)
-
- if (!context) {
- throw new Error("useChart must be used within a <ChartContainer />")
- }
-
- return context
-}
-
-const ChartContainer = React.forwardRef<
- HTMLDivElement,
- React.ComponentProps<"div"> & {
- config: ChartConfig
- children: React.ComponentProps<
- typeof RechartsPrimitive.ResponsiveContainer
- >["children"]
- }
->(({ id, className, children, config, ...props }, ref) => {
- const uniqueId = React.useId()
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`
-
- return (
- <ChartContext.Provider value={{ config }}>
- <div
- data-chart={chartId}
- ref={ref}
- className={cn(
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
- className
- )}
- {...props}
- >
- <ChartStyle id={chartId} config={config} />
- <RechartsPrimitive.ResponsiveContainer>
- {children}
- </RechartsPrimitive.ResponsiveContainer>
- </div>
- </ChartContext.Provider>
- )
-})
-ChartContainer.displayName = "Chart"
-
-const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
- const colorConfig = Object.entries(config).filter(
- ([_, config]) => config.theme || config.color
- )
-
- if (!colorConfig.length) {
- return null
- }
-
- return (
- <style
- dangerouslySetInnerHTML={{
- __html: Object.entries(THEMES)
- .map(
- ([theme, prefix]) => `
-${prefix} [data-chart=${id}] {
-${colorConfig
- .map(([key, itemConfig]) => {
- const color =
- itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||
- itemConfig.color
- return color ? ` --color-${key}: ${color};` : null
- })
- .join("\n")}
-}
-`
- )
- .join("\n"),
- }}
- />
- )
-}
-
-const ChartTooltip = RechartsPrimitive.Tooltip
-
-const ChartTooltipContent = React.forwardRef<
- HTMLDivElement,
- React.ComponentProps<typeof RechartsPrimitive.Tooltip> &
- React.ComponentProps<"div"> & {
- hideLabel?: boolean
- hideIndicator?: boolean
- indicator?: "line" | "dot" | "dashed"
- nameKey?: string
- labelKey?: string
- }
->(
- (
- {
- active,
- payload,
- className,
- indicator = "dot",
- hideLabel = false,
- hideIndicator = false,
- label,
- labelFormatter,
- labelClassName,
- formatter,
- color,
- nameKey,
- labelKey,
- },
- ref
- ) => {
- const { config } = useChart()
-
- const tooltipLabel = React.useMemo(() => {
- if (hideLabel || !payload?.length) {
- return null
- }
-
- const [item] = payload
- const key = `${labelKey || item.dataKey || item.name || "value"}`
- const itemConfig = getPayloadConfigFromPayload(config, item, key)
- const value =
- !labelKey && typeof label === "string"
- ? config[label as keyof typeof config]?.label || label
- : itemConfig?.label
-
- if (labelFormatter) {
- return (
- <div className={cn("font-medium", labelClassName)}>
- {labelFormatter(value, payload)}
- </div>
- )
- }
-
- if (!value) {
- return null
- }
-
- return <div className={cn("font-medium", labelClassName)}>{value}</div>
- }, [
- label,
- labelFormatter,
- payload,
- hideLabel,
- labelClassName,
- config,
- labelKey,
- ])
-
- if (!active || !payload?.length) {
- return null
- }
-
- const nestLabel = payload.length === 1 && indicator !== "dot"
-
- return (
- <div
- ref={ref}
- className={cn(
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
- className
- )}
- >
- {!nestLabel ? tooltipLabel : null}
- <div className="grid gap-1.5">
- {payload.map((item, index) => {
- const key = `${nameKey || item.name || item.dataKey || "value"}`
- const itemConfig = getPayloadConfigFromPayload(config, item, key)
- const indicatorColor = color || item.payload.fill || item.color
-
- return (
- <div
- key={item.dataKey}
- className={cn(
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
- indicator === "dot" && "items-center"
- )}
- >
- {formatter && item?.value !== undefined && item.name ? (
- formatter(item.value, item.name, item, index, item.payload)
- ) : (
- <>
- {itemConfig?.icon ? (
- <itemConfig.icon />
- ) : (
- !hideIndicator && (
- <div
- className={cn(
- "shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",
- {
- "h-2.5 w-2.5": indicator === "dot",
- "w-1": indicator === "line",
- "w-0 border-[1.5px] border-dashed bg-transparent":
- indicator === "dashed",
- "my-0.5": nestLabel && indicator === "dashed",
- }
- )}
- style={
- {
- "--color-bg": indicatorColor,
- "--color-border": indicatorColor,
- } as React.CSSProperties
- }
- />
- )
- )}
- <div
- className={cn(
- "flex flex-1 justify-between leading-none",
- nestLabel ? "items-end" : "items-center"
- )}
- >
- <div className="grid gap-1.5">
- {nestLabel ? tooltipLabel : null}
- <span className="text-muted-foreground">
- {itemConfig?.label || item.name}
- </span>
- </div>
- {item.value && (
- <span className="font-mono font-medium tabular-nums text-foreground">
- {item.value.toLocaleString()}
- </span>
- )}
- </div>
- </>
- )}
- </div>
- )
- })}
- </div>
- </div>
- )
- }
-)
-ChartTooltipContent.displayName = "ChartTooltip"
-
-const ChartLegend = RechartsPrimitive.Legend
-
-const ChartLegendContent = React.forwardRef<
- HTMLDivElement,
- React.ComponentProps<"div"> &
- Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
- hideIcon?: boolean
- nameKey?: string
- }
->(
- (
- { className, hideIcon = false, payload, verticalAlign = "bottom", nameKey },
- ref
- ) => {
- const { config } = useChart()
-
- if (!payload?.length) {
- return null
- }
-
- return (
- <div
- ref={ref}
- className={cn(
- "flex items-center justify-center gap-4",
- verticalAlign === "top" ? "pb-3" : "pt-3",
- className
- )}
- >
- {payload.map((item) => {
- const key = `${nameKey || item.dataKey || "value"}`
- const itemConfig = getPayloadConfigFromPayload(config, item, key)
-
- return (
- <div
- key={item.value}
- className={cn(
- "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
- )}
- >
- {itemConfig?.icon && !hideIcon ? (
- <itemConfig.icon />
- ) : (
- <div
- className="h-2 w-2 shrink-0 rounded-[2px]"
- style={{
- backgroundColor: item.color,
- }}
- />
- )}
- {itemConfig?.label}
- </div>
- )
- })}
- </div>
- )
- }
-)
-ChartLegendContent.displayName = "ChartLegend"
-
-// Helper to extract item config from a payload.
-function getPayloadConfigFromPayload(
- config: ChartConfig,
- payload: unknown,
- key: string
-) {
- if (typeof payload !== "object" || payload === null) {
- return undefined
- }
-
- const payloadPayload =
- "payload" in payload &&
- typeof payload.payload === "object" &&
- payload.payload !== null
- ? payload.payload
- : undefined
-
- let configLabelKey: string = key
-
- if (
- key in payload &&
- typeof payload[key as keyof typeof payload] === "string"
- ) {
- configLabelKey = payload[key as keyof typeof payload] as string
- } else if (
- payloadPayload &&
- key in payloadPayload &&
- typeof payloadPayload[key as keyof typeof payloadPayload] === "string"
- ) {
- configLabelKey = payloadPayload[
- key as keyof typeof payloadPayload
- ] as string
- }
-
- return configLabelKey in config
- ? config[configLabelKey]
- : config[key as keyof typeof config]
-}
-
-export {
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
- ChartLegend,
- ChartLegendContent,
- ChartStyle,
-}
diff --git a/ui/src/components/ui/data-table.tsx b/ui/src/components/ui/data-table.tsx
deleted file mode 100644
index cf96b620..00000000
--- a/ui/src/components/ui/data-table.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client";
-
-import {
- ColumnDef,
- flexRender,
- getCoreRowModel,
- useReactTable,
-} from "@tanstack/react-table";
-
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table";
-
-interface DataTableProps<TData, TValue> {
- columns: ColumnDef<TData, TValue>[];
- data: TData[];
-}
-
-export default function DataTable<TData, TValue>({
- columns,
- data,
-}: DataTableProps<TData, TValue>) {
- const table = useReactTable({
- data,
- columns,
- getCoreRowModel: getCoreRowModel(),
- });
-
- return (
- <div className="rounded-md border">
- <Table>
- <TableHeader>
- {table.getHeaderGroups().map((headerGroup) => (
- <TableRow key={headerGroup.id}>
- {headerGroup.headers.map((header) => {
- return (
- <TableHead key={header.id}>
- {header.isPlaceholder
- ? null
- : flexRender(
- header.column.columnDef.header,
- header.getContext(),
- )}
- </TableHead>
- );
- })}
- </TableRow>
- ))}
- </TableHeader>
- <TableBody>
- {table.getRowModel().rows?.length ? (
- table.getRowModel().rows.map((row) => (
- <TableRow
- key={row.id}
- data-state={row.getIsSelected() && "selected"}
- >
- {row.getVisibleCells().map((cell) => (
- <TableCell key={cell.id}>
- {flexRender(cell.column.columnDef.cell, cell.getContext())}
- </TableCell>
- ))}
- </TableRow>
- ))
- ) : (
- <TableRow>
- <TableCell colSpan={columns.length} className="h-24 text-center">
- No results.
- </TableCell>
- </TableRow>
- )}
- </TableBody>
- </Table>
- </div>
- );
-}
diff --git a/ui/src/components/ui/dialog.tsx b/ui/src/components/ui/dialog.tsx
deleted file mode 100644
index c23630eb..00000000
--- a/ui/src/components/ui/dialog.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-import * as React from "react"
-import * as DialogPrimitive from "@radix-ui/react-dialog"
-import { X } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-
-const Dialog = DialogPrimitive.Root
-
-const DialogTrigger = DialogPrimitive.Trigger
-
-const DialogPortal = DialogPrimitive.Portal
-
-const DialogClose = DialogPrimitive.Close
-
-const DialogOverlay = React.forwardRef<
- React.ElementRef<typeof DialogPrimitive.Overlay>,
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
->(({ className, ...props }, ref) => (
- <DialogPrimitive.Overlay
- ref={ref}
- className={cn(
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
- className
- )}
- {...props}
- />
-))
-DialogOverlay.displayName = DialogPrimitive.Overlay.displayName
-
-const DialogContent = React.forwardRef<
- React.ElementRef<typeof DialogPrimitive.Content>,
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>
->(({ className, children, ...props }, ref) => (
- <DialogPortal>
- <DialogOverlay />
- <DialogPrimitive.Content
- ref={ref}
- className={cn(
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
- className
- )}
- {...props}
- >
- {children}
- <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
- <X className="h-4 w-4" />
- <span className="sr-only">Close</span>
- </DialogPrimitive.Close>
- </DialogPrimitive.Content>
- </DialogPortal>
-))
-DialogContent.displayName = DialogPrimitive.Content.displayName
-
-const DialogHeader = ({
- className,
- ...props
-}: React.HTMLAttributes<HTMLDivElement>) => (
- <div
- className={cn(
- "flex flex-col space-y-1.5 text-center sm:text-left",
- className
- )}
- {...props}
- />
-)
-DialogHeader.displayName = "DialogHeader"
-
-const DialogFooter = ({
- className,
- ...props
-}: React.HTMLAttributes<HTMLDivElement>) => (
- <div
- className={cn(
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
- className
- )}
- {...props}
- />
-)
-DialogFooter.displayName = "DialogFooter"
-
-const DialogTitle = React.forwardRef<
- React.ElementRef<typeof DialogPrimitive.Title>,
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
->(({ className, ...props }, ref) => (
- <DialogPrimitive.Title
- ref={ref}
- className={cn(
- "text-lg font-semibold leading-none tracking-tight",
- className
- )}
- {...props}
- />
-))
-DialogTitle.displayName = DialogPrimitive.Title.displayName
-
-const DialogDescription = React.forwardRef<
- React.ElementRef<typeof DialogPrimitive.Description>,
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
->(({ className, ...props }, ref) => (
- <DialogPrimitive.Description
- ref={ref}
- className={cn("text-sm text-muted-foreground", className)}
- {...props}
- />
-))
-DialogDescription.displayName = DialogPrimitive.Description.displayName
-
-export {
- Dialog,
- DialogPortal,
- DialogOverlay,
- DialogClose,
- DialogTrigger,
- DialogContent,
- DialogHeader,
- DialogFooter,
- DialogTitle,
- DialogDescription,
-}
diff --git a/ui/src/components/ui/dropdown-menu.tsx b/ui/src/components/ui/dropdown-menu.tsx
deleted file mode 100644
index 769ff7aa..00000000
--- a/ui/src/components/ui/dropdown-menu.tsx
+++ /dev/null
@@ -1,198 +0,0 @@
-import * as React from "react"
-import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
-import { Check, ChevronRight, Circle } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-
-const DropdownMenu = DropdownMenuPrimitive.Root
-
-const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger
-
-const DropdownMenuGroup = DropdownMenuPrimitive.Group
-
-const DropdownMenuPortal = DropdownMenuPrimitive.Portal
-
-const DropdownMenuSub = DropdownMenuPrimitive.Sub
-
-const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup
-
-const DropdownMenuSubTrigger = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
- inset?: boolean
- }
->(({ className, inset, children, ...props }, ref) => (
- <DropdownMenuPrimitive.SubTrigger
- ref={ref}
- className={cn(
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
- inset && "pl-8",
- className
- )}
- {...props}
- >
- {children}
- <ChevronRight className="ml-auto h-4 w-4" />
- </DropdownMenuPrimitive.SubTrigger>
-))
-DropdownMenuSubTrigger.displayName =
- DropdownMenuPrimitive.SubTrigger.displayName
-
-const DropdownMenuSubContent = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
->(({ className, ...props }, ref) => (
- <DropdownMenuPrimitive.SubContent
- ref={ref}
- className={cn(
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
- className
- )}
- {...props}
- />
-))
-DropdownMenuSubContent.displayName =
- DropdownMenuPrimitive.SubContent.displayName
-
-const DropdownMenuContent = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.Content>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
->(({ className, sideOffset = 4, ...props }, ref) => (
- <DropdownMenuPrimitive.Portal>
- <DropdownMenuPrimitive.Content
- ref={ref}
- sideOffset={sideOffset}
- className={cn(
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
- className
- )}
- {...props}
- />
- </DropdownMenuPrimitive.Portal>
-))
-DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
-
-const DropdownMenuItem = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.Item>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
- inset?: boolean
- }
->(({ className, inset, ...props }, ref) => (
- <DropdownMenuPrimitive.Item
- ref={ref}
- className={cn(
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
- inset && "pl-8",
- className
- )}
- {...props}
- />
-))
-DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
-
-const DropdownMenuCheckboxItem = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>
->(({ className, children, checked, ...props }, ref) => (
- <DropdownMenuPrimitive.CheckboxItem
- ref={ref}
- className={cn(
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
- className
- )}
- checked={checked}
- {...props}
- >
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
- <DropdownMenuPrimitive.ItemIndicator>
- <Check className="h-4 w-4" />
- </DropdownMenuPrimitive.ItemIndicator>
- </span>
- {children}
- </DropdownMenuPrimitive.CheckboxItem>
-))
-DropdownMenuCheckboxItem.displayName =
- DropdownMenuPrimitive.CheckboxItem.displayName
-
-const DropdownMenuRadioItem = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>
->(({ className, children, ...props }, ref) => (
- <DropdownMenuPrimitive.RadioItem
- ref={ref}
- className={cn(
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
- className
- )}
- {...props}
- >
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
- <DropdownMenuPrimitive.ItemIndicator>
- <Circle className="h-2 w-2 fill-current" />
- </DropdownMenuPrimitive.ItemIndicator>
- </span>
- {children}
- </DropdownMenuPrimitive.RadioItem>
-))
-DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName
-
-const DropdownMenuLabel = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.Label>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
- inset?: boolean
- }
->(({ className, inset, ...props }, ref) => (
- <DropdownMenuPrimitive.Label
- ref={ref}
- className={cn(
- "px-2 py-1.5 text-sm font-semibold",
- inset && "pl-8",
- className
- )}
- {...props}
- />
-))
-DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
-
-const DropdownMenuSeparator = React.forwardRef<
- React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
->(({ className, ...props }, ref) => (
- <DropdownMenuPrimitive.Separator
- ref={ref}
- className={cn("-mx-1 my-1 h-px bg-muted", className)}
- {...props}
- />
-))
-DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
-
-const DropdownMenuShortcut = ({
- className,
- ...props
-}: React.HTMLAttributes<HTMLSpanElement>) => {
- return (
- <span
- className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
- {...props}
- />
- )
-}
-DropdownMenuShortcut.displayName = "DropdownMenuShortcut"
-
-export {
- DropdownMenu,
- DropdownMenuTrigger,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuCheckboxItem,
- DropdownMenuRadioItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuGroup,
- DropdownMenuPortal,
- DropdownMenuSub,
- DropdownMenuSubContent,
- DropdownMenuSubTrigger,
- DropdownMenuRadioGroup,
-}
diff --git a/ui/src/components/ui/table.tsx b/ui/src/components/ui/table.tsx
deleted file mode 100644
index 7f3502f8..00000000
--- a/ui/src/components/ui/table.tsx
+++ /dev/null
@@ -1,117 +0,0 @@
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-
-const Table = React.forwardRef<
- HTMLTableElement,
- React.HTMLAttributes<HTMLTableElement>
->(({ className, ...props }, ref) => (
- <div className="relative w-full overflow-auto">
- <table
- ref={ref}
- className={cn("w-full caption-bottom text-sm", className)}
- {...props}
- />
- </div>
-))
-Table.displayName = "Table"
-
-const TableHeader = React.forwardRef<
- HTMLTableSectionElement,
- React.HTMLAttributes<HTMLTableSectionElement>
->(({ className, ...props }, ref) => (
- <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
-))
-TableHeader.displayName = "TableHeader"
-
-const TableBody = React.forwardRef<
- HTMLTableSectionElement,
- React.HTMLAttributes<HTMLTableSectionElement>
->(({ className, ...props }, ref) => (
- <tbody
- ref={ref}
- className={cn("[&_tr:last-child]:border-0", className)}
- {...props}
- />
-))
-TableBody.displayName = "TableBody"
-
-const TableFooter = React.forwardRef<
- HTMLTableSectionElement,
- React.HTMLAttributes<HTMLTableSectionElement>
->(({ className, ...props }, ref) => (
- <tfoot
- ref={ref}
- className={cn(
- "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
- className
- )}
- {...props}
- />
-))
-TableFooter.displayName = "TableFooter"
-
-const TableRow = React.forwardRef<
- HTMLTableRowElement,
- React.HTMLAttributes<HTMLTableRowElement>
->(({ className, ...props }, ref) => (
- <tr
- ref={ref}
- className={cn(
- "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
- className
- )}
- {...props}
- />
-))
-TableRow.displayName = "TableRow"
-
-const TableHead = React.forwardRef<
- HTMLTableCellElement,
- React.ThHTMLAttributes<HTMLTableCellElement>
->(({ className, ...props }, ref) => (
- <th
- ref={ref}
- className={cn(
- "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
- className
- )}
- {...props}
- />
-))
-TableHead.displayName = "TableHead"
-
-const TableCell = React.forwardRef<
- HTMLTableCellElement,
- React.TdHTMLAttributes<HTMLTableCellElement>
->(({ className, ...props }, ref) => (
- <td
- ref={ref}
- className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)}
- {...props}
- />
-))
-TableCell.displayName = "TableCell"
-
-const TableCaption = React.forwardRef<
- HTMLTableCaptionElement,
- React.HTMLAttributes<HTMLTableCaptionElement>
->(({ className, ...props }, ref) => (
- <caption
- ref={ref}
- className={cn("mt-4 text-sm text-muted-foreground", className)}
- {...props}
- />
-))
-TableCaption.displayName = "TableCaption"
-
-export {
- Table,
- TableHeader,
- TableBody,
- TableFooter,
- TableHead,
- TableRow,
- TableCell,
- TableCaption,
-}
diff --git a/ui/src/components/ui/toast.tsx b/ui/src/components/ui/toast.tsx
deleted file mode 100644
index a8224775..00000000
--- a/ui/src/components/ui/toast.tsx
+++ /dev/null
@@ -1,127 +0,0 @@
-import * as React from "react"
-import * as ToastPrimitives from "@radix-ui/react-toast"
-import { cva, type VariantProps } from "class-variance-authority"
-import { X } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-
-const ToastProvider = ToastPrimitives.Provider
-
-const ToastViewport = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Viewport>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>
->(({ className, ...props }, ref) => (
- <ToastPrimitives.Viewport
- ref={ref}
- className={cn(
- "fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
- className
- )}
- {...props}
- />
-))
-ToastViewport.displayName = ToastPrimitives.Viewport.displayName
-
-const toastVariants = cva(
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
- {
- variants: {
- variant: {
- default: "border bg-background text-foreground",
- destructive:
- "destructive group border-destructive bg-destructive text-destructive-foreground",
- },
- },
- defaultVariants: {
- variant: "default",
- },
- }
-)
-
-const Toast = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Root>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &
- VariantProps<typeof toastVariants>
->(({ className, variant, ...props }, ref) => {
- return (
- <ToastPrimitives.Root
- ref={ref}
- className={cn(toastVariants({ variant }), className)}
- {...props}
- />
- )
-})
-Toast.displayName = ToastPrimitives.Root.displayName
-
-const ToastAction = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Action>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>
->(({ className, ...props }, ref) => (
- <ToastPrimitives.Action
- ref={ref}
- className={cn(
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
- className
- )}
- {...props}
- />
-))
-ToastAction.displayName = ToastPrimitives.Action.displayName
-
-const ToastClose = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Close>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>
->(({ className, ...props }, ref) => (
- <ToastPrimitives.Close
- ref={ref}
- className={cn(
- "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
- className
- )}
- toast-close=""
- {...props}
- >
- <X className="h-4 w-4" />
- </ToastPrimitives.Close>
-))
-ToastClose.displayName = ToastPrimitives.Close.displayName
-
-const ToastTitle = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Title>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>
->(({ className, ...props }, ref) => (
- <ToastPrimitives.Title
- ref={ref}
- className={cn("text-sm font-semibold", className)}
- {...props}
- />
-))
-ToastTitle.displayName = ToastPrimitives.Title.displayName
-
-const ToastDescription = React.forwardRef<
- React.ElementRef<typeof ToastPrimitives.Description>,
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>
->(({ className, ...props }, ref) => (
- <ToastPrimitives.Description
- ref={ref}
- className={cn("text-sm opacity-90", className)}
- {...props}
- />
-))
-ToastDescription.displayName = ToastPrimitives.Description.displayName
-
-type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>
-
-type ToastActionElement = React.ReactElement<typeof ToastAction>
-
-export {
- type ToastProps,
- type ToastActionElement,
- ToastProvider,
- ToastViewport,
- Toast,
- ToastTitle,
- ToastDescription,
- ToastClose,
- ToastAction,
-}
diff --git a/ui/src/components/ui/toaster.tsx b/ui/src/components/ui/toaster.tsx
deleted file mode 100644
index a2209ba5..00000000
--- a/ui/src/components/ui/toaster.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import {
- Toast,
- ToastClose,
- ToastDescription,
- ToastProvider,
- ToastTitle,
- ToastViewport,
-} from "@/components/ui/toast"
-import { useToast } from "@/components/ui/use-toast"
-
-export function Toaster() {
- const { toasts } = useToast()
-
- return (
- <ToastProvider>
- {toasts.map(function ({ id, title, description, action, ...props }) {
- return (
- <Toast key={id} {...props}>
- <div className="grid gap-1">
- {title && <ToastTitle>{title}</ToastTitle>}
- {description && (
- <ToastDescription>{description}</ToastDescription>
- )}
- </div>
- {action}
- <ToastClose />
- </Toast>
- )
- })}
- <ToastViewport />
- </ToastProvider>
- )
-}
diff --git a/ui/src/components/ui/use-toast.ts b/ui/src/components/ui/use-toast.ts
deleted file mode 100644
index 16713070..00000000
--- a/ui/src/components/ui/use-toast.ts
+++ /dev/null
@@ -1,192 +0,0 @@
-// Inspired by react-hot-toast library
-import * as React from "react"
-
-import type {
- ToastActionElement,
- ToastProps,
-} from "@/components/ui/toast"
-
-const TOAST_LIMIT = 1
-const TOAST_REMOVE_DELAY = 1000000
-
-type ToasterToast = ToastProps & {
- id: string
- title?: React.ReactNode
- description?: React.ReactNode
- action?: ToastActionElement
-}
-
-const actionTypes = {
- ADD_TOAST: "ADD_TOAST",
- UPDATE_TOAST: "UPDATE_TOAST",
- DISMISS_TOAST: "DISMISS_TOAST",
- REMOVE_TOAST: "REMOVE_TOAST",
-} as const
-
-let count = 0
-
-function genId() {
- count = (count + 1) % Number.MAX_SAFE_INTEGER
- return count.toString()
-}
-
-type ActionType = typeof actionTypes
-
-type Action =
- | {
- type: ActionType["ADD_TOAST"]
- toast: ToasterToast
- }
- | {
- type: ActionType["UPDATE_TOAST"]
- toast: Partial<ToasterToast>
- }
- | {
- type: ActionType["DISMISS_TOAST"]
- toastId?: ToasterToast["id"]
- }
- | {
- type: ActionType["REMOVE_TOAST"]
- toastId?: ToasterToast["id"]
- }
-
-interface State {
- toasts: ToasterToast[]
-}
-
-const toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()
-
-const addToRemoveQueue = (toastId: string) => {
- if (toastTimeouts.has(toastId)) {
- return
- }
-
- const timeout = setTimeout(() => {
- toastTimeouts.delete(toastId)
- dispatch({
- type: "REMOVE_TOAST",
- toastId: toastId,
- })
- }, TOAST_REMOVE_DELAY)
-
- toastTimeouts.set(toastId, timeout)
-}
-
-export const reducer = (state: State, action: Action): State => {
- switch (action.type) {
- case "ADD_TOAST":
- return {
- ...state,
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
- }
-
- case "UPDATE_TOAST":
- return {
- ...state,
- toasts: state.toasts.map((t) =>
- t.id === action.toast.id ? { ...t, ...action.toast } : t
- ),
- }
-
- case "DISMISS_TOAST": {
- const { toastId } = action
-
- // ! Side effects ! - This could be extracted into a dismissToast() action,
- // but I'll keep it here for simplicity
- if (toastId) {
- addToRemoveQueue(toastId)
- } else {
- state.toasts.forEach((toast) => {
- addToRemoveQueue(toast.id)
- })
- }
-
- return {
- ...state,
- toasts: state.toasts.map((t) =>
- t.id === toastId || toastId === undefined
- ? {
- ...t,
- open: false,
- }
- : t
- ),
- }
- }
- case "REMOVE_TOAST":
- if (action.toastId === undefined) {
- return {
- ...state,
- toasts: [],
- }
- }
- return {
- ...state,
- toasts: state.toasts.filter((t) => t.id !== action.toastId),
- }
- }
-}
-
-const listeners: Array<(state: State) => void> = []
-
-let memoryState: State = { toasts: [] }
-
-function dispatch(action: Action) {
- memoryState = reducer(memoryState, action)
- listeners.forEach((listener) => {
- listener(memoryState)
- })
-}
-
-type Toast = Omit<ToasterToast, "id">
-
-function toast({ ...props }: Toast) {
- const id = genId()
-
- const update = (props: ToasterToast) =>
- dispatch({
- type: "UPDATE_TOAST",
- toast: { ...props, id },
- })
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id })
-
- dispatch({
- type: "ADD_TOAST",
- toast: {
- ...props,
- id,
- open: true,
- onOpenChange: (open) => {
- if (!open) dismiss()
- },
- },
- })
-
- return {
- id: id,
- dismiss,
- update,
- }
-}
-
-function useToast() {
- const [state, setState] = React.useState<State>(memoryState)
-
- React.useEffect(() => {
- listeners.push(setState)
- return () => {
- const index = listeners.indexOf(setState)
- if (index > -1) {
- listeners.splice(index, 1)
- }
- }
- }, [state])
-
- return {
- ...state,
- toast,
- dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }),
- }
-}
-
-export { useToast, toast }
diff --git a/ui/src/global.d.ts b/ui/src/global.d.ts
deleted file mode 100644
index d97caa3a..00000000
--- a/ui/src/global.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-type Option<T> = T | null;
diff --git a/ui/src/lib/utils.ts b/ui/src/lib/utils.ts
deleted file mode 100644
index db66b3be..00000000
--- a/ui/src/lib/utils.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import type { ClassValue } from "clsx";
-
-import clsx from "clsx";
-import { extendTailwindMerge } from "tailwind-merge";
-
-const COMMON_UNITS = ["small", "medium", "large"];
-
-/**
- * We need to extend the tailwind merge to include NextUI's custom classes.
- *
- * So we can use classes like `text-small` or `text-default-500` and override them.
- */
-const twMerge = extendTailwindMerge({
- extend: {
- theme: {
- opacity: ["disabled"],
- spacing: ["divider"],
- borderWidth: COMMON_UNITS,
- borderRadius: COMMON_UNITS,
- },
- classGroups: {
- shadow: [{ shadow: COMMON_UNITS }],
- "font-size": [{ text: ["tiny", ...COMMON_UNITS] }],
- "bg-image": ["bg-stripe-gradient"],
- },
- },
-});
-
-export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs));
-}
-
-// edge still uses the old one
-export function getWeekInfo() {
- let locale = new Intl.Locale(navigator.language);
-
- // @ts-ignore
- if (locale.getWeekInfo) {
- // @ts-ignore
- return locale.getWeekInfo();
- // @ts-ignore
- } else if (locale.weekInfo) {
- // @ts-ignore
- return locale.weekInfo;
- }
-
- throw new Error("Could not fetch week info via new or old api");
-}
diff --git a/ui/src/main.tsx b/ui/src/main.tsx
deleted file mode 100644
index 5fddc82f..00000000
--- a/ui/src/main.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from "react";
-import ReactDOM from "react-dom/client";
-import { NextUIProvider } from "@nextui-org/react";
-import App from "./App";
-import "./styles.css";
-
-ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
- <React.StrictMode>
- <NextUIProvider>
- <main className="text-foreground bg-background">
- <div
- data-tauri-drag-region
- className="w-full min-h-8 z-10 border-b-1"
- />
-
- <div className="z-20 ">
- <App />
- </div>
- </main>
- </NextUIProvider>
- </React.StrictMode>,
-);
diff --git a/ui/src/pages/Dotfiles.tsx b/ui/src/pages/Dotfiles.tsx
deleted file mode 100644
index 85f5b0e0..00000000
--- a/ui/src/pages/Dotfiles.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-import { useState } from "react";
-import Aliases from "@/components/dotfiles/Aliases";
-import Vars from "@/components/dotfiles/Vars";
-
-enum Section {
- Aliases,
- Vars,
- Snippets,
-}
-
-function renderDotfiles(current: Section) {
- switch (current) {
- case Section.Aliases:
- return <Aliases />;
- case Section.Vars:
- return <Vars />;
- case Section.Snippets:
- return <div />;
- }
-}
-
-interface HeaderProps {
- current: Section;
- setCurrent: (section: Section) => void;
-}
-
-interface TabsProps {
- current: Section;
- setCurrent: (section: Section) => void;
-}
-
-function Header({ current, setCurrent }: HeaderProps) {
- return (
- <div className="md:flex md:items-center md:justify-between">
- <div className="min-w-0 flex-1">
- <h2 className="text-2xl font-bold leading-7 text-gray-900 sm:truncate sm:text-3xl sm:tracking-tight">
- Dotfiles
- </h2>
- </div>
-
- <Tabs current={current} setCurrent={setCurrent} />
- </div>
- );
-}
-
-function classNames(...classes: any[]) {
- return classes.filter(Boolean).join(" ");
-}
-
-function Tabs({ current, setCurrent }: TabsProps) {
- let tabs = [
- {
- name: "Aliases",
- isCurrent: () => current === Section.Aliases,
- section: Section.Aliases,
- },
- {
- name: "Vars",
- isCurrent: () => current === Section.Vars,
- section: Section.Vars,
- },
- {
- name: "Snippets",
- isCurrent: () => current === Section.Snippets,
- section: Section.Snippets,
- },
- ];
-
- return (
- <div>
- <div>
- <nav className="flex space-x-4" aria-label="Tabs">
- {tabs.map((tab) => (
- <button
- onClick={() => {
- setCurrent(tab.section);
- }}
- key={tab.name}
- className={classNames(
- tab.isCurrent()
- ? "bg-gray-100 text-gray-700"
- : "text-gray-500 hover:text-gray-700",
- "rounded-md px-3 py-2 text-sm font-medium",
- )}
- aria-current={tab.isCurrent() ? "page" : undefined}
- >
- {tab.name}
- </button>
- ))}
- </nav>
- </div>
- </div>
- );
-}
-
-export default function Dotfiles() {
- let [current, setCurrent] = useState(Section.Aliases);
- console.log(current);
-
- return (
- <div className="w-full flex-1 flex-col p-4 overflow-y-auto">
- <div className="p-10">
- <Header current={current} setCurrent={setCurrent} />
- Manage your shell aliases, variables and paths
- {renderDotfiles(current)}
- </div>
- </div>
- );
-}
diff --git a/ui/src/pages/History.tsx b/ui/src/pages/History.tsx
deleted file mode 100644
index 32f5217e..00000000
--- a/ui/src/pages/History.tsx
+++ /dev/null
@@ -1,73 +0,0 @@
-import { useEffect, useState, useRef } from "react";
-import { useVirtualizer } from "@tanstack/react-virtual";
-
-import HistoryList from "@/components/HistoryList.tsx";
-import HistorySearch from "@/components/HistorySearch.tsx";
-
-import { AtuinState, useStore } from "@/state/store";
-
-export default function Search() {
- const history = useStore((state: AtuinState) => state.shellHistory);
- const refreshHistory = useStore(
- (state: AtuinState) => state.refreshShellHistory,
- );
- const historyNextPage = useStore(
- (state: AtuinState) => state.historyNextPage,
- );
-
- let [query, setQuery] = useState("");
-
- useEffect(() => {
- (async () => {
- // nothing rn
- })();
-
- refreshHistory();
- }, []);
-
- const parentRef = useRef<HTMLElement | null>(null);
-
- const rowVirtualizer = useVirtualizer({
- count: history.length,
- getScrollElement: () => parentRef.current,
- estimateSize: () => 90,
- overscan: 5,
- });
-
- useEffect(() => {
- const [lastItem] = rowVirtualizer.getVirtualItems().slice(-1);
-
- if (!lastItem) return; // no undefined plz
- if (lastItem.index < history.length - 1) return; // if we're not at the end yet, bail
-
- // we're at the end! more rows plz!
- historyNextPage(query);
- }, [rowVirtualizer.getVirtualItems()]);
-
- return (
- <>
- <div className="w-full flex-1 flex-col">
- <div className="flex h-16 shrink-0 items-center gap-x-4 border-b border-t border-gray-200 bg-white px-4 shadow-sm sm:gap-x-6 sm:px-6 lg:px-8 history-search">
- <HistorySearch
- query={query}
- setQuery={(q) => {
- setQuery(q);
- refreshHistory(q);
- }}
- refresh={() => {
- refreshHistory(query);
- }}
- />
- </div>
-
- <main className="overflow-y-scroll history-list" ref={parentRef}>
- <HistoryList
- history={history}
- items={rowVirtualizer.getVirtualItems()}
- height={rowVirtualizer.getTotalSize()}
- />
- </main>
- </div>
- </>
- );
-}
diff --git a/ui/src/pages/Home.tsx b/ui/src/pages/Home.tsx
deleted file mode 100644
index 2e93a893..00000000
--- a/ui/src/pages/Home.tsx
+++ /dev/null
@@ -1,295 +0,0 @@
-import React, { useEffect } from "react";
-import { formatRelative } from "date-fns";
-import { Tooltip as ReactTooltip } from "react-tooltip";
-
-import { AtuinState, useStore } from "@/state/store";
-import { useToast } from "@/components/ui/use-toast";
-import { ToastAction } from "@/components/ui/toast";
-import { invoke } from "@tauri-apps/api/core";
-import {
- Card,
- CardHeader,
- CardBody,
- Listbox,
- ListboxItem,
-} from "@nextui-org/react";
-
-import {
- Bar,
- BarChart,
- CartesianGrid,
- LabelList,
- XAxis,
- YAxis,
-} from "recharts";
-import { ChartConfig, ChartContainer } from "@/components/ui/chart";
-
-import { Clock, Terminal } from "lucide-react";
-
-import ActivityCalendar from "react-activity-calendar";
-import HistoryRow from "@/components/history/HistoryRow";
-import { ShellHistory } from "@/state/models";
-
-function StatCard({ name, stat }: any) {
- return (
- <Card shadow="sm">
- <CardHeader>
- <h3 className="uppercase text-gray-500">{name}</h3>
- </CardHeader>
- <CardBody>
- <h2 className="font-bold text-xl">{stat}</h2>
- </CardBody>
- </Card>
- );
-}
-
-function TopChart({ chartData }: any) {
- const chartConfig = {
- command: {
- label: "Command",
- color: "#c4edde",
- },
- } satisfies ChartConfig;
-
- return (
- <ChartContainer config={chartConfig} className="max-h-72">
- <BarChart
- accessibilityLayer
- data={chartData}
- layout="vertical"
- margin={{
- right: 16,
- }}
- >
- <CartesianGrid horizontal={false} />
- <YAxis
- dataKey="command"
- type="category"
- tickLine={false}
- tickMargin={10}
- axisLine={false}
- tickFormatter={(value) => value.slice(0, 3)}
- hide
- />
- <XAxis dataKey="count" type="number" hide />
- <Bar dataKey="count" layout="vertical" fill="#c4edde" radius={4}>
- <LabelList
- dataKey="command"
- position="insideLeft"
- offset={8}
- className="fill-[--color-label]"
- fontSize={12}
- />
- <LabelList
- dataKey="count"
- position="right"
- offset={8}
- className="fill-foreground"
- fontSize={12}
- />
- </Bar>
- </BarChart>
- </ChartContainer>
- );
-}
-
-function Header({ name }: any) {
- let greeting = name && name.length > 0 ? "Hey, " + name + "!" : "Hey!";
-
- return (
- <div className="md:flex md:items-center md:justify-between">
- <div className="flex-1">
- <h2 className="text-2xl font-bold leading-7 text-gray-900 sm:truncate sm:text-3xl sm:tracking-tight">
- {greeting}
- </h2>
- <h3 className="text-xl leading-7 text-gray-900 pt-4">
- Welcome to{" "}
- <a
- href="https://atuin.sh"
- target="_blank"
- rel="noopener noreferrer nofollow"
- >
- Atuin
- </a>
- .
- </h3>
- </div>
- </div>
- );
-}
-
-const explicitTheme = {
- light: ["#f0f0f0", "#c4edde", "#7ac7c4", "#f73859", "#384259"],
- dark: ["#f0f0f0", "#c4edde", "#7ac7c4", "#f73859", "#384259"],
-};
-
-export default function Home() {
- const homeInfo = useStore((state: AtuinState) => state.homeInfo);
- const user = useStore((state: AtuinState) => state.user);
- const calendar = useStore((state: AtuinState) => state.calendar);
- const runbooks = useStore((state: AtuinState) => state.runbooks);
- const weekStart = useStore((state: AtuinState) => state.weekStart);
-
- const refreshHomeInfo = useStore(
- (state: AtuinState) => state.refreshHomeInfo,
- );
- const refreshUser = useStore((state: AtuinState) => state.refreshUser);
- const refreshCalendar = useStore(
- (state: AtuinState) => state.refreshCalendar,
- );
- const refreshRunbooks = useStore(
- (state: AtuinState) => state.refreshRunbooks,
- );
-
- const { toast } = useToast();
-
- useEffect(() => {
- refreshHomeInfo();
- refreshUser();
- refreshCalendar();
- refreshRunbooks();
-
- console.log(homeInfo);
-
- let setup = async () => {
- let installed = await invoke("is_cli_installed");
- console.log("CLI installation status:", installed);
-
- if (!installed) {
- toast({
- title: "Atuin CLI",
- description: "CLI not detected - install?",
- action: (
- <ToastAction
- altText="Install"
- onClick={() => {
- let install = async () => {
- toast({
- title: "Atuin CLI",
- description: "Install in progress...",
- });
-
- console.log("Installing CLI...");
- await invoke("install_cli");
-
- console.log("Setting up plugin...");
- await invoke("setup_cli");
-
- toast({
- title: "Atuin CLI",
- description: "Installation complete",
- });
- };
- install();
- }}
- >
- Install
- </ToastAction>
- ),
- });
- }
- };
-
- setup();
- }, []);
-
- if (!homeInfo) {
- return <div>Loading...</div>;
- }
-
- return (
- <div className="w-full flex-1 flex-col p-4 overflow-y-auto">
- <div className="pl-10">
- <Header name={user.username} />
- </div>
- <div className="p-10 grid grid-cols-4 gap-4">
- <StatCard
- name="Last Sync"
- stat={
- (homeInfo.lastSyncTime &&
- formatRelative(homeInfo.lastSyncTime, new Date())) ||
- "Never"
- }
- />
- <StatCard
- name="Total Commands"
- stat={homeInfo.historyCount.toLocaleString()}
- />
- <StatCard
- name="Total Runbooks"
- stat={runbooks.length.toLocaleString()}
- />
- <StatCard
- name="Other Records"
- stat={homeInfo.recordCount - homeInfo.historyCount}
- />
-
- <Card shadow="sm" className="col-span-3">
- <CardHeader>
- <h2 className="uppercase text-gray-500">Activity graph</h2>
- </CardHeader>
- <CardBody>
- <ActivityCalendar
- hideTotalCount
- theme={explicitTheme}
- data={calendar}
- weekStart={weekStart as any}
- renderBlock={(block, activity) =>
- React.cloneElement(block, {
- "data-tooltip-id": "react-tooltip",
- "data-tooltip-html": `${activity.count} commands on ${activity.date}`,
- })
- }
- />
- <ReactTooltip id="react-tooltip" />
- </CardBody>
- </Card>
-
- <Card shadow="sm">
- <CardHeader>
- <h2 className="uppercase text-gray-500">Quick actions </h2>
- </CardHeader>
-
- <CardBody>
- <Listbox variant="flat" aria-label="Quick actions">
- <ListboxItem
- key="new-runbook"
- description="Create an executable runbook"
- startContent={<Terminal />}
- >
- New runbook
- </ListboxItem>
- <ListboxItem
- key="shell-history"
- description="Search and explore shell history"
- startContent={<Clock />}
- >
- Shell History
- </ListboxItem>
- </Listbox>
- </CardBody>
- </Card>
-
- <Card shadow="sm" className="col-span-2">
- <CardHeader>
- <h2 className="uppercase text-gray-500">Recent commands</h2>
- </CardHeader>
- <CardBody>
- {homeInfo.recentCommands?.map((i: ShellHistory) => {
- return <HistoryRow compact h={i} />;
- })}
- </CardBody>
- </Card>
-
- <Card shadow="sm" className="col-span-2">
- <CardHeader>
- <h2 className="uppercase text-gray-500">Top commands</h2>
- </CardHeader>
- <CardBody>
- <TopChart chartData={homeInfo.topCommands} />
- </CardBody>
- </Card>
- </div>
- </div>
- );
-}
diff --git a/ui/src/pages/Runbooks.tsx b/ui/src/pages/Runbooks.tsx
deleted file mode 100644
index a0b844a6..00000000
--- a/ui/src/pages/Runbooks.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import Editor from "@/components/runbooks/editor/Editor";
-import List from "@/components/runbooks/List";
-
-import { useStore } from "@/state/store";
-
-export default function Runbooks() {
- const currentRunbook = useStore((store) => store.currentRunbook);
-
- return (
- <div className="flex w-full !max-w-full flex-row ">
- <List />
- {currentRunbook && (
- <div className="flex w-full">
- <Editor />
- </div>
- )}
-
- {!currentRunbook && (
- <div className="flex align-middle justify-center flex-col h-screen w-full">
- <h1 className="text-center">Select or create a runbook</h1>
- </div>
- )}
- </div>
- );
-}
diff --git a/ui/src/state/client.ts b/ui/src/state/client.ts
deleted file mode 100644
index c46fc4e6..00000000
--- a/ui/src/state/client.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// At some point, I'd like to replace some of the Atuin calls
-// with separate state handling here
-
-import { invoke } from "@tauri-apps/api/core";
-import { Settings } from "@/state/models";
-
-export async function sessionToken(): Promise<String> {
- return await invoke("session");
-}
-
-export async function settings(): Promise<Settings> {
- return await invoke("config");
-}
-
-export async function login(
- username: string,
- password: string,
- key: string,
-): Promise<string> {
- return await invoke("login", { username, password, key });
-}
-
-export async function logout(): Promise<string> {
- return await invoke("logout");
-}
-
-export async function register(
- username: string,
- email: string,
- password: string,
-): Promise<string> {
- return await invoke("register", { username, email, password });
-}
diff --git a/ui/src/state/models.ts b/ui/src/state/models.ts
deleted file mode 100644
index 891f7a55..00000000
--- a/ui/src/state/models.ts
+++ /dev/null
@@ -1,177 +0,0 @@
-import { invoke } from "@tauri-apps/api/core";
-import Database from "@tauri-apps/plugin-sql";
-
-export class User {
- username: string | null;
-
- constructor(username: string) {
- this.username = username;
- }
-
- isLoggedIn(): boolean {
- return this.username !== "" && this.username !== null;
- }
-}
-
-export const DefaultUser: User = new User("");
-
-export interface HomeInfo {
- historyCount: number;
- recordCount: number;
- lastSyncTime: Date | null;
- recentCommands: ShellHistory[];
- topCommands: ShellHistory[];
-}
-
-export const DefaultHomeInfo: HomeInfo = {
- historyCount: 0,
- recordCount: 0,
- lastSyncTime: new Date(),
- recentCommands: [],
- topCommands: [],
-};
-
-export class ShellHistory {
- id: string;
- timestamp: number;
- command: string;
- user: string;
- host: string;
- cwd: string;
- duration: number;
- exit: number;
-
- /// Pass a row straight from the database to this
- constructor(
- id: string,
- timestamp: number,
- command: string,
- hostuser: string,
- cwd: string,
- duration: number,
- exit: number,
- ) {
- this.id = id;
- this.timestamp = timestamp;
- this.command = command;
-
- let [host, user] = hostuser.split(":");
- this.user = user;
- this.host = host;
-
- this.cwd = cwd;
- this.duration = duration;
- this.exit = exit;
- }
-}
-
-export interface Alias {
- name: string;
- value: string;
-}
-
-export interface Var {
- name: string;
- value: string;
- export: boolean;
-}
-
-export interface InspectHistory {
- other: ShellHistory[];
-}
-
-// Not yet complete. Not all types are defined here.
-// Gonna hold off until the settings refactoring.
-export interface Settings {
- auto_sync: boolean;
- update_check: boolean;
- sync_address: string;
- sync_frequency: string;
- db_path: string;
- record_store_path: string;
- key_path: string;
- session_path: string;
- shell_up_key_binding: boolean;
- inline_height: number;
- invert: boolean;
- show_preview: boolean;
- max_preview_height: number;
- show_help: boolean;
- show_tabs: boolean;
- word_chars: string;
- scroll_context_lines: number;
- history_format: string;
- prefers_reduced_motion: boolean;
- store_failed: boolean;
- secrets_filter: boolean;
- workspaces: boolean;
- ctrl_n_shortcuts: boolean;
- network_connect_timeout: number;
- network_timeout: number;
- local_timeout: number;
- enter_accept: boolean;
- smart_sort: boolean;
- sync: Sync;
-}
-
-interface Sync {
- records: boolean;
-}
-
-// Define other interfaces (Dialect, Timezone, Style, SearchMode, FilterMode, ExitMode, KeymapMode, CursorStyle, WordJumpMode, RegexSet, Stats) accordingly.
-
-export async function inspectCommandHistory(
- h: ShellHistory,
-): Promise<InspectHistory> {
- const settings: Settings = await invoke("cli_settings");
- const db = await Database.load("sqlite:" + settings.db_path);
-
- let other: any[] = await db.select(
- "select * from history where command=?1 order by timestamp desc",
- [h.command],
- );
- console.log(other);
-
- return {
- other: other.map(
- (i) =>
- new ShellHistory(
- i.id,
- i.timestamp,
- i.command,
- i.hostname,
- i.cwd,
- i.duration,
- i.exit,
- ),
- ),
- };
-}
-
-export async function inspectDirectoryHistory(
- h: ShellHistory,
-): Promise<InspectHistory> {
- const settings: Settings = await invoke("cli_settings");
- const db = await Database.load("sqlite:" + settings.db_path);
-
- let other: any[] = await db.select(
- "select * from history where cwd=?1 order by timestamp desc",
- [h.cwd],
- );
- console.log(other);
-
- return {
- other: other.map(
- (i) =>
- new ShellHistory(
- i.id,
- i.timestamp,
- i.command,
- i.hostname,
- i.cwd,
- i.duration,
- i.exit,
- ),
- ),
- };
-}
diff --git a/ui/src/state/runbooks/runbook.ts b/ui/src/state/runbooks/runbook.ts
deleted file mode 100644
index 8555f4ea..00000000
--- a/ui/src/state/runbooks/runbook.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import Database from "@tauri-apps/plugin-sql";
-import { uuidv7 } from "uuidv7";
-
-export default class Runbook {
- id: string;
- created: Date;
- updated: Date;
-
- private _name: string;
- private _content: string;
-
- set name(value: string) {
- this.updated = new Date();
- this._name = value;
- }
-
- set content(value: string) {
- this.updated = new Date();
- this._content = value;
- }
-
- get content() {
- return this._content;
- }
-
- get name() {
- return this._name;
- }
-
- constructor(
- id: string,
- name: string,
- content: string,
- created: Date,
- updated: Date,
- ) {
- this.id = id;
- this._name = name;
- this._content = content;
- this.created = created;
- this.updated = updated;
- }
-
- /// Create a new Runbook, and automatically generate an ID.
- public static async create(): Promise<Runbook> {
- let now = new Date();
-
- // Initialize with the same value for created/updated, to avoid needing null.
- let runbook = new Runbook(uuidv7(), "", "", now, now);
- await runbook.save();
-
- return runbook;
- }
-
- public static async load(id: String): Promise<Runbook | null> {
- const db = await Database.load("sqlite:runbooks.db");
-
- let res = await db.select<any[]>("select * from runbooks where id = $1", [
- id,
- ]);
-
- if (res.length == 0) return null;
-
- let rb = res[0];
-
- return new Runbook(
- rb.id,
- rb.name,
- rb.content,
- new Date(rb.created / 1000000),
- new Date(rb.updated / 1000000),
- );
- }
-
- static async all(): Promise<Runbook[]> {
- const db = await Database.load("sqlite:runbooks.db");
-
- let res = await db.select<any[]>(
- "select * from runbooks order by updated desc",
- );
-
- return res.map((i) => {
- return new Runbook(
- i.id,
- i.name,
- i.content,
- new Date(i.created / 1000000),
- new Date(i.updated / 1000000),
- );
- });
- }
-
- public async save() {
- const db = await Database.load("sqlite:runbooks.db");
-
- await db.execute(
- `insert into runbooks(id, name, content, created, updated)
- values ($1, $2, $3, $4, $5)
-
- on conflict(id) do update
- set
- name=$2,
- content=$3,
- updated=$5`,
-
- // getTime returns a timestamp as unix milliseconds
- // we won't need or use the resolution here, but elsewhere Atuin stores timestamps in sqlite as nanoseconds since epoch
- // let's do that across the board to avoid mistakes
- [
- this.id,
- this._name,
- this._content,
- this.created.getTime() * 1000000,
- this.updated.getTime() * 1000000,
- ],
- );
- }
-
- public static async delete(id: string) {
- const db = await Database.load("sqlite:runbooks.db");
-
- await db.execute("delete from runbooks where id=$1", [id]);
- }
-}
diff --git a/ui/src/state/store.ts b/ui/src/state/store.ts
deleted file mode 100644
index 39ee0096..00000000
--- a/ui/src/state/store.ts
+++ /dev/null
@@ -1,289 +0,0 @@
-import { create } from "zustand";
-import { persist } from "zustand/middleware";
-
-import { parseISO } from "date-fns";
-
-import { fetch } from "@tauri-apps/plugin-http";
-
-import {
- User,
- DefaultUser,
- HomeInfo,
- DefaultHomeInfo,
- Alias,
- ShellHistory,
- Var,
-} from "./models";
-
-import { invoke } from "@tauri-apps/api/core";
-import { sessionToken, settings } from "./client";
-import { getWeekInfo } from "@/lib/utils";
-import Runbook from "./runbooks/runbook";
-import { Terminal } from "@xterm/xterm";
-import { FitAddon } from "@xterm/addon-fit";
-import { WebglAddon } from "@xterm/addon-webgl";
-
-export class TerminalData {
- terminal: Terminal;
- fitAddon: FitAddon;
-
- constructor(terminal: Terminal, fit: FitAddon) {
- this.terminal = terminal;
- this.fitAddon = fit;
- }
-}
-
-// I'll probs want to slice this up at some point, but for now a
-// big blobby lump of state is fine.
-// Totally just hoping that structure will be emergent in the future.
-export interface AtuinState {
- user: User;
- homeInfo: HomeInfo;
- aliases: Alias[];
- vars: Var[];
- shellHistory: ShellHistory[];
- calendar: any[];
- weekStart: number;
- runbooks: Runbook[];
- currentRunbook: string | null;
-
- refreshHomeInfo: () => void;
- refreshCalendar: () => void;
- refreshAliases: () => void;
- refreshVars: () => void;
- refreshUser: () => void;
- refreshRunbooks: () => void;
- refreshShellHistory: (query?: string) => void;
- historyNextPage: (query?: string) => void;
-
- setCurrentRunbook: (id: String) => void;
- setPtyTerm: (pty: string, terminal: any) => void;
- newPtyTerm: (pty: string) => TerminalData;
- cleanupPtyTerm: (pty: string) => void;
-
- terminals: { [pty: string]: TerminalData };
-
- // Store ephemeral state for runbooks, that is not persisted to the database
- runbookInfo: { [runbook: string]: { ptys: number } };
- incRunbookPty: (runbook: string) => void;
- decRunbookPty: (runbook: string) => void;
-}
-
-let state = (set: any, get: any): AtuinState => ({
- user: DefaultUser,
- homeInfo: DefaultHomeInfo,
- aliases: [],
- vars: [],
- shellHistory: [],
- calendar: [],
- runbooks: [],
- currentRunbook: "",
- terminals: {},
- runbookInfo: {},
-
- weekStart: getWeekInfo().firstDay,
-
- refreshAliases: () => {
- invoke("aliases").then((aliases: any) => {
- set({ aliases: aliases });
- });
- },
-
- refreshCalendar: () => {
- invoke("history_calendar").then((calendar: any) => {
- set({ calendar: calendar });
- });
- },
-
- refreshVars: () => {
- invoke("vars").then((vars: any) => {
- set({ vars: vars });
- });
- },
-
- refreshRunbooks: async () => {
- let runbooks = await Runbook.all();
- set({ runbooks });
- },
-
- refreshShellHistory: (query?: string) => {
- if (query) {
- invoke("search", { query: query })
- .then((res: any) => {
- set({ shellHistory: res });
- })
- .catch((e) => {
- console.log(e);
- });
- } else {
- invoke("list").then((res: any) => {
- set({ shellHistory: res });
- });
- }
- },
-
- refreshHomeInfo: () => {
- invoke("home_info")
- .then((res: any) => {
- console.log(res);
- set({
- homeInfo: {
- historyCount: res.history_count,
- recordCount: res.record_count,
- lastSyncTime: (res.last_sync && parseISO(res.last_sync)) || null,
- recentCommands: res.recent_commands,
- topCommands: res.top_commands.map((top: any) => ({
- command: top[0],
- count: top[1],
- })),
- },
- });
- })
- .catch((e) => {
- console.log(e);
- });
- },
-
- refreshUser: async () => {
- let config = await settings();
- let session;
-
- try {
- session = await sessionToken();
- } catch (e) {
- console.log("Not logged in, so not refreshing user");
- set({ user: DefaultUser });
- return;
- }
- let url = config.sync_address + "/api/v0/me";
-
- let res = await fetch(url, {
- headers: {
- Authorization: `Token ${session}`,
- },
- });
- let me = await res.json();
-
- set({ user: new User(me.username) });
- },
-
- historyNextPage: (query?: string) => {
- let history = get().shellHistory;
- let offset = history.length - 1;
-
- if (query) {
- invoke("search", { query: query, offset: offset })
- .then((res: any) => {
- set({ shellHistory: [...history, ...res] });
- })
- .catch((e) => {
- console.log(e);
- });
- } else {
- invoke("list", { offset: offset }).then((res: any) => {
- set({ shellHistory: [...history, ...res] });
- });
- }
- },
-
- setCurrentRunbook: (id: String) => {
- set({ currentRunbook: id });
- },
-
- setPtyTerm: (pty: string, terminal: TerminalData) => {
- set({
- terminals: { ...get().terminals, [pty]: terminal },
- });
- },
-
- cleanupPtyTerm: (pty: string) => {
- set((state: AtuinState) => {
- const terminals = Object.keys(state.terminals).reduce(
- (terms: { [pty: string]: TerminalData }, key) => {
- if (key !== pty) {
- terms[key] = state.terminals[key];
- }
- return terms;
- },
- {},
- );
-
- return { terminals };
- });
- },
-
- newPtyTerm: (pty: string) => {
- let terminal = new Terminal();
-
- // TODO: fallback to canvas, also some sort of setting to allow disabling webgl usage
- // probs fine for now though, it's widely supported. maybe issues on linux.
- terminal.loadAddon(new WebglAddon());
-
- let fitAddon = new FitAddon();
- terminal.loadAddon(fitAddon);
-
- const onResize = (size: { cols: number; rows: number }) => {
- invoke("pty_resize", {
- pid: pty,
- cols: size.cols,
- rows: size.rows,
- });
- };
-
- terminal.onResize(onResize);
-
- let td = new TerminalData(terminal, fitAddon);
-
- set({
- terminals: { ...get().terminals, [pty]: td },
- });
-
- return td;
- },
-
- incRunbookPty: (runbook: string) => {
- set((state: AtuinState) => {
- let oldVal = state.runbookInfo[runbook] || { ptys: 0 };
- let newVal = { ptys: oldVal.ptys + 1 };
- console.log(newVal);
-
- return {
- runbookInfo: {
- ...state.runbookInfo,
- [runbook]: newVal,
- },
- };
- });
- },
-
- decRunbookPty: (runbook: string) => {
- set((state: AtuinState) => {
- let newVal = state.runbookInfo[runbook];
- if (!newVal) {
- return;
- }
-
- newVal.ptys--;
-
- return {
- runbookInfo: {
- ...state.runbookInfo,
- [runbook]: newVal,
- },
- };
- });
- },
-});
-
-export const useStore = create<AtuinState>()(
- persist(state, {
- name: "atuin-storage",
-
- // don't serialize the terminals map
- // it won't work as JSON. too cyclical
- partialize: (state) =>
- Object.fromEntries(
- Object.entries(state).filter(([key]) => !["terminals"].includes(key)),
- ),
- }),
-);
diff --git a/ui/src/styles.css b/ui/src/styles.css
deleted file mode 100644
index 27e12ec6..00000000
--- a/ui/src/styles.css
+++ /dev/null
@@ -1,76 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 222.2 84% 4.9%;
-
- --card: 0 0% 100%;
- --card-foreground: 222.2 84% 4.9%;
-
- --popover: 0 0% 100%;
- --popover-foreground: 222.2 84% 4.9%;
-
- --primary: 222.2 47.4% 11.2%;
- --primary-foreground: 210 40% 98%;
-
- --secondary: 210 40% 96.1%;
- --secondary-foreground: 222.2 47.4% 11.2%;
-
- --muted: 210 40% 96.1%;
- --muted-foreground: 215.4 16.3% 46.9%;
-
- --accent: 210 40% 96.1%;
- --accent-foreground: 222.2 47.4% 11.2%;
-
- --destructive: 0 84.2% 60.2%;
- --destructive-foreground: 210 40% 98%;
-
- --border: 214.3 31.8% 91.4%;
- --input: 214.3 31.8% 91.4%;
- --ring: 222.2 84% 4.9%;
-
- --radius: 0.5rem;
- }
-
- .dark {
- --background: 222.2 84% 4.9%;
- --foreground: 210 40% 98%;
-
- --card: 222.2 84% 4.9%;
- --card-foreground: 210 40% 98%;
-
- --popover: 222.2 84% 4.9%;
- --popover-foreground: 210 40% 98%;
-
- --primary: 210 40% 98%;
- --primary-foreground: 222.2 47.4% 11.2%;
-
- --secondary: 217.2 32.6% 17.5%;
- --secondary-foreground: 210 40% 98%;
-
- --muted: 217.2 32.6% 17.5%;
- --muted-foreground: 215 20.2% 65.1%;
-
- --accent: 217.2 32.6% 17.5%;
- --accent-foreground: 210 40% 98%;
-
- --destructive: 0 62.8% 30.6%;
- --destructive-foreground: 210 40% 98%;
-
- --border: 217.2 32.6% 17.5%;
- --input: 217.2 32.6% 17.5%;
- --ring: 212.7 26.8% 83.9%;
- }
-}
-
-@layer base {
- * {
- @apply border-border;
- }
- body {
- @apply bg-background text-foreground;
- }
-}
diff --git a/ui/src/vite-env.d.ts b/ui/src/vite-env.d.ts
deleted file mode 100644
index 11f02fe2..00000000
--- a/ui/src/vite-env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-/// <reference types="vite/client" />
diff --git a/ui/tailwind.config.js b/ui/tailwind.config.js
deleted file mode 100644
index 3bb36c2d..00000000
--- a/ui/tailwind.config.js
+++ /dev/null
@@ -1,80 +0,0 @@
-const { nextui } = require("@nextui-org/react");
-
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- darkMode: "class",
- content: [
- "./pages/**/*.{ts,tsx}",
- "./components/**/*.{ts,tsx}",
- "./app/**/*.{ts,tsx}",
- "./src/**/*.{ts,tsx}",
- "./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}",
- ],
- prefix: "",
- theme: {
- container: {
- center: true,
- padding: "2rem",
- screens: {
- "2xl": "1400px",
- },
- },
- extend: {
- colors: {
- border: "hsl(var(--border))",
- input: "hsl(var(--input))",
- ring: "hsl(var(--ring))",
- background: "hsl(var(--background))",
- foreground: "hsl(var(--foreground))",
- primary: {
- DEFAULT: "hsl(var(--primary))",
- foreground: "hsl(var(--primary-foreground))",
- },
- secondary: {
- DEFAULT: "hsl(var(--secondary))",
- foreground: "hsl(var(--secondary-foreground))",
- },
- destructive: {
- DEFAULT: "hsl(var(--destructive))",
- foreground: "hsl(var(--destructive-foreground))",
- },
- muted: {
- DEFAULT: "hsl(var(--muted))",
- foreground: "hsl(var(--muted-foreground))",
- },
- accent: {
- DEFAULT: "hsl(var(--accent))",
- foreground: "hsl(var(--accent-foreground))",
- },
- popover: {
- DEFAULT: "hsl(var(--popover))",
- foreground: "hsl(var(--popover-foreground))",
- },
- card: {
- DEFAULT: "hsl(var(--card))",
- foreground: "hsl(var(--card-foreground))",
- },
- },
- borderRadius: {
- lg: "var(--radius)",
- md: "calc(var(--radius) - 2px)",
- sm: "calc(var(--radius) - 4px)",
- },
- keyframes: {
- "accordion-down": {
- from: { height: "0" },
- to: { height: "var(--radix-accordion-content-height)" },
- },
- "accordion-up": {
- from: { height: "var(--radix-accordion-content-height)" },
- to: { height: "0" },
- },
- },
- animation: {
- "accordion-down": "accordion-down 0.2s ease-out",
- "accordion-up": "accordion-up 0.2s ease-out",
- },
- },
- },
- plugins: [require("tailwindcss-animate"), nextui()],
-};
diff --git a/ui/tsconfig.json b/ui/tsconfig.json
deleted file mode 100644
index 439469d5..00000000
--- a/ui/tsconfig.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx",
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true,
-
- "paths": {
- "@/*": ["./src/*"]
- }
- },
- "include": ["src"],
- "references": [{ "path": "./tsconfig.node.json" }]
-}
diff --git a/ui/tsconfig.node.json b/ui/tsconfig.node.json
deleted file mode 100644
index 42872c59..00000000
--- a/ui/tsconfig.node.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "compilerOptions": {
- "composite": true,
- "skipLibCheck": true,
- "module": "ESNext",
- "moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true
- },
- "include": ["vite.config.ts"]
-}
diff --git a/ui/vite.config.ts b/ui/vite.config.ts
deleted file mode 100644
index 9c691d00..00000000
--- a/ui/vite.config.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { defineConfig } from "vite";
-import react from "@vitejs/plugin-react";
-import tsconfigPaths from "vite-tsconfig-paths";
-
-// https://vitejs.dev/config/
-export default defineConfig(async () => ({
- plugins: [react(), tsconfigPaths()],
-
- // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
- //
- // 1. prevent vite from obscuring rust errors
- clearScreen: false,
- // 2. tauri expects a fixed port, fail if that port is not available
- server: {
- port: 1420,
- strictPort: true,
- watch: {
- // 3. tell vite to ignore watching `src-tauri`
- ignored: ["**/src-tauri/**"],
- },
- },
-}));