diff --git a/Cargo.lock b/Cargo.lock index 0d963f9..2366bad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,7 +23,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", + "getrandom 0.2.16", "once_cell", "version_check", ] @@ -108,6 +108,12 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + [[package]] name = "arrayvec" version = "0.7.6" @@ -402,7 +408,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -579,7 +585,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -653,6 +659,16 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[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.7" @@ -801,6 +817,15 @@ dependencies = [ "serde", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -890,6 +915,21 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.2" @@ -1021,8 +1061,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "js-sys", "libc", - "wasi", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -1049,6 +1105,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1191,6 +1266,7 @@ dependencies = [ "bytes", "futures-channel", "futures-core", + "h2", "http", "http-body", "httparse", @@ -1200,6 +1276,40 @@ dependencies = [ "pin-utils", "smallvec", "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots 1.0.2", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", ] [[package]] @@ -1208,14 +1318,24 @@ version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64", "bytes", + "futures-channel", "futures-core", + "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", + "socket2", + "system-configuration", "tokio", "tower-service", + "tracing", + "windows-registry", ] [[package]] @@ -1387,6 +1507,22 @@ dependencies = [ "libc", ] +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1492,6 +1628,12 @@ dependencies = [ "value-bag", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "matchers" version = "0.2.0" @@ -1563,10 +1705,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -1589,7 +1748,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -1651,6 +1810,50 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "ordered-float" version = "4.6.0" @@ -1927,6 +2130,61 @@ dependencies = [ "unicase", ] +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "bytes", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + [[package]] name = "quote" version = "1.0.40" @@ -1936,6 +2194,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -1949,8 +2213,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -1960,7 +2234,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -1969,7 +2253,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", ] [[package]] @@ -2019,6 +2312,50 @@ dependencies = [ "bytecheck", ] +[[package]] +name = "reqwest" +version = "0.12.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 1.0.2", +] + [[package]] name = "ring" version = "0.17.14" @@ -2027,7 +2364,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", @@ -2075,7 +2412,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core", + "rand_core 0.6.4", "signature", "spki", "subtle", @@ -2126,7 +2463,7 @@ dependencies = [ "borsh", "bytes", "num-traits", - "rand", + "rand 0.8.5", "rkyv", "serde", "serde_json", @@ -2134,22 +2471,24 @@ dependencies = [ [[package]] name = "rust_rest_api" -version = "0.2.1" +version = "0.3.0" dependencies = [ + "anyhow", "askama", "axum", "chrono", "chrono-tz", "dotenvy", - "http", "migration", "mime_guess", "once_cell", + "reqwest", "rust-embed", "sea-orm", "serde", "serde_json", "tokio", + "uuid", ] [[package]] @@ -2197,6 +2536,7 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ + "web-time", "zeroize", ] @@ -2232,6 +2572,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.1", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2407,6 +2756,29 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "serde" version = "1.0.228" @@ -2527,7 +2899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -2709,7 +3081,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand", + "rand 0.8.5", "rsa", "rust_decimal", "serde", @@ -2753,7 +3125,7 @@ dependencies = [ "memchr", "num-bigint", "once_cell", - "rand", + "rand 0.8.5", "rust_decimal", "serde", "serde_json", @@ -2863,6 +3235,9 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -2875,12 +3250,46 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.61.1", +] + [[package]] name = "thiserror" version = "2.0.17" @@ -2997,6 +3406,26 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.17" @@ -3008,6 +3437,19 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml_datetime" version = "0.7.2" @@ -3054,6 +3496,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -3113,6 +3573,12 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "typenum" version = "1.19.0" @@ -3188,6 +3654,7 @@ version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ + "getrandom 0.3.3", "js-sys", "serde", "wasm-bindgen", @@ -3221,12 +3688,39 @@ dependencies = [ "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.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasite" version = "0.1.0" @@ -3315,6 +3809,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "webpki-roots" version = "0.26.11" @@ -3360,9 +3864,9 @@ checksum = "6844ee5416b285084d3d3fffd743b925a6c9385455f64f6d4fa3031c4c2749a9" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", ] [[package]] @@ -3387,19 +3891,54 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-link" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + [[package]] name = "windows-result" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" dependencies = [ - "windows-link", + "windows-link 0.2.0", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -3408,7 +3947,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" dependencies = [ - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -3453,7 +3992,7 @@ version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" dependencies = [ - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -3493,7 +4032,7 @@ version = "0.53.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" dependencies = [ - "windows-link", + "windows-link 0.2.0", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -3651,6 +4190,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + [[package]] name = "writeable" version = "0.6.1" diff --git a/Cargo.toml b/Cargo.toml index ada93b9..7cc62f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust_rest_api" -version = "0.2.1" +version = "0.3.0" edition = "2024" license = "MIT" authors = ["Habibi-Dev"] @@ -22,8 +22,10 @@ sea-orm = { version = "1.1.16", features = ["sqlx-sqlite", "runtime-tokio-rustls once_cell = "1.21.3" rust-embed = "8.7.2" askama = { version = "0.14", features = ["full"] } -http = "1.3.1" mime_guess = "2.0.5" +reqwest = { version = "0.12.23", features = ["__rustls", "json", "rustls-tls"] } +uuid = { version = "1.18.1", features = ["v4"] } +anyhow = "1.0.100" [dependencies.migration] path = "./migration" diff --git a/src/app.rs b/src/app.rs new file mode 100644 index 0000000..5262669 --- /dev/null +++ b/src/app.rs @@ -0,0 +1,63 @@ +use crate::core::config::Config; +use crate::jobs::{cache_flush::CacheFlushJob, coin_sync::CoinSyncJob}; +use crate::server; +use crate::services::{cache::StatsCache, routes::Routes}; +use crate::state::{self, APP_STATE, AppState}; +use anyhow::{Context, Result}; +use migration::{Migrator, MigratorTrait}; +use sea_orm::Database; +use std::sync::Arc; + +pub async fn run() -> Result<()> { + let config = load_config()?; + let db = setup_database().await?; + let cache = Arc::new(StatsCache::new(db.clone())); + + state::State::init(db, Arc::clone(&cache)); + + start_background_jobs(&cache)?; + + let app_state = get_app_state()?; + let app = Routes::routes(app_state); + + server::http::start_http(app, &config) + .await + .map_err(|e| anyhow::anyhow!("Failed to start HTTP server: {}", e))?; + + Ok(()) +} + +fn load_config() -> Result { + Ok(Config::from_env()) +} + +async fn setup_database() -> Result { + let db_url = + std::env::var("DATABASE_URL").context("DATABASE_URL environment variable is required")?; + + let db = Database::connect(&db_url) + .await + .context("Failed to connect to database")?; + + Migrator::up(&db, None) + .await + .context("Database migration failed")?; + + Ok(db) +} + +fn start_background_jobs(cache: &Arc) -> Result<()> { + let flush_job = CacheFlushJob::new(Arc::clone(cache)); + let coin_job = CoinSyncJob::new(); + + crate::services::jobs::FlushJob::start(vec![flush_job.into_task(), coin_job.into_task()], None); + + Ok(()) +} + +fn get_app_state() -> Result { + APP_STATE + .get() + .cloned() + .context("Application state not initialized") +} diff --git a/src/assets/index-Bu-dXgft.css b/src/assets/index-Bu-dXgft.css deleted file mode 100644 index e26ea75..0000000 --- a/src/assets/index-Bu-dXgft.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: rotateX(0);--tw-rotate-y: rotateY(0);--tw-rotate-z: rotateZ(0);--tw-skew-x: skewX(0);--tw-skew-y: skewY(0);--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-outline-style: solid;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-duration: initial}}}@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-green-500: oklch(.723 .219 149.579);--color-blue-500: oklch(.623 .214 259.815);--color-blue-600: oklch(.546 .245 262.881);--color-purple-500: oklch(.627 .265 303.9);--color-purple-600: oklch(.558 .288 302.321);--color-white: #fff;--spacing: .25rem;--container-2xl: 42rem;--container-6xl: 72rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--text-5xl: 3rem;--text-5xl--line-height: 1;--text-6xl: 3.75rem;--text-6xl--line-height: 1;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-relaxed: 1.625;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-3xl: 64px;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-font-feature-settings: var(--font-sans--font-feature-settings);--default-font-variation-settings: var(--font-sans--font-variation-settings);--default-mono-font-family: var(--font-mono);--default-mono-font-feature-settings: var(--font-mono--font-feature-settings);--default-mono-font-variation-settings: var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:currentColor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color: color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) p{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer utilities{.\@container\/card-header{container:card-header / inline-size}.absolute{position:absolute}.relative{position:relative}.-inset-1{inset:calc(var(--spacing) * -1)}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.right-1\/4{right:25%}.-bottom-8{bottom:calc(var(--spacing) * -8)}.left-1\/2{left:50%}.left-1\/4{left:25%}.-z-10{z-index:-10}.z-10{z-index:10}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width >= 40rem){.container{max-width:40rem}}@media (width >= 48rem){.container{max-width:48rem}}@media (width >= 64rem){.container{max-width:64rem}}@media (width >= 80rem){.container{max-width:80rem}}@media (width >= 96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-16{margin-top:calc(var(--spacing) * 16)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-16{width:calc(var(--spacing) * 16)}.w-96{width:calc(var(--spacing) * 96)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-primary\/20{border-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-blue-500\/5{background-color:color-mix(in srgb,oklch(.623 .214 259.815) 5%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-blue-500\/5{background-color:color-mix(in oklab,var(--color-blue-500) 5%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color: color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary) 5%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.bg-purple-500\/5{background-color:color-mix(in srgb,oklch(.627 .265 303.9) 5%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-purple-500\/5{background-color:color-mix(in oklab,var(--color-purple-500) 5%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-gradient-to-br{--tw-gradient-position: to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position: to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from: var(--background);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-card{--tw-gradient-from: var(--card);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary,.from-primary\/10{--tw-gradient-from: var(--primary);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.from-primary\/10{--tw-gradient-from: color-mix(in oklab, var(--primary) 10%, transparent)}}.via-background{--tw-gradient-via: var(--background);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.via-blue-500{--tw-gradient-via: var(--color-blue-500);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.via-blue-600{--tw-gradient-via: var(--color-blue-600);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.via-card{--tw-gradient-via: var(--card);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.to-blue-500\/10{--tw-gradient-to: color-mix(in srgb, oklch(.623 .214 259.815) 10%, transparent);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.to-blue-500\/10{--tw-gradient-to: color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.to-muted\/20{--tw-gradient-to: var(--muted);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.to-muted\/20{--tw-gradient-to: color-mix(in oklab, var(--muted) 20%, transparent)}}.to-muted\/30{--tw-gradient-to: var(--muted);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.to-muted\/30{--tw-gradient-to: color-mix(in oklab, var(--muted) 30%, transparent)}}.to-purple-500{--tw-gradient-to: var(--color-purple-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to: var(--color-purple-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{background-clip:text}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading, var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading, var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading, var(--text-5xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-none{--tw-leading: 1;line-height:1}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-blue-500{color:var(--color-blue-500)}.text-card-foreground{color:var(--card-foreground)}.text-foreground,.text-foreground\/70{color:var(--foreground)}@supports (color: color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color: color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-green-500{color:var(--color-green-500)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-500{color:var(--color-purple-500)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-5{opacity:.05}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.blur-3xl{--tw-blur: blur(var(--blur-3xl));filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-500{--tw-duration: .5s;transition-duration:.5s}.outline-none{--tw-outline-style: none;outline-style:none}@media (hover: hover){.group-hover\:opacity-40:is(:where(.group):hover *){opacity:.4}}@media (hover: hover){.hover\:bg-accent:hover{background-color:var(--accent)}}@media (hover: hover){.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}}@media (hover: hover){.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}}@media (hover: hover){.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}}@media (hover: hover){.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}@media (hover: hover){.hover\:text-foreground:hover{color:var(--foreground)}}@media (hover: hover){.hover\:underline:hover{text-decoration-line:underline}}@media (hover: hover){.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: var(--ring)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}@media (width >= 48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width >= 48rem){.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading, var(--text-6xl--line-height))}}@media (width >= 64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}@media (hover: hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color: color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}}@media (hover: hover){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color: color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}.\[\&\:last-child\]\:pb-6:last-child{padding-bottom:calc(var(--spacing) * 6)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover: hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}}@media (hover: hover){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root{--font-size: 16px;--background: #fff;--foreground: oklch(.145 0 0);--card: #fff;--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: #030213;--primary-foreground: oklch(1 0 0);--secondary: oklch(.95 .0058 264.53);--secondary-foreground: #030213;--muted: #ececf0;--muted-foreground: #717182;--accent: #e9ebef;--accent-foreground: #030213;--destructive: #d4183d;--destructive-foreground: #fff;--border: #0000001a;--input: transparent;--input-background: #f3f3f5;--switch-background: #cbced4;--font-weight-medium: 500;--font-weight-normal: 400;--ring: oklch(.708 0 0);--chart-1: oklch(.646 .222 41.116);--chart-2: oklch(.6 .118 184.704);--chart-3: oklch(.398 .07 227.392);--chart-4: oklch(.828 .189 84.429);--chart-5: oklch(.769 .188 70.08);--radius: .625rem;--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: #030213;--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: oklch(.708 0 0)}.dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.145 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.145 0 0);--popover-foreground: oklch(.985 0 0);--primary: oklch(.985 0 0);--primary-foreground: oklch(.205 0 0);--secondary: oklch(.269 0 0);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: oklch(.396 .141 25.723);--destructive-foreground: oklch(.637 .237 25.331);--border: oklch(.269 0 0);--input: oklch(.269 0 0);--ring: oklch(.439 0 0);--font-weight-medium: 500;--font-weight-normal: 400;--chart-1: oklch(.488 .243 264.376);--chart-2: oklch(.696 .17 162.48);--chart-3: oklch(.769 .188 70.08);--chart-4: oklch(.627 .265 303.9);--chart-5: oklch(.645 .246 16.439);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: oklch(.488 .243 264.376);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(.269 0 0);--sidebar-ring: oklch(.439 0 0)}html{font-size:var(--font-size)}@property --tw-rotate-x{syntax: "*"; inherits: false; initial-value: rotateX(0);}@property --tw-rotate-y{syntax: "*"; inherits: false; initial-value: rotateY(0);}@property --tw-rotate-z{syntax: "*"; inherits: false; initial-value: rotateZ(0);}@property --tw-skew-x{syntax: "*"; inherits: false; initial-value: skewX(0);}@property --tw-skew-y{syntax: "*"; inherits: false; initial-value: skewY(0);}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false}@property --tw-gradient-from{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false}@property --tw-gradient-via-stops{syntax: "*"; inherits: false}@property --tw-gradient-from-position{syntax: ""; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: ""; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false}@property --tw-font-weight{syntax: "*"; inherits: false}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-blur{syntax: "*"; inherits: false}@property --tw-brightness{syntax: "*"; inherits: false}@property --tw-contrast{syntax: "*"; inherits: false}@property --tw-grayscale{syntax: "*"; inherits: false}@property --tw-hue-rotate{syntax: "*"; inherits: false}@property --tw-invert{syntax: "*"; inherits: false}@property --tw-opacity{syntax: "*"; inherits: false}@property --tw-saturate{syntax: "*"; inherits: false}@property --tw-sepia{syntax: "*"; inherits: false}@property --tw-drop-shadow{syntax: "*"; inherits: false}@property --tw-drop-shadow-color{syntax: "*"; inherits: false}@property --tw-drop-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false}@property --tw-duration{syntax: "*"; inherits: false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}} diff --git a/src/assets/index-C2f6evCj.css b/src/assets/index-C2f6evCj.css new file mode 100644 index 0000000..b905893 --- /dev/null +++ b/src/assets/index-C2f6evCj.css @@ -0,0 +1 @@ +/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: rotateX(0);--tw-rotate-y: rotateY(0);--tw-rotate-z: rotateZ(0);--tw-skew-x: skewX(0);--tw-skew-y: skewY(0);--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-outline-style: solid;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-duration: initial;--tw-ease: initial}}}@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-green-500: oklch(.723 .219 149.579);--color-blue-400: oklch(.707 .165 254.624);--color-blue-500: oklch(.623 .214 259.815);--color-blue-600: oklch(.546 .245 262.881);--color-indigo-400: oklch(.673 .182 276.935);--color-indigo-500: oklch(.585 .233 277.117);--color-purple-400: oklch(.714 .203 305.504);--color-purple-500: oklch(.627 .265 303.9);--color-purple-600: oklch(.558 .288 302.321);--color-white: #fff;--spacing: .25rem;--container-2xl: 42rem;--container-6xl: 72rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--text-5xl: 3rem;--text-5xl--line-height: 1;--text-6xl: 3.75rem;--text-6xl--line-height: 1;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-relaxed: 1.625;--radius-2xl: 1rem;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-3xl: 64px;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-font-feature-settings: var(--font-sans--font-feature-settings);--default-font-variation-settings: var(--font-sans--font-variation-settings);--default-mono-font-family: var(--font-mono);--default-mono-font-feature-settings: var(--font-mono--font-feature-settings);--default-mono-font-variation-settings: var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:currentColor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color: color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) p{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer utilities{.\@container\/card-header{container:card-header / inline-size}.absolute{position:absolute}.relative{position:relative}.-inset-1{inset:calc(var(--spacing) * -1)}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/3{top:33.3333%}.right-1\/3{right:33.3333%}.right-1\/4{right:25%}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-1\/4{left:25%}.z-10{z-index:10}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width >= 40rem){.container{max-width:40rem}}@media (width >= 48rem){.container{max-width:48rem}}@media (width >= 64rem){.container{max-width:64rem}}@media (width >= 80rem){.container{max-width:80rem}}@media (width >= 96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-16{margin-top:calc(var(--spacing) * 16)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-\[400px\]{height:400px}.h-\[500px\]{height:500px}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-16{width:calc(var(--spacing) * 16)}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.animate-ping{animation:var(--animate-ping)}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-purple-500\/20{border-color:color-mix(in srgb,oklch(.627 .265 303.9) 20%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-purple-500\/20{border-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-blue-400\/20{background-color:color-mix(in srgb,oklch(.707 .165 254.624) 20%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-blue-400\/20{background-color:color-mix(in oklab,var(--color-blue-400) 20%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-indigo-400\/15{background-color:color-mix(in srgb,oklch(.673 .182 276.935) 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-indigo-400\/15{background-color:color-mix(in oklab,var(--color-indigo-400) 15%,transparent)}}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color: color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-purple-400\/20{background-color:color-mix(in srgb,oklch(.714 .203 305.504) 20%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-purple-400\/20{background-color:color-mix(in oklab,var(--color-purple-400) 20%,transparent)}}.bg-purple-500\/20{background-color:color-mix(in srgb,oklch(.627 .265 303.9) 20%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-gradient-to-br{--tw-gradient-position: to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position: to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-card{--tw-gradient-from: var(--card);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary{--tw-gradient-from: var(--primary);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-purple-500\/10{--tw-gradient-from: color-mix(in srgb, oklch(.627 .265 303.9) 10%, transparent);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.from-purple-500\/10{--tw-gradient-from: color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.via-blue-500{--tw-gradient-via: var(--color-blue-500);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.via-blue-600{--tw-gradient-via: var(--color-blue-600);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.via-card{--tw-gradient-via: var(--card);--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-via-stops)}.to-muted\/30{--tw-gradient-to: var(--muted);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.to-muted\/30{--tw-gradient-to: color-mix(in oklab, var(--muted) 30%, transparent)}}.to-purple-500{--tw-gradient-to: var(--color-purple-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to: var(--color-purple-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600\/10{--tw-gradient-to: color-mix(in srgb, oklch(.558 .288 302.321) 10%, transparent);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@supports (color: color-mix(in lab,red,red)){.to-purple-600\/10{--tw-gradient-to: color-mix(in oklab, var(--color-purple-600) 10%, transparent)}}.bg-clip-text{background-clip:text}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading, var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading, var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading, var(--text-5xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-none{--tw-leading: 1;line-height:1}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-foreground,.text-foreground\/70{color:var(--foreground)}@supports (color: color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color: color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-green-500{color:var(--color-green-500)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-5{opacity:.05}.opacity-25{opacity:.25}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.blur-3xl{--tw-blur: blur(var(--blur-3xl));filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-500{--tw-duration: .5s;transition-duration:.5s}.ease-in-out{--tw-ease: var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style: none;outline-style:none}@media (hover: hover){.group-hover\:opacity-40:is(:where(.group):hover *){opacity:.4}}@media (hover: hover){.hover\:bg-accent:hover{background-color:var(--accent)}}@media (hover: hover){.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}}@media (hover: hover){.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}}@media (hover: hover){.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}}@media (hover: hover){.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}@media (hover: hover){.hover\:text-foreground:hover{color:var(--foreground)}}@media (hover: hover){.hover\:underline:hover{text-decoration-line:underline}}@media (hover: hover){.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: var(--ring)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}@media (width >= 48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width >= 48rem){.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading, var(--text-6xl--line-height))}}@media (width >= 64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-blue-500\/15:is(.dark *){background-color:color-mix(in srgb,oklch(.623 .214 259.815) 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-blue-500\/15:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-indigo-500\/12:is(.dark *){background-color:color-mix(in srgb,oklch(.585 .233 277.117) 12%,transparent)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-indigo-500\/12:is(.dark *){background-color:color-mix(in oklab,var(--color-indigo-500) 12%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:bg-purple-500\/15:is(.dark *){background-color:color-mix(in srgb,oklch(.627 .265 303.9) 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.dark\:bg-purple-500\/15:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-500) 15%,transparent)}}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}@media (hover: hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color: color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}}@media (hover: hover){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color: color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color: var(--destructive)}@supports (color: color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}.\[\&\:last-child\]\:pb-6:last-child{padding-bottom:calc(var(--spacing) * 6)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover: hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}}@media (hover: hover){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color: color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}}@media (hover: hover){a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root{--font-size: 16px;--background: #fff;--foreground: oklch(.145 0 0);--card: #fff;--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: #030213;--primary-foreground: oklch(1 0 0);--secondary: oklch(.95 .0058 264.53);--secondary-foreground: #030213;--muted: #ececf0;--muted-foreground: #717182;--accent: #e9ebef;--accent-foreground: #030213;--destructive: #d4183d;--destructive-foreground: #fff;--border: #0000001a;--input: transparent;--input-background: #f3f3f5;--switch-background: #cbced4;--font-weight-medium: 500;--font-weight-normal: 400;--ring: oklch(.708 0 0);--chart-1: oklch(.646 .222 41.116);--chart-2: oklch(.6 .118 184.704);--chart-3: oklch(.398 .07 227.392);--chart-4: oklch(.828 .189 84.429);--chart-5: oklch(.769 .188 70.08);--radius: .625rem;--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: #030213;--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: oklch(.708 0 0)}.dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.145 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.145 0 0);--popover-foreground: oklch(.985 0 0);--primary: oklch(.985 0 0);--primary-foreground: oklch(.205 0 0);--secondary: oklch(.269 0 0);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: oklch(.396 .141 25.723);--destructive-foreground: oklch(.637 .237 25.331);--border: oklch(.269 0 0);--input: oklch(.269 0 0);--ring: oklch(.439 0 0);--font-weight-medium: 500;--font-weight-normal: 400;--chart-1: oklch(.488 .243 264.376);--chart-2: oklch(.696 .17 162.48);--chart-3: oklch(.769 .188 70.08);--chart-4: oklch(.627 .265 303.9);--chart-5: oklch(.645 .246 16.439);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: oklch(.488 .243 264.376);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(.269 0 0);--sidebar-ring: oklch(.439 0 0)}html{font-size:var(--font-size)}@property --tw-rotate-x{syntax: "*"; inherits: false; initial-value: rotateX(0);}@property --tw-rotate-y{syntax: "*"; inherits: false; initial-value: rotateY(0);}@property --tw-rotate-z{syntax: "*"; inherits: false; initial-value: rotateZ(0);}@property --tw-skew-x{syntax: "*"; inherits: false; initial-value: skewX(0);}@property --tw-skew-y{syntax: "*"; inherits: false; initial-value: skewY(0);}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false}@property --tw-gradient-from{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false}@property --tw-gradient-via-stops{syntax: "*"; inherits: false}@property --tw-gradient-from-position{syntax: ""; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: ""; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false}@property --tw-font-weight{syntax: "*"; inherits: false}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-blur{syntax: "*"; inherits: false}@property --tw-brightness{syntax: "*"; inherits: false}@property --tw-contrast{syntax: "*"; inherits: false}@property --tw-grayscale{syntax: "*"; inherits: false}@property --tw-hue-rotate{syntax: "*"; inherits: false}@property --tw-invert{syntax: "*"; inherits: false}@property --tw-opacity{syntax: "*"; inherits: false}@property --tw-saturate{syntax: "*"; inherits: false}@property --tw-sepia{syntax: "*"; inherits: false}@property --tw-drop-shadow{syntax: "*"; inherits: false}@property --tw-drop-shadow-color{syntax: "*"; inherits: false}@property --tw-drop-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false}@property --tw-duration{syntax: "*"; inherits: false}@property --tw-ease{syntax: "*"; inherits: false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}} diff --git a/src/assets/index-DM3BAv3J.js b/src/assets/index-DqpVWQNW.js similarity index 51% rename from src/assets/index-DM3BAv3J.js rename to src/assets/index-DqpVWQNW.js index 27c9f75..8703f0e 100644 --- a/src/assets/index-DM3BAv3J.js +++ b/src/assets/index-DqpVWQNW.js @@ -1,4 +1,4 @@ -(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const w of document.querySelectorAll('link[rel="modulepreload"]'))p(w);new MutationObserver(w=>{for(const x of w)if(x.type==="childList")for(const _ of x.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&p(_)}).observe(document,{childList:!0,subtree:!0});function s(w){const x={};return w.integrity&&(x.integrity=w.integrity),w.referrerPolicy&&(x.referrerPolicy=w.referrerPolicy),w.crossOrigin==="use-credentials"?x.credentials="include":w.crossOrigin==="anonymous"?x.credentials="omit":x.credentials="same-origin",x}function p(w){if(w.ep)return;w.ep=!0;const x=s(w);fetch(w.href,x)}})();function Ec(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var us={exports:{}},co={},cs={exports:{}},ue={};/** +(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const w of document.querySelectorAll('link[rel="modulepreload"]'))p(w);new MutationObserver(w=>{for(const x of w)if(x.type==="childList")for(const _ of x.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&p(_)}).observe(document,{childList:!0,subtree:!0});function s(w){const x={};return w.integrity&&(x.integrity=w.integrity),w.referrerPolicy&&(x.referrerPolicy=w.referrerPolicy),w.crossOrigin==="use-credentials"?x.credentials="include":w.crossOrigin==="anonymous"?x.credentials="omit":x.credentials="same-origin",x}function p(w){if(w.ep)return;w.ep=!0;const x=s(w);fetch(w.href,x)}})();function Ec(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var cs={exports:{}},co={},ds={exports:{}},ue={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var tc;function Af(){if(tc)return ue;tc=1;var a=Symbol.for("react.element"),c=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),x=Symbol.for("react.provider"),_=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),P=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),m=Symbol.iterator;function G(h){return h===null||typeof h!="object"?null:(h=m&&h[m]||h["@@iterator"],typeof h=="function"?h:null)}var se={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},J=Object.assign,le={};function re(h,E,R){this.props=h,this.context=E,this.refs=le,this.updater=R||se}re.prototype.isReactComponent={},re.prototype.setState=function(h,E){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,E,"setState")},re.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function ee(){}ee.prototype=re.prototype;function Ie(h,E,R){this.props=h,this.context=E,this.refs=le,this.updater=R||se}var Se=Ie.prototype=new ee;Se.constructor=Ie,J(Se,re.prototype),Se.isPureReactComponent=!0;var he=Array.isArray,Te=Object.prototype.hasOwnProperty,de={current:null},ve={key:!0,ref:!0,__self:!0,__source:!0};function V(h,E,R){var I,W={},ne=null,K=null;if(E!=null)for(I in E.ref!==void 0&&(K=E.ref),E.key!==void 0&&(ne=""+E.key),E)Te.call(E,I)&&!ve.hasOwnProperty(I)&&(W[I]=E[I]);var Y=arguments.length-2;if(Y===1)W.children=R;else if(1>>1,E=k[h];if(0>>1;hw(W,L))new(K,W)?(k[h]=K,k[ne]=L,h=ne):(k[h]=W,k[I]=L,h=I);else if(new(K,L))k[h]=K,k[ne]=L,h=ne;else break e}}return H}function w(k,H){var L=k.sortIndex-H.sortIndex;return L!==0?L:k.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var x=performance;a.unstable_now=function(){return x.now()}}else{var _=Date,M=_.now();a.unstable_now=function(){return _.now()-M}}var z=[],P=[],U=1,m=null,G=3,se=!1,J=!1,le=!1,re=typeof setTimeout=="function"?setTimeout:null,ee=typeof clearTimeout=="function"?clearTimeout:null,Ie=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Se(k){for(var H=s(P);H!==null;){if(H.callback===null)p(P);else if(H.startTime<=k)p(P),H.sortIndex=H.expirationTime,c(z,H);else break;H=s(P)}}function he(k){if(le=!1,Se(k),!J)if(s(z)!==null)J=!0,q(Te);else{var H=s(P);H!==null&&te(he,H.startTime-k)}}function Te(k,H){J=!1,le&&(le=!1,ee(V),V=-1),se=!0;var L=G;try{for(Se(H),m=s(z);m!==null&&(!(m.expirationTime>H)||k&&!lt());){var h=m.callback;if(typeof h=="function"){m.callback=null,G=m.priorityLevel;var E=h(m.expirationTime<=H);H=a.unstable_now(),typeof E=="function"?m.callback=E:m===s(z)&&p(z),Se(H)}else p(z);m=s(z)}if(m!==null)var R=!0;else{var I=s(P);I!==null&&te(he,I.startTime-H),R=!1}return R}finally{m=null,G=L,se=!1}}var de=!1,ve=null,V=-1,Pe=5,Ye=-1;function lt(){return!(a.unstable_now()-Yek||125h?(k.sortIndex=L,c(P,k),s(z)===null&&k===s(P)&&(le?(ee(V),V=-1):le=!0,te(he,L-h))):(k.sortIndex=E,c(z,k),J||se||(J=!0,q(Te))),k},a.unstable_shouldYield=lt,a.unstable_wrapCallback=function(k){var H=G;return function(){var L=G;G=H;try{return k.apply(this,arguments)}finally{G=L}}}})(ps)),ps}var ic;function Vf(){return ic||(ic=1,fs.exports=Uf()),fs.exports}/** + */var ic;function Bf(){return ic||(ic=1,(function(a){function c(k,H){var L=k.length;k.push(H);e:for(;0>>1,S=k[h];if(0>>1;hw(W,L))new(K,W)?(k[h]=K,k[ne]=L,h=ne):(k[h]=W,k[I]=L,h=I);else if(new(K,L))k[h]=K,k[ne]=L,h=ne;else break e}}return H}function w(k,H){var L=k.sortIndex-H.sortIndex;return L!==0?L:k.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var x=performance;a.unstable_now=function(){return x.now()}}else{var _=Date,M=_.now();a.unstable_now=function(){return _.now()-M}}var z=[],P=[],U=1,m=null,Y=3,se=!1,q=!1,le=!1,re=typeof setTimeout=="function"?setTimeout:null,ee=typeof clearTimeout=="function"?clearTimeout:null,Ie=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Se(k){for(var H=s(P);H!==null;){if(H.callback===null)p(P);else if(H.startTime<=k)p(P),H.sortIndex=H.expirationTime,c(z,H);else break;H=s(P)}}function he(k){if(le=!1,Se(k),!q)if(s(z)!==null)q=!0,J(Te);else{var H=s(P);H!==null&&te(he,H.startTime-k)}}function Te(k,H){q=!1,le&&(le=!1,ee(V),V=-1),se=!0;var L=Y;try{for(Se(H),m=s(z);m!==null&&(!(m.expirationTime>H)||k&&!lt());){var h=m.callback;if(typeof h=="function"){m.callback=null,Y=m.priorityLevel;var S=h(m.expirationTime<=H);H=a.unstable_now(),typeof S=="function"?m.callback=S:m===s(z)&&p(z),Se(H)}else p(z);m=s(z)}if(m!==null)var R=!0;else{var I=s(P);I!==null&&te(he,I.startTime-H),R=!1}return R}finally{m=null,Y=L,se=!1}}var de=!1,ve=null,V=-1,Pe=5,Ge=-1;function lt(){return!(a.unstable_now()-Gek||125h?(k.sortIndex=L,c(P,k),s(z)===null&&k===s(P)&&(le?(ee(V),V=-1):le=!0,te(he,L-h))):(k.sortIndex=S,c(z,k),q||se||(q=!0,J(Te))),k},a.unstable_shouldYield=lt,a.unstable_wrapCallback=function(k){var H=Y;return function(){var L=Y;Y=H;try{return k.apply(this,arguments)}finally{Y=L}}}})(ms)),ms}var sc;function Uf(){return sc||(sc=1,ps.exports=Bf()),ps.exports}/** * @license React * react-dom.production.min.js * @@ -30,126 +30,79 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var sc;function $f(){if(sc)return ft;sc=1;var a=Ss(),c=Vf();function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),z=Object.prototype.hasOwnProperty,P=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,U={},m={};function G(e){return z.call(m,e)?!0:z.call(U,e)?!1:P.test(e)?m[e]=!0:(U[e]=!0,!1)}function se(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function J(e,t,n,r){if(t===null||typeof t>"u"||se(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function le(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){re[e]=new le(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];re[t]=new le(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){re[e]=new le(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){re[e]=new le(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){re[e]=new le(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){re[e]=new le(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){re[e]=new le(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){re[e]=new le(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){re[e]=new le(e,5,!1,e.toLowerCase(),null,!1,!1)});var ee=/[\-:]([a-z])/g;function Ie(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){re[e]=new le(e,1,!1,e.toLowerCase(),null,!1,!1)}),re.xlinkHref=new le("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){re[e]=new le(e,1,!1,e.toLowerCase(),null,!0,!0)});function Se(e,t,n,r){var o=re.hasOwnProperty(t)?re[t]:null;(o!==null?o.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),z=Object.prototype.hasOwnProperty,P=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,U={},m={};function Y(e){return z.call(m,e)?!0:z.call(U,e)?!1:P.test(e)?m[e]=!0:(U[e]=!0,!1)}function se(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function q(e,t,n,r){if(t===null||typeof t>"u"||se(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function le(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){re[e]=new le(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];re[t]=new le(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){re[e]=new le(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){re[e]=new le(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){re[e]=new le(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){re[e]=new le(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){re[e]=new le(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){re[e]=new le(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){re[e]=new le(e,5,!1,e.toLowerCase(),null,!1,!1)});var ee=/[\-:]([a-z])/g;function Ie(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ee,Ie);re[t]=new le(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){re[e]=new le(e,1,!1,e.toLowerCase(),null,!1,!1)}),re.xlinkHref=new le("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){re[e]=new le(e,1,!1,e.toLowerCase(),null,!0,!0)});function Se(e,t,n,r){var o=re.hasOwnProperty(t)?re[t]:null;(o!==null?o.type!==0:r||!(2u||o[i]!==l[u]){var d=` -`+o[i].replace(" at new "," at ");return e.displayName&&d.includes("")&&(d=d.replace("",e.displayName)),d}while(1<=i&&0<=u);break}}}finally{R=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?E(e):""}function W(e){switch(e.tag){case 5:return E(e.type);case 16:return E("Lazy");case 13:return E("Suspense");case 19:return E("SuspenseList");case 0:case 2:case 15:return e=I(e.type,!1),e;case 11:return e=I(e.type.render,!1),e;case 1:return e=I(e.type,!0),e;default:return""}}function ne(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ve:return"Fragment";case de:return"Portal";case Pe:return"Profiler";case V:return"StrictMode";case ge:return"Suspense";case De:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lt:return(e.displayName||"Context")+".Consumer";case Ye:return(e._context.displayName||"Context")+".Provider";case je:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ce:return t=e.displayName||null,t!==null?t:ne(e.type)||"Memo";case q:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}function K(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ne(t);case 8:return t===V?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Y(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ce(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ne(e){var t=ce(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function mt(e){e._valueTracker||(e._valueTracker=Ne(e))}function it(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ce(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Kn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Rn(e,t){var n=t.checked;return L({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function po(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Y(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Cr(e,t){t=t.checked,t!=null&&Se(e,"checked",t,!1)}function $t(e,t){Cr(e,t);var n=Y(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ht(e,t.type,n):t.hasOwnProperty("defaultValue")&&ht(e,t.type,Y(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Nr(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ht(e,t,n){(t!=="number"||Kn(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var jn=Array.isArray;function nn(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Ln.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function kt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var rn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},on=["Webkit","ms","Moz","O"];Object.keys(rn).forEach(function(e){on.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),rn[t]=rn[e]})});function go(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||rn.hasOwnProperty(e)&&rn[e]?(""+t).trim():t+"px"}function vo(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=go(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var yo=L({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Zn(e,t){if(t){if(yo[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(s(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(t.style!=null&&typeof t.style!="object")throw Error(s(62))}}function zr(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mn=null;function St(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tr=null,ln=null,Wt=null;function Pr(e){if(e=Kr(e)){if(typeof Tr!="function")throw Error(s(280));var t=e.stateNode;t&&(t=Fo(t),Tr(e.stateNode,e.type,t))}}function ie(e){ln?Wt?Wt.push(e):Wt=[e]:ln=e}function be(){if(ln){var e=ln,t=Wt;if(Wt=ln=null,Pr(e),t)for(e=0;e>>=0,e===0?32:31-(Jc(e)/ed|0)|0}var ko=64,So=4194304;function jr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Eo(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~o;u!==0?r=jr(u):(l&=i,l!==0&&(r=jr(l)))}else i=n&~o,i!==0?r=jr(i):l!==0&&(r=jr(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function br(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Rt(t),e[t]=n}function od(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Br),Gs=" ",Ks=!1;function Xs(e,t){switch(e){case"keyup":return bd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Zs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var er=!1;function Md(e,t){switch(e){case"compositionend":return Zs(t);case"keypress":return t.which!==32?null:(Ks=!0,Gs);case"textInput":return e=t.data,e===Gs&&Ks?null:e;default:return null}}function Id(e,t){if(er)return e==="compositionend"||!$l&&Xs(e,t)?(e=Vs(),To=Ol=mn=null,er=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=oa(n)}}function ia(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ia(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function sa(){for(var e=window,t=Kn();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kn(e.document)}return t}function Ql(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Hd(e){var t=sa(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ia(n.ownerDocument.documentElement,n)){if(r!==null&&Ql(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=la(n,l);var i=la(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,tr=null,Yl=null,Hr=null,Gl=!1;function aa(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gl||tr==null||tr!==Kn(r)||(r=tr,"selectionStart"in r&&Ql(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Hr&&$r(Hr,r)||(Hr=r,r=Do(Yl,"onSelect"),0ir||(e.current=ii[ir],ii[ir]=null,ir--)}function ye(e,t){ir++,ii[ir]=e.current,e.current=t}var yn={},Je=vn(yn),st=vn(!1),On=yn;function sr(e,t){var n=e.type.contextTypes;if(!n)return yn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function at(e){return e=e.childContextTypes,e!=null}function Bo(){ke(st),ke(Je)}function Ea(e,t,n){if(Je.current!==yn)throw Error(s(168));ye(Je,t),ye(st,n)}function Ca(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(s(108,K(e)||"Unknown",o));return L({},n,r)}function Uo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||yn,On=Je.current,ye(Je,e),ye(st,st.current),!0}function Na(e,t,n){var r=e.stateNode;if(!r)throw Error(s(169));n?(e=Ca(e,t,On),r.__reactInternalMemoizedMergedChildContext=e,ke(st),ke(Je),ye(Je,e)):ke(st),ye(st,n)}var Yt=null,Vo=!1,si=!1;function _a(e){Yt===null?Yt=[e]:Yt.push(e)}function nf(e){Vo=!0,_a(e)}function wn(){if(!si&&Yt!==null){si=!0;var e=0,t=me;try{var n=Yt;for(me=1;e>=i,o-=i,Gt=1<<32-Rt(t)+o|n<oe?(Qe=Z,Z=null):Qe=Z.sibling;var pe=C(g,Z,v[oe],j);if(pe===null){Z===null&&(Z=Qe);break}e&&Z&&pe.alternate===null&&t(g,Z),f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe,Z=Qe}if(oe===v.length)return n(g,Z),Ee&&Fn(g,oe),Q;if(Z===null){for(;oeoe?(Qe=Z,Z=null):Qe=Z.sibling;var Tn=C(g,Z,pe.value,j);if(Tn===null){Z===null&&(Z=Qe);break}e&&Z&&Tn.alternate===null&&t(g,Z),f=l(Tn,f,oe),X===null?Q=Tn:X.sibling=Tn,X=Tn,Z=Qe}if(pe.done)return n(g,Z),Ee&&Fn(g,oe),Q;if(Z===null){for(;!pe.done;oe++,pe=v.next())pe=T(g,pe.value,j),pe!==null&&(f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe);return Ee&&Fn(g,oe),Q}for(Z=r(g,Z);!pe.done;oe++,pe=v.next())pe=D(Z,g,oe,pe.value,j),pe!==null&&(e&&pe.alternate!==null&&Z.delete(pe.key===null?oe:pe.key),f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe);return e&&Z.forEach(function(Of){return t(g,Of)}),Ee&&Fn(g,oe),Q}function Me(g,f,v,j){if(typeof v=="object"&&v!==null&&v.type===ve&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Te:e:{for(var Q=v.key,X=f;X!==null;){if(X.key===Q){if(Q=v.type,Q===ve){if(X.tag===7){n(g,X.sibling),f=o(X,v.props.children),f.return=g,g=f;break e}}else if(X.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===q&&ba(Q)===X.type){n(g,X.sibling),f=o(X,v.props),f.ref=Xr(g,X,v),f.return=g,g=f;break e}n(g,X);break}else t(g,X);X=X.sibling}v.type===ve?(f=Yn(v.props.children,g.mode,j,v.key),f.return=g,g=f):(j=gl(v.type,v.key,v.props,null,g.mode,j),j.ref=Xr(g,f,v),j.return=g,g=j)}return i(g);case de:e:{for(X=v.key;f!==null;){if(f.key===X)if(f.tag===4&&f.stateNode.containerInfo===v.containerInfo&&f.stateNode.implementation===v.implementation){n(g,f.sibling),f=o(f,v.children||[]),f.return=g,g=f;break e}else{n(g,f);break}else t(g,f);f=f.sibling}f=os(v,g.mode,j),f.return=g,g=f}return i(g);case q:return X=v._init,Me(g,f,X(v._payload),j)}if(jn(v))return A(g,f,v,j);if(H(v))return $(g,f,v,j);Qo(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,f!==null&&f.tag===6?(n(g,f.sibling),f=o(f,v),f.return=g,g=f):(n(g,f),f=rs(v,g.mode,j),f.return=g,g=f),i(g)):n(g,f)}return Me}var dr=La(!0),Ma=La(!1),Yo=vn(null),Go=null,fr=null,pi=null;function mi(){pi=fr=Go=null}function hi(e){var t=Yo.current;ke(Yo),e._currentValue=t}function gi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function pr(e,t){Go=e,pi=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(ut=!0),e.firstContext=null)}function _t(e){var t=e._currentValue;if(pi!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if(Go===null)throw Error(s(308));fr=e,Go.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var Bn=null;function vi(e){Bn===null?Bn=[e]:Bn.push(e)}function Ia(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,vi(t)):(n.next=o.next,o.next=n),t.interleaved=n,Xt(e,r)}function Xt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var xn=!1;function yi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Da(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Zt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function kn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(fe&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Xt(e,n)}return o=r.interleaved,o===null?(t.next=t,vi(r)):(t.next=o.next,o.next=t),r.interleaved=t,Xt(e,n)}function Ko(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bl(e,n)}}function Oa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xo(e,t,n,r){var o=e.updateQueue;xn=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,u=o.shared.pending;if(u!==null){o.shared.pending=null;var d=u,y=d.next;d.next=null,i===null?l=y:i.next=y,i=d;var N=e.alternate;N!==null&&(N=N.updateQueue,u=N.lastBaseUpdate,u!==i&&(u===null?N.firstBaseUpdate=y:u.next=y,N.lastBaseUpdate=d))}if(l!==null){var T=o.baseState;i=0,N=y=d=null,u=l;do{var C=u.lane,D=u.eventTime;if((r&C)===C){N!==null&&(N=N.next={eventTime:D,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var A=e,$=u;switch(C=t,D=n,$.tag){case 1:if(A=$.payload,typeof A=="function"){T=A.call(D,T,C);break e}T=A;break e;case 3:A.flags=A.flags&-65537|128;case 0:if(A=$.payload,C=typeof A=="function"?A.call(D,T,C):A,C==null)break e;T=L({},T,C);break e;case 2:xn=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,C=o.effects,C===null?o.effects=[u]:C.push(u))}else D={eventTime:D,lane:C,tag:u.tag,payload:u.payload,callback:u.callback,next:null},N===null?(y=N=D,d=T):N=N.next=D,i|=C;if(u=u.next,u===null){if(u=o.shared.pending,u===null)break;C=u,u=C.next,C.next=null,o.lastBaseUpdate=C,o.shared.pending=null}}while(!0);if(N===null&&(d=T),o.baseState=d,o.firstBaseUpdate=y,o.lastBaseUpdate=N,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);$n|=i,e.lanes=i,e.memoizedState=T}}function Aa(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Ei.transition;Ei.transition={};try{e(!1),t()}finally{me=n,Ei.transition=r}}function ru(){return zt().memoizedState}function sf(e,t,n){var r=Nn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ou(e))lu(t,n);else if(n=Ia(e,t,n,r),n!==null){var o=ot();Dt(n,e,r,o),iu(n,t,r)}}function af(e,t,n){var r=Nn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ou(e))lu(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,u=l(i,n);if(o.hasEagerState=!0,o.eagerState=u,jt(u,i)){var d=t.interleaved;d===null?(o.next=o,vi(t)):(o.next=d.next,d.next=o),t.interleaved=o;return}}catch{}finally{}n=Ia(e,t,o,r),n!==null&&(o=ot(),Dt(n,e,r,o),iu(n,t,r))}}function ou(e){var t=e.alternate;return e===ze||t!==null&&t===ze}function lu(e,t){eo=Jo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function iu(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bl(e,n)}}var nl={readContext:_t,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useInsertionEffect:et,useLayoutEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useDeferredValue:et,useTransition:et,useMutableSource:et,useSyncExternalStore:et,useId:et,unstable_isNewReconciler:!1},uf={readContext:_t,useCallback:function(e,t){return Bt().memoizedState=[e,t===void 0?null:t],e},useContext:_t,useEffect:Ka,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,el(4194308,4,qa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return el(4194308,4,e,t)},useInsertionEffect:function(e,t){return el(4,2,e,t)},useMemo:function(e,t){var n=Bt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Bt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=sf.bind(null,ze,e),[r.memoizedState,e]},useRef:function(e){var t=Bt();return e={current:e},t.memoizedState=e},useState:Ya,useDebugValue:Ri,useDeferredValue:function(e){return Bt().memoizedState=e},useTransition:function(){var e=Ya(!1),t=e[0];return e=lf.bind(null,e[1]),Bt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ze,o=Bt();if(Ee){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),We===null)throw Error(s(349));(Vn&30)!==0||Va(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,Ka(Ha.bind(null,r,l,e),[e]),r.flags|=2048,ro(9,$a.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=Bt(),t=We.identifierPrefix;if(Ee){var n=Kt,r=Gt;n=(r&~(1<<32-Rt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=to++,0")&&(d=d.replace("",e.displayName)),d}while(1<=i&&0<=u);break}}}finally{R=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?S(e):""}function W(e){switch(e.tag){case 5:return S(e.type);case 16:return S("Lazy");case 13:return S("Suspense");case 19:return S("SuspenseList");case 0:case 2:case 15:return e=I(e.type,!1),e;case 11:return e=I(e.type.render,!1),e;case 1:return e=I(e.type,!0),e;default:return""}}function ne(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ve:return"Fragment";case de:return"Portal";case Pe:return"Profiler";case V:return"StrictMode";case ge:return"Suspense";case Oe:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lt:return(e.displayName||"Context")+".Consumer";case Ge:return(e._context.displayName||"Context")+".Provider";case be:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ce:return t=e.displayName||null,t!==null?t:ne(e.type)||"Memo";case J:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}function K(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ne(t);case 8:return t===V?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function G(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ce(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ne(e){var t=ce(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function mt(e){e._valueTracker||(e._valueTracker=Ne(e))}function it(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ce(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Kn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Rn(e,t){var n=t.checked;return L({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function po(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=G(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Cr(e,t){t=t.checked,t!=null&&Se(e,"checked",t,!1)}function $t(e,t){Cr(e,t);var n=G(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ht(e,t.type,n):t.hasOwnProperty("defaultValue")&&ht(e,t.type,G(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Nr(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ht(e,t,n){(t!=="number"||Kn(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var bn=Array.isArray;function nn(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Ln.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function kt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var rn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},on=["Webkit","ms","Moz","O"];Object.keys(rn).forEach(function(e){on.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),rn[t]=rn[e]})});function go(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||rn.hasOwnProperty(e)&&rn[e]?(""+t).trim():t+"px"}function vo(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=go(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var yo=L({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Zn(e,t){if(t){if(yo[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(s(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(t.style!=null&&typeof t.style!="object")throw Error(s(62))}}function zr(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mn=null;function St(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tr=null,ln=null,Wt=null;function Pr(e){if(e=Kr(e)){if(typeof Tr!="function")throw Error(s(280));var t=e.stateNode;t&&(t=Fo(t),Tr(e.stateNode,e.type,t))}}function ie(e){ln?Wt?Wt.push(e):Wt=[e]:ln=e}function je(){if(ln){var e=ln,t=Wt;if(Wt=ln=null,Pr(e),t)for(e=0;e>>=0,e===0?32:31-(Jc(e)/qc|0)|0}var ko=64,So=4194304;function br(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Eo(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~o;u!==0?r=br(u):(l&=i,l!==0&&(r=br(l)))}else i=n&~o,i!==0?r=br(i):l!==0&&(r=br(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function jr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Rt(t),e[t]=n}function rd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Br),Ks=" ",Xs=!1;function Zs(e,t){switch(e){case"keyup":return bd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Js(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var er=!1;function Ld(e,t){switch(e){case"compositionend":return Js(t);case"keypress":return t.which!==32?null:(Xs=!0,Ks);case"textInput":return e=t.data,e===Ks&&Xs?null:e;default:return null}}function Md(e,t){if(er)return e==="compositionend"||!Hl&&Zs(e,t)?(e=$s(),To=Al=mn=null,er=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=la(n)}}function sa(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?sa(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function aa(){for(var e=window,t=Kn();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kn(e.document)}return t}function Gl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function $d(e){var t=aa(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&sa(n.ownerDocument.documentElement,n)){if(r!==null&&Gl(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=ia(n,l);var i=ia(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,tr=null,Yl=null,Hr=null,Kl=!1;function ua(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Kl||tr==null||tr!==Kn(r)||(r=tr,"selectionStart"in r&&Gl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Hr&&$r(Hr,r)||(Hr=r,r=Oo(Yl,"onSelect"),0ir||(e.current=si[ir],si[ir]=null,ir--)}function ye(e,t){ir++,si[ir]=e.current,e.current=t}var yn={},qe=vn(yn),st=vn(!1),Dn=yn;function sr(e,t){var n=e.type.contextTypes;if(!n)return yn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function at(e){return e=e.childContextTypes,e!=null}function Bo(){ke(st),ke(qe)}function Ca(e,t,n){if(qe.current!==yn)throw Error(s(168));ye(qe,t),ye(st,n)}function Na(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(s(108,K(e)||"Unknown",o));return L({},n,r)}function Uo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||yn,Dn=qe.current,ye(qe,e),ye(st,st.current),!0}function _a(e,t,n){var r=e.stateNode;if(!r)throw Error(s(169));n?(e=Na(e,t,Dn),r.__reactInternalMemoizedMergedChildContext=e,ke(st),ke(qe),ye(qe,e)):ke(st),ye(st,n)}var Gt=null,Vo=!1,ai=!1;function za(e){Gt===null?Gt=[e]:Gt.push(e)}function tf(e){Vo=!0,za(e)}function wn(){if(!ai&&Gt!==null){ai=!0;var e=0,t=me;try{var n=Gt;for(me=1;e>=i,o-=i,Yt=1<<32-Rt(t)+o|n<oe?(Qe=Z,Z=null):Qe=Z.sibling;var pe=C(g,Z,v[oe],b);if(pe===null){Z===null&&(Z=Qe);break}e&&Z&&pe.alternate===null&&t(g,Z),f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe,Z=Qe}if(oe===v.length)return n(g,Z),Ee&&Fn(g,oe),Q;if(Z===null){for(;oeoe?(Qe=Z,Z=null):Qe=Z.sibling;var Tn=C(g,Z,pe.value,b);if(Tn===null){Z===null&&(Z=Qe);break}e&&Z&&Tn.alternate===null&&t(g,Z),f=l(Tn,f,oe),X===null?Q=Tn:X.sibling=Tn,X=Tn,Z=Qe}if(pe.done)return n(g,Z),Ee&&Fn(g,oe),Q;if(Z===null){for(;!pe.done;oe++,pe=v.next())pe=T(g,pe.value,b),pe!==null&&(f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe);return Ee&&Fn(g,oe),Q}for(Z=r(g,Z);!pe.done;oe++,pe=v.next())pe=O(Z,g,oe,pe.value,b),pe!==null&&(e&&pe.alternate!==null&&Z.delete(pe.key===null?oe:pe.key),f=l(pe,f,oe),X===null?Q=pe:X.sibling=pe,X=pe);return e&&Z.forEach(function(Of){return t(g,Of)}),Ee&&Fn(g,oe),Q}function Me(g,f,v,b){if(typeof v=="object"&&v!==null&&v.type===ve&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Te:e:{for(var Q=v.key,X=f;X!==null;){if(X.key===Q){if(Q=v.type,Q===ve){if(X.tag===7){n(g,X.sibling),f=o(X,v.props.children),f.return=g,g=f;break e}}else if(X.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===J&&La(Q)===X.type){n(g,X.sibling),f=o(X,v.props),f.ref=Xr(g,X,v),f.return=g,g=f;break e}n(g,X);break}else t(g,X);X=X.sibling}v.type===ve?(f=Gn(v.props.children,g.mode,b,v.key),f.return=g,g=f):(b=gl(v.type,v.key,v.props,null,g.mode,b),b.ref=Xr(g,f,v),b.return=g,g=b)}return i(g);case de:e:{for(X=v.key;f!==null;){if(f.key===X)if(f.tag===4&&f.stateNode.containerInfo===v.containerInfo&&f.stateNode.implementation===v.implementation){n(g,f.sibling),f=o(f,v.children||[]),f.return=g,g=f;break e}else{n(g,f);break}else t(g,f);f=f.sibling}f=ls(v,g.mode,b),f.return=g,g=f}return i(g);case J:return X=v._init,Me(g,f,X(v._payload),b)}if(bn(v))return A(g,f,v,b);if(H(v))return $(g,f,v,b);Qo(g,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,f!==null&&f.tag===6?(n(g,f.sibling),f=o(f,v),f.return=g,g=f):(n(g,f),f=os(v,g.mode,b),f.return=g,g=f),i(g)):n(g,f)}return Me}var dr=Ma(!0),Ia=Ma(!1),Go=vn(null),Yo=null,fr=null,mi=null;function hi(){mi=fr=Yo=null}function gi(e){var t=Go.current;ke(Go),e._currentValue=t}function vi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function pr(e,t){Yo=e,mi=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(ut=!0),e.firstContext=null)}function _t(e){var t=e._currentValue;if(mi!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if(Yo===null)throw Error(s(308));fr=e,Yo.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var Bn=null;function yi(e){Bn===null?Bn=[e]:Bn.push(e)}function Oa(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,yi(t)):(n.next=o.next,o.next=n),t.interleaved=n,Xt(e,r)}function Xt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var xn=!1;function wi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Da(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Zt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function kn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(fe&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Xt(e,n)}return o=r.interleaved,o===null?(t.next=t,yi(r)):(t.next=o.next,o.next=t),r.interleaved=t,Xt(e,n)}function Ko(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ll(e,n)}}function Aa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xo(e,t,n,r){var o=e.updateQueue;xn=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,u=o.shared.pending;if(u!==null){o.shared.pending=null;var d=u,y=d.next;d.next=null,i===null?l=y:i.next=y,i=d;var N=e.alternate;N!==null&&(N=N.updateQueue,u=N.lastBaseUpdate,u!==i&&(u===null?N.firstBaseUpdate=y:u.next=y,N.lastBaseUpdate=d))}if(l!==null){var T=o.baseState;i=0,N=y=d=null,u=l;do{var C=u.lane,O=u.eventTime;if((r&C)===C){N!==null&&(N=N.next={eventTime:O,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var A=e,$=u;switch(C=t,O=n,$.tag){case 1:if(A=$.payload,typeof A=="function"){T=A.call(O,T,C);break e}T=A;break e;case 3:A.flags=A.flags&-65537|128;case 0:if(A=$.payload,C=typeof A=="function"?A.call(O,T,C):A,C==null)break e;T=L({},T,C);break e;case 2:xn=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,C=o.effects,C===null?o.effects=[u]:C.push(u))}else O={eventTime:O,lane:C,tag:u.tag,payload:u.payload,callback:u.callback,next:null},N===null?(y=N=O,d=T):N=N.next=O,i|=C;if(u=u.next,u===null){if(u=o.shared.pending,u===null)break;C=u,u=C.next,C.next=null,o.lastBaseUpdate=C,o.shared.pending=null}}while(!0);if(N===null&&(d=T),o.baseState=d,o.firstBaseUpdate=y,o.lastBaseUpdate=N,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);$n|=i,e.lanes=i,e.memoizedState=T}}function Fa(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Ci.transition;Ci.transition={};try{e(!1),t()}finally{me=n,Ci.transition=r}}function ou(){return zt().memoizedState}function lf(e,t,n){var r=Nn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},lu(e))iu(t,n);else if(n=Oa(e,t,n,r),n!==null){var o=ot();Ot(n,e,r,o),su(n,t,r)}}function sf(e,t,n){var r=Nn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(lu(e))iu(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,u=l(i,n);if(o.hasEagerState=!0,o.eagerState=u,bt(u,i)){var d=t.interleaved;d===null?(o.next=o,yi(t)):(o.next=d.next,d.next=o),t.interleaved=o;return}}catch{}finally{}n=Oa(e,t,o,r),n!==null&&(o=ot(),Ot(n,e,r,o),su(n,t,r))}}function lu(e){var t=e.alternate;return e===ze||t!==null&&t===ze}function iu(e,t){eo=qo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function su(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ll(e,n)}}var nl={readContext:_t,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useInsertionEffect:et,useLayoutEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useDeferredValue:et,useTransition:et,useMutableSource:et,useSyncExternalStore:et,useId:et,unstable_isNewReconciler:!1},af={readContext:_t,useCallback:function(e,t){return Bt().memoizedState=[e,t===void 0?null:t],e},useContext:_t,useEffect:Xa,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,el(4194308,4,qa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return el(4194308,4,e,t)},useInsertionEffect:function(e,t){return el(4,2,e,t)},useMemo:function(e,t){var n=Bt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Bt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=lf.bind(null,ze,e),[r.memoizedState,e]},useRef:function(e){var t=Bt();return e={current:e},t.memoizedState=e},useState:Ya,useDebugValue:bi,useDeferredValue:function(e){return Bt().memoizedState=e},useTransition:function(){var e=Ya(!1),t=e[0];return e=of.bind(null,e[1]),Bt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ze,o=Bt();if(Ee){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),We===null)throw Error(s(349));(Vn&30)!==0||$a(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,Xa(Wa.bind(null,r,l,e),[e]),r.flags|=2048,ro(9,Ha.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=Bt(),t=We.identifierPrefix;if(Ee){var n=Kt,r=Yt;n=(r&~(1<<32-Rt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=to++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[At]=t,e[Gr]=r,_u(e,t,!1,!1),t.stateNode=e;e:{switch(i=zr(n,r),n){case"dialog":xe("cancel",e),xe("close",e),o=r;break;case"iframe":case"object":case"embed":xe("load",e),o=r;break;case"video":case"audio":for(o=0;oyr&&(t.flags|=128,r=!0,oo(l,!1),t.lanes=4194304)}else{if(!r)if(e=Zo(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oo(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!Ee)return tt(t),null}else 2*Le()-l.renderingStartTime>yr&&n!==1073741824&&(t.flags|=128,r=!0,oo(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=Le(),t.sibling=null,n=_e.current,ye(_e,r?n&1|2:n&1),t):(tt(t),null);case 22:case 23:return es(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(xt&1073741824)!==0&&(tt(t),t.subtreeFlags&6&&(t.flags|=8192)):tt(t),null;case 24:return null;case 25:return null}throw Error(s(156,t.tag))}function vf(e,t){switch(ui(t),t.tag){case 1:return at(t.type)&&Bo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mr(),ke(st),ke(Je),Si(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return xi(t),null;case 13:if(ke(_e),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));cr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ke(_e),null;case 4:return mr(),null;case 10:return hi(t.type._context),null;case 22:case 23:return es(),null;case 24:return null;default:return null}}var il=!1,nt=!1,yf=typeof WeakSet=="function"?WeakSet:Set,O=null;function gr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Re(e,t,r)}else n.current=null}function Vi(e,t,n){try{n()}catch(r){Re(e,t,r)}}var Pu=!1;function wf(e,t){if(ei=_o,e=sa(),Ql(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,u=-1,d=-1,y=0,N=0,T=e,C=null;t:for(;;){for(var D;T!==n||o!==0&&T.nodeType!==3||(u=i+o),T!==l||r!==0&&T.nodeType!==3||(d=i+r),T.nodeType===3&&(i+=T.nodeValue.length),(D=T.firstChild)!==null;)C=T,T=D;for(;;){if(T===e)break t;if(C===n&&++y===o&&(u=i),C===l&&++N===r&&(d=i),(D=T.nextSibling)!==null)break;T=C,C=T.parentNode}T=D}n=u===-1||d===-1?null:{start:u,end:d}}else n=null}n=n||{start:0,end:0}}else n=null;for(ti={focusedElem:e,selectionRange:n},_o=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var A=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(A!==null){var $=A.memoizedProps,Me=A.memoizedState,g=t.stateNode,f=g.getSnapshotBeforeUpdate(t.elementType===t.type?$:Lt(t.type,$),Me);g.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(j){Re(t,t.return,j)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return A=Pu,Pu=!1,A}function lo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&Vi(t,n,l)}o=o.next}while(o!==r)}}function sl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function $i(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ru(e){var t=e.alternate;t!==null&&(e.alternate=null,Ru(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[At],delete t[Gr],delete t[li],delete t[ef],delete t[tf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ju(e){return e.tag===5||e.tag===3||e.tag===4}function bu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ju(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Hi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ao));else if(r!==4&&(e=e.child,e!==null))for(Hi(e,t,n),e=e.sibling;e!==null;)Hi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var Xe=null,Mt=!1;function Sn(e,t,n){for(n=n.child;n!==null;)Lu(e,t,n),n=n.sibling}function Lu(e,t,n){if(Ot&&typeof Ot.onCommitFiberUnmount=="function")try{Ot.onCommitFiberUnmount(xo,n)}catch{}switch(n.tag){case 5:nt||gr(n,t);case 6:var r=Xe,o=Mt;Xe=null,Sn(e,t,n),Xe=r,Mt=o,Xe!==null&&(Mt?(e=Xe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Xe.removeChild(n.stateNode));break;case 18:Xe!==null&&(Mt?(e=Xe,n=n.stateNode,e.nodeType===8?oi(e.parentNode,n):e.nodeType===1&&oi(e,n),Or(e)):oi(Xe,n.stateNode));break;case 4:r=Xe,o=Mt,Xe=n.stateNode.containerInfo,Mt=!0,Sn(e,t,n),Xe=r,Mt=o;break;case 0:case 11:case 14:case 15:if(!nt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&Vi(n,t,i),o=o.next}while(o!==r)}Sn(e,t,n);break;case 1:if(!nt&&(gr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Re(n,t,u)}Sn(e,t,n);break;case 21:Sn(e,t,n);break;case 22:n.mode&1?(nt=(r=nt)||n.memoizedState!==null,Sn(e,t,n),nt=r):Sn(e,t,n);break;default:Sn(e,t,n)}}function Mu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new yf),t.forEach(function(r){var o=Tf.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function It(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=Le()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kf(r/1960))-r,10e?16:e,Cn===null)var r=!1;else{if(e=Cn,Cn=null,fl=0,(fe&6)!==0)throw Error(s(331));var o=fe;for(fe|=4,O=e.current;O!==null;){var l=O,i=l.child;if((O.flags&16)!==0){var u=l.deletions;if(u!==null){for(var d=0;dLe()-Gi?Wn(e,0):Yi|=n),dt(e,t)}function Yu(e,t){t===0&&((e.mode&1)===0?t=1:(t=So,So<<=1,(So&130023424)===0&&(So=4194304)));var n=ot();e=Xt(e,t),e!==null&&(br(e,t,n),dt(e,n))}function zf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Yu(e,n)}function Tf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(s(314))}r!==null&&r.delete(t),Yu(e,n)}var Gu;Gu=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||st.current)ut=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return ut=!1,hf(e,t,n);ut=(e.flags&131072)!==0}else ut=!1,Ee&&(t.flags&1048576)!==0&&za(t,Ho,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ll(e,t),e=t.pendingProps;var o=sr(t,Je.current);pr(t,n),o=Ni(null,t,r,e,o,n);var l=_i();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,at(r)?(l=!0,Uo(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,yi(t),o.updater=rl,t.stateNode=o,o._reactInternals=t,bi(t,r,e,n),t=Di(null,t,r,!0,l,n)):(t.tag=0,Ee&&l&&ai(t),rt(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ll(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=Rf(r),e=Lt(r,e),o){case 0:t=Ii(null,t,r,e,n);break e;case 1:t=xu(null,t,r,e,n);break e;case 11:t=hu(null,t,r,e,n);break e;case 14:t=gu(null,t,r,Lt(r.type,e),n);break e}throw Error(s(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),Ii(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),xu(e,t,r,o,n);case 3:e:{if(ku(t),e===null)throw Error(s(387));r=t.pendingProps,l=t.memoizedState,o=l.element,Da(e,t),Xo(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=hr(Error(s(423)),t),t=Su(e,t,r,n,o);break e}else if(r!==o){o=hr(Error(s(424)),t),t=Su(e,t,r,n,o);break e}else for(wt=gn(t.stateNode.containerInfo.firstChild),yt=t,Ee=!0,bt=null,n=Ma(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(cr(),r===o){t=qt(e,t,n);break e}rt(e,t,r,n)}t=t.child}return t;case 5:return Fa(t),e===null&&di(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,ni(r,o)?i=null:l!==null&&ni(r,l)&&(t.flags|=32),wu(e,t),rt(e,t,i,n),t.child;case 6:return e===null&&di(t),null;case 13:return Eu(e,t,n);case 4:return wi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=dr(t,null,r,n):rt(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),hu(e,t,r,o,n);case 7:return rt(e,t,t.pendingProps,n),t.child;case 8:return rt(e,t,t.pendingProps.children,n),t.child;case 12:return rt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,ye(Yo,r._currentValue),r._currentValue=i,l!==null)if(jt(l.value,i)){if(l.children===o.children&&!st.current){t=qt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var u=l.dependencies;if(u!==null){i=l.child;for(var d=u.firstContext;d!==null;){if(d.context===r){if(l.tag===1){d=Zt(-1,n&-n),d.tag=2;var y=l.updateQueue;if(y!==null){y=y.shared;var N=y.pending;N===null?d.next=d:(d.next=N.next,N.next=d),y.pending=d}}l.lanes|=n,d=l.alternate,d!==null&&(d.lanes|=n),gi(l.return,n,t),u.lanes|=n;break}d=d.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(s(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),gi(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}rt(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,pr(t,n),o=_t(o),r=r(o),t.flags|=1,rt(e,t,r,n),t.child;case 14:return r=t.type,o=Lt(r,t.pendingProps),o=Lt(r.type,o),gu(e,t,r,o,n);case 15:return vu(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),ll(e,t),t.tag=1,at(r)?(e=!0,Uo(t)):e=!1,pr(t,n),au(t,r,o),bi(t,r,o,n),Di(null,t,r,!0,e,n);case 19:return Nu(e,t,n);case 22:return yu(e,t,n)}throw Error(s(156,t.tag))};function Ku(e,t){return Ts(e,t)}function Pf(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pt(e,t,n,r){return new Pf(e,t,n,r)}function ns(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rf(e){if(typeof e=="function")return ns(e)?1:0;if(e!=null){if(e=e.$$typeof,e===je)return 11;if(e===Ce)return 14}return 2}function zn(e,t){var n=e.alternate;return n===null?(n=Pt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function gl(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")ns(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ve:return Yn(n.children,o,l,t);case V:i=8,o|=8;break;case Pe:return e=Pt(12,n,t,o|2),e.elementType=Pe,e.lanes=l,e;case ge:return e=Pt(13,n,t,o),e.elementType=ge,e.lanes=l,e;case De:return e=Pt(19,n,t,o),e.elementType=De,e.lanes=l,e;case te:return vl(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ye:i=10;break e;case lt:i=9;break e;case je:i=11;break e;case Ce:i=14;break e;case q:i=16,r=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return t=Pt(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Yn(e,t,n,r){return e=Pt(7,e,r,t),e.lanes=n,e}function vl(e,t,n,r){return e=Pt(22,e,r,t),e.elementType=te,e.lanes=n,e.stateNode={isHidden:!1},e}function rs(e,t,n){return e=Pt(6,e,null,t),e.lanes=n,e}function os(e,t,n){return t=Pt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function jf(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=jl(0),this.expirationTimes=jl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function ls(e,t,n,r,o,l,i,u,d){return e=new jf(e,t,n,u,d),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Pt(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},yi(l),e}function bf(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(c){console.error(c)}}return a(),ds.exports=$f(),ds.exports}var uc;function Hf(){if(uc)return Cl;uc=1;var a=Cc();return Cl.createRoot=a.createRoot,Cl.hydrateRoot=a.hydrateRoot,Cl}var Wf=Hf(),we=Ss();const b=Ec(we);function cc(a,c){if(typeof a=="function")return a(c);a!=null&&(a.current=c)}function Qf(...a){return c=>{let s=!1;const p=a.map(w=>{const x=cc(w,c);return!s&&typeof x=="function"&&(s=!0),x});if(s)return()=>{for(let w=0;w{const{children:x,..._}=p,M=we.Children.toArray(x),z=M.find(Kf);if(z){const P=z.props.children,U=M.map(m=>m===z?we.Children.count(P)>1?we.Children.only(null):we.isValidElement(P)?P.props.children:null:m);return S.jsx(c,{..._,ref:w,children:we.isValidElement(P)?we.cloneElement(P,void 0,U):null})}return S.jsx(c,{..._,ref:w,children:x})});return s.displayName=`${a}.Slot`,s}var _c=Nc("Slot");function Yf(a){const c=we.forwardRef((s,p)=>{const{children:w,...x}=s;if(we.isValidElement(w)){const _=Zf(w),M=Xf(x,w.props);return w.type!==we.Fragment&&(M.ref=p?Qf(p,_):_),we.cloneElement(w,M)}return we.Children.count(w)>1?we.Children.only(null):null});return c.displayName=`${a}.SlotClone`,c}var Gf=Symbol("radix.slottable");function Kf(a){return we.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Gf}function Xf(a,c){const s={...c};for(const p in c){const w=a[p],x=c[p];/^on[A-Z]/.test(p)?w&&x?s[p]=(...M)=>{const z=x(...M);return w(...M),z}:w&&(s[p]=w):p==="style"?s[p]={...w,...x}:p==="className"&&(s[p]=[w,x].filter(Boolean).join(" "))}return{...a,...s}}function Zf(a){let c=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,s=c&&"isReactWarning"in c&&c.isReactWarning;return s?a.ref:(c=Object.getOwnPropertyDescriptor(a,"ref")?.get,s=c&&"isReactWarning"in c&&c.isReactWarning,s?a.props.ref:a.props.ref||a.ref)}function zc(a){var c,s,p="";if(typeof a=="string"||typeof a=="number")p+=a;else if(typeof a=="object")if(Array.isArray(a)){var w=a.length;for(c=0;ctypeof a=="boolean"?`${a}`:a===0?"0":a,fc=Tc,Pc=(a,c)=>s=>{var p;if(c?.variants==null)return fc(a,s?.class,s?.className);const{variants:w,defaultVariants:x}=c,_=Object.keys(w).map(P=>{const U=s?.[P],m=x?.[P];if(U===null)return null;const G=dc(U)||dc(m);return w[P][G]}),M=s&&Object.entries(s).reduce((P,U)=>{let[m,G]=U;return G===void 0||(P[m]=G),P},{}),z=c==null||(p=c.compoundVariants)===null||p===void 0?void 0:p.reduce((P,U)=>{let{class:m,className:G,...se}=U;return Object.entries(se).every(J=>{let[le,re]=J;return Array.isArray(re)?re.includes({...x,...M}[le]):{...x,...M}[le]===re})?[...P,m,G]:P},[]);return fc(a,_,z,s?.class,s?.className)},Es="-",qf=a=>{const c=ep(a),{conflictingClassGroups:s,conflictingClassGroupModifiers:p}=a;return{getClassGroupId:_=>{const M=_.split(Es);return M[0]===""&&M.length!==1&&M.shift(),Rc(M,c)||Jf(_)},getConflictingClassGroupIds:(_,M)=>{const z=s[_]||[];return M&&p[_]?[...z,...p[_]]:z}}},Rc=(a,c)=>{if(a.length===0)return c.classGroupId;const s=a[0],p=c.nextPart.get(s),w=p?Rc(a.slice(1),p):void 0;if(w)return w;if(c.validators.length===0)return;const x=a.join(Es);return c.validators.find(({validator:_})=>_(x))?.classGroupId},pc=/^\[(.+)\]$/,Jf=a=>{if(pc.test(a)){const c=pc.exec(a)[1],s=c?.substring(0,c.indexOf(":"));if(s)return"arbitrary.."+s}},ep=a=>{const{theme:c,classGroups:s}=a,p={nextPart:new Map,validators:[]};for(const w in s)gs(s[w],p,w,c);return p},gs=(a,c,s,p)=>{a.forEach(w=>{if(typeof w=="string"){const x=w===""?c:mc(c,w);x.classGroupId=s;return}if(typeof w=="function"){if(tp(w)){gs(w(p),c,s,p);return}c.validators.push({validator:w,classGroupId:s});return}Object.entries(w).forEach(([x,_])=>{gs(_,mc(c,x),s,p)})})},mc=(a,c)=>{let s=a;return c.split(Es).forEach(p=>{s.nextPart.has(p)||s.nextPart.set(p,{nextPart:new Map,validators:[]}),s=s.nextPart.get(p)}),s},tp=a=>a.isThemeGetter,np=a=>{if(a<1)return{get:()=>{},set:()=>{}};let c=0,s=new Map,p=new Map;const w=(x,_)=>{s.set(x,_),c++,c>a&&(c=0,p=s,s=new Map)};return{get(x){let _=s.get(x);if(_!==void 0)return _;if((_=p.get(x))!==void 0)return w(x,_),_},set(x,_){s.has(x)?s.set(x,_):w(x,_)}}},vs="!",ys=":",rp=ys.length,op=a=>{const{prefix:c,experimentalParseClassName:s}=a;let p=w=>{const x=[];let _=0,M=0,z=0,P;for(let J=0;Jz?P-z:void 0;return{modifiers:x,hasImportantModifier:G,baseClassName:m,maybePostfixModifierPosition:se}};if(c){const w=c+ys,x=p;p=_=>_.startsWith(w)?x(_.substring(w.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:_,maybePostfixModifierPosition:void 0}}if(s){const w=p;p=x=>s({className:x,parseClassName:w})}return p},lp=a=>a.endsWith(vs)?a.substring(0,a.length-1):a.startsWith(vs)?a.substring(1):a,ip=a=>{const c=Object.fromEntries(a.orderSensitiveModifiers.map(p=>[p,!0]));return p=>{if(p.length<=1)return p;const w=[];let x=[];return p.forEach(_=>{_[0]==="["||c[_]?(w.push(...x.sort(),_),x=[]):x.push(_)}),w.push(...x.sort()),w}},sp=a=>({cache:np(a.cacheSize),parseClassName:op(a),sortModifiers:ip(a),...qf(a)}),ap=/\s+/,up=(a,c)=>{const{parseClassName:s,getClassGroupId:p,getConflictingClassGroupIds:w,sortModifiers:x}=c,_=[],M=a.trim().split(ap);let z="";for(let P=M.length-1;P>=0;P-=1){const U=M[P],{isExternal:m,modifiers:G,hasImportantModifier:se,baseClassName:J,maybePostfixModifierPosition:le}=s(U);if(m){z=U+(z.length>0?" "+z:z);continue}let re=!!le,ee=p(re?J.substring(0,le):J);if(!ee){if(!re){z=U+(z.length>0?" "+z:z);continue}if(ee=p(J),!ee){z=U+(z.length>0?" "+z:z);continue}re=!1}const Ie=x(G).join(":"),Se=se?Ie+vs:Ie,he=Se+ee;if(_.includes(he))continue;_.push(he);const Te=w(ee,re);for(let de=0;de0?" "+z:z)}return z};function cp(){let a=0,c,s,p="";for(;a{if(typeof a=="string")return a;let c,s="";for(let p=0;pm(U),a());return s=sp(P),p=s.cache.get,w=s.cache.set,x=M,M(z)}function M(z){const P=p(z);if(P)return P;const U=up(z,s);return w(z,U),U}return function(){return x(cp.apply(null,arguments))}}const Ve=a=>{const c=s=>s[a]||[];return c.isThemeGetter=!0,c},bc=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Lc=/^\((?:(\w[\w-]*):)?(.+)\)$/i,fp=/^\d+\/\d+$/,pp=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,mp=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,hp=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,gp=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,vp=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xr=a=>fp.test(a),ae=a=>!!a&&!Number.isNaN(Number(a)),Pn=a=>!!a&&Number.isInteger(Number(a)),ms=a=>a.endsWith("%")&&ae(a.slice(0,-1)),en=a=>pp.test(a),yp=()=>!0,wp=a=>mp.test(a)&&!hp.test(a),Mc=()=>!1,xp=a=>gp.test(a),kp=a=>vp.test(a),Sp=a=>!F(a)&&!B(a),Ep=a=>kr(a,Oc,Mc),F=a=>bc.test(a),Gn=a=>kr(a,Ac,wp),hs=a=>kr(a,Tp,ae),hc=a=>kr(a,Ic,Mc),Cp=a=>kr(a,Dc,kp),Nl=a=>kr(a,Fc,xp),B=a=>Lc.test(a),fo=a=>Sr(a,Ac),Np=a=>Sr(a,Pp),gc=a=>Sr(a,Ic),_p=a=>Sr(a,Oc),zp=a=>Sr(a,Dc),_l=a=>Sr(a,Fc,!0),kr=(a,c,s)=>{const p=bc.exec(a);return p?p[1]?c(p[1]):s(p[2]):!1},Sr=(a,c,s=!1)=>{const p=Lc.exec(a);return p?p[1]?c(p[1]):s:!1},Ic=a=>a==="position"||a==="percentage",Dc=a=>a==="image"||a==="url",Oc=a=>a==="length"||a==="size"||a==="bg-size",Ac=a=>a==="length",Tp=a=>a==="number",Pp=a=>a==="family-name",Fc=a=>a==="shadow",Rp=()=>{const a=Ve("color"),c=Ve("font"),s=Ve("text"),p=Ve("font-weight"),w=Ve("tracking"),x=Ve("leading"),_=Ve("breakpoint"),M=Ve("container"),z=Ve("spacing"),P=Ve("radius"),U=Ve("shadow"),m=Ve("inset-shadow"),G=Ve("text-shadow"),se=Ve("drop-shadow"),J=Ve("blur"),le=Ve("perspective"),re=Ve("aspect"),ee=Ve("ease"),Ie=Ve("animate"),Se=()=>["auto","avoid","all","avoid-page","page","left","right","column"],he=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Te=()=>[...he(),B,F],de=()=>["auto","hidden","clip","visible","scroll"],ve=()=>["auto","contain","none"],V=()=>[B,F,z],Pe=()=>[xr,"full","auto",...V()],Ye=()=>[Pn,"none","subgrid",B,F],lt=()=>["auto",{span:["full",Pn,B,F]},Pn,B,F],je=()=>[Pn,"auto",B,F],ge=()=>["auto","min","max","fr",B,F],De=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Ce=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...V()],te=()=>[xr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...V()],k=()=>[a,B,F],H=()=>[...he(),gc,hc,{position:[B,F]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],h=()=>["auto","cover","contain",_p,Ep,{size:[B,F]}],E=()=>[ms,fo,Gn],R=()=>["","none","full",P,B,F],I=()=>["",ae,fo,Gn],W=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>[ae,ms,gc,hc],Y=()=>["","none",J,B,F],ce=()=>["none",ae,B,F],Ne=()=>["none",ae,B,F],mt=()=>[ae,B,F],it=()=>[xr,"full",...V()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[en],breakpoint:[en],color:[yp],container:[en],"drop-shadow":[en],ease:["in","out","in-out"],font:[Sp],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[en],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[en],shadow:[en],spacing:["px",ae],text:[en],"text-shadow":[en],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",xr,F,B,re]}],container:["container"],columns:[{columns:[ae,F,B,M]}],"break-after":[{"break-after":Se()}],"break-before":[{"break-before":Se()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Te()}],overflow:[{overflow:de()}],"overflow-x":[{"overflow-x":de()}],"overflow-y":[{"overflow-y":de()}],overscroll:[{overscroll:ve()}],"overscroll-x":[{"overscroll-x":ve()}],"overscroll-y":[{"overscroll-y":ve()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Pe()}],"inset-x":[{"inset-x":Pe()}],"inset-y":[{"inset-y":Pe()}],start:[{start:Pe()}],end:[{end:Pe()}],top:[{top:Pe()}],right:[{right:Pe()}],bottom:[{bottom:Pe()}],left:[{left:Pe()}],visibility:["visible","invisible","collapse"],z:[{z:[Pn,"auto",B,F]}],basis:[{basis:[xr,"full","auto",M,...V()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ae,xr,"auto","initial","none",F]}],grow:[{grow:["",ae,B,F]}],shrink:[{shrink:["",ae,B,F]}],order:[{order:[Pn,"first","last","none",B,F]}],"grid-cols":[{"grid-cols":Ye()}],"col-start-end":[{col:lt()}],"col-start":[{"col-start":je()}],"col-end":[{"col-end":je()}],"grid-rows":[{"grid-rows":Ye()}],"row-start-end":[{row:lt()}],"row-start":[{"row-start":je()}],"row-end":[{"row-end":je()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ge()}],"auto-rows":[{"auto-rows":ge()}],gap:[{gap:V()}],"gap-x":[{"gap-x":V()}],"gap-y":[{"gap-y":V()}],"justify-content":[{justify:[...De(),"normal"]}],"justify-items":[{"justify-items":[...Ce(),"normal"]}],"justify-self":[{"justify-self":["auto",...Ce()]}],"align-content":[{content:["normal",...De()]}],"align-items":[{items:[...Ce(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Ce(),{baseline:["","last"]}]}],"place-content":[{"place-content":De()}],"place-items":[{"place-items":[...Ce(),"baseline"]}],"place-self":[{"place-self":["auto",...Ce()]}],p:[{p:V()}],px:[{px:V()}],py:[{py:V()}],ps:[{ps:V()}],pe:[{pe:V()}],pt:[{pt:V()}],pr:[{pr:V()}],pb:[{pb:V()}],pl:[{pl:V()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":V()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":V()}],"space-y-reverse":["space-y-reverse"],size:[{size:te()}],w:[{w:[M,"screen",...te()]}],"min-w":[{"min-w":[M,"screen","none",...te()]}],"max-w":[{"max-w":[M,"screen","none","prose",{screen:[_]},...te()]}],h:[{h:["screen","lh",...te()]}],"min-h":[{"min-h":["screen","lh","none",...te()]}],"max-h":[{"max-h":["screen","lh",...te()]}],"font-size":[{text:["base",s,fo,Gn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[p,B,hs]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ms,F]}],"font-family":[{font:[Np,F,c]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[w,B,F]}],"line-clamp":[{"line-clamp":[ae,"none",B,hs]}],leading:[{leading:[x,...V()]}],"list-image":[{"list-image":["none",B,F]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",B,F]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:k()}],"text-color":[{text:k()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:[ae,"from-font","auto",B,Gn]}],"text-decoration-color":[{decoration:k()}],"underline-offset":[{"underline-offset":[ae,"auto",B,F]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:V()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",B,F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",B,F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:H()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:h()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Pn,B,F],radial:["",B,F],conic:[Pn,B,F]},zp,Cp]}],"bg-color":[{bg:k()}],"gradient-from-pos":[{from:E()}],"gradient-via-pos":[{via:E()}],"gradient-to-pos":[{to:E()}],"gradient-from":[{from:k()}],"gradient-via":[{via:k()}],"gradient-to":[{to:k()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:I()}],"border-w-x":[{"border-x":I()}],"border-w-y":[{"border-y":I()}],"border-w-s":[{"border-s":I()}],"border-w-e":[{"border-e":I()}],"border-w-t":[{"border-t":I()}],"border-w-r":[{"border-r":I()}],"border-w-b":[{"border-b":I()}],"border-w-l":[{"border-l":I()}],"divide-x":[{"divide-x":I()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":I()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...W(),"hidden","none"]}],"divide-style":[{divide:[...W(),"hidden","none"]}],"border-color":[{border:k()}],"border-color-x":[{"border-x":k()}],"border-color-y":[{"border-y":k()}],"border-color-s":[{"border-s":k()}],"border-color-e":[{"border-e":k()}],"border-color-t":[{"border-t":k()}],"border-color-r":[{"border-r":k()}],"border-color-b":[{"border-b":k()}],"border-color-l":[{"border-l":k()}],"divide-color":[{divide:k()}],"outline-style":[{outline:[...W(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ae,B,F]}],"outline-w":[{outline:["",ae,fo,Gn]}],"outline-color":[{outline:k()}],shadow:[{shadow:["","none",U,_l,Nl]}],"shadow-color":[{shadow:k()}],"inset-shadow":[{"inset-shadow":["none",m,_l,Nl]}],"inset-shadow-color":[{"inset-shadow":k()}],"ring-w":[{ring:I()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:k()}],"ring-offset-w":[{"ring-offset":[ae,Gn]}],"ring-offset-color":[{"ring-offset":k()}],"inset-ring-w":[{"inset-ring":I()}],"inset-ring-color":[{"inset-ring":k()}],"text-shadow":[{"text-shadow":["none",G,_l,Nl]}],"text-shadow-color":[{"text-shadow":k()}],opacity:[{opacity:[ae,B,F]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ae]}],"mask-image-linear-from-pos":[{"mask-linear-from":K()}],"mask-image-linear-to-pos":[{"mask-linear-to":K()}],"mask-image-linear-from-color":[{"mask-linear-from":k()}],"mask-image-linear-to-color":[{"mask-linear-to":k()}],"mask-image-t-from-pos":[{"mask-t-from":K()}],"mask-image-t-to-pos":[{"mask-t-to":K()}],"mask-image-t-from-color":[{"mask-t-from":k()}],"mask-image-t-to-color":[{"mask-t-to":k()}],"mask-image-r-from-pos":[{"mask-r-from":K()}],"mask-image-r-to-pos":[{"mask-r-to":K()}],"mask-image-r-from-color":[{"mask-r-from":k()}],"mask-image-r-to-color":[{"mask-r-to":k()}],"mask-image-b-from-pos":[{"mask-b-from":K()}],"mask-image-b-to-pos":[{"mask-b-to":K()}],"mask-image-b-from-color":[{"mask-b-from":k()}],"mask-image-b-to-color":[{"mask-b-to":k()}],"mask-image-l-from-pos":[{"mask-l-from":K()}],"mask-image-l-to-pos":[{"mask-l-to":K()}],"mask-image-l-from-color":[{"mask-l-from":k()}],"mask-image-l-to-color":[{"mask-l-to":k()}],"mask-image-x-from-pos":[{"mask-x-from":K()}],"mask-image-x-to-pos":[{"mask-x-to":K()}],"mask-image-x-from-color":[{"mask-x-from":k()}],"mask-image-x-to-color":[{"mask-x-to":k()}],"mask-image-y-from-pos":[{"mask-y-from":K()}],"mask-image-y-to-pos":[{"mask-y-to":K()}],"mask-image-y-from-color":[{"mask-y-from":k()}],"mask-image-y-to-color":[{"mask-y-to":k()}],"mask-image-radial":[{"mask-radial":[B,F]}],"mask-image-radial-from-pos":[{"mask-radial-from":K()}],"mask-image-radial-to-pos":[{"mask-radial-to":K()}],"mask-image-radial-from-color":[{"mask-radial-from":k()}],"mask-image-radial-to-color":[{"mask-radial-to":k()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":he()}],"mask-image-conic-pos":[{"mask-conic":[ae]}],"mask-image-conic-from-pos":[{"mask-conic-from":K()}],"mask-image-conic-to-pos":[{"mask-conic-to":K()}],"mask-image-conic-from-color":[{"mask-conic-from":k()}],"mask-image-conic-to-color":[{"mask-conic-to":k()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:H()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:h()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",B,F]}],filter:[{filter:["","none",B,F]}],blur:[{blur:Y()}],brightness:[{brightness:[ae,B,F]}],contrast:[{contrast:[ae,B,F]}],"drop-shadow":[{"drop-shadow":["","none",se,_l,Nl]}],"drop-shadow-color":[{"drop-shadow":k()}],grayscale:[{grayscale:["",ae,B,F]}],"hue-rotate":[{"hue-rotate":[ae,B,F]}],invert:[{invert:["",ae,B,F]}],saturate:[{saturate:[ae,B,F]}],sepia:[{sepia:["",ae,B,F]}],"backdrop-filter":[{"backdrop-filter":["","none",B,F]}],"backdrop-blur":[{"backdrop-blur":Y()}],"backdrop-brightness":[{"backdrop-brightness":[ae,B,F]}],"backdrop-contrast":[{"backdrop-contrast":[ae,B,F]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ae,B,F]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ae,B,F]}],"backdrop-invert":[{"backdrop-invert":["",ae,B,F]}],"backdrop-opacity":[{"backdrop-opacity":[ae,B,F]}],"backdrop-saturate":[{"backdrop-saturate":[ae,B,F]}],"backdrop-sepia":[{"backdrop-sepia":["",ae,B,F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":V()}],"border-spacing-x":[{"border-spacing-x":V()}],"border-spacing-y":[{"border-spacing-y":V()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",B,F]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ae,"initial",B,F]}],ease:[{ease:["linear","initial",ee,B,F]}],delay:[{delay:[ae,B,F]}],animate:[{animate:["none",Ie,B,F]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[le,B,F]}],"perspective-origin":[{"perspective-origin":Te()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:Ne()}],"scale-x":[{"scale-x":Ne()}],"scale-y":[{"scale-y":Ne()}],"scale-z":[{"scale-z":Ne()}],"scale-3d":["scale-3d"],skew:[{skew:mt()}],"skew-x":[{"skew-x":mt()}],"skew-y":[{"skew-y":mt()}],transform:[{transform:[B,F,"","none","gpu","cpu"]}],"transform-origin":[{origin:Te()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:it()}],"translate-x":[{"translate-x":it()}],"translate-y":[{"translate-y":it()}],"translate-z":[{"translate-z":it()}],"translate-none":["translate-none"],accent:[{accent:k()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:k()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",B,F]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":V()}],"scroll-mx":[{"scroll-mx":V()}],"scroll-my":[{"scroll-my":V()}],"scroll-ms":[{"scroll-ms":V()}],"scroll-me":[{"scroll-me":V()}],"scroll-mt":[{"scroll-mt":V()}],"scroll-mr":[{"scroll-mr":V()}],"scroll-mb":[{"scroll-mb":V()}],"scroll-ml":[{"scroll-ml":V()}],"scroll-p":[{"scroll-p":V()}],"scroll-px":[{"scroll-px":V()}],"scroll-py":[{"scroll-py":V()}],"scroll-ps":[{"scroll-ps":V()}],"scroll-pe":[{"scroll-pe":V()}],"scroll-pt":[{"scroll-pt":V()}],"scroll-pr":[{"scroll-pr":V()}],"scroll-pb":[{"scroll-pb":V()}],"scroll-pl":[{"scroll-pl":V()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",B,F]}],fill:[{fill:["none",...k()]}],"stroke-w":[{stroke:[ae,fo,Gn,hs]}],stroke:[{stroke:["none",...k()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},jp=dp(Rp);function Er(...a){return jp(Tc(a))}const bp=Pc("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function ws({className:a,variant:c,asChild:s=!1,...p}){const w=s?_c:"span";return S.jsx(w,{"data-slot":"badge",className:Er(bp({variant:c}),a),...p})}const Lp=Pc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function xs({className:a,variant:c,size:s,asChild:p=!1,...w}){const x=p?_c:"button";return S.jsx(x,{"data-slot":"button",className:Er(Lp({variant:c,size:s,className:a})),...w})}/** +`+l.stack}return{value:e,source:t,stack:o,digest:null}}function Mi(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ii(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var df=typeof WeakMap=="function"?WeakMap:Map;function du(e,t,n){n=Zt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){cl||(cl=!0,Xi=r),Ii(e,t)},n}function fu(e,t,n){n=Zt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){Ii(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){Ii(e,t),typeof r!="function"&&(En===null?En=new Set([this]):En.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function pu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new df;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Nf.bind(null,e,t,n),t.then(e,e))}function mu(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function hu(e,t,n,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Zt(-1,1),t.tag=2,kn(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var ff=he.ReactCurrentOwner,ut=!1;function rt(e,t,n,r){t.child=e===null?Ia(t,null,n,r):dr(t,e.child,n,r)}function gu(e,t,n,r,o){n=n.render;var l=t.ref;return pr(t,o),r=_i(e,t,n,r,l,o),n=zi(),e!==null&&!ut?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Jt(e,t,o)):(Ee&&n&&ui(t),t.flags|=1,rt(e,t,r,o),t.child)}function vu(e,t,n,r,o){if(e===null){var l=n.type;return typeof l=="function"&&!rs(l)&&l.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=l,yu(e,t,l,r,o)):(e=gl(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,(e.lanes&o)===0){var i=l.memoizedProps;if(n=n.compare,n=n!==null?n:$r,n(i,r)&&e.ref===t.ref)return Jt(e,t,o)}return t.flags|=1,e=zn(l,r),e.ref=t.ref,e.return=t,t.child=e}function yu(e,t,n,r,o){if(e!==null){var l=e.memoizedProps;if($r(l,r)&&e.ref===t.ref)if(ut=!1,t.pendingProps=r=l,(e.lanes&o)!==0)(e.flags&131072)!==0&&(ut=!0);else return t.lanes=e.lanes,Jt(e,t,o)}return Oi(e,t,n,r,o)}function wu(e,t,n){var r=t.pendingProps,o=r.children,l=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ye(vr,xt),xt|=n;else{if((n&1073741824)===0)return e=l!==null?l.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ye(vr,xt),xt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,ye(vr,xt),xt|=r}else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,ye(vr,xt),xt|=r;return rt(e,t,o,n),t.child}function xu(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Oi(e,t,n,r,o){var l=at(n)?Dn:qe.current;return l=sr(t,l),pr(t,o),n=_i(e,t,n,r,l,o),r=zi(),e!==null&&!ut?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Jt(e,t,o)):(Ee&&r&&ui(t),t.flags|=1,rt(e,t,n,o),t.child)}function ku(e,t,n,r,o){if(at(n)){var l=!0;Uo(t)}else l=!1;if(pr(t,o),t.stateNode===null)ll(e,t),uu(t,n,r),Li(t,n,r,o),r=!0;else if(e===null){var i=t.stateNode,u=t.memoizedProps;i.props=u;var d=i.context,y=n.contextType;typeof y=="object"&&y!==null?y=_t(y):(y=at(n)?Dn:qe.current,y=sr(t,y));var N=n.getDerivedStateFromProps,T=typeof N=="function"||typeof i.getSnapshotBeforeUpdate=="function";T||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==r||d!==y)&&cu(t,i,r,y),xn=!1;var C=t.memoizedState;i.state=C,Xo(t,r,i,o),d=t.memoizedState,u!==r||C!==d||st.current||xn?(typeof N=="function"&&(ji(t,n,N,r),d=t.memoizedState),(u=xn||au(t,n,u,r,C,d,y))?(T||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=d),i.props=r,i.state=d,i.context=y,r=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Da(e,t),u=t.memoizedProps,y=t.type===t.elementType?u:Lt(t.type,u),i.props=y,T=t.pendingProps,C=i.context,d=n.contextType,typeof d=="object"&&d!==null?d=_t(d):(d=at(n)?Dn:qe.current,d=sr(t,d));var O=n.getDerivedStateFromProps;(N=typeof O=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==T||C!==d)&&cu(t,i,r,d),xn=!1,C=t.memoizedState,i.state=C,Xo(t,r,i,o);var A=t.memoizedState;u!==T||C!==A||st.current||xn?(typeof O=="function"&&(ji(t,n,O,r),A=t.memoizedState),(y=xn||au(t,n,y,r,C,A,d)||!1)?(N||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,A,d),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,A,d)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&C===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&C===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=A),i.props=r,i.state=A,i.context=d,r=y):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&C===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&C===e.memoizedState||(t.flags|=1024),r=!1)}return Di(e,t,n,r,l,o)}function Di(e,t,n,r,o,l){xu(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return o&&_a(t,n,!1),Jt(e,t,l);r=t.stateNode,ff.current=t;var u=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=dr(t,e.child,null,l),t.child=dr(t,null,u,l)):rt(e,t,u,l),t.memoizedState=r.state,o&&_a(t,n,!0),t.child}function Su(e){var t=e.stateNode;t.pendingContext?Ca(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Ca(e,t.context,!1),xi(e,t.containerInfo)}function Eu(e,t,n,r,o){return cr(),pi(o),t.flags|=256,rt(e,t,n,r),t.child}var Ai={dehydrated:null,treeContext:null,retryLane:0};function Fi(e){return{baseLanes:e,cachePool:null,transitions:null}}function Cu(e,t,n){var r=t.pendingProps,o=_e.current,l=!1,i=(t.flags&128)!==0,u;if((u=i)||(u=e!==null&&e.memoizedState===null?!1:(o&2)!==0),u?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),ye(_e,o&1),e===null)return fi(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,l?(r=t.mode,l=t.child,i={mode:"hidden",children:i},(r&1)===0&&l!==null?(l.childLanes=0,l.pendingProps=i):l=vl(i,r,0,null),e=Gn(e,r,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Fi(n),t.memoizedState=Ai,e):Bi(t,i));if(o=e.memoizedState,o!==null&&(u=o.dehydrated,u!==null))return pf(e,t,i,r,u,o,n);if(l){l=r.fallback,i=t.mode,o=e.child,u=o.sibling;var d={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=d,t.deletions=null):(r=zn(o,d),r.subtreeFlags=o.subtreeFlags&14680064),u!==null?l=zn(u,l):(l=Gn(l,i,n,null),l.flags|=2),l.return=t,r.return=t,r.sibling=l,t.child=r,r=l,l=t.child,i=e.child.memoizedState,i=i===null?Fi(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~n,t.memoizedState=Ai,r}return l=e.child,e=l.sibling,r=zn(l,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Bi(e,t){return t=vl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ol(e,t,n,r){return r!==null&&pi(r),dr(t,e.child,null,n),e=Bi(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function pf(e,t,n,r,o,l,i){if(n)return t.flags&256?(t.flags&=-257,r=Mi(Error(s(422))),ol(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=r.fallback,o=t.mode,r=vl({mode:"visible",children:r.children},o,0,null),l=Gn(l,o,i,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,(t.mode&1)!==0&&dr(t,e.child,null,i),t.child.memoizedState=Fi(i),t.memoizedState=Ai,l);if((t.mode&1)===0)return ol(e,t,i,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var u=r.dgst;return r=u,l=Error(s(419)),r=Mi(l,r,void 0),ol(e,t,i,r)}if(u=(i&e.childLanes)!==0,ut||u){if(r=We,r!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|i))!==0?0:o,o!==0&&o!==l.retryLane&&(l.retryLane=o,Xt(e,o),Ot(r,e,o,-1))}return ns(),r=Mi(Error(s(421))),ol(e,t,i,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=_f.bind(null,e),o._reactRetry=t,null):(e=l.treeContext,wt=gn(o.nextSibling),yt=t,Ee=!0,jt=null,e!==null&&(Ct[Nt++]=Yt,Ct[Nt++]=Kt,Ct[Nt++]=An,Yt=e.id,Kt=e.overflow,An=t),t=Bi(t,r.children),t.flags|=4096,t)}function Nu(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),vi(e.return,t,n)}function Ui(e,t,n,r,o){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=r,l.tail=n,l.tailMode=o)}function _u(e,t,n){var r=t.pendingProps,o=r.revealOrder,l=r.tail;if(rt(e,t,r.children,n),r=_e.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nu(e,n,t);else if(e.tag===19)Nu(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ye(_e,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Zo(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ui(t,!1,o,n,l);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Zo(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ui(t,!0,n,null,l);break;case"together":Ui(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ll(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Jt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),$n|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(s(153));if(t.child!==null){for(e=t.child,n=zn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=zn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function mf(e,t,n){switch(t.tag){case 3:Su(t),cr();break;case 5:Ba(t);break;case 1:at(t.type)&&Uo(t);break;case 4:xi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;ye(Go,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ye(_e,_e.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Cu(e,t,n):(ye(_e,_e.current&1),e=Jt(e,t,n),e!==null?e.sibling:null);ye(_e,_e.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return _u(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),ye(_e,_e.current),r)break;return null;case 22:case 23:return t.lanes=0,wu(e,t,n)}return Jt(e,t,n)}var zu,Vi,Tu,Pu;zu=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Vi=function(){},Tu=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Un(Ft.current);var l=null;switch(n){case"input":o=Rn(e,o),r=Rn(e,r),l=[];break;case"select":o=L({},o,{value:void 0}),r=L({},r,{value:void 0}),l=[];break;case"textarea":o=Ye(e,o),r=Ye(e,r),l=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Ao)}Zn(n,r);var i;n=null;for(y in o)if(!r.hasOwnProperty(y)&&o.hasOwnProperty(y)&&o[y]!=null)if(y==="style"){var u=o[y];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else y!=="dangerouslySetInnerHTML"&&y!=="children"&&y!=="suppressContentEditableWarning"&&y!=="suppressHydrationWarning"&&y!=="autoFocus"&&(w.hasOwnProperty(y)?l||(l=[]):(l=l||[]).push(y,null));for(y in r){var d=r[y];if(u=o?.[y],r.hasOwnProperty(y)&&d!==u&&(d!=null||u!=null))if(y==="style")if(u){for(i in u)!u.hasOwnProperty(i)||d&&d.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in d)d.hasOwnProperty(i)&&u[i]!==d[i]&&(n||(n={}),n[i]=d[i])}else n||(l||(l=[]),l.push(y,n)),n=d;else y==="dangerouslySetInnerHTML"?(d=d?d.__html:void 0,u=u?u.__html:void 0,d!=null&&u!==d&&(l=l||[]).push(y,d)):y==="children"?typeof d!="string"&&typeof d!="number"||(l=l||[]).push(y,""+d):y!=="suppressContentEditableWarning"&&y!=="suppressHydrationWarning"&&(w.hasOwnProperty(y)?(d!=null&&y==="onScroll"&&xe("scroll",e),l||u===d||(l=[])):(l=l||[]).push(y,d))}n&&(l=l||[]).push("style",n);var y=l;(t.updateQueue=y)&&(t.flags|=4)}},Pu=function(e,t,n,r){n!==r&&(t.flags|=4)};function oo(e,t){if(!Ee)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function tt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function hf(e,t,n){var r=t.pendingProps;switch(ci(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return tt(t),null;case 1:return at(t.type)&&Bo(),tt(t),null;case 3:return r=t.stateNode,mr(),ke(st),ke(qe),Ei(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Wo(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,jt!==null&&(qi(jt),jt=null))),Vi(e,t),tt(t),null;case 5:ki(t);var o=Un(qr.current);if(n=t.type,e!==null&&t.stateNode!=null)Tu(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(s(166));return tt(t),null}if(e=Un(Ft.current),Wo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[At]=t,r[Yr]=l,e=(t.mode&1)!==0,n){case"dialog":xe("cancel",r),xe("close",r);break;case"iframe":case"object":case"embed":xe("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[At]=t,e[Yr]=r,zu(e,t,!1,!1),t.stateNode=e;e:{switch(i=zr(n,r),n){case"dialog":xe("cancel",e),xe("close",e),o=r;break;case"iframe":case"object":case"embed":xe("load",e),o=r;break;case"video":case"audio":for(o=0;oyr&&(t.flags|=128,r=!0,oo(l,!1),t.lanes=4194304)}else{if(!r)if(e=Zo(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oo(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!Ee)return tt(t),null}else 2*Le()-l.renderingStartTime>yr&&n!==1073741824&&(t.flags|=128,r=!0,oo(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=Le(),t.sibling=null,n=_e.current,ye(_e,r?n&1|2:n&1),t):(tt(t),null);case 22:case 23:return ts(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(xt&1073741824)!==0&&(tt(t),t.subtreeFlags&6&&(t.flags|=8192)):tt(t),null;case 24:return null;case 25:return null}throw Error(s(156,t.tag))}function gf(e,t){switch(ci(t),t.tag){case 1:return at(t.type)&&Bo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mr(),ke(st),ke(qe),Ei(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ki(t),null;case 13:if(ke(_e),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));cr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ke(_e),null;case 4:return mr(),null;case 10:return gi(t.type._context),null;case 22:case 23:return ts(),null;case 24:return null;default:return null}}var il=!1,nt=!1,vf=typeof WeakSet=="function"?WeakSet:Set,D=null;function gr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Re(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){Re(e,t,r)}}var Ru=!1;function yf(e,t){if(ti=_o,e=aa(),Gl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,u=-1,d=-1,y=0,N=0,T=e,C=null;t:for(;;){for(var O;T!==n||o!==0&&T.nodeType!==3||(u=i+o),T!==l||r!==0&&T.nodeType!==3||(d=i+r),T.nodeType===3&&(i+=T.nodeValue.length),(O=T.firstChild)!==null;)C=T,T=O;for(;;){if(T===e)break t;if(C===n&&++y===o&&(u=i),C===l&&++N===r&&(d=i),(O=T.nextSibling)!==null)break;T=C,C=T.parentNode}T=O}n=u===-1||d===-1?null:{start:u,end:d}}else n=null}n=n||{start:0,end:0}}else n=null;for(ni={focusedElem:e,selectionRange:n},_o=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var A=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(A!==null){var $=A.memoizedProps,Me=A.memoizedState,g=t.stateNode,f=g.getSnapshotBeforeUpdate(t.elementType===t.type?$:Lt(t.type,$),Me);g.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(b){Re(t,t.return,b)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return A=Ru,Ru=!1,A}function lo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&$i(t,n,l)}o=o.next}while(o!==r)}}function sl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Hi(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function bu(e){var t=e.alternate;t!==null&&(e.alternate=null,bu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[At],delete t[Yr],delete t[ii],delete t[qd],delete t[ef])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ju(e){return e.tag===5||e.tag===3||e.tag===4}function Lu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ju(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ao));else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}function Qi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Qi(e,t,n),e=e.sibling;e!==null;)Qi(e,t,n),e=e.sibling}var Xe=null,Mt=!1;function Sn(e,t,n){for(n=n.child;n!==null;)Mu(e,t,n),n=n.sibling}function Mu(e,t,n){if(Dt&&typeof Dt.onCommitFiberUnmount=="function")try{Dt.onCommitFiberUnmount(xo,n)}catch{}switch(n.tag){case 5:nt||gr(n,t);case 6:var r=Xe,o=Mt;Xe=null,Sn(e,t,n),Xe=r,Mt=o,Xe!==null&&(Mt?(e=Xe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Xe.removeChild(n.stateNode));break;case 18:Xe!==null&&(Mt?(e=Xe,n=n.stateNode,e.nodeType===8?li(e.parentNode,n):e.nodeType===1&&li(e,n),Dr(e)):li(Xe,n.stateNode));break;case 4:r=Xe,o=Mt,Xe=n.stateNode.containerInfo,Mt=!0,Sn(e,t,n),Xe=r,Mt=o;break;case 0:case 11:case 14:case 15:if(!nt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&$i(n,t,i),o=o.next}while(o!==r)}Sn(e,t,n);break;case 1:if(!nt&&(gr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Re(n,t,u)}Sn(e,t,n);break;case 21:Sn(e,t,n);break;case 22:n.mode&1?(nt=(r=nt)||n.memoizedState!==null,Sn(e,t,n),nt=r):Sn(e,t,n);break;default:Sn(e,t,n)}}function Iu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new vf),t.forEach(function(r){var o=zf.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function It(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=Le()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*xf(r/1960))-r,10e?16:e,Cn===null)var r=!1;else{if(e=Cn,Cn=null,fl=0,(fe&6)!==0)throw Error(s(331));var o=fe;for(fe|=4,D=e.current;D!==null;){var l=D,i=l.child;if((D.flags&16)!==0){var u=l.deletions;if(u!==null){for(var d=0;dLe()-Ki?Wn(e,0):Yi|=n),dt(e,t)}function Yu(e,t){t===0&&((e.mode&1)===0?t=1:(t=So,So<<=1,(So&130023424)===0&&(So=4194304)));var n=ot();e=Xt(e,t),e!==null&&(jr(e,t,n),dt(e,n))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Yu(e,n)}function zf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(s(314))}r!==null&&r.delete(t),Yu(e,n)}var Ku;Ku=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||st.current)ut=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return ut=!1,mf(e,t,n);ut=(e.flags&131072)!==0}else ut=!1,Ee&&(t.flags&1048576)!==0&&Ta(t,Ho,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ll(e,t),e=t.pendingProps;var o=sr(t,qe.current);pr(t,n),o=_i(null,t,r,e,o,n);var l=zi();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,at(r)?(l=!0,Uo(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,wi(t),o.updater=rl,t.stateNode=o,o._reactInternals=t,Li(t,r,e,n),t=Di(null,t,r,!0,l,n)):(t.tag=0,Ee&&l&&ui(t),rt(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ll(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=Pf(r),e=Lt(r,e),o){case 0:t=Oi(null,t,r,e,n);break e;case 1:t=ku(null,t,r,e,n);break e;case 11:t=gu(null,t,r,e,n);break e;case 14:t=vu(null,t,r,Lt(r.type,e),n);break e}throw Error(s(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),Oi(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),ku(e,t,r,o,n);case 3:e:{if(Su(t),e===null)throw Error(s(387));r=t.pendingProps,l=t.memoizedState,o=l.element,Da(e,t),Xo(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=hr(Error(s(423)),t),t=Eu(e,t,r,n,o);break e}else if(r!==o){o=hr(Error(s(424)),t),t=Eu(e,t,r,n,o);break e}else for(wt=gn(t.stateNode.containerInfo.firstChild),yt=t,Ee=!0,jt=null,n=Ia(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(cr(),r===o){t=Jt(e,t,n);break e}rt(e,t,r,n)}t=t.child}return t;case 5:return Ba(t),e===null&&fi(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,ri(r,o)?i=null:l!==null&&ri(r,l)&&(t.flags|=32),xu(e,t),rt(e,t,i,n),t.child;case 6:return e===null&&fi(t),null;case 13:return Cu(e,t,n);case 4:return xi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=dr(t,null,r,n):rt(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),gu(e,t,r,o,n);case 7:return rt(e,t,t.pendingProps,n),t.child;case 8:return rt(e,t,t.pendingProps.children,n),t.child;case 12:return rt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,ye(Go,r._currentValue),r._currentValue=i,l!==null)if(bt(l.value,i)){if(l.children===o.children&&!st.current){t=Jt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var u=l.dependencies;if(u!==null){i=l.child;for(var d=u.firstContext;d!==null;){if(d.context===r){if(l.tag===1){d=Zt(-1,n&-n),d.tag=2;var y=l.updateQueue;if(y!==null){y=y.shared;var N=y.pending;N===null?d.next=d:(d.next=N.next,N.next=d),y.pending=d}}l.lanes|=n,d=l.alternate,d!==null&&(d.lanes|=n),vi(l.return,n,t),u.lanes|=n;break}d=d.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(s(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),vi(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}rt(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,pr(t,n),o=_t(o),r=r(o),t.flags|=1,rt(e,t,r,n),t.child;case 14:return r=t.type,o=Lt(r,t.pendingProps),o=Lt(r.type,o),vu(e,t,r,o,n);case 15:return yu(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Lt(r,o),ll(e,t),t.tag=1,at(r)?(e=!0,Uo(t)):e=!1,pr(t,n),uu(t,r,o),Li(t,r,o,n),Di(null,t,r,!0,e,n);case 19:return _u(e,t,n);case 22:return wu(e,t,n)}throw Error(s(156,t.tag))};function Xu(e,t){return Ps(e,t)}function Tf(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pt(e,t,n,r){return new Tf(e,t,n,r)}function rs(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Pf(e){if(typeof e=="function")return rs(e)?1:0;if(e!=null){if(e=e.$$typeof,e===be)return 11;if(e===Ce)return 14}return 2}function zn(e,t){var n=e.alternate;return n===null?(n=Pt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function gl(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")rs(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ve:return Gn(n.children,o,l,t);case V:i=8,o|=8;break;case Pe:return e=Pt(12,n,t,o|2),e.elementType=Pe,e.lanes=l,e;case ge:return e=Pt(13,n,t,o),e.elementType=ge,e.lanes=l,e;case Oe:return e=Pt(19,n,t,o),e.elementType=Oe,e.lanes=l,e;case te:return vl(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ge:i=10;break e;case lt:i=9;break e;case be:i=11;break e;case Ce:i=14;break e;case J:i=16,r=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return t=Pt(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Gn(e,t,n,r){return e=Pt(7,e,r,t),e.lanes=n,e}function vl(e,t,n,r){return e=Pt(22,e,r,t),e.elementType=te,e.lanes=n,e.stateNode={isHidden:!1},e}function os(e,t,n){return e=Pt(6,e,null,t),e.lanes=n,e}function ls(e,t,n){return t=Pt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Rf(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=jl(0),this.expirationTimes=jl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function is(e,t,n,r,o,l,i,u,d){return e=new Rf(e,t,n,u,d),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Pt(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},wi(l),e}function bf(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(c){console.error(c)}}return a(),fs.exports=Vf(),fs.exports}var cc;function $f(){if(cc)return Cl;cc=1;var a=Cc();return Cl.createRoot=a.createRoot,Cl.hydrateRoot=a.hydrateRoot,Cl}var Hf=$f(),we=Es();const j=Ec(we);function dc(a,c){if(typeof a=="function")return a(c);a!=null&&(a.current=c)}function Wf(...a){return c=>{let s=!1;const p=a.map(w=>{const x=dc(w,c);return!s&&typeof x=="function"&&(s=!0),x});if(s)return()=>{for(let w=0;w{const{children:x,..._}=p,M=we.Children.toArray(x),z=M.find(Yf);if(z){const P=z.props.children,U=M.map(m=>m===z?we.Children.count(P)>1?we.Children.only(null):we.isValidElement(P)?P.props.children:null:m);return E.jsx(c,{..._,ref:w,children:we.isValidElement(P)?we.cloneElement(P,void 0,U):null})}return E.jsx(c,{..._,ref:w,children:x})});return s.displayName=`${a}.Slot`,s}var _c=Nc("Slot");function Qf(a){const c=we.forwardRef((s,p)=>{const{children:w,...x}=s;if(we.isValidElement(w)){const _=Xf(w),M=Kf(x,w.props);return w.type!==we.Fragment&&(M.ref=p?Wf(p,_):_),we.cloneElement(w,M)}return we.Children.count(w)>1?we.Children.only(null):null});return c.displayName=`${a}.SlotClone`,c}var Gf=Symbol("radix.slottable");function Yf(a){return we.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Gf}function Kf(a,c){const s={...c};for(const p in c){const w=a[p],x=c[p];/^on[A-Z]/.test(p)?w&&x?s[p]=(...M)=>{const z=x(...M);return w(...M),z}:w&&(s[p]=w):p==="style"?s[p]={...w,...x}:p==="className"&&(s[p]=[w,x].filter(Boolean).join(" "))}return{...a,...s}}function Xf(a){let c=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,s=c&&"isReactWarning"in c&&c.isReactWarning;return s?a.ref:(c=Object.getOwnPropertyDescriptor(a,"ref")?.get,s=c&&"isReactWarning"in c&&c.isReactWarning,s?a.props.ref:a.props.ref||a.ref)}function zc(a){var c,s,p="";if(typeof a=="string"||typeof a=="number")p+=a;else if(typeof a=="object")if(Array.isArray(a)){var w=a.length;for(c=0;ctypeof a=="boolean"?`${a}`:a===0?"0":a,pc=Tc,Pc=(a,c)=>s=>{var p;if(c?.variants==null)return pc(a,s?.class,s?.className);const{variants:w,defaultVariants:x}=c,_=Object.keys(w).map(P=>{const U=s?.[P],m=x?.[P];if(U===null)return null;const Y=fc(U)||fc(m);return w[P][Y]}),M=s&&Object.entries(s).reduce((P,U)=>{let[m,Y]=U;return Y===void 0||(P[m]=Y),P},{}),z=c==null||(p=c.compoundVariants)===null||p===void 0?void 0:p.reduce((P,U)=>{let{class:m,className:Y,...se}=U;return Object.entries(se).every(q=>{let[le,re]=q;return Array.isArray(re)?re.includes({...x,...M}[le]):{...x,...M}[le]===re})?[...P,m,Y]:P},[]);return pc(a,_,z,s?.class,s?.className)},Cs="-",Zf=a=>{const c=qf(a),{conflictingClassGroups:s,conflictingClassGroupModifiers:p}=a;return{getClassGroupId:_=>{const M=_.split(Cs);return M[0]===""&&M.length!==1&&M.shift(),Rc(M,c)||Jf(_)},getConflictingClassGroupIds:(_,M)=>{const z=s[_]||[];return M&&p[_]?[...z,...p[_]]:z}}},Rc=(a,c)=>{if(a.length===0)return c.classGroupId;const s=a[0],p=c.nextPart.get(s),w=p?Rc(a.slice(1),p):void 0;if(w)return w;if(c.validators.length===0)return;const x=a.join(Cs);return c.validators.find(({validator:_})=>_(x))?.classGroupId},mc=/^\[(.+)\]$/,Jf=a=>{if(mc.test(a)){const c=mc.exec(a)[1],s=c?.substring(0,c.indexOf(":"));if(s)return"arbitrary.."+s}},qf=a=>{const{theme:c,classGroups:s}=a,p={nextPart:new Map,validators:[]};for(const w in s)vs(s[w],p,w,c);return p},vs=(a,c,s,p)=>{a.forEach(w=>{if(typeof w=="string"){const x=w===""?c:hc(c,w);x.classGroupId=s;return}if(typeof w=="function"){if(ep(w)){vs(w(p),c,s,p);return}c.validators.push({validator:w,classGroupId:s});return}Object.entries(w).forEach(([x,_])=>{vs(_,hc(c,x),s,p)})})},hc=(a,c)=>{let s=a;return c.split(Cs).forEach(p=>{s.nextPart.has(p)||s.nextPart.set(p,{nextPart:new Map,validators:[]}),s=s.nextPart.get(p)}),s},ep=a=>a.isThemeGetter,tp=a=>{if(a<1)return{get:()=>{},set:()=>{}};let c=0,s=new Map,p=new Map;const w=(x,_)=>{s.set(x,_),c++,c>a&&(c=0,p=s,s=new Map)};return{get(x){let _=s.get(x);if(_!==void 0)return _;if((_=p.get(x))!==void 0)return w(x,_),_},set(x,_){s.has(x)?s.set(x,_):w(x,_)}}},ys="!",ws=":",np=ws.length,rp=a=>{const{prefix:c,experimentalParseClassName:s}=a;let p=w=>{const x=[];let _=0,M=0,z=0,P;for(let q=0;qz?P-z:void 0;return{modifiers:x,hasImportantModifier:Y,baseClassName:m,maybePostfixModifierPosition:se}};if(c){const w=c+ws,x=p;p=_=>_.startsWith(w)?x(_.substring(w.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:_,maybePostfixModifierPosition:void 0}}if(s){const w=p;p=x=>s({className:x,parseClassName:w})}return p},op=a=>a.endsWith(ys)?a.substring(0,a.length-1):a.startsWith(ys)?a.substring(1):a,lp=a=>{const c=Object.fromEntries(a.orderSensitiveModifiers.map(p=>[p,!0]));return p=>{if(p.length<=1)return p;const w=[];let x=[];return p.forEach(_=>{_[0]==="["||c[_]?(w.push(...x.sort(),_),x=[]):x.push(_)}),w.push(...x.sort()),w}},ip=a=>({cache:tp(a.cacheSize),parseClassName:rp(a),sortModifiers:lp(a),...Zf(a)}),sp=/\s+/,ap=(a,c)=>{const{parseClassName:s,getClassGroupId:p,getConflictingClassGroupIds:w,sortModifiers:x}=c,_=[],M=a.trim().split(sp);let z="";for(let P=M.length-1;P>=0;P-=1){const U=M[P],{isExternal:m,modifiers:Y,hasImportantModifier:se,baseClassName:q,maybePostfixModifierPosition:le}=s(U);if(m){z=U+(z.length>0?" "+z:z);continue}let re=!!le,ee=p(re?q.substring(0,le):q);if(!ee){if(!re){z=U+(z.length>0?" "+z:z);continue}if(ee=p(q),!ee){z=U+(z.length>0?" "+z:z);continue}re=!1}const Ie=x(Y).join(":"),Se=se?Ie+ys:Ie,he=Se+ee;if(_.includes(he))continue;_.push(he);const Te=w(ee,re);for(let de=0;de0?" "+z:z)}return z};function up(){let a=0,c,s,p="";for(;a{if(typeof a=="string")return a;let c,s="";for(let p=0;pm(U),a());return s=ip(P),p=s.cache.get,w=s.cache.set,x=M,M(z)}function M(z){const P=p(z);if(P)return P;const U=ap(z,s);return w(z,U),U}return function(){return x(up.apply(null,arguments))}}const Ve=a=>{const c=s=>s[a]||[];return c.isThemeGetter=!0,c},jc=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Lc=/^\((?:(\w[\w-]*):)?(.+)\)$/i,dp=/^\d+\/\d+$/,fp=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,pp=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,mp=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,hp=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,gp=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xr=a=>dp.test(a),ae=a=>!!a&&!Number.isNaN(Number(a)),Pn=a=>!!a&&Number.isInteger(Number(a)),hs=a=>a.endsWith("%")&&ae(a.slice(0,-1)),en=a=>fp.test(a),vp=()=>!0,yp=a=>pp.test(a)&&!mp.test(a),Mc=()=>!1,wp=a=>hp.test(a),xp=a=>gp.test(a),kp=a=>!F(a)&&!B(a),Sp=a=>kr(a,Dc,Mc),F=a=>jc.test(a),Yn=a=>kr(a,Ac,yp),gs=a=>kr(a,zp,ae),gc=a=>kr(a,Ic,Mc),Ep=a=>kr(a,Oc,xp),Nl=a=>kr(a,Fc,wp),B=a=>Lc.test(a),fo=a=>Sr(a,Ac),Cp=a=>Sr(a,Tp),vc=a=>Sr(a,Ic),Np=a=>Sr(a,Dc),_p=a=>Sr(a,Oc),_l=a=>Sr(a,Fc,!0),kr=(a,c,s)=>{const p=jc.exec(a);return p?p[1]?c(p[1]):s(p[2]):!1},Sr=(a,c,s=!1)=>{const p=Lc.exec(a);return p?p[1]?c(p[1]):s:!1},Ic=a=>a==="position"||a==="percentage",Oc=a=>a==="image"||a==="url",Dc=a=>a==="length"||a==="size"||a==="bg-size",Ac=a=>a==="length",zp=a=>a==="number",Tp=a=>a==="family-name",Fc=a=>a==="shadow",Pp=()=>{const a=Ve("color"),c=Ve("font"),s=Ve("text"),p=Ve("font-weight"),w=Ve("tracking"),x=Ve("leading"),_=Ve("breakpoint"),M=Ve("container"),z=Ve("spacing"),P=Ve("radius"),U=Ve("shadow"),m=Ve("inset-shadow"),Y=Ve("text-shadow"),se=Ve("drop-shadow"),q=Ve("blur"),le=Ve("perspective"),re=Ve("aspect"),ee=Ve("ease"),Ie=Ve("animate"),Se=()=>["auto","avoid","all","avoid-page","page","left","right","column"],he=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Te=()=>[...he(),B,F],de=()=>["auto","hidden","clip","visible","scroll"],ve=()=>["auto","contain","none"],V=()=>[B,F,z],Pe=()=>[xr,"full","auto",...V()],Ge=()=>[Pn,"none","subgrid",B,F],lt=()=>["auto",{span:["full",Pn,B,F]},Pn,B,F],be=()=>[Pn,"auto",B,F],ge=()=>["auto","min","max","fr",B,F],Oe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Ce=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...V()],te=()=>[xr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...V()],k=()=>[a,B,F],H=()=>[...he(),vc,gc,{position:[B,F]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],h=()=>["auto","cover","contain",Np,Sp,{size:[B,F]}],S=()=>[hs,fo,Yn],R=()=>["","none","full",P,B,F],I=()=>["",ae,fo,Yn],W=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>[ae,hs,vc,gc],G=()=>["","none",q,B,F],ce=()=>["none",ae,B,F],Ne=()=>["none",ae,B,F],mt=()=>[ae,B,F],it=()=>[xr,"full",...V()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[en],breakpoint:[en],color:[vp],container:[en],"drop-shadow":[en],ease:["in","out","in-out"],font:[kp],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[en],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[en],shadow:[en],spacing:["px",ae],text:[en],"text-shadow":[en],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",xr,F,B,re]}],container:["container"],columns:[{columns:[ae,F,B,M]}],"break-after":[{"break-after":Se()}],"break-before":[{"break-before":Se()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Te()}],overflow:[{overflow:de()}],"overflow-x":[{"overflow-x":de()}],"overflow-y":[{"overflow-y":de()}],overscroll:[{overscroll:ve()}],"overscroll-x":[{"overscroll-x":ve()}],"overscroll-y":[{"overscroll-y":ve()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Pe()}],"inset-x":[{"inset-x":Pe()}],"inset-y":[{"inset-y":Pe()}],start:[{start:Pe()}],end:[{end:Pe()}],top:[{top:Pe()}],right:[{right:Pe()}],bottom:[{bottom:Pe()}],left:[{left:Pe()}],visibility:["visible","invisible","collapse"],z:[{z:[Pn,"auto",B,F]}],basis:[{basis:[xr,"full","auto",M,...V()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ae,xr,"auto","initial","none",F]}],grow:[{grow:["",ae,B,F]}],shrink:[{shrink:["",ae,B,F]}],order:[{order:[Pn,"first","last","none",B,F]}],"grid-cols":[{"grid-cols":Ge()}],"col-start-end":[{col:lt()}],"col-start":[{"col-start":be()}],"col-end":[{"col-end":be()}],"grid-rows":[{"grid-rows":Ge()}],"row-start-end":[{row:lt()}],"row-start":[{"row-start":be()}],"row-end":[{"row-end":be()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ge()}],"auto-rows":[{"auto-rows":ge()}],gap:[{gap:V()}],"gap-x":[{"gap-x":V()}],"gap-y":[{"gap-y":V()}],"justify-content":[{justify:[...Oe(),"normal"]}],"justify-items":[{"justify-items":[...Ce(),"normal"]}],"justify-self":[{"justify-self":["auto",...Ce()]}],"align-content":[{content:["normal",...Oe()]}],"align-items":[{items:[...Ce(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Ce(),{baseline:["","last"]}]}],"place-content":[{"place-content":Oe()}],"place-items":[{"place-items":[...Ce(),"baseline"]}],"place-self":[{"place-self":["auto",...Ce()]}],p:[{p:V()}],px:[{px:V()}],py:[{py:V()}],ps:[{ps:V()}],pe:[{pe:V()}],pt:[{pt:V()}],pr:[{pr:V()}],pb:[{pb:V()}],pl:[{pl:V()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":V()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":V()}],"space-y-reverse":["space-y-reverse"],size:[{size:te()}],w:[{w:[M,"screen",...te()]}],"min-w":[{"min-w":[M,"screen","none",...te()]}],"max-w":[{"max-w":[M,"screen","none","prose",{screen:[_]},...te()]}],h:[{h:["screen","lh",...te()]}],"min-h":[{"min-h":["screen","lh","none",...te()]}],"max-h":[{"max-h":["screen","lh",...te()]}],"font-size":[{text:["base",s,fo,Yn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[p,B,gs]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",hs,F]}],"font-family":[{font:[Cp,F,c]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[w,B,F]}],"line-clamp":[{"line-clamp":[ae,"none",B,gs]}],leading:[{leading:[x,...V()]}],"list-image":[{"list-image":["none",B,F]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",B,F]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:k()}],"text-color":[{text:k()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:[ae,"from-font","auto",B,Yn]}],"text-decoration-color":[{decoration:k()}],"underline-offset":[{"underline-offset":[ae,"auto",B,F]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:V()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",B,F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",B,F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:H()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:h()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Pn,B,F],radial:["",B,F],conic:[Pn,B,F]},_p,Ep]}],"bg-color":[{bg:k()}],"gradient-from-pos":[{from:S()}],"gradient-via-pos":[{via:S()}],"gradient-to-pos":[{to:S()}],"gradient-from":[{from:k()}],"gradient-via":[{via:k()}],"gradient-to":[{to:k()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:I()}],"border-w-x":[{"border-x":I()}],"border-w-y":[{"border-y":I()}],"border-w-s":[{"border-s":I()}],"border-w-e":[{"border-e":I()}],"border-w-t":[{"border-t":I()}],"border-w-r":[{"border-r":I()}],"border-w-b":[{"border-b":I()}],"border-w-l":[{"border-l":I()}],"divide-x":[{"divide-x":I()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":I()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...W(),"hidden","none"]}],"divide-style":[{divide:[...W(),"hidden","none"]}],"border-color":[{border:k()}],"border-color-x":[{"border-x":k()}],"border-color-y":[{"border-y":k()}],"border-color-s":[{"border-s":k()}],"border-color-e":[{"border-e":k()}],"border-color-t":[{"border-t":k()}],"border-color-r":[{"border-r":k()}],"border-color-b":[{"border-b":k()}],"border-color-l":[{"border-l":k()}],"divide-color":[{divide:k()}],"outline-style":[{outline:[...W(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ae,B,F]}],"outline-w":[{outline:["",ae,fo,Yn]}],"outline-color":[{outline:k()}],shadow:[{shadow:["","none",U,_l,Nl]}],"shadow-color":[{shadow:k()}],"inset-shadow":[{"inset-shadow":["none",m,_l,Nl]}],"inset-shadow-color":[{"inset-shadow":k()}],"ring-w":[{ring:I()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:k()}],"ring-offset-w":[{"ring-offset":[ae,Yn]}],"ring-offset-color":[{"ring-offset":k()}],"inset-ring-w":[{"inset-ring":I()}],"inset-ring-color":[{"inset-ring":k()}],"text-shadow":[{"text-shadow":["none",Y,_l,Nl]}],"text-shadow-color":[{"text-shadow":k()}],opacity:[{opacity:[ae,B,F]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ae]}],"mask-image-linear-from-pos":[{"mask-linear-from":K()}],"mask-image-linear-to-pos":[{"mask-linear-to":K()}],"mask-image-linear-from-color":[{"mask-linear-from":k()}],"mask-image-linear-to-color":[{"mask-linear-to":k()}],"mask-image-t-from-pos":[{"mask-t-from":K()}],"mask-image-t-to-pos":[{"mask-t-to":K()}],"mask-image-t-from-color":[{"mask-t-from":k()}],"mask-image-t-to-color":[{"mask-t-to":k()}],"mask-image-r-from-pos":[{"mask-r-from":K()}],"mask-image-r-to-pos":[{"mask-r-to":K()}],"mask-image-r-from-color":[{"mask-r-from":k()}],"mask-image-r-to-color":[{"mask-r-to":k()}],"mask-image-b-from-pos":[{"mask-b-from":K()}],"mask-image-b-to-pos":[{"mask-b-to":K()}],"mask-image-b-from-color":[{"mask-b-from":k()}],"mask-image-b-to-color":[{"mask-b-to":k()}],"mask-image-l-from-pos":[{"mask-l-from":K()}],"mask-image-l-to-pos":[{"mask-l-to":K()}],"mask-image-l-from-color":[{"mask-l-from":k()}],"mask-image-l-to-color":[{"mask-l-to":k()}],"mask-image-x-from-pos":[{"mask-x-from":K()}],"mask-image-x-to-pos":[{"mask-x-to":K()}],"mask-image-x-from-color":[{"mask-x-from":k()}],"mask-image-x-to-color":[{"mask-x-to":k()}],"mask-image-y-from-pos":[{"mask-y-from":K()}],"mask-image-y-to-pos":[{"mask-y-to":K()}],"mask-image-y-from-color":[{"mask-y-from":k()}],"mask-image-y-to-color":[{"mask-y-to":k()}],"mask-image-radial":[{"mask-radial":[B,F]}],"mask-image-radial-from-pos":[{"mask-radial-from":K()}],"mask-image-radial-to-pos":[{"mask-radial-to":K()}],"mask-image-radial-from-color":[{"mask-radial-from":k()}],"mask-image-radial-to-color":[{"mask-radial-to":k()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":he()}],"mask-image-conic-pos":[{"mask-conic":[ae]}],"mask-image-conic-from-pos":[{"mask-conic-from":K()}],"mask-image-conic-to-pos":[{"mask-conic-to":K()}],"mask-image-conic-from-color":[{"mask-conic-from":k()}],"mask-image-conic-to-color":[{"mask-conic-to":k()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:H()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:h()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",B,F]}],filter:[{filter:["","none",B,F]}],blur:[{blur:G()}],brightness:[{brightness:[ae,B,F]}],contrast:[{contrast:[ae,B,F]}],"drop-shadow":[{"drop-shadow":["","none",se,_l,Nl]}],"drop-shadow-color":[{"drop-shadow":k()}],grayscale:[{grayscale:["",ae,B,F]}],"hue-rotate":[{"hue-rotate":[ae,B,F]}],invert:[{invert:["",ae,B,F]}],saturate:[{saturate:[ae,B,F]}],sepia:[{sepia:["",ae,B,F]}],"backdrop-filter":[{"backdrop-filter":["","none",B,F]}],"backdrop-blur":[{"backdrop-blur":G()}],"backdrop-brightness":[{"backdrop-brightness":[ae,B,F]}],"backdrop-contrast":[{"backdrop-contrast":[ae,B,F]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ae,B,F]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ae,B,F]}],"backdrop-invert":[{"backdrop-invert":["",ae,B,F]}],"backdrop-opacity":[{"backdrop-opacity":[ae,B,F]}],"backdrop-saturate":[{"backdrop-saturate":[ae,B,F]}],"backdrop-sepia":[{"backdrop-sepia":["",ae,B,F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":V()}],"border-spacing-x":[{"border-spacing-x":V()}],"border-spacing-y":[{"border-spacing-y":V()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",B,F]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ae,"initial",B,F]}],ease:[{ease:["linear","initial",ee,B,F]}],delay:[{delay:[ae,B,F]}],animate:[{animate:["none",Ie,B,F]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[le,B,F]}],"perspective-origin":[{"perspective-origin":Te()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:Ne()}],"scale-x":[{"scale-x":Ne()}],"scale-y":[{"scale-y":Ne()}],"scale-z":[{"scale-z":Ne()}],"scale-3d":["scale-3d"],skew:[{skew:mt()}],"skew-x":[{"skew-x":mt()}],"skew-y":[{"skew-y":mt()}],transform:[{transform:[B,F,"","none","gpu","cpu"]}],"transform-origin":[{origin:Te()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:it()}],"translate-x":[{"translate-x":it()}],"translate-y":[{"translate-y":it()}],"translate-z":[{"translate-z":it()}],"translate-none":["translate-none"],accent:[{accent:k()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:k()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",B,F]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":V()}],"scroll-mx":[{"scroll-mx":V()}],"scroll-my":[{"scroll-my":V()}],"scroll-ms":[{"scroll-ms":V()}],"scroll-me":[{"scroll-me":V()}],"scroll-mt":[{"scroll-mt":V()}],"scroll-mr":[{"scroll-mr":V()}],"scroll-mb":[{"scroll-mb":V()}],"scroll-ml":[{"scroll-ml":V()}],"scroll-p":[{"scroll-p":V()}],"scroll-px":[{"scroll-px":V()}],"scroll-py":[{"scroll-py":V()}],"scroll-ps":[{"scroll-ps":V()}],"scroll-pe":[{"scroll-pe":V()}],"scroll-pt":[{"scroll-pt":V()}],"scroll-pr":[{"scroll-pr":V()}],"scroll-pb":[{"scroll-pb":V()}],"scroll-pl":[{"scroll-pl":V()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",B,F]}],fill:[{fill:["none",...k()]}],"stroke-w":[{stroke:[ae,fo,Yn,gs]}],stroke:[{stroke:["none",...k()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Rp=cp(Pp);function Er(...a){return Rp(Tc(a))}const bp=Pc("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function xs({className:a,variant:c,asChild:s=!1,...p}){const w=s?_c:"span";return E.jsx(w,{"data-slot":"badge",className:Er(bp({variant:c}),a),...p})}const jp=Pc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function Tl({className:a,variant:c,size:s,asChild:p=!1,...w}){const x=p?_c:"button";return E.jsx(x,{"data-slot":"button",className:Er(jp({variant:c,size:s,className:a})),...w})}/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Mp=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ip=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,s,p)=>p?p.toUpperCase():s.toLowerCase()),vc=a=>{const c=Ip(a);return c.charAt(0).toUpperCase()+c.slice(1)},Bc=(...a)=>a.filter((c,s,p)=>!!c&&c.trim()!==""&&p.indexOf(c)===s).join(" ").trim();/** + */const Lp=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Mp=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,s,p)=>p?p.toUpperCase():s.toLowerCase()),yc=a=>{const c=Mp(a);return c.charAt(0).toUpperCase()+c.slice(1)},Bc=(...a)=>a.filter((c,s,p)=>!!c&&c.trim()!==""&&p.indexOf(c)===s).join(" ").trim();/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */var Dp={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + */var Ip={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Op=we.forwardRef(({color:a="currentColor",size:c=24,strokeWidth:s=2,absoluteStrokeWidth:p,className:w="",children:x,iconNode:_,...M},z)=>we.createElement("svg",{ref:z,...Dp,width:c,height:c,stroke:a,strokeWidth:p?Number(s)*24/Number(c):s,className:Bc("lucide",w),...M},[..._.map(([P,U])=>we.createElement(P,U)),...Array.isArray(x)?x:[x]]));/** + */const Op=we.forwardRef(({color:a="currentColor",size:c=24,strokeWidth:s=2,absoluteStrokeWidth:p,className:w="",children:x,iconNode:_,...M},z)=>we.createElement("svg",{ref:z,...Ip,width:c,height:c,stroke:a,strokeWidth:p?Number(s)*24/Number(c):s,className:Bc("lucide",w),...M},[..._.map(([P,U])=>we.createElement(P,U)),...Array.isArray(x)?x:[x]]));/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const tn=(a,c)=>{const s=we.forwardRef(({className:p,...w},x)=>we.createElement(Op,{ref:x,iconNode:c,className:Bc(`lucide-${Mp(vc(a))}`,`lucide-${a}`,p),...w}));return s.displayName=vc(a),s};/** + */const tn=(a,c)=>{const s=we.forwardRef(({className:p,...w},x)=>we.createElement(Op,{ref:x,iconNode:c,className:Bc(`lucide-${Lp(yc(a))}`,`lucide-${a}`,p),...w}));return s.displayName=yc(a),s};/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ap=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Fp=tn("activity",Ap);/** + */const Dp=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Ap=tn("activity",Dp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Bp=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Up=tn("copy",Bp);/** + */const Fp=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Bp=tn("copy",Fp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Vp=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Uc=tn("external-link",Vp);/** + */const Up=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],ks=tn("external-link",Up);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $p=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Hp=tn("globe",$p);/** + */const Vp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],$p=tn("globe",Vp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Wp=[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]],Qp=tn("mail",Wp);/** + */const Hp=[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]],Wp=tn("mail",Hp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Yp=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],yc=tn("message-circle",Yp);/** + */const Qp=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],wc=tn("message-circle",Qp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Gp=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Kp=tn("shield",Gp);/** + */const Gp=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Yp=tn("shield",Gp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Xp=[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]],Vc=tn("trending-up",Xp);/** + */const Kp=[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]],Uc=tn("trending-up",Kp);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Zp=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],qp=tn("zap",Zp);function Jp({name:a,version:c,description:s,provider:p,healthLink:w}){return S.jsxs("div",{className:"relative text-center space-y-6 mb-16 overflow-hidden rounded-3xl",children:[S.jsxs("div",{className:"absolute inset-0 -z-10",children:[S.jsx("div",{className:"absolute top-0 left-1/4 w-96 h-96 bg-primary/5 rounded-full blur-3xl animate-blob"}),S.jsx("div",{className:"absolute top-0 right-1/4 w-96 h-96 bg-blue-500/5 rounded-full blur-3xl animate-blob animation-delay-2000"}),S.jsx("div",{className:"absolute -bottom-8 left-1/2 w-96 h-96 bg-purple-500/5 rounded-full blur-3xl animate-blob animation-delay-4000"})]}),S.jsxs("div",{className:"relative py-12 space-y-4 overflow-hidden min-h-[400px]",children:[S.jsxs("div",{className:"absolute inset-0 -z-10",children:[S.jsx("div",{className:"request-particle",style:{left:"10%",animationDelay:"0s"}}),S.jsx("div",{className:"request-particle",style:{left:"25%",animationDelay:"1.5s"}}),S.jsx("div",{className:"request-particle",style:{left:"50%",animationDelay:"3s"}}),S.jsx("div",{className:"request-particle",style:{left:"75%",animationDelay:"4.5s"}}),S.jsx("div",{className:"request-particle",style:{left:"90%",animationDelay:"2s"}}),S.jsx("div",{className:"request-particle",style:{left:"35%",animationDelay:"2.8s"}}),S.jsx("div",{className:"request-particle",style:{left:"65%",animationDelay:"4s"}}),S.jsxs("svg",{className:"absolute inset-0 w-full h-full opacity-20",children:[S.jsx("line",{x1:"10%",y1:"0",x2:"25%",y2:"100%",stroke:"currentColor",strokeWidth:"2",className:"text-primary animate-pulse",style:{animationDuration:"3s"}}),S.jsx("line",{x1:"50%",y1:"0",x2:"75%",y2:"100%",stroke:"currentColor",strokeWidth:"2",className:"text-blue-500 animate-pulse",style:{animationDuration:"4s",animationDelay:"1s"}}),S.jsx("line",{x1:"90%",y1:"0",x2:"50%",y2:"100%",stroke:"currentColor",strokeWidth:"2",className:"text-purple-500 animate-pulse",style:{animationDuration:"5s",animationDelay:"2s"}}),S.jsx("line",{x1:"35%",y1:"0",x2:"65%",y2:"100%",stroke:"currentColor",strokeWidth:"2",className:"text-green-500 animate-pulse",style:{animationDuration:"4.5s",animationDelay:"0.5s"}})]})]}),S.jsxs(ws,{variant:"outline",className:"px-4 py-1 relative z-10",children:[S.jsx(qp,{className:"w-3 h-3 mr-1"}),"v",c]}),S.jsx("h1",{className:"text-5xl md:text-6xl bg-gradient-to-r from-primary via-blue-600 to-purple-600 bg-clip-text text-transparent relative z-10",children:a}),S.jsx("p",{className:"text-xl text-muted-foreground max-w-2xl mx-auto leading-relaxed relative z-10",children:s}),S.jsxs("p",{className:"text-sm text-muted-foreground relative z-10",children:["Created by ",S.jsx("span",{className:"font-medium",children:p})]})]}),S.jsx("div",{className:"flex gap-4 justify-center pb-6",children:S.jsx(xs,{asChild:!0,children:S.jsxs("a",{href:w,target:"_blank",rel:"noopener noreferrer",children:[S.jsx(Uc,{className:"w-4 h-4 mr-2"}),"API Health"]})})}),S.jsx("style",{children:` - @keyframes blob { - 0%, 100% { - transform: translate(0, 0) scale(1); - } - 33% { - transform: translate(30px, -50px) scale(1.1); - } - 66% { - transform: translate(-20px, 20px) scale(0.9); - } - } - @keyframes requestFlow { - 0% { - transform: translateY(-100%) scale(0.5); - opacity: 0; - } - 10% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - transform: translateY(400%) scale(1); - opacity: 0; - } - } - .animate-blob { - animation: blob 7s infinite; - } - .animation-delay-2000 { - animation-delay: 2s; - } - .animation-delay-4000 { - animation-delay: 4s; - } - .request-particle { - position: absolute; - width: 8px; - height: 8px; - background: linear-gradient(135deg, #3b82f6, #8b5cf6); - border-radius: 50%; - box-shadow: 0 0 15px rgba(59, 130, 246, 0.8), 0 0 25px rgba(139, 92, 246, 0.4); - animation: requestFlow 6s infinite ease-in-out; - opacity: 0.7; - } - `})]})}function em({className:a,...c}){return S.jsx("div",{"data-slot":"card",className:Er("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",a),...c})}function tm({className:a,...c}){return S.jsx("div",{"data-slot":"card-header",className:Er("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...c})}function nm({className:a,...c}){return S.jsx("div",{"data-slot":"card-content",className:Er("px-6 [&:last-child]:pb-6",a),...c})}var rm=Cc();const om=Ec(rm);function lm(a){if(typeof document>"u")return;let c=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",c.appendChild(s),s.styleSheet?s.styleSheet.cssText=a:s.appendChild(document.createTextNode(a))}const im=a=>{switch(a){case"success":return um;case"info":return dm;case"warning":return cm;case"error":return fm;default:return null}},sm=Array(12).fill(0),am=({visible:a,className:c})=>b.createElement("div",{className:["sonner-loading-wrapper",c].filter(Boolean).join(" "),"data-visible":a},b.createElement("div",{className:"sonner-spinner"},sm.map((s,p)=>b.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${p}`})))),um=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),cm=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),dm=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),fm=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),pm=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},b.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),b.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),mm=()=>{const[a,c]=b.useState(document.hidden);return b.useEffect(()=>{const s=()=>{c(document.hidden)};return document.addEventListener("visibilitychange",s),()=>window.removeEventListener("visibilitychange",s)},[]),a};let ks=1;class hm{constructor(){this.subscribe=c=>(this.subscribers.push(c),()=>{const s=this.subscribers.indexOf(c);this.subscribers.splice(s,1)}),this.publish=c=>{this.subscribers.forEach(s=>s(c))},this.addToast=c=>{this.publish(c),this.toasts=[...this.toasts,c]},this.create=c=>{var s;const{message:p,...w}=c,x=typeof c?.id=="number"||((s=c.id)==null?void 0:s.length)>0?c.id:ks++,_=this.toasts.find(z=>z.id===x),M=c.dismissible===void 0?!0:c.dismissible;return this.dismissedToasts.has(x)&&this.dismissedToasts.delete(x),_?this.toasts=this.toasts.map(z=>z.id===x?(this.publish({...z,...c,id:x,title:p}),{...z,...c,id:x,dismissible:M,title:p}):z):this.addToast({title:p,...w,dismissible:M,id:x}),x},this.dismiss=c=>(c?(this.dismissedToasts.add(c),requestAnimationFrame(()=>this.subscribers.forEach(s=>s({id:c,dismiss:!0})))):this.toasts.forEach(s=>{this.subscribers.forEach(p=>p({id:s.id,dismiss:!0}))}),c),this.message=(c,s)=>this.create({...s,message:c}),this.error=(c,s)=>this.create({...s,message:c,type:"error"}),this.success=(c,s)=>this.create({...s,type:"success",message:c}),this.info=(c,s)=>this.create({...s,type:"info",message:c}),this.warning=(c,s)=>this.create({...s,type:"warning",message:c}),this.loading=(c,s)=>this.create({...s,type:"loading",message:c}),this.promise=(c,s)=>{if(!s)return;let p;s.loading!==void 0&&(p=this.create({...s,promise:c,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));const w=Promise.resolve(c instanceof Function?c():c);let x=p!==void 0,_;const M=w.then(async P=>{if(_=["resolve",P],b.isValidElement(P))x=!1,this.create({id:p,type:"default",message:P});else if(vm(P)&&!P.ok){x=!1;const m=typeof s.error=="function"?await s.error(`HTTP error! status: ${P.status}`):s.error,G=typeof s.description=="function"?await s.description(`HTTP error! status: ${P.status}`):s.description,J=typeof m=="object"&&!b.isValidElement(m)?m:{message:m};this.create({id:p,type:"error",description:G,...J})}else if(P instanceof Error){x=!1;const m=typeof s.error=="function"?await s.error(P):s.error,G=typeof s.description=="function"?await s.description(P):s.description,J=typeof m=="object"&&!b.isValidElement(m)?m:{message:m};this.create({id:p,type:"error",description:G,...J})}else if(s.success!==void 0){x=!1;const m=typeof s.success=="function"?await s.success(P):s.success,G=typeof s.description=="function"?await s.description(P):s.description,J=typeof m=="object"&&!b.isValidElement(m)?m:{message:m};this.create({id:p,type:"success",description:G,...J})}}).catch(async P=>{if(_=["reject",P],s.error!==void 0){x=!1;const U=typeof s.error=="function"?await s.error(P):s.error,m=typeof s.description=="function"?await s.description(P):s.description,se=typeof U=="object"&&!b.isValidElement(U)?U:{message:U};this.create({id:p,type:"error",description:m,...se})}}).finally(()=>{x&&(this.dismiss(p),p=void 0),s.finally==null||s.finally.call(s)}),z=()=>new Promise((P,U)=>M.then(()=>_[0]==="reject"?U(_[1]):P(_[1])).catch(U));return typeof p!="string"&&typeof p!="number"?{unwrap:z}:Object.assign(p,{unwrap:z})},this.custom=(c,s)=>{const p=s?.id||ks++;return this.create({jsx:c(p),id:p,...s}),p},this.getActiveToasts=()=>this.toasts.filter(c=>!this.dismissedToasts.has(c.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const pt=new hm,gm=(a,c)=>{const s=c?.id||ks++;return pt.addToast({title:a,...c,id:s}),s},vm=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",ym=gm,wm=()=>pt.toasts,xm=()=>pt.getActiveToasts(),km=Object.assign(ym,{success:pt.success,info:pt.info,warning:pt.warning,error:pt.error,custom:pt.custom,message:pt.message,promise:pt.promise,dismiss:pt.dismiss,loading:pt.loading},{getHistory:wm,getToasts:xm});lm("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function zl(a){return a.label!==void 0}const Sm=3,Em="24px",Cm="16px",wc=4e3,Nm=356,_m=14,zm=45,Tm=200;function Vt(...a){return a.filter(Boolean).join(" ")}function Pm(a){const[c,s]=a.split("-"),p=[];return c&&p.push(c),s&&p.push(s),p}const Rm=a=>{var c,s,p,w,x,_,M,z,P;const{invert:U,toast:m,unstyled:G,interacting:se,setHeights:J,visibleToasts:le,heights:re,index:ee,toasts:Ie,expanded:Se,removeToast:he,defaultRichColors:Te,closeButton:de,style:ve,cancelButtonStyle:V,actionButtonStyle:Pe,className:Ye="",descriptionClassName:lt="",duration:je,position:ge,gap:De,expandByDefault:Ce,classNames:q,icons:te,closeButtonAriaLabel:k="Close toast"}=a,[H,L]=b.useState(null),[h,E]=b.useState(null),[R,I]=b.useState(!1),[W,ne]=b.useState(!1),[K,Y]=b.useState(!1),[ce,Ne]=b.useState(!1),[mt,it]=b.useState(!1),[Kn,Rn]=b.useState(0),[po,Cr]=b.useState(0),$t=b.useRef(m.duration||je||wc),Nr=b.useRef(null),ht=b.useRef(null),jn=ee===0,nn=ee+1<=le,Ge=m.type,Ht=m.dismissible!==!1,mo=m.className||"",ho=m.descriptionClassName||"",bn=b.useMemo(()=>re.findIndex(ie=>ie.toastId===m.id)||0,[re,m.id]),_r=b.useMemo(()=>{var ie;return(ie=m.closeButton)!=null?ie:de},[m.closeButton,de]),Ln=b.useMemo(()=>m.duration||je||wc,[m.duration,je]),Xn=b.useRef(0),kt=b.useRef(0),rn=b.useRef(0),on=b.useRef(null),[go,vo]=ge.split("-"),yo=b.useMemo(()=>re.reduce((ie,be,Fe)=>Fe>=bn?ie:ie+be.height,0),[re,bn]),Zn=mm(),zr=m.invert||U,Mn=Ge==="loading";kt.current=b.useMemo(()=>bn*De+yo,[bn,yo]),b.useEffect(()=>{$t.current=Ln},[Ln]),b.useEffect(()=>{I(!0)},[]),b.useEffect(()=>{const ie=ht.current;if(ie){const be=ie.getBoundingClientRect().height;return Cr(be),J(Fe=>[{toastId:m.id,height:be,position:m.position},...Fe]),()=>J(Fe=>Fe.filter(qe=>qe.toastId!==m.id))}},[J,m.id]),b.useLayoutEffect(()=>{if(!R)return;const ie=ht.current,be=ie.style.height;ie.style.height="auto";const Fe=ie.getBoundingClientRect().height;ie.style.height=be,Cr(Fe),J(qe=>qe.find(Oe=>Oe.toastId===m.id)?qe.map(Oe=>Oe.toastId===m.id?{...Oe,height:Fe}:Oe):[{toastId:m.id,height:Fe,position:m.position},...qe])},[R,m.title,m.description,J,m.id,m.jsx,m.action,m.cancel]);const St=b.useCallback(()=>{ne(!0),Rn(kt.current),J(ie=>ie.filter(be=>be.toastId!==m.id)),setTimeout(()=>{he(m)},Tm)},[m,he,J,kt]);b.useEffect(()=>{if(m.promise&&Ge==="loading"||m.duration===1/0||m.type==="loading")return;let ie;return Se||se||Zn?(()=>{if(rn.current{$t.current!==1/0&&(Xn.current=new Date().getTime(),ie=setTimeout(()=>{m.onAutoClose==null||m.onAutoClose.call(m,m),St()},$t.current))})(),()=>clearTimeout(ie)},[Se,se,m,Ge,Zn,St]),b.useEffect(()=>{m.delete&&(St(),m.onDismiss==null||m.onDismiss.call(m,m))},[St,m.delete]);function Tr(){var ie;if(te?.loading){var be;return b.createElement("div",{className:Vt(q?.loader,m==null||(be=m.classNames)==null?void 0:be.loader,"sonner-loader"),"data-visible":Ge==="loading"},te.loading)}return b.createElement(am,{className:Vt(q?.loader,m==null||(ie=m.classNames)==null?void 0:ie.loader),visible:Ge==="loading"})}const ln=m.icon||te?.[Ge]||im(Ge);var Wt,Pr;return b.createElement("li",{tabIndex:0,ref:ht,className:Vt(Ye,mo,q?.toast,m==null||(c=m.classNames)==null?void 0:c.toast,q?.default,q?.[Ge],m==null||(s=m.classNames)==null?void 0:s[Ge]),"data-sonner-toast":"","data-rich-colors":(Wt=m.richColors)!=null?Wt:Te,"data-styled":!(m.jsx||m.unstyled||G),"data-mounted":R,"data-promise":!!m.promise,"data-swiped":mt,"data-removed":W,"data-visible":nn,"data-y-position":go,"data-x-position":vo,"data-index":ee,"data-front":jn,"data-swiping":K,"data-dismissible":Ht,"data-type":Ge,"data-invert":zr,"data-swipe-out":ce,"data-swipe-direction":h,"data-expanded":!!(Se||Ce&&R),"data-testid":m.testId,style:{"--index":ee,"--toasts-before":ee,"--z-index":Ie.length-ee,"--offset":`${W?Kn:kt.current}px`,"--initial-height":Ce?"auto":`${po}px`,...ve,...m.style},onDragEnd:()=>{Y(!1),L(null),on.current=null},onPointerDown:ie=>{ie.button!==2&&(Mn||!Ht||(Nr.current=new Date,Rn(kt.current),ie.target.setPointerCapture(ie.pointerId),ie.target.tagName!=="BUTTON"&&(Y(!0),on.current={x:ie.clientX,y:ie.clientY})))},onPointerUp:()=>{var ie,be,Fe;if(ce||!Ht)return;on.current=null;const qe=Number(((ie=ht.current)==null?void 0:ie.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),sn=Number(((be=ht.current)==null?void 0:be.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Oe=new Date().getTime()-((Fe=Nr.current)==null?void 0:Fe.getTime()),$e=H==="x"?qe:sn,an=Math.abs($e)/Oe;if(Math.abs($e)>=zm||an>.11){Rn(kt.current),m.onDismiss==null||m.onDismiss.call(m,m),E(H==="x"?qe>0?"right":"left":sn>0?"down":"up"),St(),Ne(!0);return}else{var Ke,gt;(Ke=ht.current)==null||Ke.style.setProperty("--swipe-amount-x","0px"),(gt=ht.current)==null||gt.style.setProperty("--swipe-amount-y","0px")}it(!1),Y(!1),L(null)},onPointerMove:ie=>{var be,Fe,qe;if(!on.current||!Ht||((be=window.getSelection())==null?void 0:be.toString().length)>0)return;const Oe=ie.clientY-on.current.y,$e=ie.clientX-on.current.x;var an;const Ke=(an=a.swipeDirections)!=null?an:Pm(ge);!H&&(Math.abs($e)>1||Math.abs(Oe)>1)&&L(Math.abs($e)>Math.abs(Oe)?"x":"y");let gt={x:0,y:0};const un=Et=>1/(1.5+Math.abs(Et)/20);if(H==="y"){if(Ke.includes("top")||Ke.includes("bottom"))if(Ke.includes("top")&&Oe<0||Ke.includes("bottom")&&Oe>0)gt.y=Oe;else{const Et=Oe*un(Oe);gt.y=Math.abs(Et)0)gt.x=$e;else{const Et=$e*un($e);gt.x=Math.abs(Et)0||Math.abs(gt.y)>0)&&it(!0),(Fe=ht.current)==null||Fe.style.setProperty("--swipe-amount-x",`${gt.x}px`),(qe=ht.current)==null||qe.style.setProperty("--swipe-amount-y",`${gt.y}px`)}},_r&&!m.jsx&&Ge!=="loading"?b.createElement("button",{"aria-label":k,"data-disabled":Mn,"data-close-button":!0,onClick:Mn||!Ht?()=>{}:()=>{St(),m.onDismiss==null||m.onDismiss.call(m,m)},className:Vt(q?.closeButton,m==null||(p=m.classNames)==null?void 0:p.closeButton)},(Pr=te?.close)!=null?Pr:pm):null,(Ge||m.icon||m.promise)&&m.icon!==null&&(te?.[Ge]!==null||m.icon)?b.createElement("div",{"data-icon":"",className:Vt(q?.icon,m==null||(w=m.classNames)==null?void 0:w.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||Tr():null,m.type!=="loading"?ln:null):null,b.createElement("div",{"data-content":"",className:Vt(q?.content,m==null||(x=m.classNames)==null?void 0:x.content)},b.createElement("div",{"data-title":"",className:Vt(q?.title,m==null||(_=m.classNames)==null?void 0:_.title)},m.jsx?m.jsx:typeof m.title=="function"?m.title():m.title),m.description?b.createElement("div",{"data-description":"",className:Vt(lt,ho,q?.description,m==null||(M=m.classNames)==null?void 0:M.description)},typeof m.description=="function"?m.description():m.description):null),b.isValidElement(m.cancel)?m.cancel:m.cancel&&zl(m.cancel)?b.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||V,onClick:ie=>{zl(m.cancel)&&Ht&&(m.cancel.onClick==null||m.cancel.onClick.call(m.cancel,ie),St())},className:Vt(q?.cancelButton,m==null||(z=m.classNames)==null?void 0:z.cancelButton)},m.cancel.label):null,b.isValidElement(m.action)?m.action:m.action&&zl(m.action)?b.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||Pe,onClick:ie=>{zl(m.action)&&(m.action.onClick==null||m.action.onClick.call(m.action,ie),!ie.defaultPrevented&&St())},className:Vt(q?.actionButton,m==null||(P=m.classNames)==null?void 0:P.actionButton)},m.action.label):null)};function xc(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function jm(a,c){const s={};return[a,c].forEach((p,w)=>{const x=w===1,_=x?"--mobile-offset":"--offset",M=x?Cm:Em;function z(P){["top","right","bottom","left"].forEach(U=>{s[`${_}-${U}`]=typeof P=="number"?`${P}px`:P})}typeof p=="number"||typeof p=="string"?z(p):typeof p=="object"?["top","right","bottom","left"].forEach(P=>{p[P]===void 0?s[`${_}-${P}`]=M:s[`${_}-${P}`]=typeof p[P]=="number"?`${p[P]}px`:p[P]}):z(M)}),s}const bm=b.forwardRef(function(c,s){const{id:p,invert:w,position:x="bottom-right",hotkey:_=["altKey","KeyT"],expand:M,closeButton:z,className:P,offset:U,mobileOffset:m,theme:G="light",richColors:se,duration:J,style:le,visibleToasts:re=Sm,toastOptions:ee,dir:Ie=xc(),gap:Se=_m,icons:he,containerAriaLabel:Te="Notifications"}=c,[de,ve]=b.useState([]),V=b.useMemo(()=>p?de.filter(R=>R.toasterId===p):de.filter(R=>!R.toasterId),[de,p]),Pe=b.useMemo(()=>Array.from(new Set([x].concat(V.filter(R=>R.position).map(R=>R.position)))),[V,x]),[Ye,lt]=b.useState([]),[je,ge]=b.useState(!1),[De,Ce]=b.useState(!1),[q,te]=b.useState(G!=="system"?G:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),k=b.useRef(null),H=_.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=b.useRef(null),h=b.useRef(!1),E=b.useCallback(R=>{ve(I=>{var W;return(W=I.find(ne=>ne.id===R.id))!=null&&W.delete||pt.dismiss(R.id),I.filter(({id:ne})=>ne!==R.id)})},[]);return b.useEffect(()=>pt.subscribe(R=>{if(R.dismiss){requestAnimationFrame(()=>{ve(I=>I.map(W=>W.id===R.id?{...W,delete:!0}:W))});return}setTimeout(()=>{om.flushSync(()=>{ve(I=>{const W=I.findIndex(ne=>ne.id===R.id);return W!==-1?[...I.slice(0,W),{...I[W],...R},...I.slice(W+1)]:[R,...I]})})})}),[de]),b.useEffect(()=>{if(G!=="system"){te(G);return}if(G==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?te("dark"):te("light")),typeof window>"u")return;const R=window.matchMedia("(prefers-color-scheme: dark)");try{R.addEventListener("change",({matches:I})=>{te(I?"dark":"light")})}catch{R.addListener(({matches:W})=>{try{te(W?"dark":"light")}catch(ne){console.error(ne)}})}},[G]),b.useEffect(()=>{de.length<=1&&ge(!1)},[de]),b.useEffect(()=>{const R=I=>{var W;if(_.every(Y=>I[Y]||I.code===Y)){var K;ge(!0),(K=k.current)==null||K.focus()}I.code==="Escape"&&(document.activeElement===k.current||(W=k.current)!=null&&W.contains(document.activeElement))&&ge(!1)};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[_]),b.useEffect(()=>{if(k.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,h.current=!1)}},[k.current]),b.createElement("section",{ref:s,"aria-label":`${Te} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Pe.map((R,I)=>{var W;const[ne,K]=R.split("-");return V.length?b.createElement("ol",{key:R,dir:Ie==="auto"?xc():Ie,tabIndex:-1,ref:k,className:P,"data-sonner-toaster":!0,"data-sonner-theme":q,"data-y-position":ne,"data-x-position":K,style:{"--front-toast-height":`${((W=Ye[0])==null?void 0:W.height)||0}px`,"--width":`${Nm}px`,"--gap":`${Se}px`,...le,...jm(U,m)},onBlur:Y=>{h.current&&!Y.currentTarget.contains(Y.relatedTarget)&&(h.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:Y=>{Y.target instanceof HTMLElement&&Y.target.dataset.dismissible==="false"||h.current||(h.current=!0,L.current=Y.relatedTarget)},onMouseEnter:()=>ge(!0),onMouseMove:()=>ge(!0),onMouseLeave:()=>{De||ge(!1)},onDragEnd:()=>ge(!1),onPointerDown:Y=>{Y.target instanceof HTMLElement&&Y.target.dataset.dismissible==="false"||Ce(!0)},onPointerUp:()=>Ce(!1)},V.filter(Y=>!Y.position&&I===0||Y.position===R).map((Y,ce)=>{var Ne,mt;return b.createElement(Rm,{key:Y.id,icons:he,index:ce,toast:Y,defaultRichColors:se,duration:(Ne=ee?.duration)!=null?Ne:J,className:ee?.className,descriptionClassName:ee?.descriptionClassName,invert:w,visibleToasts:re,closeButton:(mt=ee?.closeButton)!=null?mt:z,interacting:De,position:R,style:ee?.style,unstyled:ee?.unstyled,classNames:ee?.classNames,cancelButtonStyle:ee?.cancelButtonStyle,actionButtonStyle:ee?.actionButtonStyle,closeButtonAriaLabel:ee?.closeButtonAriaLabel,removeToast:E,toasts:V.filter(it=>it.position==Y.position),heights:Ye.filter(it=>it.position==Y.position),setHeights:lt,expandByDefault:M,gap:Se,expanded:je,swipeDirections:c.swipeDirections})})):null}))});function Lm({title:a,path:c,desc:s,example:p,usageCount:w=0}){const x=_=>{navigator.clipboard.writeText(_),km.success("Copied to clipboard!")};return S.jsxs(em,{className:"h-full hover:shadow-lg transition-shadow",children:[S.jsxs(tm,{className:"space-y-3",children:[S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsx("h3",{className:"font-semibold",children:a}),w>0&&S.jsxs(ws,{variant:"secondary",className:"gap-1",children:[S.jsx(Vc,{className:"w-3 h-3"}),w]})]}),S.jsx(ws,{variant:"outline",className:"font-mono text-xs w-fit",children:c}),S.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),S.jsxs(nm,{className:"space-y-4",children:[S.jsxs("div",{className:"bg-muted rounded-lg p-3",children:[S.jsx("p",{className:"text-sm font-mono text-muted-foreground mb-2",children:"Example:"}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx("code",{className:"text-xs bg-background px-2 py-1 rounded flex-1 truncate",children:p}),S.jsx(xs,{size:"sm",variant:"outline",onClick:()=>x(p),className:"shrink-0",children:S.jsx(Up,{className:"w-3 h-3"})})]})]}),S.jsx(xs,{variant:"outline",size:"sm",asChild:!0,className:"w-full",children:S.jsxs("a",{href:p,target:"_blank",rel:"noopener noreferrer",children:[S.jsx(Uc,{className:"w-3 h-3 mr-1"}),"Try it"]})})]})]})}function Mm({totalRequests:a}){return S.jsxs("div",{className:"relative group",children:[S.jsx("div",{className:"absolute -inset-1 bg-gradient-to-r from-primary via-blue-500 to-purple-500 rounded-2xl blur opacity-25 group-hover:opacity-40 transition duration-500"}),S.jsxs("div",{className:"relative bg-gradient-to-br from-card via-card to-muted/30 rounded-2xl px-8 py-6 shadow-xl",children:[S.jsxs("div",{className:"absolute inset-0 overflow-hidden rounded-2xl opacity-5",children:[S.jsx("div",{className:"stat-wave"}),S.jsx("div",{className:"stat-wave",style:{animationDelay:"1s"}})]}),S.jsxs("div",{className:"relative flex items-center gap-6",children:[S.jsxs("div",{className:"relative",children:[S.jsx("div",{className:"absolute inset-0 bg-primary/20 rounded-full animate-ping",style:{animationDuration:"2s"}}),S.jsx("div",{className:"relative flex items-center justify-center w-16 h-16 bg-gradient-to-br from-primary/10 to-blue-500/10 rounded-full border-2 border-primary/20",children:S.jsx(Fp,{className:"w-7 h-7",color:"#673ab7"})})]}),S.jsxs("div",{className:"flex-1",children:[S.jsxs("div",{className:"flex items-baseline gap-2 mb-1",children:[S.jsx("span",{className:"text-sm text-muted-foreground",children:"Total API Requests"}),S.jsx(Vc,{className:"w-3 h-3 text-green-500"})]}),S.jsxs("div",{className:"flex items-baseline gap-3",children:[S.jsx("span",{className:"text-4xl font-bold bg-gradient-to-r from-primary via-blue-600 to-purple-600 bg-clip-text text-transparent",children:a.toLocaleString()}),S.jsx("span",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded-full",children:"Live"})]})]})]})]}),S.jsx("style",{children:` + */const Xp=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Zp=tn("zap",Xp);function Jp({name:a,version:c,description:s,provider:p,healthLink:w}){return E.jsxs("div",{className:"text-center space-y-6",children:[E.jsxs("div",{className:"space-y-4",children:[E.jsxs(xs,{variant:"outline",className:"px-4 py-1",children:[E.jsx(Zp,{className:"w-3 h-3 mr-1"}),"v",c]}),E.jsx("h1",{className:"text-5xl md:text-6xl bg-gradient-to-r from-primary via-blue-600 to-purple-600 bg-clip-text text-transparent",children:a}),E.jsx("p",{className:"text-xl text-muted-foreground max-w-2xl mx-auto leading-relaxed",children:s})]}),E.jsxs("div",{className:"flex gap-4 justify-center",children:[E.jsx(Tl,{asChild:!0,children:E.jsxs("a",{href:w,target:"_blank",rel:"noopener noreferrer",children:[E.jsx(ks,{className:"w-4 h-4 mr-2"}),"API Health"]})}),E.jsx(Tl,{variant:"outline",asChild:!0,children:E.jsxs("a",{href:"https://github.com/habibi-dev/rest-api.ir",target:"_blank",rel:"noopener noreferrer",children:[E.jsx(ks,{className:"w-4 h-4 mr-2"}),"GitHub Repository"]})})]})]})}function qp({className:a,...c}){return E.jsx("div",{"data-slot":"card",className:Er("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",a),...c})}function em({className:a,...c}){return E.jsx("div",{"data-slot":"card-header",className:Er("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...c})}function tm({className:a,...c}){return E.jsx("div",{"data-slot":"card-content",className:Er("px-6 [&:last-child]:pb-6",a),...c})}var nm=Cc();const rm=Ec(nm);function om(a){if(typeof document>"u")return;let c=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",c.appendChild(s),s.styleSheet?s.styleSheet.cssText=a:s.appendChild(document.createTextNode(a))}const lm=a=>{switch(a){case"success":return am;case"info":return cm;case"warning":return um;case"error":return dm;default:return null}},im=Array(12).fill(0),sm=({visible:a,className:c})=>j.createElement("div",{className:["sonner-loading-wrapper",c].filter(Boolean).join(" "),"data-visible":a},j.createElement("div",{className:"sonner-spinner"},im.map((s,p)=>j.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${p}`})))),am=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),um=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},j.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),cm=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),dm=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),fm=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},j.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),j.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),pm=()=>{const[a,c]=j.useState(document.hidden);return j.useEffect(()=>{const s=()=>{c(document.hidden)};return document.addEventListener("visibilitychange",s),()=>window.removeEventListener("visibilitychange",s)},[]),a};let Ss=1;class mm{constructor(){this.subscribe=c=>(this.subscribers.push(c),()=>{const s=this.subscribers.indexOf(c);this.subscribers.splice(s,1)}),this.publish=c=>{this.subscribers.forEach(s=>s(c))},this.addToast=c=>{this.publish(c),this.toasts=[...this.toasts,c]},this.create=c=>{var s;const{message:p,...w}=c,x=typeof c?.id=="number"||((s=c.id)==null?void 0:s.length)>0?c.id:Ss++,_=this.toasts.find(z=>z.id===x),M=c.dismissible===void 0?!0:c.dismissible;return this.dismissedToasts.has(x)&&this.dismissedToasts.delete(x),_?this.toasts=this.toasts.map(z=>z.id===x?(this.publish({...z,...c,id:x,title:p}),{...z,...c,id:x,dismissible:M,title:p}):z):this.addToast({title:p,...w,dismissible:M,id:x}),x},this.dismiss=c=>(c?(this.dismissedToasts.add(c),requestAnimationFrame(()=>this.subscribers.forEach(s=>s({id:c,dismiss:!0})))):this.toasts.forEach(s=>{this.subscribers.forEach(p=>p({id:s.id,dismiss:!0}))}),c),this.message=(c,s)=>this.create({...s,message:c}),this.error=(c,s)=>this.create({...s,message:c,type:"error"}),this.success=(c,s)=>this.create({...s,type:"success",message:c}),this.info=(c,s)=>this.create({...s,type:"info",message:c}),this.warning=(c,s)=>this.create({...s,type:"warning",message:c}),this.loading=(c,s)=>this.create({...s,type:"loading",message:c}),this.promise=(c,s)=>{if(!s)return;let p;s.loading!==void 0&&(p=this.create({...s,promise:c,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));const w=Promise.resolve(c instanceof Function?c():c);let x=p!==void 0,_;const M=w.then(async P=>{if(_=["resolve",P],j.isValidElement(P))x=!1,this.create({id:p,type:"default",message:P});else if(gm(P)&&!P.ok){x=!1;const m=typeof s.error=="function"?await s.error(`HTTP error! status: ${P.status}`):s.error,Y=typeof s.description=="function"?await s.description(`HTTP error! status: ${P.status}`):s.description,q=typeof m=="object"&&!j.isValidElement(m)?m:{message:m};this.create({id:p,type:"error",description:Y,...q})}else if(P instanceof Error){x=!1;const m=typeof s.error=="function"?await s.error(P):s.error,Y=typeof s.description=="function"?await s.description(P):s.description,q=typeof m=="object"&&!j.isValidElement(m)?m:{message:m};this.create({id:p,type:"error",description:Y,...q})}else if(s.success!==void 0){x=!1;const m=typeof s.success=="function"?await s.success(P):s.success,Y=typeof s.description=="function"?await s.description(P):s.description,q=typeof m=="object"&&!j.isValidElement(m)?m:{message:m};this.create({id:p,type:"success",description:Y,...q})}}).catch(async P=>{if(_=["reject",P],s.error!==void 0){x=!1;const U=typeof s.error=="function"?await s.error(P):s.error,m=typeof s.description=="function"?await s.description(P):s.description,se=typeof U=="object"&&!j.isValidElement(U)?U:{message:U};this.create({id:p,type:"error",description:m,...se})}}).finally(()=>{x&&(this.dismiss(p),p=void 0),s.finally==null||s.finally.call(s)}),z=()=>new Promise((P,U)=>M.then(()=>_[0]==="reject"?U(_[1]):P(_[1])).catch(U));return typeof p!="string"&&typeof p!="number"?{unwrap:z}:Object.assign(p,{unwrap:z})},this.custom=(c,s)=>{const p=s?.id||Ss++;return this.create({jsx:c(p),id:p,...s}),p},this.getActiveToasts=()=>this.toasts.filter(c=>!this.dismissedToasts.has(c.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const pt=new mm,hm=(a,c)=>{const s=c?.id||Ss++;return pt.addToast({title:a,...c,id:s}),s},gm=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",vm=hm,ym=()=>pt.toasts,wm=()=>pt.getActiveToasts(),xm=Object.assign(vm,{success:pt.success,info:pt.info,warning:pt.warning,error:pt.error,custom:pt.custom,message:pt.message,promise:pt.promise,dismiss:pt.dismiss,loading:pt.loading},{getHistory:ym,getToasts:wm});om("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function zl(a){return a.label!==void 0}const km=3,Sm="24px",Em="16px",xc=4e3,Cm=356,Nm=14,_m=45,zm=200;function Vt(...a){return a.filter(Boolean).join(" ")}function Tm(a){const[c,s]=a.split("-"),p=[];return c&&p.push(c),s&&p.push(s),p}const Pm=a=>{var c,s,p,w,x,_,M,z,P;const{invert:U,toast:m,unstyled:Y,interacting:se,setHeights:q,visibleToasts:le,heights:re,index:ee,toasts:Ie,expanded:Se,removeToast:he,defaultRichColors:Te,closeButton:de,style:ve,cancelButtonStyle:V,actionButtonStyle:Pe,className:Ge="",descriptionClassName:lt="",duration:be,position:ge,gap:Oe,expandByDefault:Ce,classNames:J,icons:te,closeButtonAriaLabel:k="Close toast"}=a,[H,L]=j.useState(null),[h,S]=j.useState(null),[R,I]=j.useState(!1),[W,ne]=j.useState(!1),[K,G]=j.useState(!1),[ce,Ne]=j.useState(!1),[mt,it]=j.useState(!1),[Kn,Rn]=j.useState(0),[po,Cr]=j.useState(0),$t=j.useRef(m.duration||be||xc),Nr=j.useRef(null),ht=j.useRef(null),bn=ee===0,nn=ee+1<=le,Ye=m.type,Ht=m.dismissible!==!1,mo=m.className||"",ho=m.descriptionClassName||"",jn=j.useMemo(()=>re.findIndex(ie=>ie.toastId===m.id)||0,[re,m.id]),_r=j.useMemo(()=>{var ie;return(ie=m.closeButton)!=null?ie:de},[m.closeButton,de]),Ln=j.useMemo(()=>m.duration||be||xc,[m.duration,be]),Xn=j.useRef(0),kt=j.useRef(0),rn=j.useRef(0),on=j.useRef(null),[go,vo]=ge.split("-"),yo=j.useMemo(()=>re.reduce((ie,je,Fe)=>Fe>=jn?ie:ie+je.height,0),[re,jn]),Zn=pm(),zr=m.invert||U,Mn=Ye==="loading";kt.current=j.useMemo(()=>jn*Oe+yo,[jn,yo]),j.useEffect(()=>{$t.current=Ln},[Ln]),j.useEffect(()=>{I(!0)},[]),j.useEffect(()=>{const ie=ht.current;if(ie){const je=ie.getBoundingClientRect().height;return Cr(je),q(Fe=>[{toastId:m.id,height:je,position:m.position},...Fe]),()=>q(Fe=>Fe.filter(Je=>Je.toastId!==m.id))}},[q,m.id]),j.useLayoutEffect(()=>{if(!R)return;const ie=ht.current,je=ie.style.height;ie.style.height="auto";const Fe=ie.getBoundingClientRect().height;ie.style.height=je,Cr(Fe),q(Je=>Je.find(De=>De.toastId===m.id)?Je.map(De=>De.toastId===m.id?{...De,height:Fe}:De):[{toastId:m.id,height:Fe,position:m.position},...Je])},[R,m.title,m.description,q,m.id,m.jsx,m.action,m.cancel]);const St=j.useCallback(()=>{ne(!0),Rn(kt.current),q(ie=>ie.filter(je=>je.toastId!==m.id)),setTimeout(()=>{he(m)},zm)},[m,he,q,kt]);j.useEffect(()=>{if(m.promise&&Ye==="loading"||m.duration===1/0||m.type==="loading")return;let ie;return Se||se||Zn?(()=>{if(rn.current{$t.current!==1/0&&(Xn.current=new Date().getTime(),ie=setTimeout(()=>{m.onAutoClose==null||m.onAutoClose.call(m,m),St()},$t.current))})(),()=>clearTimeout(ie)},[Se,se,m,Ye,Zn,St]),j.useEffect(()=>{m.delete&&(St(),m.onDismiss==null||m.onDismiss.call(m,m))},[St,m.delete]);function Tr(){var ie;if(te?.loading){var je;return j.createElement("div",{className:Vt(J?.loader,m==null||(je=m.classNames)==null?void 0:je.loader,"sonner-loader"),"data-visible":Ye==="loading"},te.loading)}return j.createElement(sm,{className:Vt(J?.loader,m==null||(ie=m.classNames)==null?void 0:ie.loader),visible:Ye==="loading"})}const ln=m.icon||te?.[Ye]||lm(Ye);var Wt,Pr;return j.createElement("li",{tabIndex:0,ref:ht,className:Vt(Ge,mo,J?.toast,m==null||(c=m.classNames)==null?void 0:c.toast,J?.default,J?.[Ye],m==null||(s=m.classNames)==null?void 0:s[Ye]),"data-sonner-toast":"","data-rich-colors":(Wt=m.richColors)!=null?Wt:Te,"data-styled":!(m.jsx||m.unstyled||Y),"data-mounted":R,"data-promise":!!m.promise,"data-swiped":mt,"data-removed":W,"data-visible":nn,"data-y-position":go,"data-x-position":vo,"data-index":ee,"data-front":bn,"data-swiping":K,"data-dismissible":Ht,"data-type":Ye,"data-invert":zr,"data-swipe-out":ce,"data-swipe-direction":h,"data-expanded":!!(Se||Ce&&R),"data-testid":m.testId,style:{"--index":ee,"--toasts-before":ee,"--z-index":Ie.length-ee,"--offset":`${W?Kn:kt.current}px`,"--initial-height":Ce?"auto":`${po}px`,...ve,...m.style},onDragEnd:()=>{G(!1),L(null),on.current=null},onPointerDown:ie=>{ie.button!==2&&(Mn||!Ht||(Nr.current=new Date,Rn(kt.current),ie.target.setPointerCapture(ie.pointerId),ie.target.tagName!=="BUTTON"&&(G(!0),on.current={x:ie.clientX,y:ie.clientY})))},onPointerUp:()=>{var ie,je,Fe;if(ce||!Ht)return;on.current=null;const Je=Number(((ie=ht.current)==null?void 0:ie.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),sn=Number(((je=ht.current)==null?void 0:je.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),De=new Date().getTime()-((Fe=Nr.current)==null?void 0:Fe.getTime()),$e=H==="x"?Je:sn,an=Math.abs($e)/De;if(Math.abs($e)>=_m||an>.11){Rn(kt.current),m.onDismiss==null||m.onDismiss.call(m,m),S(H==="x"?Je>0?"right":"left":sn>0?"down":"up"),St(),Ne(!0);return}else{var Ke,gt;(Ke=ht.current)==null||Ke.style.setProperty("--swipe-amount-x","0px"),(gt=ht.current)==null||gt.style.setProperty("--swipe-amount-y","0px")}it(!1),G(!1),L(null)},onPointerMove:ie=>{var je,Fe,Je;if(!on.current||!Ht||((je=window.getSelection())==null?void 0:je.toString().length)>0)return;const De=ie.clientY-on.current.y,$e=ie.clientX-on.current.x;var an;const Ke=(an=a.swipeDirections)!=null?an:Tm(ge);!H&&(Math.abs($e)>1||Math.abs(De)>1)&&L(Math.abs($e)>Math.abs(De)?"x":"y");let gt={x:0,y:0};const un=Et=>1/(1.5+Math.abs(Et)/20);if(H==="y"){if(Ke.includes("top")||Ke.includes("bottom"))if(Ke.includes("top")&&De<0||Ke.includes("bottom")&&De>0)gt.y=De;else{const Et=De*un(De);gt.y=Math.abs(Et)0)gt.x=$e;else{const Et=$e*un($e);gt.x=Math.abs(Et)0||Math.abs(gt.y)>0)&&it(!0),(Fe=ht.current)==null||Fe.style.setProperty("--swipe-amount-x",`${gt.x}px`),(Je=ht.current)==null||Je.style.setProperty("--swipe-amount-y",`${gt.y}px`)}},_r&&!m.jsx&&Ye!=="loading"?j.createElement("button",{"aria-label":k,"data-disabled":Mn,"data-close-button":!0,onClick:Mn||!Ht?()=>{}:()=>{St(),m.onDismiss==null||m.onDismiss.call(m,m)},className:Vt(J?.closeButton,m==null||(p=m.classNames)==null?void 0:p.closeButton)},(Pr=te?.close)!=null?Pr:fm):null,(Ye||m.icon||m.promise)&&m.icon!==null&&(te?.[Ye]!==null||m.icon)?j.createElement("div",{"data-icon":"",className:Vt(J?.icon,m==null||(w=m.classNames)==null?void 0:w.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||Tr():null,m.type!=="loading"?ln:null):null,j.createElement("div",{"data-content":"",className:Vt(J?.content,m==null||(x=m.classNames)==null?void 0:x.content)},j.createElement("div",{"data-title":"",className:Vt(J?.title,m==null||(_=m.classNames)==null?void 0:_.title)},m.jsx?m.jsx:typeof m.title=="function"?m.title():m.title),m.description?j.createElement("div",{"data-description":"",className:Vt(lt,ho,J?.description,m==null||(M=m.classNames)==null?void 0:M.description)},typeof m.description=="function"?m.description():m.description):null),j.isValidElement(m.cancel)?m.cancel:m.cancel&&zl(m.cancel)?j.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||V,onClick:ie=>{zl(m.cancel)&&Ht&&(m.cancel.onClick==null||m.cancel.onClick.call(m.cancel,ie),St())},className:Vt(J?.cancelButton,m==null||(z=m.classNames)==null?void 0:z.cancelButton)},m.cancel.label):null,j.isValidElement(m.action)?m.action:m.action&&zl(m.action)?j.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||Pe,onClick:ie=>{zl(m.action)&&(m.action.onClick==null||m.action.onClick.call(m.action,ie),!ie.defaultPrevented&&St())},className:Vt(J?.actionButton,m==null||(P=m.classNames)==null?void 0:P.actionButton)},m.action.label):null)};function kc(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function Rm(a,c){const s={};return[a,c].forEach((p,w)=>{const x=w===1,_=x?"--mobile-offset":"--offset",M=x?Em:Sm;function z(P){["top","right","bottom","left"].forEach(U=>{s[`${_}-${U}`]=typeof P=="number"?`${P}px`:P})}typeof p=="number"||typeof p=="string"?z(p):typeof p=="object"?["top","right","bottom","left"].forEach(P=>{p[P]===void 0?s[`${_}-${P}`]=M:s[`${_}-${P}`]=typeof p[P]=="number"?`${p[P]}px`:p[P]}):z(M)}),s}const bm=j.forwardRef(function(c,s){const{id:p,invert:w,position:x="bottom-right",hotkey:_=["altKey","KeyT"],expand:M,closeButton:z,className:P,offset:U,mobileOffset:m,theme:Y="light",richColors:se,duration:q,style:le,visibleToasts:re=km,toastOptions:ee,dir:Ie=kc(),gap:Se=Nm,icons:he,containerAriaLabel:Te="Notifications"}=c,[de,ve]=j.useState([]),V=j.useMemo(()=>p?de.filter(R=>R.toasterId===p):de.filter(R=>!R.toasterId),[de,p]),Pe=j.useMemo(()=>Array.from(new Set([x].concat(V.filter(R=>R.position).map(R=>R.position)))),[V,x]),[Ge,lt]=j.useState([]),[be,ge]=j.useState(!1),[Oe,Ce]=j.useState(!1),[J,te]=j.useState(Y!=="system"?Y:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),k=j.useRef(null),H=_.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=j.useRef(null),h=j.useRef(!1),S=j.useCallback(R=>{ve(I=>{var W;return(W=I.find(ne=>ne.id===R.id))!=null&&W.delete||pt.dismiss(R.id),I.filter(({id:ne})=>ne!==R.id)})},[]);return j.useEffect(()=>pt.subscribe(R=>{if(R.dismiss){requestAnimationFrame(()=>{ve(I=>I.map(W=>W.id===R.id?{...W,delete:!0}:W))});return}setTimeout(()=>{rm.flushSync(()=>{ve(I=>{const W=I.findIndex(ne=>ne.id===R.id);return W!==-1?[...I.slice(0,W),{...I[W],...R},...I.slice(W+1)]:[R,...I]})})})}),[de]),j.useEffect(()=>{if(Y!=="system"){te(Y);return}if(Y==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?te("dark"):te("light")),typeof window>"u")return;const R=window.matchMedia("(prefers-color-scheme: dark)");try{R.addEventListener("change",({matches:I})=>{te(I?"dark":"light")})}catch{R.addListener(({matches:W})=>{try{te(W?"dark":"light")}catch(ne){console.error(ne)}})}},[Y]),j.useEffect(()=>{de.length<=1&&ge(!1)},[de]),j.useEffect(()=>{const R=I=>{var W;if(_.every(G=>I[G]||I.code===G)){var K;ge(!0),(K=k.current)==null||K.focus()}I.code==="Escape"&&(document.activeElement===k.current||(W=k.current)!=null&&W.contains(document.activeElement))&&ge(!1)};return document.addEventListener("keydown",R),()=>document.removeEventListener("keydown",R)},[_]),j.useEffect(()=>{if(k.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,h.current=!1)}},[k.current]),j.createElement("section",{ref:s,"aria-label":`${Te} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Pe.map((R,I)=>{var W;const[ne,K]=R.split("-");return V.length?j.createElement("ol",{key:R,dir:Ie==="auto"?kc():Ie,tabIndex:-1,ref:k,className:P,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":ne,"data-x-position":K,style:{"--front-toast-height":`${((W=Ge[0])==null?void 0:W.height)||0}px`,"--width":`${Cm}px`,"--gap":`${Se}px`,...le,...Rm(U,m)},onBlur:G=>{h.current&&!G.currentTarget.contains(G.relatedTarget)&&(h.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:G=>{G.target instanceof HTMLElement&&G.target.dataset.dismissible==="false"||h.current||(h.current=!0,L.current=G.relatedTarget)},onMouseEnter:()=>ge(!0),onMouseMove:()=>ge(!0),onMouseLeave:()=>{Oe||ge(!1)},onDragEnd:()=>ge(!1),onPointerDown:G=>{G.target instanceof HTMLElement&&G.target.dataset.dismissible==="false"||Ce(!0)},onPointerUp:()=>Ce(!1)},V.filter(G=>!G.position&&I===0||G.position===R).map((G,ce)=>{var Ne,mt;return j.createElement(Pm,{key:G.id,icons:he,index:ce,toast:G,defaultRichColors:se,duration:(Ne=ee?.duration)!=null?Ne:q,className:ee?.className,descriptionClassName:ee?.descriptionClassName,invert:w,visibleToasts:re,closeButton:(mt=ee?.closeButton)!=null?mt:z,interacting:Oe,position:R,style:ee?.style,unstyled:ee?.unstyled,classNames:ee?.classNames,cancelButtonStyle:ee?.cancelButtonStyle,actionButtonStyle:ee?.actionButtonStyle,closeButtonAriaLabel:ee?.closeButtonAriaLabel,removeToast:S,toasts:V.filter(it=>it.position==G.position),heights:Ge.filter(it=>it.position==G.position),setHeights:lt,expandByDefault:M,gap:Se,expanded:be,swipeDirections:c.swipeDirections})})):null}))});function jm({title:a,path:c,desc:s,example:p,usageCount:w=0}){const x=_=>{navigator.clipboard.writeText(_),xm.success("Copied to clipboard!")};return E.jsxs(qp,{className:"h-full hover:shadow-lg transition-shadow",children:[E.jsxs(em,{className:"space-y-3",children:[E.jsxs("div",{className:"flex items-center justify-between",children:[E.jsx("h3",{className:"font-semibold",children:a}),w>0&&E.jsxs(xs,{variant:"secondary",className:"gap-1",children:[E.jsx(Uc,{className:"w-3 h-3"}),w]})]}),E.jsx(xs,{variant:"outline",className:"font-mono text-xs w-fit",children:c}),E.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),E.jsxs(tm,{className:"space-y-4",children:[E.jsxs("div",{className:"bg-muted rounded-lg p-3",children:[E.jsx("p",{className:"text-sm font-mono text-muted-foreground mb-2",children:"Example:"}),E.jsxs("div",{className:"flex items-center gap-2",children:[E.jsx("code",{className:"text-xs bg-background px-2 py-1 rounded flex-1 truncate",children:p}),E.jsx(Tl,{size:"sm",variant:"outline",onClick:()=>x(p),className:"shrink-0",children:E.jsx(Bp,{className:"w-3 h-3"})})]})]}),E.jsx(Tl,{variant:"outline",size:"sm",asChild:!0,className:"w-full",children:E.jsxs("a",{href:p,target:"_blank",rel:"noopener noreferrer",children:[E.jsx(ks,{className:"w-3 h-3 mr-1"}),"Try it"]})})]})]})}function Lm({totalRequests:a}){return E.jsxs("div",{className:"relative group",children:[E.jsx("div",{className:"absolute -inset-1 bg-gradient-to-r from-primary via-blue-500 to-purple-500 rounded-2xl blur opacity-25 group-hover:opacity-40 transition duration-500"}),E.jsxs("div",{className:"relative bg-gradient-to-br from-card via-card to-muted/30 rounded-2xl px-8 py-6 shadow-xl",children:[E.jsxs("div",{className:"absolute inset-0 overflow-hidden rounded-2xl opacity-5",children:[E.jsx("div",{className:"stat-wave"}),E.jsx("div",{className:"stat-wave",style:{animationDelay:"1s"}})]}),E.jsxs("div",{className:"relative flex items-center gap-6",children:[E.jsxs("div",{className:"relative",children:[E.jsx("div",{className:"absolute inset-0 bg-purple-500/20 rounded-full animate-ping",style:{animationDuration:"2s"}}),E.jsx("div",{className:"relative flex items-center justify-center w-16 h-16 bg-gradient-to-br from-purple-500/10 to-purple-600/10 rounded-full border-2 border-purple-500/20",children:E.jsx(Ap,{className:"w-7 h-7 text-purple-600 dark:text-purple-400"})})]}),E.jsxs("div",{className:"flex-1",children:[E.jsxs("div",{className:"flex items-baseline gap-2 mb-1",children:[E.jsx("span",{className:"text-sm text-muted-foreground",children:"Total API Requests"}),E.jsx(Uc,{className:"w-3 h-3 text-green-500"})]}),E.jsxs("div",{className:"flex items-baseline gap-3",children:[E.jsx("span",{className:"text-4xl font-bold bg-gradient-to-r from-primary via-blue-600 to-purple-600 bg-clip-text text-transparent",children:a.toLocaleString()}),E.jsx("span",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded-full",children:"Live"})]})]})]})]}),E.jsx("style",{children:` @keyframes wave { 0% { transform: translateX(-100%) translateY(-50%) rotate(45deg); @@ -165,4 +118,83 @@ Error generating stack: `+l.message+` background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.3), transparent); animation: wave 3s infinite linear; } - `})]})}function Im({contact:a,privacy:c}){return S.jsx("div",{className:"border rounded-xl p-6 bg-muted/30",children:S.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[S.jsxs("div",{children:[S.jsxs("h3",{className:"text-sm font-medium mb-4 flex items-center gap-2 text-muted-foreground",children:[S.jsx(yc,{className:"w-4 h-4"}),"Contact"]}),S.jsxs("div",{className:"space-y-2 text-sm",children:[S.jsxs("a",{href:`https://${a.homepage}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[S.jsx(Hp,{className:"w-4 h-4"}),a.homepage]}),S.jsxs("a",{href:`mailto:${a.email}`,className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[S.jsx(Qp,{className:"w-4 h-4"}),a.email]}),S.jsxs("a",{href:a.telegram,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[S.jsx(yc,{className:"w-4 h-4"}),"Telegram"]})]})]}),S.jsxs("div",{children:[S.jsxs("h3",{className:"text-sm font-medium mb-4 flex items-center gap-2 text-muted-foreground",children:[S.jsx(Kp,{className:"w-4 h-4"}),"Privacy"]}),S.jsx("p",{className:"text-sm text-foreground/70 leading-relaxed",children:c})]})]})})}var Dm=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Om=Dm.reduce((a,c)=>{const s=Nc(`Primitive.${c}`),p=we.forwardRef((w,x)=>{const{asChild:_,...M}=w,z=_?s:c;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),S.jsx(z,{...M,ref:x})});return p.displayName=`Primitive.${c}`,{...a,[c]:p}},{}),Am="Separator",kc="horizontal",Fm=["horizontal","vertical"],$c=we.forwardRef((a,c)=>{const{decorative:s,orientation:p=kc,...w}=a,x=Bm(p)?p:kc,M=s?{role:"none"}:{"aria-orientation":x==="vertical"?x:void 0,role:"separator"};return S.jsx(Om.div,{"data-orientation":x,...M,...w,ref:c})});$c.displayName=Am;function Bm(a){return Fm.includes(a)}var Um=$c;function Sc({className:a,orientation:c="horizontal",decorative:s=!0,...p}){return S.jsx(Um,{"data-slot":"separator-root",decorative:s,orientation:c,className:Er("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",a),...p})}var Vm=(a,c,s,p,w,x,_,M)=>{let z=document.documentElement,P=["light","dark"];function U(se){(Array.isArray(a)?a:[a]).forEach(J=>{let le=J==="class",re=le&&x?w.map(ee=>x[ee]||ee):w;le?(z.classList.remove(...re),z.classList.add(x&&x[se]?x[se]:se)):z.setAttribute(J,se)}),m(se)}function m(se){M&&P.includes(se)&&(z.style.colorScheme=se)}function G(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(p)U(p);else try{let se=localStorage.getItem(c)||s,J=_&&se==="system"?G():se;U(J)}catch{}},$m=we.createContext(void 0),Hm={setTheme:a=>{},themes:[]},Wm=()=>{var a;return(a=we.useContext($m))!=null?a:Hm};we.memo(({forcedTheme:a,storageKey:c,attribute:s,enableSystem:p,enableColorScheme:w,defaultTheme:x,value:_,themes:M,nonce:z,scriptProps:P})=>{let U=JSON.stringify([s,c,x,a,M,_,p,w]).slice(1,-1);return we.createElement("script",{...P,suppressHydrationWarning:!0,nonce:typeof window>"u"?z:"",dangerouslySetInnerHTML:{__html:`(${Vm.toString()})(${U})`}})});const Qm=({...a})=>{const{theme:c="system"}=Wm();return S.jsx(bm,{theme:c,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})},Ym={service:{name:"rest-api.ir",version:"0.1.5",description:"A simple public REST API providing useful endpoints like time, IP, and system info β€” built with Rust for learning, testing, and fun.",provider:"Amir Hossein Habibi"},endpoints:[{title:"UTC Time",path:"/time",desc:"Get the current UTC time ⏰",example:"https://rest-api.ir/api/v1/time"},{title:"Timezone",path:"/time/{tz}",desc:"Localized time for any timezone 🌐",example:"https://rest-api.ir/api/v1/time/asia/tehran"},{title:"IP Address",path:"/ip",desc:"Discover your public IP address 🌍",example:"https://rest-api.ir/api/v1/ip"},{title:"Countries",path:"/country",desc:"Explore countries",example:"https://rest-api.ir/api/v1/country"},{title:"Countries Full",path:"/country/full",desc:"Explore countries, currencies, languages & flags πŸ—ΊοΈ",example:"https://rest-api.ir/api/v1/country/full"}],usage:{total_requests:799,by_endpoint:{"/health":2,"/time":3,"/time/asia/tehran":1,"/ip":18,"/country":2,"/country/full":33}},privacy:"We log minimal request metadata for abuse prevention and aggregate analytics.",contact:{homepage:"habibi-dev.ir",email:"habibi.dev@gmail.com",telegram:"https://t.me/habibi_dev"},links:{health:"https://rest-api.ir/health"}};function Gm(){const a=window.options||Ym,c=s=>a.usage.by_endpoint[s]||0;return S.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-background via-background to-muted/20",children:[S.jsxs("div",{className:"container mx-auto px-4 py-12 max-w-6xl",children:[S.jsx(Jp,{name:a.service.name,version:a.service.version,description:a.service.description,provider:a.service.provider,healthLink:a.links.health}),S.jsxs("div",{className:"space-y-12",children:[S.jsx("div",{className:"flex justify-center",children:S.jsx(Mm,{totalRequests:a.usage.total_requests})}),S.jsx(Sc,{}),S.jsxs("section",{children:[S.jsxs("div",{className:"text-center mb-8",children:[S.jsx("h2",{className:"text-3xl mb-4",children:"Available Endpoints"}),S.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Explore our collection of useful REST API endpoints. Each endpoint is designed to be simple, fast, and reliable."})]}),S.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.endpoints.map((s,p)=>S.jsx(Lm,{title:s.title,path:s.path,desc:s.desc,example:s.example,usageCount:c(s.path)},p))})]}),S.jsx(Sc,{}),S.jsx("section",{children:S.jsx(Im,{contact:a.contact,privacy:a.privacy})})]}),S.jsx("footer",{className:"mt-16 pt-8 border-t text-center text-sm text-muted-foreground",children:S.jsxs("p",{children:["Built with ❀️ by ",a.service.provider," β€’ Powered by Rust"]})})]}),S.jsx(Qm,{})]})}Wf.createRoot(document.getElementById("root")).render(S.jsx(Gm,{})); + `})]})}function Mm({contact:a,privacy:c}){return E.jsx("div",{className:"border rounded-xl p-6 bg-muted/30",children:E.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[E.jsxs("div",{children:[E.jsxs("h3",{className:"text-sm font-medium mb-4 flex items-center gap-2 text-muted-foreground",children:[E.jsx(wc,{className:"w-4 h-4"}),"Contact"]}),E.jsxs("div",{className:"space-y-2 text-sm",children:[E.jsxs("a",{href:`https://${a.homepage}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[E.jsx($p,{className:"w-4 h-4"}),a.homepage]}),E.jsxs("a",{href:`mailto:${a.email}`,className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[E.jsx(Wp,{className:"w-4 h-4"}),a.email]}),E.jsxs("a",{href:a.telegram,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-foreground/80 hover:text-foreground transition-colors",children:[E.jsx(wc,{className:"w-4 h-4"}),"Telegram"]})]})]}),E.jsxs("div",{children:[E.jsxs("h3",{className:"text-sm font-medium mb-4 flex items-center gap-2 text-muted-foreground",children:[E.jsx(Yp,{className:"w-4 h-4"}),"Privacy"]}),E.jsx("p",{className:"text-sm text-foreground/70 leading-relaxed",children:c})]})]})})}var Im=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Om=Im.reduce((a,c)=>{const s=Nc(`Primitive.${c}`),p=we.forwardRef((w,x)=>{const{asChild:_,...M}=w,z=_?s:c;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),E.jsx(z,{...M,ref:x})});return p.displayName=`Primitive.${c}`,{...a,[c]:p}},{}),Dm="Separator",Sc="horizontal",Am=["horizontal","vertical"],Vc=we.forwardRef((a,c)=>{const{decorative:s,orientation:p=Sc,...w}=a,x=Fm(p)?p:Sc,M=s?{role:"none"}:{"aria-orientation":x==="vertical"?x:void 0,role:"separator"};return E.jsx(Om.div,{"data-orientation":x,...M,...w,ref:c})});Vc.displayName=Dm;function Fm(a){return Am.includes(a)}var Bm=Vc;function Um({className:a,orientation:c="horizontal",decorative:s=!0,...p}){return E.jsx(Bm,{"data-slot":"separator-root",decorative:s,orientation:c,className:Er("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",a),...p})}var Vm=(a,c,s,p,w,x,_,M)=>{let z=document.documentElement,P=["light","dark"];function U(se){(Array.isArray(a)?a:[a]).forEach(q=>{let le=q==="class",re=le&&x?w.map(ee=>x[ee]||ee):w;le?(z.classList.remove(...re),z.classList.add(x&&x[se]?x[se]:se)):z.setAttribute(q,se)}),m(se)}function m(se){M&&P.includes(se)&&(z.style.colorScheme=se)}function Y(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(p)U(p);else try{let se=localStorage.getItem(c)||s,q=_&&se==="system"?Y():se;U(q)}catch{}},$m=we.createContext(void 0),Hm={setTheme:a=>{},themes:[]},Wm=()=>{var a;return(a=we.useContext($m))!=null?a:Hm};we.memo(({forcedTheme:a,storageKey:c,attribute:s,enableSystem:p,enableColorScheme:w,defaultTheme:x,value:_,themes:M,nonce:z,scriptProps:P})=>{let U=JSON.stringify([s,c,x,a,M,_,p,w]).slice(1,-1);return we.createElement("script",{...P,suppressHydrationWarning:!0,nonce:typeof window>"u"?z:"",dangerouslySetInnerHTML:{__html:`(${Vm.toString()})(${U})`}})});const Qm=({...a})=>{const{theme:c="system"}=Wm();return E.jsx(bm,{theme:c,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})},Gm={service:{name:"rest-api.ir",version:"0.1.5",description:"A simple public REST API providing useful endpoints like time, IP, and system info β€” built with Rust for learning, testing, and fun.",provider:"Amir Hossein Habibi"},endpoints:[{title:"UTC Time",path:"/time",desc:"Get the current UTC time ⏰",example:"https://rest-api.ir/api/v1/time"},{title:"Timezone",path:"/time/{tz}",desc:"Localized time for any timezone 🌐",example:"https://rest-api.ir/api/v1/time/asia/tehran"},{title:"IP Address",path:"/ip",desc:"Discover your public IP address 🌍",example:"https://rest-api.ir/api/v1/ip"},{title:"Countries",path:"/country",desc:"Explore countries",example:"https://rest-api.ir/api/v1/country"},{title:"Countries Full",path:"/country/full",desc:"Explore countries, currencies, languages & flags πŸ—ΊοΈ",example:"https://rest-api.ir/api/v1/country/full"}],usage:{total_requests:799,by_endpoint:{"/health":2,"/time":3,"/time/asia/tehran":1,"/ip":18,"/country":2,"/country/full":33}},privacy:"We log minimal request metadata for abuse prevention and aggregate analytics.",contact:{homepage:"habibi-dev.ir",email:"habibi.dev@gmail.com",telegram:"https://t.me/habibi_dev"},links:{health:"https://rest-api.ir/health"}};function Ym(){const a=window.options||Gm,c=s=>a.usage.by_endpoint[s]||0;return E.jsxs("div",{className:"min-h-screen bg-background",children:[E.jsxs("section",{className:"min-h-screen relative overflow-hidden",children:[E.jsx("div",{className:"hero-gradient-animated"}),E.jsx("div",{className:"absolute top-0 left-1/4 w-[500px] h-[500px] bg-purple-400/20 dark:bg-purple-500/15 rounded-full blur-3xl hero-orb-1"}),E.jsx("div",{className:"absolute bottom-0 right-1/4 w-[500px] h-[500px] bg-blue-400/20 dark:bg-blue-500/15 rounded-full blur-3xl hero-orb-2"}),E.jsx("div",{className:"absolute top-1/3 right-1/3 w-[400px] h-[400px] bg-indigo-400/15 dark:bg-indigo-500/12 rounded-full blur-3xl hero-orb-3"}),E.jsx("div",{className:"container mx-auto px-4 py-12 max-w-6xl relative z-10",children:E.jsxs("div",{className:"min-h-screen flex flex-col justify-center items-center space-y-12",children:[E.jsx(Jp,{name:a.service.name,version:a.service.version,description:a.service.description,provider:a.service.provider,healthLink:a.links.health}),E.jsx("div",{className:"flex justify-center",children:E.jsx(Lm,{totalRequests:a.usage.total_requests})})]})}),E.jsx("style",{children:` + /* Animated Gradient Background */ + .hero-gradient-animated { + position: absolute; + inset: 0; + background: linear-gradient( + 135deg, + rgba(233, 213, 255, 0.4) 0%, + rgba(219, 234, 254, 0.3) 25%, + rgba(255, 255, 255, 0) 50%, + rgba(219, 234, 254, 0.3) 75%, + rgba(233, 213, 255, 0.4) 100% + ); + background-size: 200% 200%; + animation: gradientShift 15s ease-in-out infinite; + } + + @media (prefers-color-scheme: dark) { + .hero-gradient-animated { + background: linear-gradient( + 135deg, + rgba(88, 28, 135, 0.15) 0%, + rgba(30, 58, 138, 0.12) 25%, + rgba(0, 0, 0, 0) 50%, + rgba(30, 58, 138, 0.12) 75%, + rgba(88, 28, 135, 0.15) 100% + ); + background-size: 200% 200%; + } + } + + @keyframes gradientShift { + 0%, 100% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + } + + /* Gentle Floating Orbs */ + @keyframes float1 { + 0%, 100% { + transform: translate(0, 0) scale(1); + } + 50% { + transform: translate(20px, -30px) scale(1.05); + } + } + + @keyframes float2 { + 0%, 100% { + transform: translate(0, 0) scale(1); + } + 50% { + transform: translate(-25px, 20px) scale(1.08); + } + } + + @keyframes float3 { + 0%, 100% { + transform: translate(0, 0) scale(1); + } + 50% { + transform: translate(15px, 25px) scale(1.06); + } + } + + .hero-orb-1 { + animation: float1 20s ease-in-out infinite; + } + + .hero-orb-2 { + animation: float2 25s ease-in-out infinite; + } + + .hero-orb-3 { + animation: float3 22s ease-in-out infinite; + } + `})]}),E.jsxs("div",{className:"container mx-auto px-4 py-12 max-w-6xl",children:[E.jsxs("div",{className:"space-y-12",children:[E.jsxs("section",{className:"pt-12",children:[E.jsxs("div",{className:"text-center mb-8",children:[E.jsx("h2",{className:"text-3xl mb-4",children:"Available Endpoints"}),E.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Explore our collection of useful REST API endpoints. Each endpoint is designed to be simple, fast, and reliable."})]}),E.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.endpoints.map((s,p)=>E.jsx(jm,{title:s.title,path:s.path,desc:s.desc,example:s.example,usageCount:c(s.path)},p))})]}),E.jsx(Um,{}),E.jsx("section",{children:E.jsx(Mm,{contact:a.contact,privacy:a.privacy})})]}),E.jsx("footer",{className:"mt-16 pt-8 border-t text-center text-sm text-muted-foreground",children:E.jsxs("p",{children:["Built with ❀️ by ",a.service.provider," β€’ Powered by Rust"]})})]}),E.jsx(Qm,{})]})}Hf.createRoot(document.getElementById("root")).render(E.jsx(Ym,{})); diff --git a/src/jobs/cache_flush.rs b/src/jobs/cache_flush.rs new file mode 100644 index 0000000..4570cad --- /dev/null +++ b/src/jobs/cache_flush.rs @@ -0,0 +1,26 @@ +use crate::jobs::JobTask; +use crate::services::cache::StatsCache; +use std::sync::Arc; + +pub struct CacheFlushJob { + cache: Arc, +} + +impl CacheFlushJob { + pub fn new(cache: Arc) -> Self { + Self { cache } + } + + pub fn into_task(self) -> JobTask { + let cache = self.cache; + + Arc::new(move || { + let cache_clone = Arc::clone(&cache); + Box::pin(async move { + if let Err(e) = cache_clone.flush_to_db().await { + eprintln!("Cache flush job failed: {}", e); + } + }) + }) + } +} diff --git a/src/jobs/coin_sync.rs b/src/jobs/coin_sync.rs new file mode 100644 index 0000000..4252707 --- /dev/null +++ b/src/jobs/coin_sync.rs @@ -0,0 +1,36 @@ +use crate::jobs::JobTask; +use crate::services::coin_ir::request::RequestCoinIr; +use crate::state::APP_STATE; +use std::sync::Arc; + +pub struct CoinSyncJob; + +impl CoinSyncJob { + pub fn new() -> Self { + Self + } + + pub fn into_task(self) -> JobTask { + Arc::new(|| { + Box::pin(async { + if let Err(e) = sync_coins().await { + eprintln!("Coin sync job failed: {}", e); + } + }) + }) + } +} + +async fn sync_coins() -> Result<(), Box> { + let service = RequestCoinIr::new(); + let coins = service.coins_typed().await?; + + let state = APP_STATE.get().ok_or("Application state not available")?; + + state + .coin_tx + .send(coins) + .map_err(|_| "Failed to send coins to channel")?; + + Ok(()) +} diff --git a/src/jobs/mod.rs b/src/jobs/mod.rs new file mode 100644 index 0000000..5fa1e77 --- /dev/null +++ b/src/jobs/mod.rs @@ -0,0 +1,6 @@ +pub mod cache_flush; +pub mod coin_sync; + +use std::{future::Future, pin::Pin, sync::Arc}; + +pub type JobTask = Arc Pin + Send>> + Send + Sync>; diff --git a/src/main.rs b/src/main.rs index 028204d..87e293b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,42 +1,18 @@ +mod app; mod core; mod entities; +mod jobs; mod middleware; mod repository; mod server; mod services; +mod state; mod utility; -use crate::services::{cache::StatsCache, jobs::FlushJob, routes::Routes}; -use core::config::Config; -use migration::{Migrator, MigratorTrait}; -use sea_orm::Database; -use std::{sync::OnceLock, time::Instant}; - -static START: OnceLock = OnceLock::new(); - #[tokio::main] async fn main() { - START.set(Instant::now()).ok(); - - let config = Config::from_env(); - let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL is required"); - - let db = Database::connect(&db_url).await.expect("DB connect failed"); - Migrator::up(&db, None).await.expect("Migration failed"); - - let cache = StatsCache::new(db.clone()); - - // Start background flush job - FlushJob::start(cache.clone()); - - let state = services::AppState { - _db: db, - stats_cache: cache, - }; - let app = Routes::routes(state); - - if let Err(e) = server::http::start_http(app, &config).await { - eprintln!("Fatal server error: {}", e); + if let Err(e) = app::run().await { + eprintln!("Application failed to start: {}", e); std::process::exit(1); } } diff --git a/src/middleware/visit_event.rs b/src/middleware/visit_event.rs index cbd5c00..6c09b89 100644 --- a/src/middleware/visit_event.rs +++ b/src/middleware/visit_event.rs @@ -1,6 +1,7 @@ -use crate::services::AppState; +use crate::state::AppState; use axum::extract::{Request, State}; use axum::{middleware::Next, response::Response}; + pub async fn visit_event( State(_state): State, // underscore if unused req: Request, diff --git a/src/services/coin_ir/data.rs b/src/services/coin_ir/data.rs new file mode 100644 index 0000000..b758c20 --- /dev/null +++ b/src/services/coin_ir/data.rs @@ -0,0 +1,66 @@ +use crate::services::coin_ir::de_num_opt; +use chrono::Utc; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; + +#[derive(Debug, Clone, Serialize)] +pub struct CoinInfo { + pub current: Option, + pub highest: Option, + pub lowest: Option, + pub updated_at: Option, +} + +#[derive(Debug, Clone, Serialize)] +pub struct CoinData { + pub emami: Option, + pub bahar: Option, + pub nim: Option, + pub rob: Option, + pub gerami: Option, + pub sync_at: Option, +} + +#[derive(Debug, Deserialize)] +pub struct ApiResponse { + pub current: HashMap, +} + +#[derive(Debug, Deserialize, Clone)] +pub struct Quote { + #[serde(deserialize_with = "de_num_opt")] + pub p: Option, + #[serde(deserialize_with = "de_num_opt")] + pub h: Option, + #[serde(deserialize_with = "de_num_opt")] + pub l: Option, + pub ts: Option, +} + +impl From<&HashMap> for CoinData { + fn from(m: &HashMap) -> Self { + let coin_info = Self::coin_info(m); + Self { + emami: Some(coin_info("sekee")), + bahar: Some(coin_info("sekeb")), + nim: Some(coin_info("nim")), + rob: Some(coin_info("rob")), + gerami: Some(coin_info("gerami")), + sync_at: Some(Utc::now().to_rfc3339()), + } + } +} + +impl CoinData { + pub fn coin_info<'a>(m: &'a HashMap) -> impl Fn(&str) -> CoinInfo + 'a { + move |k: &str| { + let q = m.get(k); + CoinInfo { + current: q.and_then(|q| q.p), + highest: q.and_then(|q| q.h), + lowest: q.and_then(|q| q.l), + updated_at: q.and_then(|q| q.ts.clone()), + } + } + } +} diff --git a/src/services/coin_ir/helper.rs b/src/services/coin_ir/helper.rs new file mode 100644 index 0000000..39b0553 --- /dev/null +++ b/src/services/coin_ir/helper.rs @@ -0,0 +1,10 @@ +use crate::utility::clean_num; +use serde::Deserialize; + +pub fn de_num_opt<'de, D>(d: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + let v = Option::::deserialize(d)?; + Ok(v.and_then(|s| clean_num(&s))) +} diff --git a/src/services/coin_ir/mod.rs b/src/services/coin_ir/mod.rs new file mode 100644 index 0000000..96be460 --- /dev/null +++ b/src/services/coin_ir/mod.rs @@ -0,0 +1,12 @@ +pub(crate) mod data; +pub mod helper; +pub mod request; +mod response; + +use crate::services::coin_ir::response::response_coin; +use axum::routing::{MethodRouter, get}; +pub use helper::de_num_opt; + +pub fn routers_list() -> Vec<(&'static str, MethodRouter)> { + Vec::from([("/ir", get(response_coin))]) +} diff --git a/src/services/coin_ir/request.rs b/src/services/coin_ir/request.rs new file mode 100644 index 0000000..c76bd90 --- /dev/null +++ b/src/services/coin_ir/request.rs @@ -0,0 +1,38 @@ +use crate::services::coin_ir::data::{ApiResponse, CoinData}; +use reqwest::Client; +use uuid::Uuid; + +pub struct RequestCoinIr { + client: Client, +} + +impl RequestCoinIr { + pub fn new() -> Self { + let client = Client::builder() + .use_rustls_tls() + .timeout(std::time::Duration::from_secs(10)) + .build() + .expect("reqwest client build failed"); + Self { client } + } + + pub async fn start(&self) -> Result { + let uuid = Uuid::new_v4(); + let url = format!("https://call1.tgju.org/ajax.json?rev={}", uuid); + let resp = self + .client + .get(url) + .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36") + .send() + .await? + .error_for_status()?; // convert 4xx/5xx into Err + + let api: ApiResponse = resp.json().await?; + Ok(api) + } + + pub async fn coins_typed(&self) -> Result { + let api = self.start().await?; + Ok(CoinData::from(&api.current)) + } +} diff --git a/src/services/coin_ir/response.rs b/src/services/coin_ir/response.rs new file mode 100644 index 0000000..0f4f99b --- /dev/null +++ b/src/services/coin_ir/response.rs @@ -0,0 +1,11 @@ +use crate::core::response::ApiResponse; +use crate::state::APP_STATE; +use axum::Json; +use serde_json::json; + +pub async fn response_coin() -> Json> { + let state = APP_STATE.get(); + let payload = json!(state.unwrap().coin_rx.borrow().clone()); + + Json(ApiResponse::success(payload)) +} diff --git a/src/services/health/mod.rs b/src/services/health/mod.rs index ad43dca..23ab10f 100644 --- a/src/services/health/mod.rs +++ b/src/services/health/mod.rs @@ -1,6 +1,6 @@ pub(crate) mod response; -use crate::services::AppState; +use crate::state::AppState; use axum::Router; use axum::routing::get; use response::{fallback, health_check, init}; diff --git a/src/services/health/response.rs b/src/services/health/response.rs index defb9e4..1506ab3 100644 --- a/src/services/health/response.rs +++ b/src/services/health/response.rs @@ -1,12 +1,12 @@ -use crate::START; use crate::core::response::ApiResponse; -use crate::services::AppState; +use crate::state::{APP_STATE, AppState}; use crate::utility::url; use axum::extract::State; +use axum::http::StatusCode; use axum::response as api_response; use chrono::Utc; -use http::StatusCode; use serde_json::json; +use std::time::Instant; const VERSION: &str = env!("CARGO_PKG_VERSION"); @@ -31,10 +31,13 @@ pub async fn fallback() -> ( pub async fn health_check() -> api_response::Json> { let timestamp = Utc::now().to_rfc3339(); - let uptime = START.get().unwrap().elapsed().as_secs_f64(); + let uptime = match APP_STATE.get() { + None => Instant::now(), + Some(state) => state.uptime, + }; api_response::Json(ApiResponse::success(json!({ - "uptime": uptime, + "uptime": uptime.elapsed().as_secs_f64(), "timestamp": timestamp }))) } @@ -42,13 +45,14 @@ pub async fn health_check() -> api_response::Json pub async fn collect_endpoint_stats(state: &AppState) -> EndpointStats { let total = state.stats_cache.total_hits().await; - let (health, time, tehran, ip, country, country_full) = tokio::join!( + let (health, time, tehran, ip, country, country_full, coin_ir) = tokio::join!( state.stats_cache.get("/health"), state.stats_cache.get("/api/v1/time"), state.stats_cache.get("/api/v1/time/asia/tehran"), state.stats_cache.get("/api/v1/ip"), state.stats_cache.get("/api/v1/country"), state.stats_cache.get("/api/v1/country/full"), + state.stats_cache.get("/api/v1/coin/ir"), ); EndpointStats { @@ -59,6 +63,7 @@ pub async fn collect_endpoint_stats(state: &AppState) -> EndpointStats { ip, country, country_full, + coin_ir, } } @@ -117,6 +122,11 @@ fn build_endpoints_list() -> serde_json::Value { "desc": "Explore countries", "example": url("/api/v1/country") }, + { + "path": "/country/full", + "desc": "Explore countries, currencies, languages & flags πŸ—ΊοΈ", + "example": url("/api/v1/country/full") + }, { "path": "/country/full", "desc": "Explore countries, currencies, languages & flags πŸ—ΊοΈ", @@ -133,4 +143,5 @@ pub struct EndpointStats { pub ip: Option, pub country: Option, pub country_full: Option, + pub coin_ir: Option, } diff --git a/src/services/index/mod.rs b/src/services/index/mod.rs index bf7708b..8dd22b5 100644 --- a/src/services/index/mod.rs +++ b/src/services/index/mod.rs @@ -1,8 +1,9 @@ -use crate::services::AppState; use crate::services::health::response::EndpointStats; +use crate::state::AppState; use crate::utility::url; use askama::Template; use axum::extract::State; +use axum::http::StatusCode; use axum::response::{Html, IntoResponse, Response}; use std::env; @@ -12,7 +13,6 @@ struct IndexTemplate { title: String, version: String, url: String, - domain: String, stats: EndpointStats, } @@ -21,7 +21,7 @@ impl IntoResponse for IndexTemplate { match self.render() { Ok(html) => Html(html).into_response(), Err(_) => ( - http::StatusCode::INTERNAL_SERVER_ERROR, + StatusCode::INTERNAL_SERVER_ERROR, "Failed to render template", ) .into_response(), @@ -30,15 +30,13 @@ impl IntoResponse for IndexTemplate { } pub async fn index_handler(State(state): State) -> impl IntoResponse { - let domain = env::var("APP_FINAL_DOMAIN").unwrap_or(String::from("localhost")); const VERSION: &str = env!("CARGO_PKG_VERSION"); let stats = crate::services::health::response::collect_endpoint_stats(&state).await; IndexTemplate { - title: "rest-api".into(), + title: "Rust REST API".into(), version: VERSION.into(), url: url("/"), stats, - domain, } } diff --git a/src/services/ip/mod.rs b/src/services/ip/mod.rs index 6b981c9..6440f34 100644 --- a/src/services/ip/mod.rs +++ b/src/services/ip/mod.rs @@ -1,7 +1,7 @@ use crate::core::response::ApiResponse; use axum::Json; +use axum::http::HeaderMap; use axum::routing::{MethodRouter, get}; -use http::HeaderMap; use serde_json::json; use std::net::IpAddr; diff --git a/src/services/jobs.rs b/src/services/jobs.rs index 77f6177..83c68a5 100644 --- a/src/services/jobs.rs +++ b/src/services/jobs.rs @@ -1,19 +1,24 @@ -use crate::services::StatsCache; +use std::pin::Pin; +use std::sync::Arc; use tokio::time::{Duration, interval}; pub struct FlushJob; +type TaskFn = Arc Pin + Send>> + Send + Sync + 'static>; impl FlushJob { - pub fn start(cache: StatsCache) { + pub fn start(tasks: Vec, secs: Option) { tokio::spawn(async move { - let mut interval = interval(Duration::from_secs(60)); + let mut ticker = interval(Duration::from_secs(secs.unwrap_or(60))); loop { - interval.tick().await; - - if let Err(e) = cache.flush_to_db().await { - eprintln!("Failed to flush stats cache: {}", e); + // Run all tasks concurrently without waiting + for make_future in &tasks { + let f = Arc::clone(make_future); + tokio::spawn(async move { + (f)().await; + }); } + ticker.tick().await; } }); } diff --git a/src/services/mod.rs b/src/services/mod.rs index bc1e55a..06cb047 100644 --- a/src/services/mod.rs +++ b/src/services/mod.rs @@ -1,4 +1,5 @@ pub mod cache; +pub(crate) mod coin_ir; mod country; mod health; mod index; @@ -6,12 +7,4 @@ mod ip; pub mod jobs; pub mod routes; mod time; - pub use cache::StatsCache; -use sea_orm::DatabaseConnection; - -#[derive(Clone)] -pub struct AppState { - pub _db: DatabaseConnection, - pub stats_cache: StatsCache, -} diff --git a/src/services/routes.rs b/src/services/routes.rs index f8792f2..c250041 100644 --- a/src/services/routes.rs +++ b/src/services/routes.rs @@ -1,11 +1,12 @@ use crate::middleware::visit_event; use crate::services::index::index_handler; -use crate::services::{AppState, country, health, ip, time}; +use crate::services::{coin_ir, country, health, ip, time}; +use crate::state::AppState; use axum::extract::Path; +use axum::http::{StatusCode, header}; use axum::response::{IntoResponse, Response}; use axum::routing::{MethodRouter, get}; use axum::{Router, body::Body, middleware}; -use http::{StatusCode, header}; use rust_embed::RustEmbed; #[derive(RustEmbed)] @@ -25,6 +26,7 @@ impl Routes { .nest("/time", Self::generate(time::routers_list())) .nest("/ip", Self::generate(ip::routers_list())) .nest("/country", Self::generate(country::routers_list())) + .nest("/coin", Self::generate(coin_ir::routers_list())) .route("/flags/{code}", get(country::flag::get_flag)); Router::new() diff --git a/src/state/data.rs b/src/state/data.rs new file mode 100644 index 0000000..fd9d6ff --- /dev/null +++ b/src/state/data.rs @@ -0,0 +1,15 @@ +use crate::services::StatsCache; +use crate::services::coin_ir::data::CoinData; +use sea_orm::DatabaseConnection; +use std::sync::Arc; +use std::time::Instant; +use tokio::sync::watch; + +#[derive(Clone)] +pub struct AppState { + pub _db: DatabaseConnection, + pub stats_cache: Arc, + pub coin_tx: watch::Sender, + pub coin_rx: watch::Receiver, + pub uptime: Instant, +} diff --git a/src/state/mod.rs b/src/state/mod.rs new file mode 100644 index 0000000..c630232 --- /dev/null +++ b/src/state/mod.rs @@ -0,0 +1,4 @@ +pub mod data; +pub use data::*; +pub mod struct_state; +pub use struct_state::*; diff --git a/src/state/struct_state.rs b/src/state/struct_state.rs new file mode 100644 index 0000000..523d685 --- /dev/null +++ b/src/state/struct_state.rs @@ -0,0 +1,39 @@ +use crate::services::StatsCache; +use crate::services::coin_ir::data::CoinData; +use crate::state::AppState; +use sea_orm::DatabaseConnection; +use std::sync::{Arc, OnceLock}; +use std::time::Instant; +use tokio::sync::watch; +use tokio::sync::watch::{Receiver, Sender}; + +pub static APP_STATE: OnceLock = OnceLock::new(); +pub struct State; + +impl State { + pub fn init(db: DatabaseConnection, cache: Arc) { + let (tx, rx) = Self::state_coin(); + + APP_STATE + .set(AppState { + _db: db, + stats_cache: cache, + coin_tx: tx, + coin_rx: rx, + uptime: Instant::now(), + }) + .ok(); + } + + fn state_coin() -> (Sender, Receiver) { + let (tx, rx) = watch::channel(CoinData { + gerami: None, + emami: None, + bahar: None, + nim: None, + rob: None, + sync_at: None, + }); + (tx, rx) + } +} diff --git a/src/utility/clean_num.rs b/src/utility/clean_num.rs new file mode 100644 index 0000000..b58f3cd --- /dev/null +++ b/src/utility/clean_num.rs @@ -0,0 +1,14 @@ +use crate::utility::fa_to_en_digits; + +pub fn clean_num(s: &str) -> Option { + let s = fa_to_en_digits(s) + .replace([',', '\t'], "") + .trim() + .to_string(); + + if s.is_empty() { + return None; + } + + s.parse::().ok() +} diff --git a/src/utility/fa_to_en_digits.rs b/src/utility/fa_to_en_digits.rs new file mode 100644 index 0000000..3e5070f --- /dev/null +++ b/src/utility/fa_to_en_digits.rs @@ -0,0 +1,17 @@ +pub fn fa_to_en_digits(s: &str) -> String { + s.chars() + .map(|c| match c { + 'Ϋ°' => '0', + 'Ϋ±' => '1', + 'Ϋ²' => '2', + 'Ϋ³' => '3', + 'Ϋ΄' => '4', + 'Ϋ΅' => '5', + 'ΫΆ' => '6', + 'Ϋ·' => '7', + 'ΫΈ' => '8', + 'ΫΉ' => '9', + _ => c, + }) + .collect() +} diff --git a/src/utility/mod.rs b/src/utility/mod.rs index 81a42ca..308d488 100644 --- a/src/utility/mod.rs +++ b/src/utility/mod.rs @@ -1,2 +1,7 @@ +pub mod clean_num; +pub mod fa_to_en_digits; pub mod url; + +pub use clean_num::clean_num; +pub use fa_to_en_digits::fa_to_en_digits; pub use url::url; diff --git a/templates/index.html b/templates/index.html index ecb12aa..8578c31 100644 --- a/templates/index.html +++ b/templates/index.html @@ -4,46 +4,52 @@ {{ title }} - - + +