From 2ca2698cb7fcb6ff9ed3dbb9ebe08a3d2914f872 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Mon, 30 Jun 2025 09:48:23 -0500 Subject: [PATCH] yes --- .envrc | 1 + .gitignore | 9 + Cargo.lock | 5441 +++++++++++++++++ Cargo.toml | 31 + Dioxus.toml | 21 + README.md | 34 + assets/favicon.ico | Bin 0 -> 132770 bytes assets/header.svg | 20 + assets/pico.fluid.classless.css | 2421 ++++++++ assets/styling/blog.css | 8 + assets/styling/echo.css | 34 + assets/styling/main.css | 745 +++ assets/styling/navbar.css | 16 + assets/styling/tailwind.css | 48 + clippy.toml | 8 + flake.nix | 17 +- justfile | 20 + pico-main/pico-main/.github/CONTRIBUTING.md | 22 + .../.github/ISSUE_TEMPLATE/bug_report.md | 21 + .../.github/ISSUE_TEMPLATE/config.yml | 8 + pico-main/pico-main/.github/logo-dark.svg | 27 + pico-main/pico-main/.github/logo-light.svg | 27 + pico-main/pico-main/.gitignore | 32 + pico-main/pico-main/.prettierrc | 3 + pico-main/pico-main/LICENSE.md | 21 + pico-main/pico-main/README.md | 238 + pico-main/pico-main/composer.json | 30 + pico-main/pico-main/css/pico.amber.css | 2835 +++++++++ pico-main/pico-main/css/pico.amber.min.css | 4 + pico-main/pico-main/css/pico.blue.css | 2835 +++++++++ pico-main/pico-main/css/pico.blue.min.css | 4 + .../pico-main/css/pico.classless.amber.css | 2458 ++++++++ .../css/pico.classless.amber.min.css | 4 + .../pico-main/css/pico.classless.blue.css | 2458 ++++++++ .../pico-main/css/pico.classless.blue.min.css | 4 + .../css/pico.classless.conditional.amber.css | 2458 ++++++++ .../pico.classless.conditional.amber.min.css | 4 + .../css/pico.classless.conditional.blue.css | 2458 ++++++++ .../pico.classless.conditional.blue.min.css | 4 + .../css/pico.classless.conditional.cyan.css | 2458 ++++++++ .../pico.classless.conditional.cyan.min.css | 4 + .../pico.classless.conditional.fuchsia.css | 2458 ++++++++ ...pico.classless.conditional.fuchsia.min.css | 4 + .../css/pico.classless.conditional.green.css | 2458 ++++++++ .../pico.classless.conditional.green.min.css | 4 + .../css/pico.classless.conditional.grey.css | 2458 ++++++++ .../pico.classless.conditional.grey.min.css | 4 + .../css/pico.classless.conditional.indigo.css | 2458 ++++++++ .../pico.classless.conditional.indigo.min.css | 4 + .../css/pico.classless.conditional.jade.css | 2458 ++++++++ .../pico.classless.conditional.jade.min.css | 4 + .../css/pico.classless.conditional.lime.css | 2458 ++++++++ .../pico.classless.conditional.lime.min.css | 4 + .../css/pico.classless.conditional.orange.css | 2458 ++++++++ .../pico.classless.conditional.orange.min.css | 4 + .../css/pico.classless.conditional.pink.css | 2458 ++++++++ .../pico.classless.conditional.pink.min.css | 4 + .../pico.classless.conditional.pumpkin.css | 2458 ++++++++ ...pico.classless.conditional.pumpkin.min.css | 4 + .../css/pico.classless.conditional.purple.css | 2458 ++++++++ .../pico.classless.conditional.purple.min.css | 4 + .../css/pico.classless.conditional.red.css | 2458 ++++++++ .../pico.classless.conditional.red.min.css | 4 + .../css/pico.classless.conditional.sand.css | 2458 ++++++++ .../pico.classless.conditional.sand.min.css | 4 + .../css/pico.classless.conditional.slate.css | 2458 ++++++++ .../pico.classless.conditional.slate.min.css | 4 + .../css/pico.classless.conditional.violet.css | 2458 ++++++++ .../pico.classless.conditional.violet.min.css | 4 + .../css/pico.classless.conditional.yellow.css | 2458 ++++++++ .../pico.classless.conditional.yellow.min.css | 4 + .../css/pico.classless.conditional.zinc.css | 2458 ++++++++ .../pico.classless.conditional.zinc.min.css | 4 + pico-main/pico-main/css/pico.classless.css | 2458 ++++++++ .../pico-main/css/pico.classless.cyan.css | 2458 ++++++++ .../pico-main/css/pico.classless.cyan.min.css | 4 + .../pico-main/css/pico.classless.fuchsia.css | 2458 ++++++++ .../css/pico.classless.fuchsia.min.css | 4 + .../pico-main/css/pico.classless.green.css | 2458 ++++++++ .../css/pico.classless.green.min.css | 4 + .../pico-main/css/pico.classless.grey.css | 2458 ++++++++ .../pico-main/css/pico.classless.grey.min.css | 4 + .../pico-main/css/pico.classless.indigo.css | 2458 ++++++++ .../css/pico.classless.indigo.min.css | 4 + .../pico-main/css/pico.classless.jade.css | 2458 ++++++++ .../pico-main/css/pico.classless.jade.min.css | 4 + .../pico-main/css/pico.classless.lime.css | 2458 ++++++++ .../pico-main/css/pico.classless.lime.min.css | 4 + .../pico-main/css/pico.classless.min.css | 4 + .../pico-main/css/pico.classless.orange.css | 2458 ++++++++ .../css/pico.classless.orange.min.css | 4 + .../pico-main/css/pico.classless.pink.css | 2458 ++++++++ .../pico-main/css/pico.classless.pink.min.css | 4 + .../pico-main/css/pico.classless.pumpkin.css | 2458 ++++++++ .../css/pico.classless.pumpkin.min.css | 4 + .../pico-main/css/pico.classless.purple.css | 2458 ++++++++ .../css/pico.classless.purple.min.css | 4 + .../pico-main/css/pico.classless.red.css | 2458 ++++++++ .../pico-main/css/pico.classless.red.min.css | 4 + .../pico-main/css/pico.classless.sand.css | 2458 ++++++++ .../pico-main/css/pico.classless.sand.min.css | 4 + .../pico-main/css/pico.classless.slate.css | 2458 ++++++++ .../css/pico.classless.slate.min.css | 4 + .../pico-main/css/pico.classless.violet.css | 2458 ++++++++ .../css/pico.classless.violet.min.css | 4 + .../pico-main/css/pico.classless.yellow.css | 2458 ++++++++ .../css/pico.classless.yellow.min.css | 4 + .../pico-main/css/pico.classless.zinc.css | 2458 ++++++++ .../pico-main/css/pico.classless.zinc.min.css | 4 + pico-main/pico-main/css/pico.colors.css | 4010 ++++++++++++ pico-main/pico-main/css/pico.colors.min.css | 4 + .../pico-main/css/pico.conditional.amber.css | 2835 +++++++++ .../css/pico.conditional.amber.min.css | 4 + .../pico-main/css/pico.conditional.blue.css | 2835 +++++++++ .../css/pico.conditional.blue.min.css | 4 + pico-main/pico-main/css/pico.conditional.css | 2835 +++++++++ .../pico-main/css/pico.conditional.cyan.css | 2835 +++++++++ .../css/pico.conditional.cyan.min.css | 4 + .../css/pico.conditional.fuchsia.css | 2835 +++++++++ .../css/pico.conditional.fuchsia.min.css | 4 + .../pico-main/css/pico.conditional.green.css | 2835 +++++++++ .../css/pico.conditional.green.min.css | 4 + .../pico-main/css/pico.conditional.grey.css | 2835 +++++++++ .../css/pico.conditional.grey.min.css | 4 + .../pico-main/css/pico.conditional.indigo.css | 2835 +++++++++ .../css/pico.conditional.indigo.min.css | 4 + .../pico-main/css/pico.conditional.jade.css | 2835 +++++++++ .../css/pico.conditional.jade.min.css | 4 + .../pico-main/css/pico.conditional.lime.css | 2835 +++++++++ .../css/pico.conditional.lime.min.css | 4 + .../pico-main/css/pico.conditional.min.css | 4 + .../pico-main/css/pico.conditional.orange.css | 2835 +++++++++ .../css/pico.conditional.orange.min.css | 4 + .../pico-main/css/pico.conditional.pink.css | 2835 +++++++++ .../css/pico.conditional.pink.min.css | 4 + .../css/pico.conditional.pumpkin.css | 2835 +++++++++ .../css/pico.conditional.pumpkin.min.css | 4 + .../pico-main/css/pico.conditional.purple.css | 2835 +++++++++ .../css/pico.conditional.purple.min.css | 4 + .../pico-main/css/pico.conditional.red.css | 2835 +++++++++ .../css/pico.conditional.red.min.css | 4 + .../pico-main/css/pico.conditional.sand.css | 2835 +++++++++ .../css/pico.conditional.sand.min.css | 4 + .../pico-main/css/pico.conditional.slate.css | 2835 +++++++++ .../css/pico.conditional.slate.min.css | 4 + .../pico-main/css/pico.conditional.violet.css | 2835 +++++++++ .../css/pico.conditional.violet.min.css | 4 + .../pico-main/css/pico.conditional.yellow.css | 2835 +++++++++ .../css/pico.conditional.yellow.min.css | 4 + .../pico-main/css/pico.conditional.zinc.css | 2835 +++++++++ .../css/pico.conditional.zinc.min.css | 4 + pico-main/pico-main/css/pico.css | 2835 +++++++++ pico-main/pico-main/css/pico.cyan.css | 2835 +++++++++ pico-main/pico-main/css/pico.cyan.min.css | 4 + .../css/pico.fluid.classless.amber.css | 2421 ++++++++ .../css/pico.fluid.classless.amber.min.css | 4 + .../css/pico.fluid.classless.blue.css | 2421 ++++++++ .../css/pico.fluid.classless.blue.min.css | 4 + ...pico.fluid.classless.conditional.amber.css | 2421 ++++++++ ....fluid.classless.conditional.amber.min.css | 4 + .../pico.fluid.classless.conditional.blue.css | 2421 ++++++++ ...o.fluid.classless.conditional.blue.min.css | 4 + .../pico.fluid.classless.conditional.cyan.css | 2421 ++++++++ ...o.fluid.classless.conditional.cyan.min.css | 4 + ...co.fluid.classless.conditional.fuchsia.css | 2421 ++++++++ ...luid.classless.conditional.fuchsia.min.css | 4 + ...pico.fluid.classless.conditional.green.css | 2421 ++++++++ ....fluid.classless.conditional.green.min.css | 4 + .../pico.fluid.classless.conditional.grey.css | 2421 ++++++++ ...o.fluid.classless.conditional.grey.min.css | 4 + ...ico.fluid.classless.conditional.indigo.css | 2421 ++++++++ ...fluid.classless.conditional.indigo.min.css | 4 + .../pico.fluid.classless.conditional.jade.css | 2421 ++++++++ ...o.fluid.classless.conditional.jade.min.css | 4 + .../pico.fluid.classless.conditional.lime.css | 2421 ++++++++ ...o.fluid.classless.conditional.lime.min.css | 4 + ...ico.fluid.classless.conditional.orange.css | 2421 ++++++++ ...fluid.classless.conditional.orange.min.css | 4 + .../pico.fluid.classless.conditional.pink.css | 2421 ++++++++ ...o.fluid.classless.conditional.pink.min.css | 4 + ...co.fluid.classless.conditional.pumpkin.css | 2421 ++++++++ ...luid.classless.conditional.pumpkin.min.css | 4 + ...ico.fluid.classless.conditional.purple.css | 2421 ++++++++ ...fluid.classless.conditional.purple.min.css | 4 + .../pico.fluid.classless.conditional.red.css | 2421 ++++++++ ...co.fluid.classless.conditional.red.min.css | 4 + .../pico.fluid.classless.conditional.sand.css | 2421 ++++++++ ...o.fluid.classless.conditional.sand.min.css | 4 + ...pico.fluid.classless.conditional.slate.css | 2421 ++++++++ ....fluid.classless.conditional.slate.min.css | 4 + ...ico.fluid.classless.conditional.violet.css | 2421 ++++++++ ...fluid.classless.conditional.violet.min.css | 4 + ...ico.fluid.classless.conditional.yellow.css | 2421 ++++++++ ...fluid.classless.conditional.yellow.min.css | 4 + .../pico.fluid.classless.conditional.zinc.css | 2421 ++++++++ ...o.fluid.classless.conditional.zinc.min.css | 4 + .../pico-main/css/pico.fluid.classless.css | 2421 ++++++++ .../css/pico.fluid.classless.cyan.css | 2421 ++++++++ .../css/pico.fluid.classless.cyan.min.css | 4 + .../css/pico.fluid.classless.fuchsia.css | 2421 ++++++++ .../css/pico.fluid.classless.fuchsia.min.css | 4 + .../css/pico.fluid.classless.green.css | 2421 ++++++++ .../css/pico.fluid.classless.green.min.css | 4 + .../css/pico.fluid.classless.grey.css | 2421 ++++++++ .../css/pico.fluid.classless.grey.min.css | 4 + .../css/pico.fluid.classless.indigo.css | 2421 ++++++++ .../css/pico.fluid.classless.indigo.min.css | 4 + .../css/pico.fluid.classless.jade.css | 2421 ++++++++ .../css/pico.fluid.classless.jade.min.css | 4 + .../css/pico.fluid.classless.lime.css | 2421 ++++++++ .../css/pico.fluid.classless.lime.min.css | 4 + .../css/pico.fluid.classless.min.css | 4 + .../css/pico.fluid.classless.orange.css | 2421 ++++++++ .../css/pico.fluid.classless.orange.min.css | 4 + .../css/pico.fluid.classless.pink.css | 2421 ++++++++ .../css/pico.fluid.classless.pink.min.css | 4 + .../css/pico.fluid.classless.pumpkin.css | 2421 ++++++++ .../css/pico.fluid.classless.pumpkin.min.css | 4 + .../css/pico.fluid.classless.purple.css | 2421 ++++++++ .../css/pico.fluid.classless.purple.min.css | 4 + .../css/pico.fluid.classless.red.css | 2421 ++++++++ .../css/pico.fluid.classless.red.min.css | 4 + .../css/pico.fluid.classless.sand.css | 2421 ++++++++ .../css/pico.fluid.classless.sand.min.css | 4 + .../css/pico.fluid.classless.slate.css | 2421 ++++++++ .../css/pico.fluid.classless.slate.min.css | 4 + .../css/pico.fluid.classless.violet.css | 2421 ++++++++ .../css/pico.fluid.classless.violet.min.css | 4 + .../css/pico.fluid.classless.yellow.css | 2421 ++++++++ .../css/pico.fluid.classless.yellow.min.css | 4 + .../css/pico.fluid.classless.zinc.css | 2421 ++++++++ .../css/pico.fluid.classless.zinc.min.css | 4 + pico-main/pico-main/css/pico.fuchsia.css | 2835 +++++++++ pico-main/pico-main/css/pico.fuchsia.min.css | 4 + pico-main/pico-main/css/pico.green.css | 2835 +++++++++ pico-main/pico-main/css/pico.green.min.css | 4 + pico-main/pico-main/css/pico.grey.css | 2835 +++++++++ pico-main/pico-main/css/pico.grey.min.css | 4 + pico-main/pico-main/css/pico.indigo.css | 2835 +++++++++ pico-main/pico-main/css/pico.indigo.min.css | 4 + pico-main/pico-main/css/pico.jade.css | 2835 +++++++++ pico-main/pico-main/css/pico.jade.min.css | 4 + pico-main/pico-main/css/pico.lime.css | 2835 +++++++++ pico-main/pico-main/css/pico.lime.min.css | 4 + pico-main/pico-main/css/pico.min.css | 4 + pico-main/pico-main/css/pico.orange.css | 2835 +++++++++ pico-main/pico-main/css/pico.orange.min.css | 4 + pico-main/pico-main/css/pico.pink.css | 2835 +++++++++ pico-main/pico-main/css/pico.pink.min.css | 4 + pico-main/pico-main/css/pico.pumpkin.css | 2835 +++++++++ pico-main/pico-main/css/pico.pumpkin.min.css | 4 + pico-main/pico-main/css/pico.purple.css | 2835 +++++++++ pico-main/pico-main/css/pico.purple.min.css | 4 + pico-main/pico-main/css/pico.red.css | 2835 +++++++++ pico-main/pico-main/css/pico.red.min.css | 4 + pico-main/pico-main/css/pico.sand.css | 2835 +++++++++ pico-main/pico-main/css/pico.sand.min.css | 4 + pico-main/pico-main/css/pico.slate.css | 2835 +++++++++ pico-main/pico-main/css/pico.slate.min.css | 4 + pico-main/pico-main/css/pico.violet.css | 2835 +++++++++ pico-main/pico-main/css/pico.violet.min.css | 4 + pico-main/pico-main/css/pico.yellow.css | 2835 +++++++++ pico-main/pico-main/css/pico.yellow.min.css | 4 + pico-main/pico-main/css/pico.zinc.css | 2835 +++++++++ pico-main/pico-main/css/pico.zinc.min.css | 4 + pico-main/pico-main/css/postcss.config.js | 8 + pico-main/pico-main/package.json | 67 + pico-main/pico-main/scripts/build-themes.js | 143 + pico-main/pico-main/scss/_index.scss | 49 + pico-main/pico-main/scss/_settings.scss | 143 + pico-main/pico-main/scss/colors/_index.scss | 886 +++ .../colors/utilities/_background-colors.scss | 74 + .../scss/colors/utilities/_colors.scss | 51 + .../scss/colors/utilities/_css-vars.scss | 55 + .../scss/colors/utilities/_index.scss | 8 + .../scss/colors/utilities/_settings.scss | 106 + .../scss/colors/utilities/_utils.scss | 60 + .../pico-main/scss/components/_accordion.scss | 116 + .../pico-main/scss/components/_card.scss | 46 + .../pico-main/scss/components/_dropdown.scss | 280 + .../pico-main/scss/components/_group.scss | 120 + .../pico-main/scss/components/_loading.scss | 46 + .../pico-main/scss/components/_modal.scss | 177 + pico-main/pico-main/scss/components/_nav.scss | 160 + .../pico-main/scss/components/_progress.scss | 102 + .../pico-main/scss/components/_tooltip.scss | 215 + pico-main/pico-main/scss/content/_button.scss | 209 + pico-main/pico-main/scss/content/_code.scss | 77 + .../pico-main/scss/content/_embedded.scss | 54 + pico-main/pico-main/scss/content/_figure.scss | 19 + pico-main/pico-main/scss/content/_link.scss | 69 + pico-main/pico-main/scss/content/_misc.scss | 38 + pico-main/pico-main/scss/content/_table.scss | 62 + .../pico-main/scss/content/_typography.scss | 182 + pico-main/pico-main/scss/forms/_basics.scss | 471 ++ .../scss/forms/_checkbox-radio-switch.scss | 177 + .../pico-main/scss/forms/_input-color.scss | 37 + .../pico-main/scss/forms/_input-date.scss | 60 + .../pico-main/scss/forms/_input-file.scss | 41 + .../pico-main/scss/forms/_input-range.scss | 100 + .../pico-main/scss/forms/_input-search.scss | 60 + .../pico-main/scss/helpers/_copyright.scss | 4 + .../pico-main/scss/helpers/_functions.scss | 55 + .../pico-main/scss/layout/_container.scss | 33 + .../pico-main/scss/layout/_document.scss | 53 + pico-main/pico-main/scss/layout/_grid.scss | 26 + .../pico-main/scss/layout/_landmarks.scss | 62 + .../pico-main/scss/layout/_overflow-auto.scss | 12 + pico-main/pico-main/scss/layout/_section.scss | 12 + pico-main/pico-main/scss/pico.classless.scss | 5 + pico-main/pico-main/scss/pico.colors.scss | 2 + .../pico-main/scss/pico.conditional.scss | 4 + .../pico-main/scss/pico.fluid.classless.scss | 6 + pico-main/pico-main/scss/pico.scss | 2 + pico-main/pico-main/scss/postcss.config.js | 9 + pico-main/pico-main/scss/themes/_default.scss | 5 + .../pico-main/scss/themes/default/_dark.scss | 261 + .../pico-main/scss/themes/default/_light.scss | 221 + .../scss/themes/default/_schemes.scss | 41 + .../scss/themes/default/_styles.scss | 435 ++ .../scss/themes/default/_theme-colors.scss | 491 ++ .../scss/utilities/_accessibility.scss | 57 + .../scss/utilities/_reduce-motion.scss | 30 + pico-main/pico-main/yarn.lock | 1793 ++++++ src/components/echo.rs | 60 + src/components/hero.rs | 1 + src/components/mainpage.rs | 25 + src/components/mod.rs | 9 + src/main.rs | 65 + src/views/blog.rs | 39 + src/views/home.rs | 11 + src/views/mod.rs | 18 + src/views/navbar.rs | 29 + 333 files changed, 325907 insertions(+), 7 deletions(-) create mode 100644 .envrc create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 Dioxus.toml create mode 100644 README.md create mode 100644 assets/favicon.ico create mode 100644 assets/header.svg create mode 100644 assets/pico.fluid.classless.css create mode 100644 assets/styling/blog.css create mode 100644 assets/styling/echo.css create mode 100644 assets/styling/main.css create mode 100644 assets/styling/navbar.css create mode 100644 assets/styling/tailwind.css create mode 100644 clippy.toml create mode 100644 justfile create mode 100644 pico-main/pico-main/.github/CONTRIBUTING.md create mode 100644 pico-main/pico-main/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 pico-main/pico-main/.github/ISSUE_TEMPLATE/config.yml create mode 100644 pico-main/pico-main/.github/logo-dark.svg create mode 100644 pico-main/pico-main/.github/logo-light.svg create mode 100644 pico-main/pico-main/.gitignore create mode 100644 pico-main/pico-main/.prettierrc create mode 100644 pico-main/pico-main/LICENSE.md create mode 100644 pico-main/pico-main/README.md create mode 100644 pico-main/pico-main/composer.json create mode 100644 pico-main/pico-main/css/pico.amber.css create mode 100644 pico-main/pico-main/css/pico.amber.min.css create mode 100644 pico-main/pico-main/css/pico.blue.css create mode 100644 pico-main/pico-main/css/pico.blue.min.css create mode 100644 pico-main/pico-main/css/pico.classless.amber.css create mode 100644 pico-main/pico-main/css/pico.classless.amber.min.css create mode 100644 pico-main/pico-main/css/pico.classless.blue.css create mode 100644 pico-main/pico-main/css/pico.classless.blue.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.amber.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.amber.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.blue.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.blue.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.cyan.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.green.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.green.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.grey.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.grey.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.indigo.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.jade.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.jade.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.lime.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.lime.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.orange.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.orange.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.pink.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.pink.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.purple.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.purple.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.red.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.red.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.sand.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.sand.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.slate.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.slate.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.violet.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.violet.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.yellow.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.zinc.css create mode 100644 pico-main/pico-main/css/pico.classless.conditional.zinc.min.css create mode 100644 pico-main/pico-main/css/pico.classless.css create mode 100644 pico-main/pico-main/css/pico.classless.cyan.css create mode 100644 pico-main/pico-main/css/pico.classless.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.classless.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.classless.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.classless.green.css create mode 100644 pico-main/pico-main/css/pico.classless.green.min.css create mode 100644 pico-main/pico-main/css/pico.classless.grey.css create mode 100644 pico-main/pico-main/css/pico.classless.grey.min.css create mode 100644 pico-main/pico-main/css/pico.classless.indigo.css create mode 100644 pico-main/pico-main/css/pico.classless.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.classless.jade.css create mode 100644 pico-main/pico-main/css/pico.classless.jade.min.css create mode 100644 pico-main/pico-main/css/pico.classless.lime.css create mode 100644 pico-main/pico-main/css/pico.classless.lime.min.css create mode 100644 pico-main/pico-main/css/pico.classless.min.css create mode 100644 pico-main/pico-main/css/pico.classless.orange.css create mode 100644 pico-main/pico-main/css/pico.classless.orange.min.css create mode 100644 pico-main/pico-main/css/pico.classless.pink.css create mode 100644 pico-main/pico-main/css/pico.classless.pink.min.css create mode 100644 pico-main/pico-main/css/pico.classless.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.classless.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.classless.purple.css create mode 100644 pico-main/pico-main/css/pico.classless.purple.min.css create mode 100644 pico-main/pico-main/css/pico.classless.red.css create mode 100644 pico-main/pico-main/css/pico.classless.red.min.css create mode 100644 pico-main/pico-main/css/pico.classless.sand.css create mode 100644 pico-main/pico-main/css/pico.classless.sand.min.css create mode 100644 pico-main/pico-main/css/pico.classless.slate.css create mode 100644 pico-main/pico-main/css/pico.classless.slate.min.css create mode 100644 pico-main/pico-main/css/pico.classless.violet.css create mode 100644 pico-main/pico-main/css/pico.classless.violet.min.css create mode 100644 pico-main/pico-main/css/pico.classless.yellow.css create mode 100644 pico-main/pico-main/css/pico.classless.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.classless.zinc.css create mode 100644 pico-main/pico-main/css/pico.classless.zinc.min.css create mode 100644 pico-main/pico-main/css/pico.colors.css create mode 100644 pico-main/pico-main/css/pico.colors.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.amber.css create mode 100644 pico-main/pico-main/css/pico.conditional.amber.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.blue.css create mode 100644 pico-main/pico-main/css/pico.conditional.blue.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.css create mode 100644 pico-main/pico-main/css/pico.conditional.cyan.css create mode 100644 pico-main/pico-main/css/pico.conditional.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.conditional.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.green.css create mode 100644 pico-main/pico-main/css/pico.conditional.green.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.grey.css create mode 100644 pico-main/pico-main/css/pico.conditional.grey.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.indigo.css create mode 100644 pico-main/pico-main/css/pico.conditional.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.jade.css create mode 100644 pico-main/pico-main/css/pico.conditional.jade.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.lime.css create mode 100644 pico-main/pico-main/css/pico.conditional.lime.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.orange.css create mode 100644 pico-main/pico-main/css/pico.conditional.orange.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.pink.css create mode 100644 pico-main/pico-main/css/pico.conditional.pink.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.conditional.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.purple.css create mode 100644 pico-main/pico-main/css/pico.conditional.purple.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.red.css create mode 100644 pico-main/pico-main/css/pico.conditional.red.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.sand.css create mode 100644 pico-main/pico-main/css/pico.conditional.sand.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.slate.css create mode 100644 pico-main/pico-main/css/pico.conditional.slate.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.violet.css create mode 100644 pico-main/pico-main/css/pico.conditional.violet.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.yellow.css create mode 100644 pico-main/pico-main/css/pico.conditional.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.conditional.zinc.css create mode 100644 pico-main/pico-main/css/pico.conditional.zinc.min.css create mode 100644 pico-main/pico-main/css/pico.css create mode 100644 pico-main/pico-main/css/pico.cyan.css create mode 100644 pico-main/pico-main/css/pico.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.amber.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.amber.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.blue.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.blue.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.amber.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.amber.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.blue.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.blue.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.cyan.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.green.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.green.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.grey.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.grey.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.indigo.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.jade.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.jade.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.lime.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.lime.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.orange.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.orange.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.pink.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.pink.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.purple.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.purple.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.red.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.red.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.sand.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.sand.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.slate.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.slate.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.violet.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.violet.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.yellow.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.zinc.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.conditional.zinc.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.cyan.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.cyan.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.green.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.green.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.grey.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.grey.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.indigo.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.jade.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.jade.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.lime.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.lime.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.orange.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.orange.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.pink.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.pink.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.purple.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.purple.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.red.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.red.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.sand.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.sand.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.slate.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.slate.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.violet.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.violet.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.yellow.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.zinc.css create mode 100644 pico-main/pico-main/css/pico.fluid.classless.zinc.min.css create mode 100644 pico-main/pico-main/css/pico.fuchsia.css create mode 100644 pico-main/pico-main/css/pico.fuchsia.min.css create mode 100644 pico-main/pico-main/css/pico.green.css create mode 100644 pico-main/pico-main/css/pico.green.min.css create mode 100644 pico-main/pico-main/css/pico.grey.css create mode 100644 pico-main/pico-main/css/pico.grey.min.css create mode 100644 pico-main/pico-main/css/pico.indigo.css create mode 100644 pico-main/pico-main/css/pico.indigo.min.css create mode 100644 pico-main/pico-main/css/pico.jade.css create mode 100644 pico-main/pico-main/css/pico.jade.min.css create mode 100644 pico-main/pico-main/css/pico.lime.css create mode 100644 pico-main/pico-main/css/pico.lime.min.css create mode 100644 pico-main/pico-main/css/pico.min.css create mode 100644 pico-main/pico-main/css/pico.orange.css create mode 100644 pico-main/pico-main/css/pico.orange.min.css create mode 100644 pico-main/pico-main/css/pico.pink.css create mode 100644 pico-main/pico-main/css/pico.pink.min.css create mode 100644 pico-main/pico-main/css/pico.pumpkin.css create mode 100644 pico-main/pico-main/css/pico.pumpkin.min.css create mode 100644 pico-main/pico-main/css/pico.purple.css create mode 100644 pico-main/pico-main/css/pico.purple.min.css create mode 100644 pico-main/pico-main/css/pico.red.css create mode 100644 pico-main/pico-main/css/pico.red.min.css create mode 100644 pico-main/pico-main/css/pico.sand.css create mode 100644 pico-main/pico-main/css/pico.sand.min.css create mode 100644 pico-main/pico-main/css/pico.slate.css create mode 100644 pico-main/pico-main/css/pico.slate.min.css create mode 100644 pico-main/pico-main/css/pico.violet.css create mode 100644 pico-main/pico-main/css/pico.violet.min.css create mode 100644 pico-main/pico-main/css/pico.yellow.css create mode 100644 pico-main/pico-main/css/pico.yellow.min.css create mode 100644 pico-main/pico-main/css/pico.zinc.css create mode 100644 pico-main/pico-main/css/pico.zinc.min.css create mode 100644 pico-main/pico-main/css/postcss.config.js create mode 100644 pico-main/pico-main/package.json create mode 100644 pico-main/pico-main/scripts/build-themes.js create mode 100644 pico-main/pico-main/scss/_index.scss create mode 100644 pico-main/pico-main/scss/_settings.scss create mode 100644 pico-main/pico-main/scss/colors/_index.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_background-colors.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_colors.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_css-vars.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_index.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_settings.scss create mode 100644 pico-main/pico-main/scss/colors/utilities/_utils.scss create mode 100644 pico-main/pico-main/scss/components/_accordion.scss create mode 100644 pico-main/pico-main/scss/components/_card.scss create mode 100644 pico-main/pico-main/scss/components/_dropdown.scss create mode 100644 pico-main/pico-main/scss/components/_group.scss create mode 100644 pico-main/pico-main/scss/components/_loading.scss create mode 100644 pico-main/pico-main/scss/components/_modal.scss create mode 100644 pico-main/pico-main/scss/components/_nav.scss create mode 100644 pico-main/pico-main/scss/components/_progress.scss create mode 100644 pico-main/pico-main/scss/components/_tooltip.scss create mode 100644 pico-main/pico-main/scss/content/_button.scss create mode 100644 pico-main/pico-main/scss/content/_code.scss create mode 100644 pico-main/pico-main/scss/content/_embedded.scss create mode 100644 pico-main/pico-main/scss/content/_figure.scss create mode 100644 pico-main/pico-main/scss/content/_link.scss create mode 100644 pico-main/pico-main/scss/content/_misc.scss create mode 100644 pico-main/pico-main/scss/content/_table.scss create mode 100644 pico-main/pico-main/scss/content/_typography.scss create mode 100644 pico-main/pico-main/scss/forms/_basics.scss create mode 100644 pico-main/pico-main/scss/forms/_checkbox-radio-switch.scss create mode 100644 pico-main/pico-main/scss/forms/_input-color.scss create mode 100644 pico-main/pico-main/scss/forms/_input-date.scss create mode 100644 pico-main/pico-main/scss/forms/_input-file.scss create mode 100644 pico-main/pico-main/scss/forms/_input-range.scss create mode 100644 pico-main/pico-main/scss/forms/_input-search.scss create mode 100644 pico-main/pico-main/scss/helpers/_copyright.scss create mode 100644 pico-main/pico-main/scss/helpers/_functions.scss create mode 100644 pico-main/pico-main/scss/layout/_container.scss create mode 100644 pico-main/pico-main/scss/layout/_document.scss create mode 100644 pico-main/pico-main/scss/layout/_grid.scss create mode 100644 pico-main/pico-main/scss/layout/_landmarks.scss create mode 100644 pico-main/pico-main/scss/layout/_overflow-auto.scss create mode 100644 pico-main/pico-main/scss/layout/_section.scss create mode 100644 pico-main/pico-main/scss/pico.classless.scss create mode 100644 pico-main/pico-main/scss/pico.colors.scss create mode 100644 pico-main/pico-main/scss/pico.conditional.scss create mode 100644 pico-main/pico-main/scss/pico.fluid.classless.scss create mode 100644 pico-main/pico-main/scss/pico.scss create mode 100644 pico-main/pico-main/scss/postcss.config.js create mode 100644 pico-main/pico-main/scss/themes/_default.scss create mode 100644 pico-main/pico-main/scss/themes/default/_dark.scss create mode 100644 pico-main/pico-main/scss/themes/default/_light.scss create mode 100644 pico-main/pico-main/scss/themes/default/_schemes.scss create mode 100644 pico-main/pico-main/scss/themes/default/_styles.scss create mode 100644 pico-main/pico-main/scss/themes/default/_theme-colors.scss create mode 100644 pico-main/pico-main/scss/utilities/_accessibility.scss create mode 100644 pico-main/pico-main/scss/utilities/_reduce-motion.scss create mode 100644 pico-main/pico-main/yarn.lock create mode 100644 src/components/echo.rs create mode 100644 src/components/hero.rs create mode 100644 src/components/mainpage.rs create mode 100644 src/components/mod.rs create mode 100644 src/main.rs create mode 100644 src/views/blog.rs create mode 100644 src/views/home.rs create mode 100644 src/views/mod.rs create mode 100644 src/views/navbar.rs diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3ab6f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Generated by Cargo +# will have compiled files and executables +/target +.DS_Store + +# These are backup files generated by rustfmt +**/*.rs.bk + +.direnv \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..0ea9647 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,5441 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "ashpd" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.8.5", + "serde", + "serde_repr", + "tokio", + "url", + "zbus", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-io" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", + "tracing", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "async-signal" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +dependencies = [ + "serde", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" +dependencies = [ + "objc2 0.6.1", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.9.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "cc" +version = "1.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +dependencies = [ + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cocoa" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation 0.1.2", + "core-foundation 0.9.4", + "core-graphics 0.23.2", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" +dependencies = [ + "bitflags 2.9.1", + "block", + "cocoa-foundation 0.2.1", + "core-foundation 0.10.1", + "core-graphics 0.24.0", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81411967c50ee9a1fc11365f8c585f863a22a9697c89239c452292c40ba79b0d" +dependencies = [ + "bitflags 2.9.1", + "block", + "core-foundation 0.10.1", + "core-graphics-types 0.2.0", + "objc", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "const-serialize" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08259976d62c715c4826cb4a3d64a3a9e5c5f68f964ff6087319857f569f93a6" +dependencies = [ + "const-serialize-macro", + "serde", +] + +[[package]] +name = "const-serialize-macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04382d0d9df7434af6b1b49ea1a026ef39df1b0738b1cc373368cf175354f6eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[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" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.9.1", + "core-foundation 0.10.1", + "core-graphics-types 0.2.0", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.9.1", + "core-foundation 0.10.1", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.104", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.104", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dioxus" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a247114500f1a78e87022defa8173de847accfada8e8809dfae23a118a580c" +dependencies = [ + "dioxus-cli-config", + "dioxus-config-macro", + "dioxus-core", + "dioxus-core-macro", + "dioxus-desktop", + "dioxus-devtools", + "dioxus-document", + "dioxus-fullstack", + "dioxus-history", + "dioxus-hooks", + "dioxus-html", + "dioxus-logger", + "dioxus-mobile", + "dioxus-router", + "dioxus-signals", + "dioxus-web", + "manganis", + "serde", + "warnings", +] + +[[package]] +name = "dioxus-cli-config" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd16948f1ffdb068dd9a64812158073a4250e2af4e98ea31fdac0312e6bce86" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "dioxus-config-macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75cbf582fbb1c32d34a1042ea675469065574109c95154468710a4d73ee98b49" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "dioxus-core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c03f451a119e47433c16e2d8eb5b15bf7d6e6734eb1a4c47574e6711dadff8d" +dependencies = [ + "const_format", + "dioxus-core-types", + "futures-channel", + "futures-util", + "generational-box", + "longest-increasing-subsequence", + "rustc-hash", + "rustversion", + "serde", + "slab", + "slotmap", + "tracing", + "warnings", +] + +[[package]] +name = "dioxus-core-macro" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "105c954caaaedf8cd10f3d1ba576b01e18aa8d33ad435182125eefe488cf0064" +dependencies = [ + "convert_case 0.6.0", + "dioxus-rsx", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dioxus-core-types" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91a82fccfa48574eb7aa183e297769540904694844598433a9eb55896ad9f93b" +dependencies = [ + "once_cell", +] + +[[package]] +name = "dioxus-desktop" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b0cca3e7a10a4a3df37ea52c4cc7a53e5c9233489e03ee3f2829471fc3099a" +dependencies = [ + "async-trait", + "base64", + "cocoa 0.25.0", + "core-foundation 0.9.4", + "dioxus-cli-config", + "dioxus-core", + "dioxus-devtools", + "dioxus-document", + "dioxus-history", + "dioxus-hooks", + "dioxus-html", + "dioxus-interpreter-js", + "dioxus-signals", + "dunce", + "futures-channel", + "futures-util", + "generational-box", + "global-hotkey", + "infer", + "jni", + "lazy-js-bundle", + "muda 0.11.5", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "objc_id", + "once_cell", + "rfd", + "rustc-hash", + "serde", + "serde_json", + "signal-hook", + "slab", + "tao", + "thiserror 1.0.69", + "tokio", + "tracing", + "tray-icon", + "urlencoding", + "webbrowser", + "wry", +] + +[[package]] +name = "dioxus-devtools" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712a7300f1e8181218187b03502044157eef04e0a25b518117c5ef9ae1096880" +dependencies = [ + "dioxus-core", + "dioxus-devtools-types", + "dioxus-signals", + "serde", + "serde_json", + "tracing", + "tungstenite", + "warnings", +] + +[[package]] +name = "dioxus-devtools-types" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f62434973c0c9c5a3bc42e9cd5e7070401c2062a437fb5528f318c3e42ebf4ff" +dependencies = [ + "dioxus-core", + "serde", +] + +[[package]] +name = "dioxus-document" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "802a2014d1662b6615eec0a275745822ee4fc66aacd9d0f2fb33d6c8da79b8f2" +dependencies = [ + "dioxus-core", + "dioxus-core-macro", + "dioxus-core-types", + "dioxus-html", + "futures-channel", + "futures-util", + "generational-box", + "lazy-js-bundle", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "dioxus-fullstack" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe99b48a1348eec385b5c4bd3e80fd863b0d3b47257d34e2ddc58754dec5d128" +dependencies = [ + "base64", + "bytes", + "ciborium", + "dioxus-desktop", + "dioxus-devtools", + "dioxus-history", + "dioxus-lib", + "dioxus-mobile", + "dioxus-web", + "dioxus_server_macro", + "futures-channel", + "futures-util", + "generational-box", + "once_cell", + "serde", + "server_fn", + "tracing", + "web-sys", +] + +[[package]] +name = "dioxus-history" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ae4e22616c698f35b60727313134955d885de2d32e83689258e586ebc9b7909" +dependencies = [ + "dioxus-core", + "tracing", +] + +[[package]] +name = "dioxus-hooks" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "948e2b3f20d9d4b2c300aaa60281b1755f3298684448920b27106da5841896d0" +dependencies = [ + "dioxus-core", + "dioxus-signals", + "futures-channel", + "futures-util", + "generational-box", + "rustversion", + "slab", + "tracing", + "warnings", +] + +[[package]] +name = "dioxus-html" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59c9a40e6fee20ce7990095492dedb6a753eebe05e67d28271a249de74dc796d" +dependencies = [ + "async-trait", + "dioxus-core", + "dioxus-core-macro", + "dioxus-core-types", + "dioxus-hooks", + "dioxus-html-internal-macro", + "enumset", + "euclid", + "futures-channel", + "generational-box", + "keyboard-types", + "lazy-js-bundle", + "rustversion", + "serde", + "serde_json", + "serde_repr", + "tracing", +] + +[[package]] +name = "dioxus-html-internal-macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ba87b53688a2c9f619ecdf4b3b955bc1f08bd0570a80a0d626c405f6d14a76" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dioxus-interpreter-js" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330707b10ca75cb0eb05f9e5f8d80217cd0d7e62116a8277ae363c1a09b57a22" +dependencies = [ + "dioxus-core", + "dioxus-core-types", + "dioxus-html", + "js-sys", + "lazy-js-bundle", + "rustc-hash", + "serde", + "sledgehammer_bindgen", + "sledgehammer_utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "dioxus-lib" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5405b71aa9b8b0c3e0d22728f12f34217ca5277792bd315878cc6ecab7301b72" +dependencies = [ + "dioxus-config-macro", + "dioxus-core", + "dioxus-core-macro", + "dioxus-document", + "dioxus-history", + "dioxus-hooks", + "dioxus-html", + "dioxus-rsx", + "dioxus-signals", + "warnings", +] + +[[package]] +name = "dioxus-logger" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545961e752f6c8bf59c274951b3c8b18a106db6ad2f9e2035b29e1f2a3e899b1" +dependencies = [ + "console_error_panic_hook", + "dioxus-cli-config", + "tracing", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "dioxus-mobile" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1295388909f427758993f32a571e0f8698d6ce0f125fa0e81b8bfdec3fa952" +dependencies = [ + "dioxus-cli-config", + "dioxus-desktop", + "dioxus-lib", + "jni", + "libc", + "once_cell", +] + +[[package]] +name = "dioxus-router" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7266a76fc9e4a91f56499d1d1aecfff7168952b6627a6008b4e9748d6bf863e4" +dependencies = [ + "dioxus-cli-config", + "dioxus-history", + "dioxus-lib", + "dioxus-router-macro", + "rustversion", + "tracing", + "url", + "urlencoding", +] + +[[package]] +name = "dioxus-router-macro" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2743ffb79e9a7d33d779c87d6deea2a6c047d0736012f95d63b909b83f0a6fd2" +dependencies = [ + "proc-macro2", + "quote", + "slab", + "syn 2.0.104", +] + +[[package]] +name = "dioxus-rsx" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb588e05800b5a7eb90b2f40fca5bbd7626e823fb5e1ba21e011de649b45aa1" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dioxus-signals" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10e032dbb3a2c0386ec8b8ee59bc20b5aeb67038147c855801237b45b13d72ac" +dependencies = [ + "dioxus-core", + "futures-channel", + "futures-util", + "generational-box", + "once_cell", + "parking_lot", + "rustc-hash", + "tracing", + "warnings", +] + +[[package]] +name = "dioxus-web" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7c12475c3d360058b8afe1b68eb6dfc9cbb7dcd760aed37c5f85c561c83ed1" +dependencies = [ + "async-trait", + "ciborium", + "dioxus-cli-config", + "dioxus-core", + "dioxus-core-types", + "dioxus-devtools", + "dioxus-document", + "dioxus-history", + "dioxus-html", + "dioxus-interpreter-js", + "dioxus-signals", + "futures-channel", + "futures-util", + "generational-box", + "js-sys", + "lazy-js-bundle", + "rustc-hash", + "serde", + "serde-wasm-bindgen", + "serde_json", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "dioxus_server_macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "371a5b21989a06b53c5092e977b3f75d0e60a65a4c15a2aa1d07014c3b2dda97" +dependencies = [ + "proc-macro2", + "quote", + "server_fn_macro", + "syn 2.0.104", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.60.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dlopen2" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" + +[[package]] +name = "dtoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "enumset" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "euclid" +version = "0.22.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" +dependencies = [ + "num-traits", + "serde", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generational-box" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a673cf4fb0ea6a91aa86c08695756dfe875277a912cdbf33db9a9f62d47ed82b" +dependencies = [ + "parking_lot", + "tracing", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.9.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "global-hotkey" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b436093d1598b05e3b7fddc097b2bad32763f53a1beb25ab6f9718c6a60acd09" +dependencies = [ + "bitflags 2.9.1", + "cocoa 0.25.0", + "crossbeam-channel", + "keyboard-types", + "objc", + "once_cell", + "thiserror 1.0.69", + "windows-sys 0.52.0", + "x11-dl", +] + +[[package]] +name = "gloo-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror 1.0.69", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "half" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.15", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "httparse", + "itoa 1.0.15", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +dependencies = [ + "equivalent", + "hashbrown 0.15.4", +] + +[[package]] +name = "infer" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6c16b11a665b26aeeb9b1d7f954cdeb034be38dd00adab4f2ae921a8fee804" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[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 = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.9.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy-js-bundle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49596223b9d9d4947a14a25c142a6e7d8ab3f27eb3ade269d238bb8b5c267e2" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +dependencies = [ + "bitflags 2.9.1", + "libc", +] + +[[package]] +name = "libxdo" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db" +dependencies = [ + "libxdo-sys", +] + +[[package]] +name = "libxdo-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212" +dependencies = [ + "libc", + "x11", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "longest-increasing-subsequence" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bd0dd2cd90571056fdb71f6275fada10131182f84899f4b2a916e565d81d86" + +[[package]] +name = "lumina-dioxus" +version = "0.1.0" +dependencies = [ + "dioxus", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "manganis" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317af44b15e7605b85f04525449a3bb631753040156c9b318e6cba8a3ea4ef73" +dependencies = [ + "const-serialize", + "manganis-core", + "manganis-macro", +] + +[[package]] +name = "manganis-core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c38bee65cc725b2bba23b5dbb290f57c8be8fadbe2043fb7e2ce73022ea06519" +dependencies = [ + "const-serialize", + "dioxus-cli-config", + "dioxus-core-types", + "serde", +] + +[[package]] +name = "manganis-macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f4f71310913c40174d9f0cfcbcb127dad0329ecdb3945678a120db22d3d065" +dependencies = [ + "dunce", + "manganis-core", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "muda" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c47e7625990fc1af2226ea4f34fb2412b03c12639fcb91868581eb3a6893453" +dependencies = [ + "cocoa 0.25.0", + "crossbeam-channel", + "gtk", + "keyboard-types", + "libxdo", + "objc", + "once_cell", + "png", + "thiserror 1.0.69", + "windows-sys 0.52.0", +] + +[[package]] +name = "muda" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "libxdo", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", + "once_cell", + "png", + "thiserror 1.0.69", + "windows-sys 0.59.0", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.9.1", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle 0.6.2", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", + "memoffset", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro-crate 2.0.2", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "libc", + "objc2 0.5.2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation 0.2.2", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" +dependencies = [ + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +dependencies = [ + "bitflags 2.9.1", + "dispatch2", + "objc2 0.6.1", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" +dependencies = [ + "bitflags 2.9.1", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" +dependencies = [ + "bitflags 2.9.1", + "block2 0.6.1", + "objc2 0.6.1", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.1", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "version_check", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.12", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.12.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +dependencies = [ + "base64", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rfd" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251" +dependencies = [ + "ashpd", + "block", + "dispatch", + "js-sys", + "log", + "objc", + "objc-foundation", + "objc_id", + "pollster", + "raw-window-handle 0.6.2", + "urlencoding", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +dependencies = [ + "futures-core", +] + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa 1.0.15", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_qs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" +dependencies = [ + "percent-encoding", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.15", + "ryu", + "serde", +] + +[[package]] +name = "server_fn" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fae7a3038a32e5a34ba32c6c45eb4852f8affaf8b794ebfcd4b1099e2d62ebe" +dependencies = [ + "bytes", + "const_format", + "dashmap", + "futures", + "gloo-net", + "http", + "js-sys", + "once_cell", + "reqwest", + "send_wrapper", + "serde", + "serde_json", + "serde_qs", + "server_fn_macro_default", + "thiserror 1.0.69", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "xxhash-rust", +] + +[[package]] +name = "server_fn_macro" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaaf648c6967aef78177c0610478abb5a3455811f401f3c62d10ae9bd3901a1" +dependencies = [ + "const_format", + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.104", + "xxhash-rust", +] + +[[package]] +name = "server_fn_macro_default" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" +dependencies = [ + "server_fn_macro", + "syn 2.0.104", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + +[[package]] +name = "sledgehammer_bindgen" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e83e178d176459c92bc129cfd0958afac3ced925471b889b3a75546cfc4133" +dependencies = [ + "sledgehammer_bindgen_macro", + "wasm-bindgen", +] + +[[package]] +name = "sledgehammer_bindgen_macro" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f62f06db0370222f7f498ef478fce9f8df5828848d1d3517e3331936d7074f55" +dependencies = [ + "quote", + "syn 2.0.104", +] + +[[package]] +name = "sledgehammer_utils" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "debdd4b83524961983cea3c55383b3910fd2f24fd13a188f5b091d2d504a61ae" +dependencies = [ + "rustc-hash", +] + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "serde", + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.30.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" +dependencies = [ + "bitflags 2.9.1", + "cocoa 0.26.1", + "core-foundation 0.10.1", + "core-graphics 0.24.0", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "raw-window-handle 0.5.2", + "raw-window-handle 0.6.2", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tempfile" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "tokio-util" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.10.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.10.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" +dependencies = [ + "tracing", + "tracing-subscriber", + "wasm-bindgen", +] + +[[package]] +name = "tray-icon" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadd75f5002e2513eaa19b2365f533090cc3e93abd38788452d9ea85cff7b48a" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda 0.15.3", + "objc2 0.6.1", + "objc2-app-kit 0.3.1", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.1", + "once_cell", + "png", + "thiserror 2.0.12", + "windows-sys 0.59.0", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "warnings" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f68998838dab65727c9b30465595c6f7c953313559371ca8bf31759b3680ad" +dependencies = [ + "pin-project", + "tracing", + "warnings-macro", +] + +[[package]] +name = "warnings-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59195a1db0e95b920366d949ba5e0d3fc0e70b67c09be15ce5abb790106b0571" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.104", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webbrowser" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" +dependencies = [ + "core-foundation 0.9.4", + "home", + "jni", + "log", + "ndk-context", + "objc", + "raw-window-handle 0.5.2", + "url", + "web-sys", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "webview2-com-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" +dependencies = [ + "thiserror 1.0.69", + "windows", + "windows-core", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows-version" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "wry" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac0099a336829fbf54c26b5f620c68980ebbe37196772aeaf6118df4931b5cb0" +dependencies = [ + "base64", + "block", + "cocoa 0.26.1", + "core-graphics 0.24.0", + "crossbeam-channel", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc", + "objc_id", + "once_cell", + "percent-encoding", + "raw-window-handle 0.6.2", + "sha2", + "soup3", + "tao-macros", + "thiserror 1.0.69", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "xdg-home" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "synstructure", +] + +[[package]] +name = "zbus" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" +dependencies = [ + "async-broadcast", + "async-process", + "async-recursion", + "async-trait", + "derivative", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "zvariant" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "url", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..4d08b60 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "lumina-dioxus" +version = "0.1.0" +authors = ["Chris Cochrun "] +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +dioxus = { version = "0.6.0", features = ["router", "fullstack"] } + +[features] +default = ["web"] +# The feature that are only required for the web = ["dioxus/web"] build target should be optional and only enabled in the web = ["dioxus/web"] feature +web = ["dioxus/web"] +# The feature that are only required for the desktop = ["dioxus/desktop"] build target should be optional and only enabled in the desktop = ["dioxus/desktop"] feature +desktop = ["dioxus/desktop"] +# The feature that are only required for the mobile = ["dioxus/mobile"] build target should be optional and only enabled in the mobile = ["dioxus/mobile"] feature +mobile = ["dioxus/mobile"] + +[profile] + +[profile.wasm-dev] +inherits = "dev" +opt-level = 1 + +[profile.server-dev] +inherits = "dev" + +[profile.android-dev] +inherits = "dev" diff --git a/Dioxus.toml b/Dioxus.toml new file mode 100644 index 0000000..1e88f3a --- /dev/null +++ b/Dioxus.toml @@ -0,0 +1,21 @@ +[application] + +[web.app] + +# HTML title tag content +title = "lumina-dioxus" + +# include `assets` in web platform +[web.resource] + +# Additional CSS style files +style = [] + +# Additional JavaScript files +script = [] + +[web.resource.dev] + +# Javascript code file +# serve: [dev-server] only +script = [] diff --git a/README.md b/README.md new file mode 100644 index 0000000..c8e57d7 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Development + +Your new jumpstart project includes basic organization with an organized `assets` folder and a `components` folder. +If you chose to develop with the router feature, you will also have a `views` folder. + +``` +project/ +├─ assets/ # Any assets that are used by the app should be placed here +├─ src/ +│ ├─ main.rs # The entrypoint for the app. It also defines the routes for the app. +│ ├─ components/ +│ │ ├─ mod.rs # Defines the components module +│ │ ├─ hero.rs # The Hero component for use in the home page +│ │ ├─ echo.rs # The echo component uses server functions to communicate with the server +│ ├─ views/ # The views each route will render in the app. +│ │ ├─ mod.rs # Defines the module for the views route and re-exports the components for each route +│ │ ├─ blog.rs # The component that will render at the /blog/:id route +│ │ ├─ home.rs # The component that will render at the / route +├─ Cargo.toml # The Cargo.toml file defines the dependencies and feature flags for your project +``` + +### Serving Your App + +Run the following command in the root of your project to start developing with the default platform: + +```bash +dx serve --platform web +``` + +To run for a different platform, use the `--platform platform` flag. E.g. +```bash +dx serve --platform desktop +``` + diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..eed0c09735ab94e724c486a053c367cf7ee3d694 GIT binary patch literal 132770 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 vKYngAlX;?f=+C1!yQV)7 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 literal 0 HcmV?d00001 diff --git a/assets/header.svg b/assets/header.svg new file mode 100644 index 0000000..59c96f2 --- /dev/null +++ b/assets/header.svg @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/assets/pico.fluid.classless.css b/assets/pico.fluid.classless.css new file mode 100644 index 0000000..4c9bc83 --- /dev/null +++ b/assets/pico.fluid.classless.css @@ -0,0 +1,2421 @@ +@charset "UTF-8"; +/*! + * Pico CSS ✨ v2.1.1 (https://picocss.com) + * Copyright 2019-2025 - Licensed under MIT + */ +/** + * Styles + */ +:root, +:host { + --pico-font-family-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --pico-font-family-sans-serif: system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--pico-font-family-emoji); + --pico-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace, var(--pico-font-family-emoji); + --pico-font-family: var(--pico-font-family-sans-serif); + --pico-line-height: 1.5; + --pico-font-weight: 400; + --pico-font-size: 100%; + --pico-text-underline-offset: 0.1rem; + --pico-border-radius: 0.25rem; + --pico-border-width: 0.0625rem; + --pico-outline-width: 0.125rem; + --pico-transition: 0.2s ease-in-out; + --pico-spacing: 1rem; + --pico-typography-spacing-vertical: 1rem; + --pico-block-spacing-vertical: var(--pico-spacing); + --pico-block-spacing-horizontal: var(--pico-spacing); + --pico-form-element-spacing-vertical: 0.75rem; + --pico-form-element-spacing-horizontal: 1rem; + --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus); + --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color); + --pico-modal-overlay-backdrop-filter: blur(0.375rem); + --pico-nav-element-spacing-vertical: 1rem; + --pico-nav-element-spacing-horizontal: 0.5rem; + --pico-nav-link-spacing-vertical: 0.5rem; + --pico-nav-link-spacing-horizontal: 0.5rem; + --pico-nav-breadcrumb-divider: ">"; + --pico-icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E"); + --pico-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); + --pico-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); + --pico-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E"); + --pico-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E"); +} +@media (min-width: 576px) { + :root, + :host { + --pico-font-size: 106.25%; + } +} +@media (min-width: 768px) { + :root, + :host { + --pico-font-size: 112.5%; + } +} +@media (min-width: 1024px) { + :root, + :host { + --pico-font-size: 118.75%; + } +} +@media (min-width: 1280px) { + :root, + :host { + --pico-font-size: 125%; + } +} +@media (min-width: 1536px) { + :root, + :host { + --pico-font-size: 131.25%; + } +} + +a { + --pico-text-decoration: underline; +} + +small { + --pico-font-size: 0.875em; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + --pico-font-weight: 700; +} + +h1 { + --pico-font-size: 2rem; + --pico-line-height: 1.125; + --pico-typography-spacing-top: 3rem; +} + +h2 { + --pico-font-size: 1.75rem; + --pico-line-height: 1.15; + --pico-typography-spacing-top: 2.625rem; +} + +h3 { + --pico-font-size: 1.5rem; + --pico-line-height: 1.175; + --pico-typography-spacing-top: 2.25rem; +} + +h4 { + --pico-font-size: 1.25rem; + --pico-line-height: 1.2; + --pico-typography-spacing-top: 1.874rem; +} + +h5 { + --pico-font-size: 1.125rem; + --pico-line-height: 1.225; + --pico-typography-spacing-top: 1.6875rem; +} + +h6 { + --pico-font-size: 1rem; + --pico-line-height: 1.25; + --pico-typography-spacing-top: 1.5rem; +} + +thead th, +thead td, +tfoot th, +tfoot td { + --pico-font-weight: 600; + --pico-border-width: 0.1875rem; +} + +pre, +code, +kbd, +samp { + --pico-font-family: var(--pico-font-family-monospace); +} + +kbd { + --pico-font-weight: bolder; +} + +input:not([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[type=file]), +:where(select, textarea) { + --pico-outline-width: 0.0625rem; +} + +[type=search] { + --pico-border-radius: 5rem; +} + +[type=checkbox], +[type=radio] { + --pico-border-width: 0.125rem; +} + +[type=checkbox][role=switch] { + --pico-border-width: 0.1875rem; +} + +[role=search] { + --pico-border-radius: 5rem; +} + +[role=search] button, +[role=search] [type=submit], +[role=search] [type=button], +[role=search] [role=button], +[role=group] button, +[role=group] [type=submit], +[role=group] [type=button], +[role=group] [role=button] { + --pico-form-element-spacing-horizontal: 2rem; +} + +details summary[role=button]::after { + filter: brightness(0) invert(1); +} + +[aria-busy=true]:not(input, select, textarea):is(button, [type=submit], [type=button], [type=reset], [role=button])::before { + filter: brightness(0) invert(1); +} + +/** + * Color schemes + */ +[data-theme=light], +:root:not([data-theme=dark]), +:host(:not([data-theme=dark])) { + color-scheme: light; + --pico-background-color: #fff; + --pico-color: #373c44; + --pico-text-selection-color: rgba(2, 154, 232, 0.25); + --pico-muted-color: #646b79; + --pico-muted-border-color: rgb(231, 234, 239.5); + --pico-primary: #0172ad; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 114, 173, 0.5); + --pico-primary-hover: #015887; + --pico-primary-hover-background: #02659a; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(2, 154, 232, 0.5); + --pico-primary-inverse: #fff; + --pico-secondary: #5d6b89; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(93, 107, 137, 0.5); + --pico-secondary-hover: #48536b; + --pico-secondary-hover-background: #48536b; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(93, 107, 137, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #181c25; + --pico-contrast-background: #181c25; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(24, 28, 37, 0.5); + --pico-contrast-hover: #000; + --pico-contrast-hover-background: #000; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-secondary-hover); + --pico-contrast-focus: rgba(93, 107, 137, 0.25); + --pico-contrast-inverse: #fff; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(129, 145, 181, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(129, 145, 181, 0.024), 0.0625rem 0.125rem 0.75rem rgba(129, 145, 181, 0.03), 0.1125rem 0.225rem 1.35rem rgba(129, 145, 181, 0.036), 0.2085rem 0.417rem 2.502rem rgba(129, 145, 181, 0.04302), 0.5rem 1rem 6rem rgba(129, 145, 181, 0.06), 0 0 0 0.0625rem rgba(129, 145, 181, 0.015); + --pico-h1-color: #2d3138; + --pico-h2-color: #373c44; + --pico-h3-color: #424751; + --pico-h4-color: #4d535e; + --pico-h5-color: #5c6370; + --pico-h6-color: #646b79; + --pico-mark-background-color: rgb(252.5, 230.5, 191.5); + --pico-mark-color: #0f1114; + --pico-ins-color: rgb(28.5, 105.5, 84); + --pico-del-color: rgb(136, 56.5, 53); + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: rgb(243, 244.5, 246.75); + --pico-code-color: #646b79; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: rgb(251, 251.5, 252.25); + --pico-form-element-selected-background-color: #dfe3eb; + --pico-form-element-border-color: #cfd5e2; + --pico-form-element-color: #23262c; + --pico-form-element-placeholder-color: var(--pico-muted-color); + --pico-form-element-active-background-color: #fff; + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: rgb(183.5, 105.5, 106.5); + --pico-form-element-invalid-active-border-color: rgb(200.25, 79.25, 72.25); + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: rgb(76, 154.5, 137.5); + --pico-form-element-valid-active-border-color: rgb(39, 152.75, 118.75); + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-switch-background-color: #bfc7d9; + --pico-switch-checked-background-color: var(--pico-primary-background); + --pico-switch-color: #fff; + --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-range-border-color: #dfe3eb; + --pico-range-active-border-color: #bfc7d9; + --pico-range-thumb-border-color: var(--pico-background-color); + --pico-range-thumb-color: var(--pico-secondary-background); + --pico-range-thumb-active-color: var(--pico-primary-background); + --pico-accordion-border-color: var(--pico-muted-border-color); + --pico-accordion-active-summary-color: var(--pico-primary-hover); + --pico-accordion-close-summary-color: var(--pico-color); + --pico-accordion-open-summary-color: var(--pico-muted-color); + --pico-card-background-color: var(--pico-background-color); + --pico-card-border-color: var(--pico-muted-border-color); + --pico-card-box-shadow: var(--pico-box-shadow); + --pico-card-sectioning-background-color: rgb(251, 251.5, 252.25); + --pico-loading-spinner-opacity: 0.5; + --pico-modal-overlay-background-color: rgba(232, 234, 237, 0.75); + --pico-progress-background-color: #dfe3eb; + --pico-progress-color: var(--pico-primary-background); + --pico-tooltip-background-color: var(--pico-contrast-background); + --pico-tooltip-color: var(--pico-contrast-inverse); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 154.5, 137.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200.25, 79.25, 72.25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); +} +[data-theme=light] input:is([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[type=file]), +:root:not([data-theme=dark]) input:is([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[type=file]), +:host(:not([data-theme=dark])) input:is([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); +} + +@media only screen and (prefers-color-scheme: dark) { + :root:not([data-theme]), + :host(:not([data-theme])) { + color-scheme: dark; + --pico-background-color: rgb(19, 22.5, 30.5); + --pico-color: #c2c7d0; + --pico-text-selection-color: rgba(1, 170, 255, 0.1875); + --pico-muted-color: #7b8495; + --pico-muted-border-color: #202632; + --pico-primary: #01aaff; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 170, 255, 0.5); + --pico-primary-hover: #79c0ff; + --pico-primary-hover-background: #017fc0; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(1, 170, 255, 0.375); + --pico-primary-inverse: #fff; + --pico-secondary: #969eaf; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(150, 158, 175, 0.5); + --pico-secondary-hover: #b3b9c5; + --pico-secondary-hover-background: #5d6b89; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(144, 158, 190, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #dfe3eb; + --pico-contrast-background: #eff1f4; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(223, 227, 235, 0.5); + --pico-contrast-hover: #fff; + --pico-contrast-hover-background: #fff; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-contrast-hover); + --pico-contrast-focus: rgba(207, 213, 226, 0.25); + --pico-contrast-inverse: #000; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 8.5, 12, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(7, 8.5, 12, 0.024), 0.0625rem 0.125rem 0.75rem rgba(7, 8.5, 12, 0.03), 0.1125rem 0.225rem 1.35rem rgba(7, 8.5, 12, 0.036), 0.2085rem 0.417rem 2.502rem rgba(7, 8.5, 12, 0.04302), 0.5rem 1rem 6rem rgba(7, 8.5, 12, 0.06), 0 0 0 0.0625rem rgba(7, 8.5, 12, 0.015); + --pico-h1-color: #f0f1f3; + --pico-h2-color: #e0e3e7; + --pico-h3-color: #c2c7d0; + --pico-h4-color: #b3b9c5; + --pico-h5-color: #a4acba; + --pico-h6-color: #8891a4; + --pico-mark-background-color: #014063; + --pico-mark-color: #fff; + --pico-ins-color: #62af9a; + --pico-del-color: rgb(205.5, 126, 123); + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: rgb(26, 30.5, 40.25); + --pico-code-color: #8891a4; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: rgb(28, 33, 43.5); + --pico-form-element-selected-background-color: #2a3140; + --pico-form-element-border-color: #2a3140; + --pico-form-element-color: #e0e3e7; + --pico-form-element-placeholder-color: #8891a4; + --pico-form-element-active-background-color: rgb(26, 30.5, 40.25); + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: rgb(149.5, 74, 80); + --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59); + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: #2a7b6f; + --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5); + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-switch-background-color: #333c4e; + --pico-switch-checked-background-color: var(--pico-primary-background); + --pico-switch-color: #fff; + --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-range-border-color: #202632; + --pico-range-active-border-color: #2a3140; + --pico-range-thumb-border-color: var(--pico-background-color); + --pico-range-thumb-color: var(--pico-secondary-background); + --pico-range-thumb-active-color: var(--pico-primary-background); + --pico-accordion-border-color: var(--pico-muted-border-color); + --pico-accordion-active-summary-color: var(--pico-primary-hover); + --pico-accordion-close-summary-color: var(--pico-color); + --pico-accordion-open-summary-color: var(--pico-muted-color); + --pico-card-background-color: #181c25; + --pico-card-border-color: var(--pico-card-background-color); + --pico-card-box-shadow: var(--pico-box-shadow); + --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25); + --pico-loading-spinner-opacity: 0.5; + --pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75); + --pico-progress-background-color: #202632; + --pico-progress-color: var(--pico-primary-background); + --pico-tooltip-background-color: var(--pico-contrast-background); + --pico-tooltip-color: var(--pico-contrast-inverse); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); + } + :root:not([data-theme]) input:is([type=submit], + [type=button], + [type=reset], + [type=checkbox], + [type=radio], + [type=file]), + :host(:not([data-theme])) input:is([type=submit], + [type=button], + [type=reset], + [type=checkbox], + [type=radio], + [type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); + } +} +[data-theme=dark] { + color-scheme: dark; + --pico-background-color: rgb(19, 22.5, 30.5); + --pico-color: #c2c7d0; + --pico-text-selection-color: rgba(1, 170, 255, 0.1875); + --pico-muted-color: #7b8495; + --pico-muted-border-color: #202632; + --pico-primary: #01aaff; + --pico-primary-background: #0172ad; + --pico-primary-border: var(--pico-primary-background); + --pico-primary-underline: rgba(1, 170, 255, 0.5); + --pico-primary-hover: #79c0ff; + --pico-primary-hover-background: #017fc0; + --pico-primary-hover-border: var(--pico-primary-hover-background); + --pico-primary-hover-underline: var(--pico-primary-hover); + --pico-primary-focus: rgba(1, 170, 255, 0.375); + --pico-primary-inverse: #fff; + --pico-secondary: #969eaf; + --pico-secondary-background: #525f7a; + --pico-secondary-border: var(--pico-secondary-background); + --pico-secondary-underline: rgba(150, 158, 175, 0.5); + --pico-secondary-hover: #b3b9c5; + --pico-secondary-hover-background: #5d6b89; + --pico-secondary-hover-border: var(--pico-secondary-hover-background); + --pico-secondary-hover-underline: var(--pico-secondary-hover); + --pico-secondary-focus: rgba(144, 158, 190, 0.25); + --pico-secondary-inverse: #fff; + --pico-contrast: #dfe3eb; + --pico-contrast-background: #eff1f4; + --pico-contrast-border: var(--pico-contrast-background); + --pico-contrast-underline: rgba(223, 227, 235, 0.5); + --pico-contrast-hover: #fff; + --pico-contrast-hover-background: #fff; + --pico-contrast-hover-border: var(--pico-contrast-hover-background); + --pico-contrast-hover-underline: var(--pico-contrast-hover); + --pico-contrast-focus: rgba(207, 213, 226, 0.25); + --pico-contrast-inverse: #000; + --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 8.5, 12, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(7, 8.5, 12, 0.024), 0.0625rem 0.125rem 0.75rem rgba(7, 8.5, 12, 0.03), 0.1125rem 0.225rem 1.35rem rgba(7, 8.5, 12, 0.036), 0.2085rem 0.417rem 2.502rem rgba(7, 8.5, 12, 0.04302), 0.5rem 1rem 6rem rgba(7, 8.5, 12, 0.06), 0 0 0 0.0625rem rgba(7, 8.5, 12, 0.015); + --pico-h1-color: #f0f1f3; + --pico-h2-color: #e0e3e7; + --pico-h3-color: #c2c7d0; + --pico-h4-color: #b3b9c5; + --pico-h5-color: #a4acba; + --pico-h6-color: #8891a4; + --pico-mark-background-color: #014063; + --pico-mark-color: #fff; + --pico-ins-color: #62af9a; + --pico-del-color: rgb(205.5, 126, 123); + --pico-blockquote-border-color: var(--pico-muted-border-color); + --pico-blockquote-footer-color: var(--pico-muted-color); + --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-table-border-color: var(--pico-muted-border-color); + --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375); + --pico-code-background-color: rgb(26, 30.5, 40.25); + --pico-code-color: #8891a4; + --pico-code-kbd-background-color: var(--pico-color); + --pico-code-kbd-color: var(--pico-background-color); + --pico-form-element-background-color: rgb(28, 33, 43.5); + --pico-form-element-selected-background-color: #2a3140; + --pico-form-element-border-color: #2a3140; + --pico-form-element-color: #e0e3e7; + --pico-form-element-placeholder-color: #8891a4; + --pico-form-element-active-background-color: rgb(26, 30.5, 40.25); + --pico-form-element-active-border-color: var(--pico-primary-border); + --pico-form-element-focus-color: var(--pico-primary-border); + --pico-form-element-disabled-opacity: 0.5; + --pico-form-element-invalid-border-color: rgb(149.5, 74, 80); + --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59); + --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color); + --pico-form-element-valid-border-color: #2a7b6f; + --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5); + --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color); + --pico-switch-background-color: #333c4e; + --pico-switch-checked-background-color: var(--pico-primary-background); + --pico-switch-color: #fff; + --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0); + --pico-range-border-color: #202632; + --pico-range-active-border-color: #2a3140; + --pico-range-thumb-border-color: var(--pico-background-color); + --pico-range-thumb-color: var(--pico-secondary-background); + --pico-range-thumb-active-color: var(--pico-primary-background); + --pico-accordion-border-color: var(--pico-muted-border-color); + --pico-accordion-active-summary-color: var(--pico-primary-hover); + --pico-accordion-close-summary-color: var(--pico-color); + --pico-accordion-open-summary-color: var(--pico-muted-color); + --pico-card-background-color: #181c25; + --pico-card-border-color: var(--pico-card-background-color); + --pico-card-box-shadow: var(--pico-box-shadow); + --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25); + --pico-loading-spinner-opacity: 0.5; + --pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75); + --pico-progress-background-color: #202632; + --pico-progress-color: var(--pico-primary-background); + --pico-tooltip-background-color: var(--pico-contrast-background); + --pico-tooltip-color: var(--pico-contrast-inverse); + --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"); + --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E"); +} +[data-theme=dark] input:is([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[type=file]) { + --pico-form-element-focus-color: var(--pico-primary-focus); +} + +progress, +[type=checkbox], +[type=radio], +[type=range] { + accent-color: var(--pico-primary); +} + +/** + * Document + * Content-box & Responsive typography + */ +*, +*::before, +*::after { + box-sizing: border-box; + background-repeat: no-repeat; +} + +::before, +::after { + text-decoration: inherit; + vertical-align: inherit; +} + +:where(:root), +:where(:host) { + -webkit-tap-highlight-color: transparent; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; + background-color: var(--pico-background-color); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: var(--pico-font-size); + line-height: var(--pico-line-height); + font-family: var(--pico-font-family); + text-underline-offset: var(--pico-text-underline-offset); + text-rendering: optimizeLegibility; + overflow-wrap: break-word; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +/** + * Landmarks + */ +body { + width: 100%; + margin: 0; +} + +main { + display: block; +} + +body > header, +body > main, +body > footer { + width: 100%; + margin-right: auto; + margin-left: auto; + padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal); +} + +/** + * Section + */ +section { + margin-bottom: var(--pico-block-spacing-vertical); +} + +/** + * Typography + */ +b, +strong { + font-weight: bolder; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +address, +blockquote, +dl, +ol, +p, +pre, +table, +ul { + margin-top: 0; + margin-bottom: var(--pico-typography-spacing-vertical); + color: var(--pico-color); + font-style: normal; + font-weight: var(--pico-font-weight); +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: var(--pico-typography-spacing-vertical); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: var(--pico-font-size); + line-height: var(--pico-line-height); + font-family: var(--pico-font-family); +} + +h1 { + --pico-color: var(--pico-h1-color); +} + +h2 { + --pico-color: var(--pico-h2-color); +} + +h3 { + --pico-color: var(--pico-h3-color); +} + +h4 { + --pico-color: var(--pico-h4-color); +} + +h5 { + --pico-color: var(--pico-h5-color); +} + +h6 { + --pico-color: var(--pico-h6-color); +} + +:where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) { + margin-top: var(--pico-typography-spacing-top); +} + +p { + margin-bottom: var(--pico-typography-spacing-vertical); +} + +hgroup { + margin-bottom: var(--pico-typography-spacing-vertical); +} +hgroup > * { + margin-top: 0; + margin-bottom: 0; +} +hgroup > *:not(:first-child):last-child { + --pico-color: var(--pico-muted-color); + --pico-font-weight: unset; + font-size: 1rem; +} + +:where(ol, ul) li { + margin-bottom: calc(var(--pico-typography-spacing-vertical) * 0.25); +} + +:where(dl, ol, ul) :where(dl, ol, ul) { + margin: 0; + margin-top: calc(var(--pico-typography-spacing-vertical) * 0.25); +} + +ul li { + list-style: square; +} + +mark { + padding: 0.125rem 0.25rem; + background-color: var(--pico-mark-background-color); + color: var(--pico-mark-color); + vertical-align: baseline; +} + +blockquote { + display: block; + margin: var(--pico-typography-spacing-vertical) 0; + padding: var(--pico-spacing); + border-right: none; + border-left: 0.25rem solid var(--pico-blockquote-border-color); + border-inline-start: 0.25rem solid var(--pico-blockquote-border-color); + border-inline-end: none; +} +blockquote footer { + margin-top: calc(var(--pico-typography-spacing-vertical) * 0.5); + color: var(--pico-blockquote-footer-color); +} + +abbr[title] { + border-bottom: 1px dotted; + text-decoration: none; + cursor: help; +} + +ins { + color: var(--pico-ins-color); + text-decoration: none; +} + +del { + color: var(--pico-del-color); +} + +::-moz-selection { + background-color: var(--pico-text-selection-color); +} + +::selection { + background-color: var(--pico-text-selection-color); +} + +/** + * Link + */ +:where(a:not([role=button])), +[role=link] { + --pico-color: var(--pico-primary); + --pico-background-color: transparent; + --pico-underline: var(--pico-primary-underline); + outline: none; + background-color: var(--pico-background-color); + color: var(--pico-color); + -webkit-text-decoration: var(--pico-text-decoration); + text-decoration: var(--pico-text-decoration); + text-decoration-color: var(--pico-underline); + text-underline-offset: 0.125em; + transition: background-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition), -webkit-text-decoration var(--pico-transition); + transition: background-color var(--pico-transition), color var(--pico-transition), text-decoration var(--pico-transition), box-shadow var(--pico-transition); + transition: background-color var(--pico-transition), color var(--pico-transition), text-decoration var(--pico-transition), box-shadow var(--pico-transition), -webkit-text-decoration var(--pico-transition); +} +:where(a:not([role=button])):is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[role=link]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-color: var(--pico-primary-hover); + --pico-underline: var(--pico-primary-hover-underline); + --pico-text-decoration: underline; +} +:where(a:not([role=button])):focus-visible, +[role=link]:focus-visible { + box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus); +} + +a[role=button] { + display: inline-block; +} + +/** + * Button + */ +button { + margin: 0; + overflow: visible; + font-family: inherit; + text-transform: none; +} + +button, +[type=submit], +[type=reset], +[type=button] { + -webkit-appearance: button; +} + +button, +[type=submit], +[type=reset], +[type=button], +[type=file]::file-selector-button, +[role=button] { + --pico-background-color: var(--pico-primary-background); + --pico-border-color: var(--pico-primary-border); + --pico-color: var(--pico-primary-inverse); + --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); + padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal); + border: var(--pico-border-width) solid var(--pico-border-color); + border-radius: var(--pico-border-radius); + outline: none; + background-color: var(--pico-background-color); + box-shadow: var(--pico-box-shadow); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + font-size: 1rem; + line-height: var(--pico-line-height); + text-align: center; + text-decoration: none; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + transition: background-color var(--pico-transition), border-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition); +} +button:is([aria-current]:not([aria-current=false])), button:is(:hover, :active, :focus), +[type=submit]:is([aria-current]:not([aria-current=false])), +[type=submit]:is(:hover, :active, :focus), +[type=reset]:is([aria-current]:not([aria-current=false])), +[type=reset]:is(:hover, :active, :focus), +[type=button]:is([aria-current]:not([aria-current=false])), +[type=button]:is(:hover, :active, :focus), +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])), +[type=file]::file-selector-button:is(:hover, :active, :focus), +[role=button]:is([aria-current]:not([aria-current=false])), +[role=button]:is(:hover, :active, :focus) { + --pico-background-color: var(--pico-primary-hover-background); + --pico-border-color: var(--pico-primary-hover-border); + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); + --pico-color: var(--pico-primary-inverse); +} +button:focus, button:is([aria-current]:not([aria-current=false])):focus, +[type=submit]:focus, +[type=submit]:is([aria-current]:not([aria-current=false])):focus, +[type=reset]:focus, +[type=reset]:is([aria-current]:not([aria-current=false])):focus, +[type=button]:focus, +[type=button]:is([aria-current]:not([aria-current=false])):focus, +[type=file]::file-selector-button:focus, +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus, +[role=button]:focus, +[role=button]:is([aria-current]:not([aria-current=false])):focus { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-primary-focus); +} + +[type=submit], +[type=reset], +[type=button] { + margin-bottom: var(--pico-spacing); +} + +[type=reset], +[type=file]::file-selector-button { + --pico-background-color: var(--pico-secondary-background); + --pico-border-color: var(--pico-secondary-border); + --pico-color: var(--pico-secondary-inverse); + cursor: pointer; +} +[type=reset]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus), +[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + --pico-background-color: var(--pico-secondary-hover-background); + --pico-border-color: var(--pico-secondary-hover-border); + --pico-color: var(--pico-secondary-inverse); +} +[type=reset]:focus, +[type=file]::file-selector-button:focus { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus); +} + +:where(button, [type=submit], [type=reset], [type=button], [role=button])[disabled], +:where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]) { + opacity: 0.5; + pointer-events: none; +} + +/** + * Table + */ +:where(table) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + text-indent: 0; +} + +th, +td { + padding: calc(var(--pico-spacing) / 2) var(--pico-spacing); + border-bottom: var(--pico-border-width) solid var(--pico-table-border-color); + background-color: var(--pico-background-color); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + text-align: left; + text-align: start; +} + +tfoot th, +tfoot td { + border-top: var(--pico-border-width) solid var(--pico-table-border-color); + border-bottom: 0; +} + +table.striped tbody tr:nth-child(odd) th, +table.striped tbody tr:nth-child(odd) td { + background-color: var(--pico-table-row-stripped-background-color); +} + +/** + * Embedded content + */ +:where(audio, canvas, iframe, img, svg, video) { + vertical-align: middle; +} + +audio, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +:where(iframe) { + border-style: none; +} + +img { + max-width: 100%; + height: auto; + border-style: none; +} + +:where(svg:not([fill])) { + fill: currentColor; +} + +svg:not(:root), +svg:not(:host) { + overflow: hidden; +} + +/** + * Code + */ +pre, +code, +kbd, +samp { + font-size: 0.875em; + font-family: var(--pico-font-family); +} + +pre code, +pre samp { + font-size: inherit; + font-family: inherit; +} + +pre { + -ms-overflow-style: scrollbar; + overflow: auto; +} + +pre, +code, +kbd, +samp { + border-radius: var(--pico-border-radius); + background: var(--pico-code-background-color); + color: var(--pico-code-color); + font-weight: var(--pico-font-weight); + line-height: initial; +} + +code, +kbd, +samp { + display: inline-block; + padding: 0.375rem; +} + +pre { + display: block; + margin-bottom: var(--pico-spacing); + overflow-x: auto; +} +pre > code, +pre > samp { + display: block; + padding: var(--pico-spacing); + background: none; + line-height: var(--pico-line-height); +} + +kbd { + background-color: var(--pico-code-kbd-background-color); + color: var(--pico-code-kbd-color); + vertical-align: baseline; +} + +/** + * Figure + */ +figure { + display: block; + margin: 0; + padding: 0; +} +figure figcaption { + padding: calc(var(--pico-spacing) * 0.5) 0; + color: var(--pico-muted-color); +} + +/** + * Misc + */ +hr { + height: 0; + margin: var(--pico-typography-spacing-vertical) 0; + border: 0; + border-top: 1px solid var(--pico-muted-border-color); + color: inherit; +} + +[hidden], +template { + display: none !important; +} + +canvas { + display: inline-block; +} + +/** + * Basics form elements + */ +input, +optgroup, +select, +textarea { + margin: 0; + font-size: 1rem; + line-height: var(--pico-line-height); + font-family: inherit; + letter-spacing: inherit; +} + +input { + overflow: visible; +} + +select { + text-transform: none; +} + +legend { + max-width: 100%; + padding: 0; + color: inherit; + white-space: normal; +} + +textarea { + overflow: auto; +} + +[type=checkbox], +[type=radio] { + padding: 0; +} + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +:-moz-focusring { + outline: none; +} + +:-moz-ui-invalid { + box-shadow: none; +} + +::-ms-expand { + display: none; +} + +[type=file], +[type=range] { + padding: 0; + border-width: 0; +} + +input:not([type=checkbox], [type=radio], [type=range]) { + height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2); +} + +fieldset { + width: 100%; + margin: 0; + margin-bottom: var(--pico-spacing); + padding: 0; + border: 0; +} + +label, +fieldset legend { + display: block; + margin-bottom: calc(var(--pico-spacing) * 0.375); + color: var(--pico-color); + font-weight: var(--pico-form-label-font-weight, var(--pico-font-weight)); +} + +fieldset legend { + margin-bottom: calc(var(--pico-spacing) * 0.5); +} + +input:not([type=checkbox], [type=radio]), +button[type=submit], +select, +textarea { + width: 100%; +} + +input:not([type=checkbox], [type=radio], [type=range], [type=file]), +select, +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal); +} + +input, +select, +textarea { + --pico-background-color: var(--pico-form-element-background-color); + --pico-border-color: var(--pico-form-element-border-color); + --pico-color: var(--pico-form-element-color); + --pico-box-shadow: none; + border: var(--pico-border-width) solid var(--pico-border-color); + border-radius: var(--pico-border-radius); + outline: none; + background-color: var(--pico-background-color); + box-shadow: var(--pico-box-shadow); + color: var(--pico-color); + font-weight: var(--pico-font-weight); + transition: background-color var(--pico-transition), border-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition); +} + +input:not([type=submit], +[type=button], +[type=reset], +[type=checkbox], +[type=radio], +[readonly]):is(:active, :focus), +:where(select, textarea):not([readonly]):is(:active, :focus) { + --pico-background-color: var(--pico-form-element-active-background-color); +} + +input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus), +:where(select, textarea):not([readonly]):is(:active, :focus) { + --pico-border-color: var(--pico-form-element-active-border-color); +} + +input:not([type=submit], +[type=button], +[type=reset], +[type=range], +[type=file], +[readonly]):focus, +:where(select, textarea):not([readonly]):focus { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color); +} + +input:not([type=submit], [type=button], [type=reset])[disabled], +select[disabled], +textarea[disabled], +label[aria-disabled=true], +:where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) { + opacity: var(--pico-form-element-disabled-opacity); + pointer-events: none; +} + +label[aria-disabled=true] input[disabled] { + opacity: 1; +} + +:where(input, select, textarea):not([type=checkbox], +[type=radio], +[type=date], +[type=datetime-local], +[type=month], +[type=time], +[type=week], +[type=range])[aria-invalid] { + padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important; + padding-left: var(--pico-form-element-spacing-horizontal); + padding-inline-start: var(--pico-form-element-spacing-horizontal) !important; + padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important; + background-position: center right 0.75rem; + background-size: 1rem auto; + background-repeat: no-repeat; +} +:where(input, select, textarea):not([type=checkbox], +[type=radio], +[type=date], +[type=datetime-local], +[type=month], +[type=time], +[type=week], +[type=range])[aria-invalid=false]:not(select) { + background-image: var(--pico-icon-valid); +} +:where(input, select, textarea):not([type=checkbox], +[type=radio], +[type=date], +[type=datetime-local], +[type=month], +[type=time], +[type=week], +[type=range])[aria-invalid=true]:not(select) { + background-image: var(--pico-icon-invalid); +} +:where(input, select, textarea)[aria-invalid=false] { + --pico-border-color: var(--pico-form-element-valid-border-color); +} +:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) { + --pico-border-color: var(--pico-form-element-valid-active-border-color) !important; +} +:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus):not([type=checkbox], [type=radio]) { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color) !important; +} +:where(input, select, textarea)[aria-invalid=true] { + --pico-border-color: var(--pico-form-element-invalid-border-color); +} +:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) { + --pico-border-color: var(--pico-form-element-invalid-active-border-color) !important; +} +:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus):not([type=checkbox], [type=radio]) { + --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color) !important; +} + +[dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) { + background-position: center left 0.75rem; +} + +input::placeholder, +input::-webkit-input-placeholder, +textarea::placeholder, +textarea::-webkit-input-placeholder, +select:invalid { + color: var(--pico-form-element-placeholder-color); + opacity: 1; +} + +input:not([type=checkbox], [type=radio]), +select, +textarea { + margin-bottom: var(--pico-spacing); +} + +select::-ms-expand { + border: 0; + background-color: transparent; +} +select:not([multiple], [size]) { + padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem); + padding-left: var(--pico-form-element-spacing-horizontal); + padding-inline-start: var(--pico-form-element-spacing-horizontal); + padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem); + background-image: var(--pico-icon-chevron); + background-position: center right 0.75rem; + background-size: 1rem auto; + background-repeat: no-repeat; +} +select[multiple] option:checked { + background: var(--pico-form-element-selected-background-color); + color: var(--pico-form-element-color); +} + +[dir=rtl] select:not([multiple], [size]) { + background-position: center left 0.75rem; +} + +textarea { + display: block; + resize: vertical; +} +textarea[aria-invalid] { + --pico-icon-height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2); + background-position: top right 0.75rem !important; + background-size: 1rem var(--pico-icon-height) !important; +} + +:where(input, select, textarea, fieldset) + small { + display: block; + width: 100%; + margin-top: calc(var(--pico-spacing) * -0.75); + margin-bottom: var(--pico-spacing); + color: var(--pico-muted-color); +} +:where(input, select, textarea, fieldset)[aria-invalid=false] + small { + color: var(--pico-ins-color); +} +:where(input, select, textarea, fieldset)[aria-invalid=true] + small { + color: var(--pico-del-color); +} + +label > :where(input, select, textarea) { + margin-top: calc(var(--pico-spacing) * 0.25); +} + +/** + * Checkboxes, Radios and Switches + */ +label:has([type=checkbox], [type=radio]) { + width: -moz-fit-content; + width: fit-content; + cursor: pointer; +} + +[type=checkbox], +[type=radio] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 1.25em; + height: 1.25em; + margin-top: -0.125em; + margin-inline-end: 0.5em; + border-width: var(--pico-border-width); + vertical-align: middle; + cursor: pointer; +} +[type=checkbox]::-ms-check, +[type=radio]::-ms-check { + display: none; +} +[type=checkbox]:checked, [type=checkbox]:checked:active, [type=checkbox]:checked:focus, +[type=radio]:checked, +[type=radio]:checked:active, +[type=radio]:checked:focus { + --pico-background-color: var(--pico-primary-background); + --pico-border-color: var(--pico-primary-border); + background-image: var(--pico-icon-checkbox); + background-position: center; + background-size: 0.75em auto; + background-repeat: no-repeat; +} +[type=checkbox] ~ label, +[type=radio] ~ label { + display: inline-block; + margin-bottom: 0; + cursor: pointer; +} +[type=checkbox] ~ label:not(:last-of-type), +[type=radio] ~ label:not(:last-of-type) { + margin-inline-end: 1em; +} + +[type=checkbox]:indeterminate { + --pico-background-color: var(--pico-primary-background); + --pico-border-color: var(--pico-primary-border); + background-image: var(--pico-icon-minus); + background-position: center; + background-size: 0.75em auto; + background-repeat: no-repeat; +} + +[type=radio] { + border-radius: 50%; +} +[type=radio]:checked, [type=radio]:checked:active, [type=radio]:checked:focus { + --pico-background-color: var(--pico-primary-inverse); + border-width: 0.35em; + background-image: none; +} + +[type=checkbox][role=switch] { + --pico-background-color: var(--pico-switch-background-color); + --pico-color: var(--pico-switch-color); + width: 2.25em; + height: 1.25em; + border: var(--pico-border-width) solid var(--pico-border-color); + border-radius: 1.25em; + background-color: var(--pico-background-color); + line-height: 1.25em; +} +[type=checkbox][role=switch]:not([aria-invalid]) { + --pico-border-color: var(--pico-switch-background-color); +} +[type=checkbox][role=switch]:before { + display: block; + aspect-ratio: 1; + height: 100%; + border-radius: 50%; + background-color: var(--pico-color); + box-shadow: var(--pico-switch-thumb-box-shadow); + content: ""; + transition: margin 0.1s ease-in-out; +} +[type=checkbox][role=switch]:focus { + --pico-background-color: var(--pico-switch-background-color); + --pico-border-color: var(--pico-switch-background-color); +} +[type=checkbox][role=switch]:checked { + --pico-background-color: var(--pico-switch-checked-background-color); + --pico-border-color: var(--pico-switch-checked-background-color); + background-image: none; +} +[type=checkbox][role=switch]:checked::before { + margin-inline-start: calc(2.25em - 1.25em); +} +[type=checkbox][role=switch][disabled] { + --pico-background-color: var(--pico-border-color); +} + +[type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus, +[type=checkbox][role=switch][aria-invalid=false]:checked, +[type=checkbox][role=switch][aria-invalid=false]:checked:active, +[type=checkbox][role=switch][aria-invalid=false]:checked:focus { + --pico-background-color: var(--pico-form-element-valid-border-color); +} +[type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true], +[type=checkbox][role=switch]:checked[aria-invalid=true], +[type=checkbox][role=switch]:checked:active[aria-invalid=true], +[type=checkbox][role=switch]:checked:focus[aria-invalid=true] { + --pico-background-color: var(--pico-form-element-invalid-border-color); +} + +[type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus, +[type=radio][aria-invalid=false]:checked, +[type=radio][aria-invalid=false]:checked:active, +[type=radio][aria-invalid=false]:checked:focus, +[type=checkbox][role=switch][aria-invalid=false]:checked, +[type=checkbox][role=switch][aria-invalid=false]:checked:active, +[type=checkbox][role=switch][aria-invalid=false]:checked:focus { + --pico-border-color: var(--pico-form-element-valid-border-color); +} +[type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true], +[type=radio]:checked[aria-invalid=true], +[type=radio]:checked:active[aria-invalid=true], +[type=radio]:checked:focus[aria-invalid=true], +[type=checkbox][role=switch]:checked[aria-invalid=true], +[type=checkbox][role=switch]:checked:active[aria-invalid=true], +[type=checkbox][role=switch]:checked:focus[aria-invalid=true] { + --pico-border-color: var(--pico-form-element-invalid-border-color); +} + +/** + * Input type color + */ +[type=color]::-webkit-color-swatch-wrapper { + padding: 0; +} +[type=color]::-moz-focus-inner { + padding: 0; +} +[type=color]::-webkit-color-swatch { + border: 0; + border-radius: calc(var(--pico-border-radius) * 0.5); +} +[type=color]::-moz-color-swatch { + border: 0; + border-radius: calc(var(--pico-border-radius) * 0.5); +} + +/** + * Input type datetime + */ +input:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) { + --pico-icon-position: 0.75rem; + --pico-icon-width: 1rem; + padding-right: calc(var(--pico-icon-width) + var(--pico-icon-position)); + background-image: var(--pico-icon-date); + background-position: center right var(--pico-icon-position); + background-size: var(--pico-icon-width) auto; + background-repeat: no-repeat; +} +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=time] { + background-image: var(--pico-icon-time); +} + +[type=date]::-webkit-calendar-picker-indicator, +[type=datetime-local]::-webkit-calendar-picker-indicator, +[type=month]::-webkit-calendar-picker-indicator, +[type=time]::-webkit-calendar-picker-indicator, +[type=week]::-webkit-calendar-picker-indicator { + width: var(--pico-icon-width); + margin-right: calc(var(--pico-icon-width) * -1); + margin-left: var(--pico-icon-position); + opacity: 0; +} + +@-moz-document url-prefix() { + [type=date], + [type=datetime-local], + [type=month], + [type=time], + [type=week] { + padding-right: var(--pico-form-element-spacing-horizontal) !important; + background-image: none !important; + } +} +[dir=rtl] :is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) { + text-align: right; +} + +/** + * Input type file + */ +[type=file] { + --pico-color: var(--pico-muted-color); + margin-left: calc(var(--pico-outline-width) * -1); + padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) 0; + padding-left: var(--pico-outline-width); + border: 0; + border-radius: 0; + background: none; +} +[type=file]::file-selector-button { + margin-right: calc(var(--pico-spacing) / 2); + padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) var(--pico-form-element-spacing-horizontal); +} +[type=file]:is(:hover, :active, :focus)::file-selector-button { + --pico-background-color: var(--pico-secondary-hover-background); + --pico-border-color: var(--pico-secondary-hover-border); +} +[type=file]:focus::file-selector-button { + --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus); +} + +/** + * Input type range + */ +[type=range] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; + height: 1.25rem; + background: none; +} +[type=range]::-webkit-slider-runnable-track { + width: 100%; + height: 0.375rem; + border-radius: var(--pico-border-radius); + background-color: var(--pico-range-border-color); + -webkit-transition: background-color var(--pico-transition), box-shadow var(--pico-transition); + transition: background-color var(--pico-transition), box-shadow var(--pico-transition); +} +[type=range]::-moz-range-track { + width: 100%; + height: 0.375rem; + border-radius: var(--pico-border-radius); + background-color: var(--pico-range-border-color); + -moz-transition: background-color var(--pico-transition), box-shadow var(--pico-transition); + transition: background-color var(--pico-transition), box-shadow var(--pico-transition); +} +[type=range]::-ms-track { + width: 100%; + height: 0.375rem; + border-radius: var(--pico-border-radius); + background-color: var(--pico-range-border-color); + -ms-transition: background-color var(--pico-transition), box-shadow var(--pico-transition); + transition: background-color var(--pico-transition), box-shadow var(--pico-transition); +} +[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 1.25rem; + height: 1.25rem; + margin-top: -0.4375rem; + border: 2px solid var(--pico-range-thumb-border-color); + border-radius: 50%; + background-color: var(--pico-range-thumb-color); + cursor: pointer; + -webkit-transition: background-color var(--pico-transition), transform var(--pico-transition); + transition: background-color var(--pico-transition), transform var(--pico-transition); +} +[type=range]::-moz-range-thumb { + -webkit-appearance: none; + width: 1.25rem; + height: 1.25rem; + margin-top: -0.4375rem; + border: 2px solid var(--pico-range-thumb-border-color); + border-radius: 50%; + background-color: var(--pico-range-thumb-color); + cursor: pointer; + -moz-transition: background-color var(--pico-transition), transform var(--pico-transition); + transition: background-color var(--pico-transition), transform var(--pico-transition); +} +[type=range]::-ms-thumb { + -webkit-appearance: none; + width: 1.25rem; + height: 1.25rem; + margin-top: -0.4375rem; + border: 2px solid var(--pico-range-thumb-border-color); + border-radius: 50%; + background-color: var(--pico-range-thumb-color); + cursor: pointer; + -ms-transition: background-color var(--pico-transition), transform var(--pico-transition); + transition: background-color var(--pico-transition), transform var(--pico-transition); +} +[type=range]:active, [type=range]:focus-within { + --pico-range-border-color: var(--pico-range-active-border-color); + --pico-range-thumb-color: var(--pico-range-thumb-active-color); +} +[type=range]:active::-webkit-slider-thumb { + transform: scale(1.25); +} +[type=range]:active::-moz-range-thumb { + transform: scale(1.25); +} +[type=range]:active::-ms-thumb { + transform: scale(1.25); +} + +/** + * Input type search + */ +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] { + padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem); + background-image: var(--pico-icon-search); + background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem); + background-size: 1rem auto; + background-repeat: no-repeat; +} +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] { + padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important; + background-position: center left 1.125rem, center right 0.75rem; +} +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] { + background-image: var(--pico-icon-search), var(--pico-icon-valid); +} +input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] { + background-image: var(--pico-icon-search), var(--pico-icon-invalid); +} + +[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] { + background-position: center right 1.125rem; +} +[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] { + background-position: center right 1.125rem, center left 0.75rem; +} + +/** + * Accordion (
) + */ +details { + display: block; + margin-bottom: var(--pico-spacing); +} +details summary { + line-height: 1rem; + list-style-type: none; + cursor: pointer; + transition: color var(--pico-transition); +} +details summary:not([role]) { + color: var(--pico-accordion-close-summary-color); +} +details summary::-webkit-details-marker { + display: none; +} +details summary::marker { + display: none; +} +details summary::-moz-list-bullet { + list-style-type: none; +} +details summary::after { + display: block; + width: 1rem; + height: 1rem; + margin-inline-start: calc(var(--pico-spacing, 1rem) * 0.5); + float: right; + transform: rotate(-90deg); + background-image: var(--pico-icon-chevron); + background-position: right center; + background-size: 1rem auto; + background-repeat: no-repeat; + content: ""; + transition: transform var(--pico-transition); +} +details summary:focus { + outline: none; +} +details summary:focus:not([role]) { + color: var(--pico-accordion-active-summary-color); +} +details summary:focus-visible:not([role]) { + outline: var(--pico-outline-width) solid var(--pico-primary-focus); + outline-offset: calc(var(--pico-spacing, 1rem) * 0.5); + color: var(--pico-primary); +} +details summary[role=button] { + width: 100%; + text-align: left; +} +details summary[role=button]::after { + height: calc(1rem * var(--pico-line-height, 1.5)); +} +details[open] > summary { + margin-bottom: var(--pico-spacing); +} +details[open] > summary:not([role]):not(:focus) { + color: var(--pico-accordion-open-summary-color); +} +details[open] > summary::after { + transform: rotate(0); +} + +[dir=rtl] details summary { + text-align: right; +} +[dir=rtl] details summary::after { + float: left; + background-position: left center; +} + +/** + * Card (
) + */ +article { + margin-bottom: var(--pico-block-spacing-vertical); + padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal); + border-radius: var(--pico-border-radius); + background: var(--pico-card-background-color); + box-shadow: var(--pico-card-box-shadow); +} +article > header, +article > footer { + margin-right: calc(var(--pico-block-spacing-horizontal) * -1); + margin-left: calc(var(--pico-block-spacing-horizontal) * -1); + padding: calc(var(--pico-block-spacing-vertical) * 0.66) var(--pico-block-spacing-horizontal); + background-color: var(--pico-card-sectioning-background-color); +} +article > header { + margin-top: calc(var(--pico-block-spacing-vertical) * -1); + margin-bottom: var(--pico-block-spacing-vertical); + border-bottom: var(--pico-border-width) solid var(--pico-card-border-color); + border-top-right-radius: var(--pico-border-radius); + border-top-left-radius: var(--pico-border-radius); +} +article > footer { + margin-top: var(--pico-block-spacing-vertical); + margin-bottom: calc(var(--pico-block-spacing-vertical) * -1); + border-top: var(--pico-border-width) solid var(--pico-card-border-color); + border-bottom-right-radius: var(--pico-border-radius); + border-bottom-left-radius: var(--pico-border-radius); +} + +/** + * Group ([role="group"], [role="search"]) + */ +[role=search], +[role=group] { + display: inline-flex; + position: relative; + width: 100%; + margin-bottom: var(--pico-spacing); + border-radius: var(--pico-border-radius); + box-shadow: var(--pico-group-box-shadow, 0 0 0 rgba(0, 0, 0, 0)); + vertical-align: middle; + transition: box-shadow var(--pico-transition); +} +[role=search] > *, +[role=search] input:not([type=checkbox], [type=radio]), +[role=search] select, +[role=group] > *, +[role=group] input:not([type=checkbox], [type=radio]), +[role=group] select { + position: relative; + flex: 1 1 auto; + margin-bottom: 0; +} +[role=search] > *:not(:first-child), +[role=search] input:not([type=checkbox], [type=radio]):not(:first-child), +[role=search] select:not(:first-child), +[role=group] > *:not(:first-child), +[role=group] input:not([type=checkbox], [type=radio]):not(:first-child), +[role=group] select:not(:first-child) { + margin-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +[role=search] > *:not(:last-child), +[role=search] input:not([type=checkbox], [type=radio]):not(:last-child), +[role=search] select:not(:last-child), +[role=group] > *:not(:last-child), +[role=group] input:not([type=checkbox], [type=radio]):not(:last-child), +[role=group] select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +[role=search] > *:focus, +[role=search] input:not([type=checkbox], [type=radio]):focus, +[role=search] select:focus, +[role=group] > *:focus, +[role=group] input:not([type=checkbox], [type=radio]):focus, +[role=group] select:focus { + z-index: 2; +} +[role=search] button:not(:first-child), +[role=search] [type=submit]:not(:first-child), +[role=search] [type=reset]:not(:first-child), +[role=search] [type=button]:not(:first-child), +[role=search] [role=button]:not(:first-child), +[role=search] input:not([type=checkbox], [type=radio]):not(:first-child), +[role=search] select:not(:first-child), +[role=group] button:not(:first-child), +[role=group] [type=submit]:not(:first-child), +[role=group] [type=reset]:not(:first-child), +[role=group] [type=button]:not(:first-child), +[role=group] [role=button]:not(:first-child), +[role=group] input:not([type=checkbox], [type=radio]):not(:first-child), +[role=group] select:not(:first-child) { + margin-left: calc(var(--pico-border-width) * -1); +} +[role=search] button, +[role=search] [type=submit], +[role=search] [type=reset], +[role=search] [type=button], +[role=search] [role=button], +[role=group] button, +[role=group] [type=submit], +[role=group] [type=reset], +[role=group] [type=button], +[role=group] [role=button] { + width: auto; +} +@supports selector(:has(*)) { + [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus), + [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) { + --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button); + } + [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) input:not([type=checkbox], [type=radio]), + [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) select, + [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) input:not([type=checkbox], [type=radio]), + [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) select { + border-color: transparent; + } + [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus), + [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) { + --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input); + } + [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) button, + [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=submit], + [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=button], + [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [role=button], + [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) button, + [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=submit], + [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=button], + [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [role=button] { + --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border); + --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border); + } + [role=search] button:focus, + [role=search] [type=submit]:focus, + [role=search] [type=reset]:focus, + [role=search] [type=button]:focus, + [role=search] [role=button]:focus, + [role=group] button:focus, + [role=group] [type=submit]:focus, + [role=group] [type=reset]:focus, + [role=group] [type=button]:focus, + [role=group] [role=button]:focus { + box-shadow: none; + } +} + +[role=search] > *:first-child { + border-top-left-radius: 5rem; + border-bottom-left-radius: 5rem; +} +[role=search] > *:last-child { + border-top-right-radius: 5rem; + border-bottom-right-radius: 5rem; +} + +/** + * Loading ([aria-busy=true]) + */ +[aria-busy=true]:not(input, select, textarea, html, form) { + white-space: nowrap; +} +[aria-busy=true]:not(input, select, textarea, html, form)::before { + display: inline-block; + width: 1em; + height: 1em; + background-image: var(--pico-icon-loading); + background-size: 1em auto; + background-repeat: no-repeat; + content: ""; + vertical-align: -0.125em; +} +[aria-busy=true]:not(input, select, textarea, html, form):not(:empty)::before { + margin-inline-end: calc(var(--pico-spacing) * 0.5); +} +[aria-busy=true]:not(input, select, textarea, html, form):empty { + text-align: center; +} + +button[aria-busy=true], +[type=submit][aria-busy=true], +[type=button][aria-busy=true], +[type=reset][aria-busy=true], +[role=button][aria-busy=true], +a[aria-busy=true] { + pointer-events: none; +} + +/** + * Modal () + */ +:root, +:host { + --pico-scrollbar-width: 0px; +} + +dialog { + display: flex; + z-index: 999; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + align-items: center; + justify-content: center; + width: inherit; + min-width: 100%; + height: inherit; + min-height: 100%; + padding: 0; + border: 0; + -webkit-backdrop-filter: var(--pico-modal-overlay-backdrop-filter); + backdrop-filter: var(--pico-modal-overlay-backdrop-filter); + background-color: var(--pico-modal-overlay-background-color); + color: var(--pico-color); +} +dialog > article { + width: 100%; + max-height: calc(100vh - var(--pico-spacing) * 2); + margin: var(--pico-spacing); + overflow: auto; +} +@media (min-width: 576px) { + dialog > article { + max-width: 510px; + } +} +@media (min-width: 768px) { + dialog > article { + max-width: 700px; + } +} +dialog > article > header > * { + margin-bottom: 0; +} +dialog > article > header :is(a, button)[rel=prev] { + margin: 0; + margin-left: var(--pico-spacing); + padding: 0; + float: right; +} +dialog > article > footer { + text-align: right; +} +dialog > article > footer button, +dialog > article > footer [role=button] { + margin-bottom: 0; +} +dialog > article > footer button:not(:first-of-type), +dialog > article > footer [role=button]:not(:first-of-type) { + margin-left: calc(var(--pico-spacing) * 0.5); +} +dialog > article :is(a, button)[rel=prev] { + display: block; + width: 1rem; + height: 1rem; + margin-top: calc(var(--pico-spacing) * -1); + margin-bottom: var(--pico-spacing); + margin-left: auto; + border: none; + background-image: var(--pico-icon-close); + background-position: center; + background-size: auto 1rem; + background-repeat: no-repeat; + background-color: transparent; + opacity: 0.5; + transition: opacity var(--pico-transition); +} +dialog > article :is(a, button)[rel=prev]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) { + opacity: 1; +} +dialog:not([open]), dialog[open=false] { + display: none; +} + +/** + * Nav + */ +:where(nav li)::before { + float: left; + content: "​"; +} + +nav, +nav ul { + display: flex; +} + +nav { + justify-content: space-between; + overflow: visible; +} +nav ol, +nav ul { + align-items: center; + margin-bottom: 0; + padding: 0; + list-style: none; +} +nav ol:first-of-type, +nav ul:first-of-type { + margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1); +} +nav ol:last-of-type, +nav ul:last-of-type { + margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1); +} +nav li { + display: inline-block; + margin: 0; + padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal); +} +nav li :where(a, [role=link]) { + display: inline-block; + margin: calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1); + padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal); + border-radius: var(--pico-border-radius); +} +nav li :where(a, [role=link]):not(:hover) { + text-decoration: none; +} +nav li button, +nav li [role=button], +nav li [type=button], +nav li input:not([type=checkbox], [type=radio], [type=range], [type=file]), +nav li select { + height: auto; + margin-right: inherit; + margin-bottom: 0; + margin-left: inherit; + padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal); +} +nav[aria-label=breadcrumb] { + align-items: center; + justify-content: start; +} +nav[aria-label=breadcrumb] ul li:not(:first-child) { + margin-inline-start: var(--pico-nav-link-spacing-horizontal); +} +nav[aria-label=breadcrumb] ul li a { + margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0; + margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1); +} +nav[aria-label=breadcrumb] ul li:not(:last-child)::after { + display: inline-block; + position: absolute; + width: calc(var(--pico-nav-link-spacing-horizontal) * 4); + margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1); + content: var(--pico-nav-breadcrumb-divider); + color: var(--pico-muted-color); + text-align: center; + text-decoration: none; + white-space: nowrap; +} +nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]) { + background-color: transparent; + color: inherit; + text-decoration: none; + pointer-events: none; +} + +aside nav, +aside ol, +aside ul, +aside li { + display: block; +} +aside li { + padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5) var(--pico-nav-element-spacing-horizontal); +} +aside li a { + display: block; +} +aside li [role=button] { + margin: inherit; +} + +[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after { + content: "\\"; +} + +/** + * Progress + */ +progress { + display: inline-block; + vertical-align: baseline; +} + +progress { + -webkit-appearance: none; + -moz-appearance: none; + display: inline-block; + appearance: none; + width: 100%; + height: 0.5rem; + margin-bottom: calc(var(--pico-spacing) * 0.5); + overflow: hidden; + border: 0; + border-radius: var(--pico-border-radius); + background-color: var(--pico-progress-background-color); + color: var(--pico-progress-color); +} +progress::-webkit-progress-bar { + border-radius: var(--pico-border-radius); + background: none; +} +progress[value]::-webkit-progress-value { + background-color: var(--pico-progress-color); + -webkit-transition: inline-size var(--pico-transition); + transition: inline-size var(--pico-transition); +} +progress::-moz-progress-bar { + background-color: var(--pico-progress-color); +} +@media (prefers-reduced-motion: no-preference) { + progress:indeterminate { + background: var(--pico-progress-background-color) linear-gradient(to right, var(--pico-progress-color) 30%, var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat; + animation: progress-indeterminate 1s linear infinite; + } + progress:indeterminate[value]::-webkit-progress-value { + background-color: transparent; + } + progress:indeterminate::-moz-progress-bar { + background-color: transparent; + } +} + +@media (prefers-reduced-motion: no-preference) { + [dir=rtl] progress:indeterminate { + animation-direction: reverse; + } +} + +@keyframes progress-indeterminate { + 0% { + background-position: 200% 0; + } + 100% { + background-position: -200% 0; + } +} +/** + * Tooltip ([data-tooltip]) + */ +[data-tooltip] { + position: relative; +} +[data-tooltip]:not(a, button, input, [role=button]) { + border-bottom: 1px dotted; + text-decoration: none; + cursor: help; +} +[data-tooltip][data-placement=top]::before, [data-tooltip][data-placement=top]::after, [data-tooltip]::before, [data-tooltip]::after { + display: block; + z-index: 99; + position: absolute; + bottom: 100%; + left: 50%; + padding: 0.25rem 0.5rem; + overflow: hidden; + transform: translate(-50%, -0.25rem); + border-radius: var(--pico-border-radius); + background: var(--pico-tooltip-background-color); + content: attr(data-tooltip); + color: var(--pico-tooltip-color); + font-style: normal; + font-weight: var(--pico-font-weight); + font-size: 0.875rem; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + opacity: 0; + pointer-events: none; +} +[data-tooltip][data-placement=top]::after, [data-tooltip]::after { + padding: 0; + transform: translate(-50%, 0rem); + border-top: 0.3rem solid; + border-right: 0.3rem solid transparent; + border-left: 0.3rem solid transparent; + border-radius: 0; + background-color: transparent; + content: ""; + color: var(--pico-tooltip-background-color); +} +[data-tooltip][data-placement=bottom]::before, [data-tooltip][data-placement=bottom]::after { + top: 100%; + bottom: auto; + transform: translate(-50%, 0.25rem); +} +[data-tooltip][data-placement=bottom]:after { + transform: translate(-50%, -0.3rem); + border: 0.3rem solid transparent; + border-bottom: 0.3rem solid; +} +[data-tooltip][data-placement=left]::before, [data-tooltip][data-placement=left]::after { + top: 50%; + right: 100%; + bottom: auto; + left: auto; + transform: translate(-0.25rem, -50%); +} +[data-tooltip][data-placement=left]:after { + transform: translate(0.3rem, -50%); + border: 0.3rem solid transparent; + border-left: 0.3rem solid; +} +[data-tooltip][data-placement=right]::before, [data-tooltip][data-placement=right]::after { + top: 50%; + right: auto; + bottom: auto; + left: 100%; + transform: translate(0.25rem, -50%); +} +[data-tooltip][data-placement=right]:after { + transform: translate(-0.3rem, -50%); + border: 0.3rem solid transparent; + border-right: 0.3rem solid; +} +[data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after { + opacity: 1; +} +@media (hover: hover) and (pointer: fine) { + [data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after { + --pico-tooltip-slide-to: translate(-50%, -0.25rem); + transform: translate(-50%, 0.75rem); + animation-duration: 0.2s; + animation-fill-mode: forwards; + animation-name: tooltip-slide; + opacity: 0; + } + [data-tooltip]:focus::after, [data-tooltip]:hover::after { + --pico-tooltip-caret-slide-to: translate(-50%, 0rem); + transform: translate(-50%, -0.25rem); + animation-name: tooltip-caret-slide; + } + [data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::before, [data-tooltip][data-placement=bottom]:hover::after { + --pico-tooltip-slide-to: translate(-50%, 0.25rem); + transform: translate(-50%, -0.75rem); + animation-name: tooltip-slide; + } + [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::after { + --pico-tooltip-caret-slide-to: translate(-50%, -0.3rem); + transform: translate(-50%, -0.5rem); + animation-name: tooltip-caret-slide; + } + [data-tooltip][data-placement=left]:focus::before, [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::before, [data-tooltip][data-placement=left]:hover::after { + --pico-tooltip-slide-to: translate(-0.25rem, -50%); + transform: translate(0.75rem, -50%); + animation-name: tooltip-slide; + } + [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::after { + --pico-tooltip-caret-slide-to: translate(0.3rem, -50%); + transform: translate(0.05rem, -50%); + animation-name: tooltip-caret-slide; + } + [data-tooltip][data-placement=right]:focus::before, [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::before, [data-tooltip][data-placement=right]:hover::after { + --pico-tooltip-slide-to: translate(0.25rem, -50%); + transform: translate(-0.75rem, -50%); + animation-name: tooltip-slide; + } + [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::after { + --pico-tooltip-caret-slide-to: translate(-0.3rem, -50%); + transform: translate(-0.05rem, -50%); + animation-name: tooltip-caret-slide; + } +} +@keyframes tooltip-slide { + to { + transform: var(--pico-tooltip-slide-to); + opacity: 1; + } +} +@keyframes tooltip-caret-slide { + 50% { + opacity: 0; + } + to { + transform: var(--pico-tooltip-caret-slide-to); + opacity: 1; + } +} + +/** + * Accessibility & User interaction + */ +[aria-controls] { + cursor: pointer; +} + +[aria-disabled=true], +[disabled] { + cursor: not-allowed; +} + +[aria-hidden=false][hidden] { + display: initial; +} + +[aria-hidden=false][hidden]:not(:focus) { + clip: rect(0, 0, 0, 0); + position: absolute; +} + +a, +area, +button, +input, +label, +select, +summary, +textarea, +[tabindex] { + -ms-touch-action: manipulation; +} + +[dir=rtl] { + direction: rtl; +} + +/** + * Reduce Motion Features + */ +@media (prefers-reduced-motion: reduce) { + *:not([aria-busy=true]), + :not([aria-busy=true])::before, + :not([aria-busy=true])::after { + background-attachment: initial !important; + animation-duration: 1ms !important; + animation-delay: -1ms !important; + animation-iteration-count: 1 !important; + scroll-behavior: auto !important; + transition-delay: 0s !important; + transition-duration: 0s !important; + } +} diff --git a/assets/styling/blog.css b/assets/styling/blog.css new file mode 100644 index 0000000..f27f060 --- /dev/null +++ b/assets/styling/blog.css @@ -0,0 +1,8 @@ +#blog { + margin-top: 50px; +} + +#blog a { + color: #ffffff; + margin-top: 50px; +} \ No newline at end of file diff --git a/assets/styling/echo.css b/assets/styling/echo.css new file mode 100644 index 0000000..67d9b2b --- /dev/null +++ b/assets/styling/echo.css @@ -0,0 +1,34 @@ +#echo { + width: 360px; + margin-left: auto; + margin-right: auto; + margin-top: 50px; + background-color: #1e222d; + padding: 20px; + border-radius: 10px; +} + +#echo>h4 { + margin: 0px 0px 15px 0px; +} + + +#echo>input { + border: none; + border-bottom: 1px white solid; + background-color: transparent; + color: #ffffff; + transition: border-bottom-color 0.2s ease; + outline: none; + display: block; + padding: 0px 0px 5px 0px; + width: 100%; +} + +#echo>input:focus { + border-bottom-color: #6d85c6; +} + +#echo>p { + margin: 20px 0px 0px auto; +} \ No newline at end of file diff --git a/assets/styling/main.css b/assets/styling/main.css new file mode 100644 index 0000000..c0ee67f --- /dev/null +++ b/assets/styling/main.css @@ -0,0 +1,745 @@ +/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme, base, components, utilities; +@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-sky-500: oklch(68.5% 0.169 237.323); + --color-blue-400: oklch(70.7% 0.165 254.624); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-gray-600: oklch(44.6% 0.03 256.802); + --spacing: 0.25rem; + --text-lg: 1.125rem; + --text-xl: 1.25rem; + --text-2xl: 1.5rem; + --text-3xl: 1.875rem; + --radius-lg: 0.5rem; + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + 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; + } + 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 { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.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 { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :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; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + 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, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden='until-found'])) { + display: none !important; + } +} +@layer utilities { + .\!visible { + visibility: visible !important; + } + .collapse { + visibility: collapse; + } + .invisible { + visibility: hidden; + } + .visible { + visibility: visible; + } + .\!static { + position: static !important; + } + .absolute { + position: absolute; + } + .fixed { + position: fixed; + } + .relative { + position: relative; + } + .static { + position: static; + } + .sticky { + position: sticky; + } + .isolate { + isolation: isolate; + } + .\!container { + width: 100% !important; + @media (width >= 40rem) { + max-width: 40rem !important; + } + @media (width >= 48rem) { + max-width: 48rem !important; + } + @media (width >= 64rem) { + max-width: 64rem !important; + } + @media (width >= 80rem) { + max-width: 80rem !important; + } + @media (width >= 96rem) { + max-width: 96rem !important; + } + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .m-8 { + margin: calc(var(--spacing) * 8); + } + .mt-940 { + margin-top: calc(var(--spacing) * 940); + } + .ml-4 { + margin-left: calc(var(--spacing) * 4); + } + .\!hidden { + display: none !important; + } + .block { + display: block; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .table { + display: table; + } + .flex-shrink { + flex-shrink: 1; + } + .shrink { + flex-shrink: 1; + } + .flex-grow { + flex-grow: 1; + } + .grow { + flex-grow: 1; + } + .border-collapse { + border-collapse: collapse; + } + .scale-15878 { + --tw-scale-x: 15878%; + --tw-scale-y: 15878%; + --tw-scale-z: 15878%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + .rotate-180 { + rotate: 180deg; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .resize { + resize: both; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-center { + align-items: center; + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .rounded { + border-radius: 0.25rem; + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-b-4 { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 4px; + } + .border-sky-500 { + border-color: var(--color-sky-500); + } + .pl-58661 { + padding-left: calc(var(--spacing) * 58661); + } + .leading-15878 { + --tw-leading: calc(var(--spacing) * 15878); + line-height: calc(var(--spacing) * 15878); + } + .text-wrap { + text-wrap: wrap; + } + .capitalize { + text-transform: capitalize; + } + .lowercase { + text-transform: lowercase; + } + .uppercase { + text-transform: uppercase; + } + .italic { + font-style: italic; + } + .ordinal { + --tw-ordinal: ordinal; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .underline { + text-decoration-line: underline; + } + .antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + 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; + } + .outline-18360 { + outline-style: var(--tw-outline-style); + outline-width: 18360px; + } + .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,); + } + .grayscale { + --tw-grayscale: grayscale(100%); + 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,); + } + .invert { + --tw-invert: invert(100%); + 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,); + } + .sepia { + --tw-sepia: sepia(100%); + 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,); + } + .filter { + 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, display, visibility, content-visibility, overlay, pointer-events; + 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)); + } + .delay-150 { + transition-delay: 150ms; + } + .ease-in-out { + --tw-ease: var(--ease-in-out); + transition-timing-function: var(--ease-in-out); + } + .\[a\:x\] { + a: x; + } + .\[hw\:1\] { + hw: 1; + } + .\[mailto\:marco-oweber\@gmx\.de\] { + mailto: marco-oweber@gmx.de; + } + .\[nix-shell\:\~\] { + nix-shell: ~; + } + .\[plughw\:1\,0\] { + plughw: 1,0; + } + .\[rightalt\:G\] { + rightalt: G; + } + .\[testenv\:docs\] { + testenv: docs; + } + .\[tool\:pytest\] { + tool: pytest; + } + .\[translation\:info\] { + translation: info; + } + .\[vhost\:www\.example\.com\] { + vhost: www.example.com; + } + .hover\:border-b-4 { + &:hover { + @media (hover: hover) { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 4px; + } + } + } + .hover\:border-sky-500 { + &:hover { + @media (hover: hover) { + border-color: var(--color-sky-500); + } + } + } +} +@layer base { + h1 { + font-size: var(--text-3xl); + } + h2 { + font-size: var(--text-2xl); + padding: 1em 0em; + } + h3 { + font-size: var(--text-xl); + padding: 1em 0em; + } + h4 { + font-size: var(--text-lg); + padding: 1em 0em; + } + a { + color: var(--color-blue-400); + } + li { + list-style-type: disc; + margin-left: 1em; + } + li::marker { + color: var(--color-gray-600); + } + blockquote { + list-style-type: disc; + border-left-width: .25rem; + border-left-color: var(--color-blue-600); + font-style: italic; + font-weight: 500; + padding-left: 1em; + margin-top: 1.6em; + margin-bottom: 1.6em; + } + img { + padding-block: calc(var(--spacing) * 0); + border-radius: var(--radius-lg); + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + object-fit: cover; + } +} +@property --tw-scale-x { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-y { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-z { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-ordinal { + syntax: "*"; + inherits: false; +} +@property --tw-slashed-zero { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-figure { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-spacing { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-fraction { + 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: 0px; +} +@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-ease { + syntax: "*"; + inherits: false; +} +@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-scale-x: 1; + --tw-scale-y: 1; + --tw-scale-z: 1; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-border-style: solid; + --tw-leading: initial; + --tw-ordinal: initial; + --tw-slashed-zero: initial; + --tw-numeric-figure: initial; + --tw-numeric-spacing: initial; + --tw-numeric-fraction: 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-ease: initial; + } + } +} diff --git a/assets/styling/navbar.css b/assets/styling/navbar.css new file mode 100644 index 0000000..7372c63 --- /dev/null +++ b/assets/styling/navbar.css @@ -0,0 +1,16 @@ +#navbar { + display: flex; + flex-direction: row; +} + +#navbar a { + color: #ffffff; + margin-right: 20px; + text-decoration: none; + transition: color 0.2s ease; +} + +#navbar a:hover { + cursor: pointer; + color: #91a4d2; +} \ No newline at end of file diff --git a/assets/styling/tailwind.css b/assets/styling/tailwind.css new file mode 100644 index 0000000..3e6e3bb --- /dev/null +++ b/assets/styling/tailwind.css @@ -0,0 +1,48 @@ +@import "tailwindcss"; + +@layer base { + h1 { + font-size: var(--text-3xl); + /* padding: 1em 0em; */ + } + h2 { + font-size: var(--text-2xl); + padding: 1em 0em; + } + h3 { + font-size: var(--text-xl); + padding: 1em 0em; + } + h4 { + font-size: var(--text-lg); + padding: 1em 0em; + } + a { + color: var(--color-blue-400); + } + li { + list-style-type: disc; + margin-left: 1em; + } + li::marker { + color: var(--color-gray-600); + } + + blockquote { + list-style-type: disc; + border-left-width: .25rem; + border-left-color: var(--color-blue-600); + font-style: italic; + font-weight: 500; + padding-left: 1em; + margin-top: 1.6em; + margin-bottom: 1.6em; + } + + img { + @apply py-0; + @apply rounded-lg; + @apply shadow-xl; + @apply object-cover; + } +} diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 0000000..40456af --- /dev/null +++ b/clippy.toml @@ -0,0 +1,8 @@ +await-holding-invalid-types = [ + "generational_box::GenerationalRef", + { path = "generational_box::GenerationalRef", reason = "Reads should not be held over an await point. This will cause any writes to fail while the await is pending since the read borrow is still active." }, + "generational_box::GenerationalRefMut", + { path = "generational_box::GenerationalRefMut", reason = "Write should not be held over an await point. This will cause any reads or writes to fail while the await is pending since the write borrow is still active." }, + "dioxus_signals::Write", + { path = "dioxus_signals::Write", reason = "Write should not be held over an await point. This will cause any reads or writes to fail while the await is pending since the write borrow is still active." }, +] diff --git a/flake.nix b/flake.nix index ce3f513..d18c8d7 100644 --- a/flake.nix +++ b/flake.nix @@ -17,19 +17,22 @@ overlays = [fenix.overlays.default]; # overlays = [cargo2nix.overlays.default]; }; + toolchain = with fenix.packages.${system}; combine [ + minimal.cargo + minimal.rustc + latest.rustfmt + latest.clippy + latest.rust-src + targets.wasm32-unknown-unknown.latest.rust-std + ]; naersk' = pkgs.callPackage naersk {}; nbi = with pkgs; [ # Rust tools alejandra - (pkgs.fenix.stable.withComponents [ - "cargo" - "clippy" - "rust-src" - "rustc" - "rustfmt" - ]) + toolchain rust-analyzer vulkan-loader + wasm-bindgen-cli wayland wayland-protocols libxkbcommon diff --git a/justfile b/justfile new file mode 100644 index 0000000..1f2bdc4 --- /dev/null +++ b/justfile @@ -0,0 +1,20 @@ +ui := "-i" +file := "~/dev/lumina-dioxus/test_presentation.lisp" + +default: + just --list +build: + RUST_LOG=debug cargo build +css: + tailwindcss -i assets/styling/tailwind.css -o assets/styling/main.css --watch +run: + RUST_LOG=debug cargo run --release -- {{ui}} +clean: + RUST_LOG=debug cargo clean +test: + RUST_LOG=debug cargo test --benches --tests --all-features -- --nocapture +profile: + cargo flamegraph --image-width 4000 -- {{ui}} {{file}} + +alias r := run +alias c := clean diff --git a/pico-main/pico-main/.github/CONTRIBUTING.md b/pico-main/pico-main/.github/CONTRIBUTING.md new file mode 100644 index 0000000..f607198 --- /dev/null +++ b/pico-main/pico-main/.github/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contributing to Pico + +Thanks for your interest in contributing to Pico CSS! Please take a moment to review this document before submitting a [bug report](https://github.com/picocss/pico/issues) or a [pull request](https://github.com/picocss/pico/pulls). + +## Bug reports + +The [issue tracker]((https://github.com/picocss/pico/issues)) is the preferred channel for bug reports, but please respect the following restrictions: +- Please do not use the issue tracker for personal support requests. [Open a question in our discussion forums](https://github.com/picocss/pico/discussions/categories/help) instead. +- Please do not use the issue tracker for feature requests. Instead, use our discussion forums to [suggest any ideas](https://github.com/picocss/pico/discussions/categories/ideas) you have. + +## Pull requests + +Good pull requests, patches, improvements, and new features are a fantastic help. + +**Please ask before starting work on any significant new features.** +We recommend that you first [suggest your feature idea in our discussion forums](https://github.com/picocss/pico/discussions/categories/ideas). + +[`dev`](https://github.com/picocss/pico/tree/dev) branch is open for pull requests on `v2`. + +[`v1-dev`](https://github.com/picocss/pico/tree/v1-dev) branch is open to pull requests on `v1`. + +**Do not edit [`/css`](https://github.com/picocss/pico/tree/master/css) files directly.** Edit the source files in [`/scss`](https://github.com/picocss/pico/tree/master/scss), then recompile the [`/css`](https://github.com/picocss/pico/tree/master/css) files with `yarn build`. \ No newline at end of file diff --git a/pico-main/pico-main/.github/ISSUE_TEMPLATE/bug_report.md b/pico-main/pico-main/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..38402ed --- /dev/null +++ b/pico-main/pico-main/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,21 @@ +--- +name: Bug report +about: Create a bug report if you've already asked for help with a problem and confirmed something is broken with Pico CSS. +--- + +Please search for duplicate or closed issues first. + +## Describe the issue + +### Current Behavior +A concise description of the bug. + +### Expected Behavior +A concise description of what you expected. + +### Reproduction URL +We recommend including a link to a minimal reproduction of the bug using CodePen or a similar tool. +**Please do not link to your actual project.** Instead, we need a reduced test case in a new project without any unnecessary code. + +### Environment +Example: OS, versions, browser details. diff --git a/pico-main/pico-main/.github/ISSUE_TEMPLATE/config.yml b/pico-main/pico-main/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..4dad779 --- /dev/null +++ b/pico-main/pico-main/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Get Help + url: https://github.com/picocss/pico/discussions/categories/help + about: If you can't get something to work the way you expect, open a question in our discussion forums. + - name: Feature Request + url: https://github.com/picocss/pico/discussions/categories/ideas + about: Suggest any ideas you have using our discussion forums. \ No newline at end of file diff --git a/pico-main/pico-main/.github/logo-dark.svg b/pico-main/pico-main/.github/logo-dark.svg new file mode 100644 index 0000000..9d7fd7a --- /dev/null +++ b/pico-main/pico-main/.github/logo-dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/pico-main/pico-main/.github/logo-light.svg b/pico-main/pico-main/.github/logo-light.svg new file mode 100644 index 0000000..e5d38f9 --- /dev/null +++ b/pico-main/pico-main/.github/logo-light.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/pico-main/pico-main/.gitignore b/pico-main/pico-main/.gitignore new file mode 100644 index 0000000..b5ce3fa --- /dev/null +++ b/pico-main/pico-main/.gitignore @@ -0,0 +1,32 @@ +# OS or Editor folders +._* +.cache +.DS_Store +.idea +.project +.settings +.tmproj +*.esproj +*.sublime-project +*.sublime-workspace +nbproject +Thumbs.db +/.vscode/ + +# Numerous always-ignore extensions +*.diff +*.err +*.log +*.orig +*.rej +*.swo +*.swp +*.vi +*.zip +*~ + +# Folders to ignore +/node_modules/ + +# Pico +.pico diff --git a/pico-main/pico-main/.prettierrc b/pico-main/pico-main/.prettierrc new file mode 100644 index 0000000..de753c5 --- /dev/null +++ b/pico-main/pico-main/.prettierrc @@ -0,0 +1,3 @@ +{ + "printWidth": 100 +} diff --git a/pico-main/pico-main/LICENSE.md b/pico-main/pico-main/LICENSE.md new file mode 100644 index 0000000..94af9b1 --- /dev/null +++ b/pico-main/pico-main/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019-2024 Pico + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pico-main/pico-main/README.md b/pico-main/pico-main/README.md new file mode 100644 index 0000000..1832343 --- /dev/null +++ b/pico-main/pico-main/README.md @@ -0,0 +1,238 @@ +

+ + + + + Pico CSS + + +

+ +[![Github release](https://img.shields.io/github/v/release/picocss/pico?color=0172ad&logo=github&logoColor=white)](https://github.com/picocss/pico/releases/latest) +[![npm version](https://img.shields.io/npm/v/@picocss/pico?color=0172ad)](https://www.npmjs.com/package/@picocss/pico) +[![License](https://img.shields.io/badge/license-MIT-%230172ad)](https://github.com/picocss/pico/blob/master/LICENSE.md) +[![X (formerly Twitter)](https://img.shields.io/twitter/url/https/twitter.com/picocss.svg?style=social&label=Follow%20%40picocss)](https://x.com/picocss) + +## Minimal CSS Framework for Semantic HTML + +A minimalist and lightweight starter kit that prioritizes semantic syntax, making every HTML element responsive and elegant by default. + +Write HTML, Add Pico CSS, and Voilà! + +## What’s new in v2? + +Pico v2.0 features better accessibility, easier customization with SASS, a complete color palette, a new group component, and 20 precompiled color themes totaling over 100 combinations accessible via CDN. + +[Read more](https://picocss.com/docs/v2) + +## A Superpowered HTML Reset + +With just the right amount of everything, Pico is great starting point for a clean and lightweight design system. + +- Class-light and Semantic +- Great Styles with Just CSS +- Responsive Everything +- Light or Dark Mode +- Easy Customization +- Optimized Performance + +## Table of contents + +- [Quick start](#quick-start) +- [Class-less version](#class-less-version) +- [Limitations](#limitations) +- [Documentation](#documentation) +- [Browser Support](#browser-support) +- [Contributing](#contributing) +- [Copyright and license](#copyright-and-license) + +## Quick start + +There are 4 ways to get started with pico.css: + +### Install manually + +[Download Pico](https://github.com/picocss/pico/archive/refs/heads/main.zip) and link `/css/pico.min.css` in the `` of your website. + +```html + +``` + +### Usage from CDN + +Alternatively, you can use [jsDelivr CDN](https://www.jsdelivr.com/package/npm/@picocss/pico) to link pico.css. + +```html + +``` + +### Install with NPM + +```shell +npm install @picocss/pico +``` + +Or + +```shell +yarn add @picocss/pico +``` + +Then, import Pico into your SCSS file with [@use](https://sass-lang.com/documentation/at-rules/use): + +```SCSS +@use "pico"; +``` + +### Install with Composer + +```shell +composer require picocss/pico +``` + +### Starter HTML template + +```HTML + + + + + + + + Hello world! + + +
+

Hello world!

+
+ + +``` + +## Class-less version + +Pico provides a `.classless` version. + +In this version, `
`, `
`, and `