Compare changes

Choose any two refs to compare.

+19 -19
backend-rs/src/server.rs
··· 28 28 use tokio::sync::{Mutex, MutexGuard}; 29 29 30 30 use crate::config::{LuminaConfig, LuminaLogConfig}; 31 - use crate::serve::notfound; 31 + use crate::pages::notfound; 32 32 use assets::{fonts, vec_string_assets_anons_svg, STR_CLEAN_CUSTOMSTYLES_CSS}; 33 33 34 34 /// ## API's to the front-end. ··· 279 279 secret_key.clone(), 280 280 )) 281 281 .default_service(web::to(notfound)) 282 - .route("/", web::get().to(serve::root)) 283 - .route("/home", web::get().to(serve::homepage)) 284 - .route("/login", web::get().to(serve::login)) 285 - .route("/signup", web::get().to(serve::signup)) 286 - .route("/session/logout", web::get().to(serve::logout)) 287 - .route("/home/", web::get().to(serve::homepage)) 288 - .route("/login/", web::get().to(serve::login)) 289 - .route("/signup/", web::get().to(serve::signup)) 290 - .route("/session/logout/", web::get().to(serve::logout)) 291 - .route("/app.js", web::get().to(serve::appjs)) 292 - .route("/app.js.map", web::get().to(serve::appjsmap)) 282 + .route("/", web::get().to(pages::root)) 283 + .route("/home", web::get().to(pages::homepage)) 284 + .route("/login", web::get().to(pages::login)) 285 + .route("/signup", web::get().to(pages::signup)) 286 + .route("/session/logout", web::get().to(pages::logout)) 287 + .route("/home/", web::get().to(pages::homepage)) 288 + .route("/login/", web::get().to(pages::login)) 289 + .route("/signup/", web::get().to(pages::signup)) 290 + .route("/session/logout/", web::get().to(pages::logout)) 291 + .route("/app.js", web::get().to(pages::appjs)) 292 + .route("/app.js.map", web::get().to(pages::appjsmap)) 293 293 .route( 294 294 "/api/fe/fetch-page", 295 295 web::post().to(api_fe::pageservresponder), ··· 307 307 "/api/fe/auth-create/check-username", 308 308 web::post().to(api_fe::check_username), 309 309 ) 310 - .route("/red-cross.svg", web::get().to(serve::red_cross_svg)) 311 - .route("/spinner.svg", web::get().to(serve::spinner_svg)) 312 - .route("/green-check.svg", web::get().to(serve::green_check_svg)) 313 - .route("/logo.svg", web::get().to(serve::logo_svg)) 314 - .route("/favicon.ico", web::get().to(serve::logo_png)) 315 - .route("/logo.png", web::get().to(serve::logo_png)) 310 + .route("/red-cross.svg", web::get().to(pages::red_cross_svg)) 311 + .route("/spinner.svg", web::get().to(pages::spinner_svg)) 312 + .route("/green-check.svg", web::get().to(pages::green_check_svg)) 313 + .route("/logo.svg", web::get().to(pages::logo_svg)) 314 + .route("/favicon.ico", web::get().to(pages::logo_png)) 315 + .route("/logo.png", web::get().to(pages::logo_png)) 316 316 .service(avatar) 317 317 .service(serve_fonts) 318 318 .app_data(web::Data::clone(&server_q)) ··· 418 418 } 419 419 420 420 mod config; 421 - mod serve; 421 + mod pages; 422 422 423 423 #[doc = r"Font file server"] 424 424 #[get("/fonts/{a:.*}")]
+17
.run/Run (with Rust backend and Gleam frontend) (1).run.xml
··· 1 + <component name="ProjectRunConfigurationManager"> 2 + <configuration default="false" name="Run (with Rust backend and Gleam frontend) (1)" type="ShConfigurationType"> 3 + <option name="SCRIPT_TEXT" value="bash ./build.sh --frontend=gleam --backend=rust --run" /> 4 + <option name="INDEPENDENT_SCRIPT_PATH" value="true" /> 5 + <option name="SCRIPT_PATH" value="./build.sh" /> 6 + <option name="SCRIPT_OPTIONS" value="" /> 7 + <option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" /> 8 + <option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" /> 9 + <option name="INDEPENDENT_INTERPRETER_PATH" value="true" /> 10 + <option name="INTERPRETER_PATH" value="/usr/bin/zsh" /> 11 + <option name="INTERPRETER_OPTIONS" value="" /> 12 + <option name="EXECUTE_IN_TERMINAL" value="true" /> 13 + <option name="EXECUTE_SCRIPT_FILE" value="false" /> 14 + <envs /> 15 + <method v="2" /> 16 + </configuration> 17 + </component>
+17
.run/Watch (with Rust backend and Gleam frontend).run.xml
··· 1 + <component name="ProjectRunConfigurationManager"> 2 + <configuration default="false" name="Watch (with Rust backend and Gleam frontend)" type="ShConfigurationType"> 3 + <option name="SCRIPT_TEXT" value="bash ./watch.sh --frontend=gleam --backend=rust" /> 4 + <option name="INDEPENDENT_SCRIPT_PATH" value="true" /> 5 + <option name="SCRIPT_PATH" value="./build.sh" /> 6 + <option name="SCRIPT_OPTIONS" value="" /> 7 + <option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" /> 8 + <option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" /> 9 + <option name="INDEPENDENT_INTERPRETER_PATH" value="true" /> 10 + <option name="INTERPRETER_PATH" value="/usr/bin/zsh" /> 11 + <option name="INTERPRETER_OPTIONS" value="" /> 12 + <option name="EXECUTE_IN_TERMINAL" value="true" /> 13 + <option name="EXECUTE_SCRIPT_FILE" value="false" /> 14 + <envs /> 15 + <method v="2" /> 16 + </configuration> 17 + </component>
-7
backend-rs/frontend_assets/svg/add.svg
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - <svg width="120" height="120" version="1.1" viewBox="0 0 120 120" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(3.0862 0 0 3.0862 24.842 20.186)" display="none" fill="none" stroke="#1c274c" stroke-width="1.5"><path d="m15.287 3.1518-0.9268 0.92688-8.5213 8.5212h-1e-5c-0.57715 0.5772-0.86573 0.8657-1.1139 1.1839-0.29277 0.3754-0.54376 0.7815-0.74856 1.2112-0.17361 0.3643-0.30266 0.7515-0.56078 1.5258l-1.3611 4.0834c-0.12702 0.381-0.02785 0.8011 0.25618 1.0852 0.28403 0.284 0.70415 0.3832 1.0852 0.2562l0.80208-0.2674 3.2813-1.0938h1e-5c0.77434-0.2581 1.1615-0.3871 1.5258-0.5607 0.42971-0.2048 0.83584-0.4558 1.2112-0.7486 0.3182-0.2482 0.6067-0.5368 1.1839-1.1139l8.5212-8.5213 0.9269-0.92687c1.5357-1.5357 1.5357-4.0256 0-5.5613-1.5357-1.5357-4.0256-1.5357-5.5613 0z"/><path d="m14.36 4.0781s0.1159 1.9696 1.8538 3.7075 3.7075 1.8538 3.7075 1.8538m-15.723 12.038-1.8761-1.8762" opacity=".5"/></g><g stroke-linecap="round" stroke-linejoin="round"><ellipse cx="60.481" cy="59.218" rx="53.378" ry="53.18" fill-opacity=".098814" opacity=".854" stroke="currentColor" stroke-width="2.8898"/><g stroke="currentColor"><path transform="matrix(.18738 .032737 -.032737 .18738 32.779 64.063)" d="m23.999 84.377 8.5638-61.703 49.155 38.268z" stroke-width="2.7789"/><path transform="matrix(.43357 .44112 -.79833 .78466 94.362 -13.574)" d="m24.951 75.234c-2.5778-3.0222-0.16522-33.42 2.857-35.998 3.0222-2.5778 33.42-0.16522 35.998 2.857 2.5778 3.0222 0.16522 33.42-2.857 35.998s-33.42 0.16522-35.998-2.857z" stroke-width="2.7789"/><path d="m44.869 57.785-6.2376 12.805" stroke-width="2.2881"/><path d="m44.009 77.824 13.937-2.9366" stroke-width="2.2881"/></g></g><ellipse transform="rotate(-33.998)" cx="46.958" cy="77.102" rx="5.2378" ry="10.761" opacity=".85" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.7789"/></svg>
-6
backend-rs/frontend_assets/svg/arrow-right.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><path id="arrowright" style="fill:currentColor;fill-opacity:1;stroke:currentColor;stroke-width:2.848;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:fill markers stroke" d="m 30.152807,9.1863138 a 7.7145349,0.13753011 41.944235 0 0 5.615234,5.2304682 7.7145349,0.13753011 41.944235 0 0 5.859375,5.082031 7.7145349,0.13753011 41.944235 0 0 -5.613281,-5.230468 7.7145349,0.13753011 41.944235 0 0 -5.861328,-5.0820312 z M 45.035619,22.438267 a 0.42024437,0.94349396 0 0 0 -0.419922,0.943359 0.42024437,0.94349396 0 0 0 0.419922,0.945313 0.42024437,0.94349396 0 0 0 0.419922,-0.945313 0.42024437,0.94349396 0 0 0 -0.419922,-0.943359 z M 18.87351,23.049595 A 14.878937,0.26167485 0 0 0 3.9946033,23.311313 14.878937,0.26167485 0 0 0 18.87351,23.573032 14.878937,0.26167485 0 0 0 33.752416,23.311313 14.878937,0.26167485 0 0 0 18.87351,23.049595 Z m 22.796875,4.263672 a 0.13753011,7.7145349 48.055765 0 0 -5.859375,5.082031 0.13753011,7.7145349 48.055765 0 0 -5.615234,5.230469 0.13753011,7.7145349 48.055765 0 0 5.859374,-5.082032 0.13753011,7.7145349 48.055765 0 0 5.615235,-5.230468 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar1.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#b9bbee;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:maroon;fill-opacity:.348548;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar2.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#eeddb9;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:#002780;fill-opacity:.34854802;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar3.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#a8ffa3;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:#9704ff;fill-opacity:.34854802;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar4.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#e0eae0;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:#36b2ac;fill-opacity:.34854802;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar5.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#643267;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:#6bd800;fill-opacity:.51393187;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/avatar6.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg20" width="50" height="50" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" version="1.1" viewBox="0 0 50 50"><defs id="defs20"><clipPath id="p.0-1"><path id="path1-2" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><clipPath id="p.0-1-4"><path id="path1-2-0" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath></defs><clipPath id="p.0"><path id="path1" d="M 0,0 H 960 V 720 H 0 Z" clip-rule="nonzero"/></clipPath><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:6.38572;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="25.036" cy="25.14" rx="24.894" ry="24.993"/><path id="path3" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 13.675942,34.154429 3.3403878,63.076639" style="stroke-width:.104845"/><path id="path4" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 13.675942,34.154429 3.3403878,63.076639"/><path id="path5" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 3.3394916,63.076641 26.463401,62.627244" style="stroke-width:.104845"/><path id="path6" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 3.3394916,63.076641 26.463401,62.627244"/><path id="path7" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 37.137291,33.627544 49.257679,62.051776" style="stroke-width:.104845"/><path id="path8" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 37.137291,33.627544 49.257679,62.051776"/><path id="path9" fill="#000" fill-opacity="0" fill-rule="evenodd" d="M 49.257334,62.050424 26.137015,62.62735" style="stroke-width:.104845"/><path id="path10" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="M 49.257334,62.050424 26.137015,62.62735"/><path id="path11" fill="#cfe2f3" fill-rule="evenodd" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z" style="fill:#454;fill-opacity:1;stroke-width:.104845"/><path id="path12" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 9.6085775,26.677672 v 0 c 0,-7.605971 6.7859175,-13.771827 15.1567725,-13.771827 q 7.578387,0 15.156777,0 0,6.885913 0,13.771827 v 0 c 0,7.605972 -6.785918,13.771829 -15.156777,13.771829 v 0 c -8.370854,0 -15.1567725,-6.165857 -15.1567725,-13.771829 z"/><path id="path13" fill="#434343" fill-rule="evenodd" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z" style="stroke-width:.104845"/><path id="path14" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 14.49534,21.551888 v 0 c 0,-1.267803 0.992846,-2.295558 2.217581,-2.295558 v 0 c 0.588139,0 1.152192,0.241852 1.568067,0.672353 0.415878,0.430502 0.649516,1.014385 0.649516,1.623205 v 0 c 0,1.267801 -0.992845,2.295557 -2.217583,2.295557 v 0 c -1.224735,0 -2.217581,-1.027756 -2.217581,-2.295557 z"/><path id="path20" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548"/><path id="path15" fill="#434343" fill-rule="evenodd" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z" style="stroke-width:.104845"/><path id="path16" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 26.060287,21.551888 v 0 c 0,-1.267803 0.992843,-2.295558 2.217583,-2.295558 v 0 c 0.588137,0 1.152191,0.241852 1.568069,0.672353 0.415875,0.430502 0.649513,1.014385 0.649513,1.623205 v 0 c 0,1.267801 -0.992847,2.295557 -2.217582,2.295557 v 0 c -1.22474,0 -2.217583,-1.027756 -2.217583,-2.295557 z"/><path id="path17" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396" style="stroke-width:.104845"/><path id="path18" fill-rule="evenodd" stroke="#000" stroke-linecap="butt" stroke-linejoin="round" stroke-width=".105" d="m 16.124261,30.350767 c 1.176125,0 1.764191,0.516197 2.352254,1.032392 0.588061,0.5162 1.176126,1.032396 2.352253,1.032396"/><path id="path19" fill="#000" fill-opacity="0" fill-rule="evenodd" d="m 20.920344,32.493238 c 1.379928,0 2.069892,-0.210275 2.759856,-0.420549 0.689963,-0.210275 1.379927,-0.420548 2.759858,-0.420548" style="stroke-width:.104845"/><path style="fill:#d89800;fill-opacity:.51393187;stroke-width:.108022" id="path21" d="M 3.5645052,62.796866 C 3.6113167,62.628582 12.372818,38.099617 12.938598,36.543302 l 0.276237,-0.759135 0.848439,0.750487 c 1.871046,1.654958 3.780284,2.690927 6.22895,3.37969 1.610931,0.452965 2.540168,0.572693 4.478365,0.574688 1.354292,0.0016 1.848306,-0.03327 2.692999,-0.172274 3.687715,-0.621914 7.078461,-2.478145 9.331288,-5.108942 l 0.593271,-0.692819 0.105003,0.225485 c 0.554477,1.190483 11.566724,27.158366 11.529936,27.189496 -0.08494,0.07117 -21.916135,0.603955 -36.430422,0.88877 -9.9347255,0.19489 -9.0927079,0.196886 -9.0278297,-0.01995 z"/></svg>
-6
backend-rs/frontend_assets/svg/bell.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg1" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true" class="inline w-6 h-6" version="1.1" viewBox="0 0 24 24"><path id="path1" stroke-linecap="round" stroke-linejoin="round" d="M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0"/><ellipse style="stroke-opacity:1;stroke-dasharray:none;stroke-width:.9;stroke:#000;fill-rule:evenodd;fill:red" id="path2" cx="16.526" cy="19.078" class="svg_activenotification" rx="1.919" ry="1.817"/></svg>
-7
backend-rs/frontend_assets/svg/boost.svg
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - <svg width="120" height="120" version="1.1" viewBox="0 0 120 120" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><ellipse cx="58.299" cy="60.059" rx="42.156" ry="40.068" fill-opacity=".098814" opacity=".85" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.1034"/><g transform="matrix(-.46196 -.12948 -.14495 .51715 104.99 42.454)" fill-opacity=".9885" opacity=".85" stroke="currentColor" stroke-linecap="square"><rect transform="matrix(-.61519 -.78838 .72963 -.68384 0 0)" x="-140.46" y="5.9193" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/><rect x="21.656" y="25.317" width="3.2053" height="67.868" ry=".27051" stroke-width="4.514" style="paint-order:fill markers stroke"/><rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="32.372" y="69.376" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/><rect transform="rotate(90)" x="89.925" y="-88.832" width="3.2437" height="67.064" ry=".2673" stroke-width="4.514" style="paint-order:fill markers stroke"/><rect transform="matrix(-.64475 -.76439 .75555 -.6551 0 0)" x="-150.67" y="-2.4582" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/><rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="-6.9496" y="119.46" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5227" style="paint-order:fill markers stroke"/><rect transform="matrix(-.64475 .76439 .75555 .6551 0 0)" x="-12.385" y="115.05" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/></g><g transform="matrix(.46196 .12948 .14495 -.51715 13.238 80.586)" fill-opacity=".9885" opacity=".85" stroke="currentColor" stroke-linecap="square"><rect transform="matrix(-.61519 -.78838 .72963 -.68384 0 0)" x="-140.46" y="5.9193" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/><rect x="21.656" y="25.317" width="3.2053" height="67.868" ry=".27051" stroke-width="4.514" style="paint-order:fill markers stroke"/><rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="32.372" y="69.376" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/><rect transform="rotate(90)" x="89.925" y="-88.832" width="3.2437" height="67.064" ry=".2673" stroke-width="4.514" style="paint-order:fill markers stroke"/><rect transform="matrix(-.64475 -.76439 .75555 -.6551 0 0)" x="-150.67" y="-2.4582" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/><rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="-6.9496" y="119.46" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5227" style="paint-order:fill markers stroke"/><rect transform="matrix(-.64475 .76439 .75555 .6551 0 0)" x="-12.385" y="115.05" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/></g></svg>
-17
backend-rs/frontend_assets/svg/comment.svg
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - <svg width="120" height="120" version="1.1" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> 8 - <g transform="matrix(-.70451 0 0 .69982 104.54 6.742)" fill-opacity=".9885" stroke="currentColor" stroke-linecap="square"> 9 - <rect transform="matrix(-.61519 -.78838 .72963 -.68384 0 0)" x="-140.46" y="5.9193" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/> 10 - <rect x="21.656" y="25.317" width="3.2053" height="67.868" ry=".27051" stroke-width="4.514" style="paint-order:fill markers stroke"/> 11 - <rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="32.372" y="69.376" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5232" style="paint-order:fill markers stroke"/> 12 - <rect transform="rotate(90)" x="89.925" y="-88.832" width="3.2437" height="67.064" ry=".2673" stroke-width="4.514" style="paint-order:fill markers stroke"/> 13 - <rect transform="matrix(-.64475 -.76439 .75555 -.6551 0 0)" x="-150.67" y="-2.4582" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/> 14 - <rect transform="matrix(-.61519 .78838 .72963 .68384 0 0)" x="-6.9496" y="119.46" width="2.0121" height="14.936" ry=".059533" stroke-width="4.5227" style="paint-order:fill markers stroke"/> 15 - <rect transform="matrix(-.64475 .76439 .75555 .6551 0 0)" x="-12.385" y="115.05" width="3.5364" height="26.57" ry=".1059" stroke-width="4.5142" style="paint-order:fill markers stroke"/> 16 - </g> 17 - </svg>
-6
backend-rs/frontend_assets/svg/green_check.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" style="display:block;shape-rendering:auto" id="svg12" width="10" height="10" preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 5 5"><defs id="defs12"><linearGradient id="linearGradient7"><stop style="stop-color:#d3d3d3;stop-opacity:1" id="stop8" offset="0"/><stop style="stop-color:#d3d3d3;stop-opacity:0" id="stop9" offset="1"/></linearGradient></defs><ellipse style="display:block;shape-rendering:auto;fill:#c4c4c4;stroke-width:.6375;fill-opacity:.34854773;stroke-dasharray:none;stroke:none" id="path2" cx="2.511" cy="2.511" rx="2.483" ry="2.497"/><path style="fill:#0f0;stroke-width:.323941" id="path1" d="m 1.3269245,1.5156002 c 0.1393806,-0.00489 0.2772916,-0.029078 0.4152688,-0.048014 0.025488,-0.0035 0.081815,-0.011673 0.1025075,-0.00509 0.00293,9.347e-4 -0.00115,0.00702 0.00132,0.0088 0.00526,0.00377 0.022336,-0.00756 0.027597,-0.00379 0.00495,0.00355 0.00176,0.011729 0.00264,0.0176 0.00397,0.026466 3.55e-4,0.04936 -0.00784,0.072923 -0.00622,0.017874 0.011863,0.062224 0.011876,0.079199 1.91e-5,0.03279 -0.00538,0.065736 -0.00389,0.099323 0.003,0.066958 0.020415,0.1361167 0.030355,0.2023963 0.021997,0.1466642 0.043993,0.2933281 0.065989,0.4399921 0.015182,0.1012244 0.022315,0.208489 0.046192,0.3079945 0.010398,0.043339 0.02408,0.086978 0.038194,0.1294718 0.0047,0.01412 0.00252,0.029707 0.0066,0.044 0.00813,0.028486 0.02459,0.057255 0.031595,0.085473 0.00815,0.032823 0.00509,0.097506 0.019796,0.1319979 0.00422,0.0099 0.012928,-0.018339 0.014437,-0.028925 0.00763,-0.053416 0.035616,-0.1040133 0.061673,-0.1521602 0.00949,-0.017528 0.038442,-0.060164 0.044635,-0.077974 0.00196,-0.00563 -0.0041,-0.011839 -0.00264,-0.017601 0.0098,-0.038652 0.014972,-0.063276 0.022278,-0.101848 0.00567,-0.029961 0.034861,-0.049865 0.044636,-0.077974 0.00262,-0.00754 -0.00659,-0.018855 -0.00397,-0.0264 0.00553,-0.015906 0.023101,-0.025547 0.031516,-0.04025 0.00666,-0.011618 0.00715,-0.025766 0.013114,-0.037725 0.02929,-0.058677 0.1052461,-0.104809 0.1365842,-0.1534607 0.00514,-0.00798 0.00144,-0.019023 0.00525,-0.027662 0.013087,-0.029798 0.039744,-0.057152 0.052515,-0.088035 0.00361,-0.00871 8.213e-4,-0.0193 0.00525,-0.027662 0.025269,-0.047798 0.066769,-0.090794 0.09191,-0.1383482 0.024264,-0.045897 0.041335,-0.096475 0.062994,-0.1433602 0.017293,-0.037435 0.051758,-0.063635 0.069592,-0.099362 0.00133,-0.00267 -0.00318,-0.00643 -0.00132,-0.0088 0.00186,-0.00237 0.00734,0.00111 0.0092,-0.00126 0.00371,-0.00474 -0.00635,-0.012857 -0.00264,-0.0176 0.00185,-0.00237 0.00734,0.00111 0.0092,-0.00126 0.00186,-0.00237 -0.0023,-0.00599 -0.00132,-0.0088 0.00138,-0.00398 0.00526,-0.0067 0.00788,-0.010063 0.00349,-0.018441 0.00515,-0.03729 0.010478,-0.055325 0.00608,-0.020562 0.017806,-0.03929 0.028877,-0.057848 0.014154,-0.023728 0.033648,-0.04452 0.045955,-0.069173 0.00298,-0.00599 0.00241,-0.013559 0.00656,-0.018862 0.00415,-0.0053 0.012928,-0.00602 0.017079,-0.011329 0.0067,-0.00855 0.00775,-0.020373 0.014437,-0.028925 0.012408,-0.015849 0.053261,-0.04705 0.065672,-0.062899 0.011543,-0.014747 0.010385,-0.040356 0.019678,-0.056586 0.024247,-0.042359 0.050559,-0.084621 0.074831,-0.127023 0.00276,-0.00482 0.00168,-0.044078 0.0026,-0.045262 0.00813,-0.010393 0.070227,-0.00964 0.08279,-0.011357 0.050123,-0.00688 0.2347721,-0.035977 0.2391704,-0.032826 0.00249,0.00178 -0.00116,0.00702 0.00132,0.0088 0.00318,0.00227 0.054872,-0.00753 0.055193,-0.00757 0.042975,-0.00589 0.2015482,-0.044077 0.2312916,-0.022763 0.00965,0.00692 0.00877,0.058479 0.010558,0.070399 0.00847,0.05647 -0.011556,0.1619356 -0.053754,0.2049592 -0.029007,0.029577 -0.061027,0.054924 -0.090625,0.084284 -0.021287,0.021117 -0.03536,0.04803 -0.055153,0.070437 -0.017328,0.019613 -0.090118,0.081583 -0.095869,0.1119479 -0.00305,0.016112 4.505e-4,0.029151 -0.0026,0.045262 -0.00278,0.014692 -0.01917,0.030801 -0.020997,0.047787 -0.00262,0.024357 -0.00726,0.048285 -0.00784,0.072923 0.035952,0.029065 -0.010092,0.03065 -0.011796,0.046524 -0.00127,0.011784 0.0075,0.023535 0.00529,0.035199 -0.0075,0.039597 -0.00397,0.1121668 -0.01568,0.1458477 -0.00414,0.011935 -0.017595,0.019023 -0.023637,0.030187 -0.017663,0.032636 -0.030201,0.096274 -0.045915,0.1320351 -0.01133,0.025771 -0.022,0.051886 -0.035436,0.076712 -0.010065,0.018607 -0.030908,0.030995 -0.039395,0.050311 -0.00379,0.00865 -0.00182,0.018881 -0.00525,0.027662 -0.1090605,0.2798502 0.014303,-0.048289 -0.057754,0.1156978 -0.01826,0.041556 -0.031432,0.090389 -0.045915,0.132035 -0.00887,0.025486 0.00272,0.055171 -0.00652,0.081724 -0.00489,0.014059 -0.016795,0.025145 -0.022318,0.038986 -0.00595,0.014908 -0.00534,0.031813 -0.011796,0.046524 -0.031416,0.071497 -0.091898,0.1278488 -0.1405037,0.1899225 -0.045895,0.058612 -0.086435,0.1208723 -0.1326244,0.1798601 -0.027898,0.035627 -0.055299,0.07739 -0.08667,0.1106856 -0.00748,0.00794 -0.018261,0.01283 -0.024958,0.021387 -0.051467,0.065728 0.050898,-0.035662 -0.022318,0.038986 -0.038362,0.039113 -0.067069,0.080493 -0.1037483,0.1220108 -0.0072,0.00816 -0.018967,0.012375 -0.024958,0.021387 -0.00969,0.014584 -0.012129,0.032734 -0.020998,0.047787 -0.048236,0.081878 -0.054868,0.074472 -0.1089873,0.1496729 -0.1177969,0.1636876 0.035137,-0.04153 -0.066952,0.1169615 -0.00493,0.00765 -0.020753,0.00553 -0.026277,0.012582 -0.00262,0.00336 -0.00261,0.024308 -0.00525,0.027662 -0.00123,0.00157 -0.035157,0.00622 -0.036795,0.00505 -0.00248,-0.00178 0.00116,-0.00702 -0.00132,-0.0088 -0.00389,-0.00278 -0.064894,-0.024554 -0.069672,-0.026362 -0.045239,-0.017118 -0.041467,-0.010049 -0.077551,-0.016299 -0.00863,-0.0015 -0.012728,-0.01243 -0.021037,-0.015075 -0.00929,-0.00296 -0.019887,-0.00138 -0.028917,-0.00501 -0.027662,-0.011119 -0.05166,-0.033196 -0.081506,-0.042695 -0.035476,-0.011288 -0.080173,-0.015408 -0.116985,-0.028849 -0.054014,-0.019721 -0.1042196,-0.053369 -0.1603798,-0.067798 -0.00598,-0.00153 -0.012515,0.00439 -0.018398,0.00252 -0.00421,-0.00134 -0.020109,-0.054248 -0.019757,-0.069136 0.00127,-0.053764 0.021508,-0.1135489 0.031438,-0.1659723 0.00815,-0.042999 -5.144e-4,-0.111949 -0.00404,-0.1521235 C 1.664044,3.1233123 1.6246767,2.9375429 1.5971214,2.7538145 1.5879482,2.692646 1.5666183,2.6222172 1.5680868,2.5602179 1.5697777,2.4886934 1.5756091,2.4160872 1.5732126,2.3439717 1.570723,2.269314 1.5499403,2.1888002 1.5388979,2.1151758 1.5311626,2.0636007 1.5306434,1.998637 1.5138215,1.9479789 1.4964698,1.8957362 1.4757364,1.8468165 1.4624693,1.7933694 1.4517651,1.750263 1.4353479,1.687349 1.440033,1.6437721 c 4.488e-4,-0.00417 0.0071,-0.00593 0.00788,-0.010063 0.00429,-0.022602 -0.010078,-0.062767 -0.021077,-0.077937 -0.00353,-0.00487 0.00232,-0.014047 -0.00264,-0.0176 -0.00526,-0.00377 -0.014459,-0.00251 -0.019718,-0.00628 -0.00495,-0.00355 0.00232,-0.014047 -0.00264,-0.0176 -0.00526,-0.00377 -0.014459,-0.00251 -0.019718,-0.00628 -0.00248,-0.00178 0.00174,-0.00922 -0.00132,-0.0088 -0.018651,0.00256 -0.035915,0.010916 -0.053874,0.016375 z"/></svg>
-100
backend-rs/frontend_assets/svg/luminalogo-0.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - 8 - <svg 9 - id="svg1" 10 - width="120" 11 - height="120" 12 - version="1.1" 13 - viewBox="0 0 120 120" 14 - sodipodi:docname="luminalogo-0.svg" 15 - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" 16 - inkscape:export-filename="../png/luminalogo-0.png" 17 - inkscape:export-xdpi="96" 18 - inkscape:export-ydpi="96" 19 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 20 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 21 - xmlns="http://www.w3.org/2000/svg" 22 - xmlns:svg="http://www.w3.org/2000/svg"> 23 - <defs 24 - id="defs1" /> 25 - <sodipodi:namedview 26 - id="namedview1" 27 - pagecolor="#ffffff" 28 - bordercolor="#000000" 29 - borderopacity="0.25" 30 - inkscape:showpageshadow="2" 31 - inkscape:pageopacity="0.0" 32 - inkscape:pagecheckerboard="0" 33 - inkscape:deskcolor="#d1d1d1" 34 - inkscape:zoom="3.2785512" 35 - inkscape:cx="14.3356" 36 - inkscape:cy="36.601533" 37 - inkscape:window-width="1920" 38 - inkscape:window-height="1128" 39 - inkscape:window-x="0" 40 - inkscape:window-y="0" 41 - inkscape:window-maximized="1" 42 - inkscape:current-layer="svg1" /> 43 - <g 44 - id="layer1" 45 - transform="translate(-1.1977755,1.3276101)"> 46 - <ellipse 47 - style="fill:#ffcc00" 48 - id="path1" 49 - cx="32.622002" 50 - cy="99.763" 51 - rx="14.187" 52 - ry="13.374" /> 53 - <ellipse 54 - style="fill:#000080" 55 - id="path2" 56 - cx="107.5645" 57 - cy="46.181362" 58 - rx="13.374" 59 - ry="15.091" /> 60 - <ellipse 61 - style="fill:#4d4d4d" 62 - id="path3" 63 - cx="26.115999" 64 - cy="28.646" 65 - rx="26.837999" 66 - ry="27.561001" /> 67 - <ellipse 68 - style="fill:#d38d5f" 69 - id="path4" 70 - cx="78.708" 71 - cy="30.181999" 72 - rx="6.5970001" 73 - ry="6.3260002" /> 74 - <path 75 - style="fill:#000000" 76 - id="path8" 77 - d="m 28.555366,54.21905 c 4.698985,33.615811 4.698985,33.615811 4.698985,33.615811" /> 78 - <path 79 - style="fill:#ffaeae;fill-opacity:1" 80 - id="path12" 81 - d="m 26.748065,29.459017 9.036508,67.231623 -0.72292,0.18073" /> 82 - <path 83 - style="fill:#790000;fill-opacity:1;stroke-width:2.16341" 84 - id="path14" 85 - d="m 112.07197,52.140484 -80.699252,-12.786469 2.519513,5.460883 v 0 0" 86 - sodipodi:nodetypes="ccccc" /> 87 - <path 88 - style="fill:#cd0909;fill-opacity:1" 89 - id="path13" 90 - d="m 35.423113,96.69064 42.83305,-65.424321 0.90365,0.542191 -42.833049,66.147241 h -0.18073 z" /> 91 - <path 92 - style="fill:#ff0000;stroke-width:3.57723" 93 - id="path15" 94 - d="M 82.607667,34.648745 111.7959,52.394116 v 0 L 78.614522,29.156547 Z" /> 95 - <path 96 - style="fill:#b94646;fill-opacity:1" 97 - id="path16" 98 - d="m 74.641559,29.820478 -39.760637,7.409937 v 0 l 38.676256,-9.397969 v 0 0 z" /> 99 - </g> 100 - </svg>
-109
backend-rs/frontend_assets/svg/luminalogo-1.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - 8 - <svg 9 - id="svg1" 10 - width="120" 11 - height="120" 12 - version="1.1" 13 - viewBox="0 0 120 120" 14 - sodipodi:docname="luminalogo-1.svg" 15 - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" 16 - inkscape:export-filename="../png/luminalogo-1.png" 17 - inkscape:export-xdpi="96" 18 - inkscape:export-ydpi="96" 19 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 20 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 21 - xmlns="http://www.w3.org/2000/svg" 22 - xmlns:svg="http://www.w3.org/2000/svg"> 23 - <defs 24 - id="defs1" /> 25 - <sodipodi:namedview 26 - id="namedview1" 27 - pagecolor="#ffffff" 28 - bordercolor="#000000" 29 - borderopacity="0.25" 30 - inkscape:showpageshadow="2" 31 - inkscape:pageopacity="0.0" 32 - inkscape:pagecheckerboard="0" 33 - inkscape:deskcolor="#d1d1d1" 34 - inkscape:zoom="4.112263" 35 - inkscape:cx="57.875675" 36 - inkscape:cy="49.607721" 37 - inkscape:window-width="1920" 38 - inkscape:window-height="1128" 39 - inkscape:window-x="0" 40 - inkscape:window-y="0" 41 - inkscape:window-maximized="1" 42 - inkscape:current-layer="svg1" /> 43 - <g 44 - id="layer2" 45 - style="display:inline;fill:#ff6f08;fill-opacity:0.524951" 46 - transform="translate(10.078565,21.743467)"> 47 - <path 48 - style="fill:#ff6f08;fill-opacity:0.524951" 49 - id="path6" 50 - d="m 59.920493,35.97327 c 0.02434,0.290094 0.06487,0.579283 0.07303,0.870282 0.01131,0.403437 -0.0064,0.807188 -0.01469,1.210697 -0.05537,2.686992 -0.310969,5.349396 -0.604281,8.019455 -0.106169,2.837652 -0.638764,5.639873 -0.814527,8.470747 -0.04226,0.680659 -0.07323,2.790624 -0.08607,3.501434 0.0277,2.689403 -8.45e-4,5.379505 -0.125408,8.066236 -0.09936,1.501992 0.01475,3.011357 0.197177,4.502895 0.18554,1.065579 0.406733,2.12569 0.658557,3.177578 0.233487,0.829929 0.428099,1.672688 0.697953,2.4918 0.15861,0.674107 0.418834,1.299222 0.727503,1.915881 0.521263,0.912555 1.196993,1.709777 1.883529,2.499603 0.639982,0.672658 1.363774,1.299117 2.168539,1.769866 12.558905,7.34636 8.506542,5.38692 13.682471,7.860804 0.665028,0.338812 1.374121,0.551272 2.082153,0.77281 0.438852,0.137313 0.703704,0.256905 1.149913,0.34846 0.177844,0.03649 0.359571,0.05048 0.539356,0.07573 0.518886,0.0311 1.040244,0.104878 1.5614,0.08885 0.497768,-0.01531 0.989018,-0.11971 1.479493,-0.19632 0.659206,-0.181827 1.298249,-0.439176 1.917167,-0.729161 0.307243,-0.133551 0.607881,-0.290232 0.927638,-0.393461 0.135487,-0.04374 0.27761,-0.06488 0.412977,-0.108988 1.890769,-0.616103 -0.88541,0.226671 0.938814,-0.319168 0.377858,-0.131535 0.778978,-0.142572 1.168105,-0.209501 0.214806,-0.03695 0.425372,-0.09579 0.639657,-0.135645 0,0 -12.209607,-8.45218 -12.209607,-8.45218 v 0 c -0.581512,0.164075 -1.167576,0.309306 -1.728315,0.540912 -0.842263,0.281829 -1.708842,0.493059 -2.530454,0.836332 -0.511785,0.204425 -1.015543,0.435988 -1.576605,0.465593 -0.892182,0.09574 -1.79237,-0.03477 -2.659459,-0.252228 -1.159405,-0.36404 -2.314346,-0.742668 -3.367466,-1.365985 -4.542034,-2.579233 -0.799218,-0.456481 11.000309,6.391652 0.21726,0.126092 -0.437465,-0.24722 -0.652055,-0.377806 -0.268427,-0.163349 -0.753488,-0.482226 -1.018052,-0.678238 -0.139255,-0.103172 -0.271663,-0.21528 -0.407494,-0.322919 -0.394614,-0.35058 -0.753781,-0.719271 -1.107072,-1.111628 -0.02426,-0.02695 -0.540442,-0.611006 -0.582238,-0.67203 -0.07216,-0.105355 -0.119835,-0.225532 -0.179752,-0.338298 -0.186438,-0.243567 -0.312176,-0.486041 -0.465793,-0.748918 -0.159681,-0.273254 -0.34586,-0.526382 -0.411041,-0.84603 -0.258232,-0.838446 -0.627088,-1.640644 -0.869039,-2.486231 -0.291198,-1.025474 -0.507349,-2.072221 -0.767053,-3.106035 -0.02222,-0.09355 -0.276309,-1.16084 -0.289439,-1.22702 -0.211621,-1.06661 -0.281172,-2.157808 -0.361743,-3.239794 -0.202839,-2.776164 -0.369193,-5.556343 -0.435037,-8.33941 -0.134457,-4.010728 -0.185302,-8.049303 0.412949,-12.028841 0.394999,-2.900178 0.828375,-5.83255 1.755081,-8.621441 0.07983,-0.24024 0.185911,-0.470944 0.278866,-0.706415 z" /> 51 - </g> 52 - <g 53 - id="layer1-5" 54 - transform="translate(0.73545524,-0.09329462)"> 55 - <ellipse 56 - style="fill:#ffcc00" 57 - id="path1-3" 58 - cx="32.622002" 59 - cy="99.763" 60 - rx="14.187" 61 - ry="13.374" /> 62 - <ellipse 63 - style="fill:#000080" 64 - id="path2-5" 65 - cx="107.5645" 66 - cy="46.181362" 67 - rx="13.374" 68 - ry="15.091" /> 69 - <ellipse 70 - style="fill:#4d4d4d" 71 - id="path3-6" 72 - cx="26.115999" 73 - cy="28.646" 74 - rx="26.837999" 75 - ry="27.561001" /> 76 - <ellipse 77 - style="fill:#d38d5f" 78 - id="path4-2" 79 - cx="78.708" 80 - cy="30.181999" 81 - rx="6.5970001" 82 - ry="6.3260002" /> 83 - <path 84 - style="fill:#000000" 85 - id="path8-9" 86 - d="m 28.555366,54.21905 c 4.698985,33.615811 4.698985,33.615811 4.698985,33.615811" /> 87 - <path 88 - style="fill:#ffaeae;fill-opacity:1" 89 - id="path12-1" 90 - d="m 26.748065,29.459017 9.036508,67.231623 -0.72292,0.18073" /> 91 - <path 92 - style="fill:#790000;fill-opacity:1;stroke-width:2.16341" 93 - id="path14-2" 94 - d="m 112.07197,52.140484 -80.699252,-12.786469 2.519513,5.460883 v 0 0" 95 - sodipodi:nodetypes="ccccc" /> 96 - <path 97 - style="fill:#cd0909;fill-opacity:1" 98 - id="path13-7" 99 - d="m 35.423113,96.69064 42.83305,-65.424321 0.90365,0.542191 -42.833049,66.147241 h -0.18073 z" /> 100 - <path 101 - style="fill:#ff0000;stroke-width:3.57723" 102 - id="path15-0" 103 - d="M 82.607667,34.648745 111.7959,52.394116 v 0 L 78.614522,29.156547 Z" /> 104 - <path 105 - style="fill:#b94646;fill-opacity:1" 106 - id="path16-9" 107 - d="m 74.641559,29.820478 -39.760637,7.409937 v 0 l 38.676256,-9.397969 v 0 0 z" /> 108 - </g> 109 - </svg>
-21
backend-rs/frontend_assets/svg/push.svg
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!-- 3 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 4 - ~ 5 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 6 - --> 7 - <svg width="120" height="120" version="1.1" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> 8 - <g transform="matrix(.66012 0 0 .80825 20.221 10.123)" fill="currentColor" stroke="currentColor" stroke-width="0"> 9 - <rect x="42.838" y="52.905" width="35.279" height="54.95" ry="7.0208" stroke-linecap="square" stroke-linejoin="bevel" style="paint-order:markers fill stroke"/> 10 - <g stroke-miterlimit="25.4"> 11 - <rect transform="matrix(-.79708 -.60388 -.60082 .79938 0 0)" x="-123.04" y="-24.688" width="59.5" height="6.6488" rx=".6593" ry="1.9825" style="paint-order:markers fill stroke"/> 12 - <rect transform="matrix(-.79527 -.60625 -.59845 .80116 0 0)" x="-119.49" y="-17.281" width="51.33" height="5.7404" rx=".56877" ry="1.7116" style="paint-order:markers fill stroke"/> 13 - <rect transform="matrix(-.79539 -.6061 -.5986 .80105 0 0)" x="-116.87" y="-10.047" width="42.871" height="4.7942" rx=".47504" ry="1.4295" style="paint-order:markers fill stroke"/> 14 - <rect transform="matrix(-.79418 -.60768 -.59701 .80224 0 0)" x="-127.08" y="-33.89" width="67.224" height="7.5215" rx=".74488" ry="2.2427" style="paint-order:markers fill stroke"/> 15 - <rect transform="matrix(.79708 -.60388 .60082 .79938 0 0)" x="-25.766" y="49.102" width="59.5" height="6.6488" rx=".6593" ry="1.9825" style="paint-order:markers fill stroke"/> 16 - <rect transform="matrix(.79527 -.60625 .59845 .80116 0 0)" x="-21.988" y="56.801" width="51.33" height="5.7404" rx=".56877" ry="1.7116" style="paint-order:markers fill stroke"/> 17 - <rect transform="matrix(.79539 -.6061 .5986 .80105 0 0)" x="-19.39" y="64.017" width="42.871" height="4.7942" rx=".47504" ry="1.4295" style="paint-order:markers fill stroke"/> 18 - <rect transform="matrix(.79418 -.60768 .59701 .80224 0 0)" x="-29.442" y="40.37" width="67.224" height="7.5215" rx=".74488" ry="2.2427" style="paint-order:markers fill stroke"/> 19 - </g> 20 - </g> 21 - </svg>
-6
backend-rs/frontend_assets/svg/red_cross.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" style="display:block;shape-rendering:auto" id="svg12" width="10" height="10" preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 5 5"><ellipse style="display:block;fill:#c4c4c4;fill-opacity:.348548;stroke:none;stroke-width:.6375;stroke-dasharray:none;shape-rendering:auto" id="path2" cx="2.476" cy="2.538" rx="2.483" ry="2.497"/><path style="fill:#ff2a2a;stroke-width:.444338" id="path1" d="m 2.588645,1.9822203 c 0.024583,-0.016861 0.047324,-0.036989 0.073751,-0.050582 0.039331,-0.020231 0.093979,-0.042019 0.1352102,-0.063227 0.030274,-0.015572 -0.011097,0.036706 0.036876,-0.012645 0.063613,-0.065443 -0.1015306,0.026935 0.073751,-0.063227 0.066262,-0.034085 0.1310751,-0.051028 0.1966694,-0.088518 0.00702,-0.00401 0.016644,-0.04689 0.024583,-0.063228 0.012414,-0.025543 0.044391,-0.033023 0.061459,-0.050582 0.039322,-0.040454 0.00962,-0.028148 0.036876,-0.050582 0.027212,-0.022395 0.088166,-0.065411 0.1106266,-0.088518 0.039226,-0.040355 0.068414,-0.1336104 0.098335,-0.1643914 0.033201,-0.034157 0.048957,-0.029218 0.073751,-0.063227 0.00777,-0.010664 0.00313,-0.028511 0.012292,-0.037937 0.00647,-0.00666 0.018105,-0.00598 0.024584,-0.012645 0.00647,-0.00666 0.00721,-0.017449 0.012292,-0.025291 0.019551,-0.030171 0.057846,-0.041471 0.086043,-0.063227 0.048656,-0.037542 7.842e-4,-0.013454 0.049168,-0.063227 0.00647,-0.00667 0.018105,-0.00598 0.024584,-0.012645 0.00289,-0.00298 -0.0029,-0.009665 0,-0.0126453 0.00289,-0.002979 0.00939,0.002979 0.012292,0 0.0029,-0.002979 -0.0029,-0.009665 0,-0.0126453 0.018591,-0.0191262 0.057222,-0.037721 0.073751,-0.0632274 0.00694,-0.0107114 -0.00848,-0.0418542 0,-0.0505819 0.011768,-0.0121058 0.030824,0.0101553 0.036876,0.0126453 0.015685,0.006455 0.033483,0.006192 0.049168,0.0126453 0.018809,0.00774 0.177731,0.15527439 0.1843775,0.16439139 0.030692,0.0421 0.0074,0.1366685 0.024584,0.1896822 0.00366,0.01131 0.017344,0.015981 0.024583,0.025291 0.012798,0.016457 0.021137,0.03709 0.036876,0.050582 0.00995,0.00854 0.025287,0.00669 0.036876,0.012645 0.051156,0.026314 -0.01314,-8.743e-4 0.012292,0.025291 0.0029,0.00298 0.00939,-0.00297 0.012292,0 0.014516,0.014935 -0.00829,0.076164 -0.012292,0.088518 -0.00875,0.027021 -0.054294,0.077631 -0.086043,0.088518 -0.011661,0.00399 -0.025882,-0.00565 -0.036876,0 -0.013213,0.0068 -0.026429,0.014544 -0.036876,0.025291 -0.00289,0.00297 0.0029,0.00966 0,0.012645 -0.035218,0.036231 -0.098407,0.038012 -0.1352102,0.075873 -0.012292,0.012645 -0.026445,0.023629 -0.036876,0.037936 -0.01437,0.019711 -0.013719,0.066164 -0.024584,0.088518 -0.011089,0.022815 -0.03839,0.041052 -0.049168,0.063227 -0.00183,0.00377 0.00366,0.010761 0,0.012645 -0.00733,0.00378 -0.017254,-0.00377 -0.024584,0 -0.112867,0.058057 0.084282,-0.00939 -0.061459,0.050582 -0.00761,0.00314 -0.017254,-0.00377 -0.024584,0 -0.00367,0.00188 0.00183,0.00888 0,0.012645 -0.00777,0.015995 -0.026445,0.023629 -0.036876,0.037937 -0.00777,0.010663 -0.00313,0.028511 -0.012292,0.037937 -0.0029,0.00297 -0.00939,-0.00298 -0.012292,0 -0.0029,0.00297 0.00183,0.00888 0,0.012645 -0.00493,0.01015 -0.047983,0.062009 -0.049168,0.063227 -0.00647,0.00666 -0.017254,0.00699 -0.024584,0.012645 -0.013907,0.01073 -0.022412,0.028016 -0.036876,0.037937 -0.037762,0.025899 -0.086259,0.044371 -0.1229184,0.063227 -0.021433,0.011025 -0.041125,0.060184 -0.061459,0.075873 -0.00655,0.00506 -0.016809,-0.00267 -0.024583,0 -0.010994,0.00378 -0.014218,0.019959 -0.024584,0.025292 -0.00733,0.00377 -0.017254,-0.00378 -0.024583,0 -0.040324,0.020741 -0.019842,0.01795 -0.098335,0.025291 -0.018689,0.00175 -0.1013298,-0.00956 -0.1106266,0 -0.00289,0.00298 0.0029,0.00966 0,0.012645 -0.00289,0.00297 -0.00939,-0.00298 -0.012292,0 -0.0029,0.00297 0.00183,0.00888 0,0.012645 -0.00984,0.020237 -0.076955,0.057728 -0.098335,0.063227 -0.018194,0.00468 -0.045092,0.00423 -0.061459,0.012645 -0.020731,0.010664 0.032778,0.033721 0.049168,0.050582 0.014972,0.015403 0.00576,0.028253 0.024584,0.037937 0.00733,0.00378 0.018789,-0.00596 0.024583,0 0.0029,0.00298 -0.0029,0.00966 0,0.012645 0.025432,0.026164 -9.989e-4,-0.039982 0.024584,0.012645 0.010879,0.022385 -0.018284,0.00433 0.012292,0.025291 0.023428,0.016068 0.053535,0.029785 0.073751,0.050582 0.00647,0.00666 0.00581,0.018627 0.012292,0.025292 0.00647,0.00666 0.018106,0.00598 0.024584,0.012645 0.048382,0.049774 5.126e-4,0.025686 0.049168,0.063227 0.013133,0.010133 0.078735,0.051951 0.086043,0.063228 0.023286,-0.00144 0.00819,0.029506 0.012292,0.037937 0.0041,0.00843 0.020486,0.00422 0.024584,0.012645 0.00366,0.00754 0,0.016861 0,0.025291 0.00819,0.00843 0.018621,0.015067 0.024583,0.025292 0.029656,0.015266 0.00295,0.044003 0.012292,0.063227 0.045644,0.093913 0.1085448,0.1650372 0.1597939,0.2529098 0.022295,0.038226 0.035407,0.076288 0.061459,0.1138094 0.08353,0.1203058 -0.046884,-0.088744 0.061459,0.050582 0.021249,0.027327 0.043591,0.1115268 0.061459,0.1391004 0.014363,0.022165 0.065879,0.064226 0.073751,0.088518 0.00259,0.008 -0.00259,0.017293 0,0.025292 0.00924,0.028512 0.057309,0.0505 0.073751,0.075873 0.031998,0.049378 -0.013913,5.273e-4 0.036876,0.063228 0.023739,0.029305 0.055523,0.054941 0.086043,0.075873 0.054745,0.037547 0.097763,0.1029273 0.073751,0.1770368 -0.00579,0.017884 -0.011627,0.037253 -0.024584,0.050582 -0.00782,0.00805 -0.033476,0.017219 -0.049168,0.025292 -0.028761,0.014794 -0.054828,0.052523 -0.086043,0.063227 -0.00777,0.00267 -0.017052,-0.00332 -0.024584,0 -0.038773,0.017095 -0.072896,0.043819 -0.1106266,0.063228 -0.00819,0.00421 -0.015892,0.00966 -0.024583,0.012645 -0.00777,0.00267 -0.018789,-0.00596 -0.024584,0 -0.025432,0.026164 0.038864,-0.00102 -0.012292,0.025291 -0.044184,0.022727 -0.080246,0.061737 -0.1352102,0.075873 -0.011925,0.00306 -0.024951,-0.00306 -0.036876,0 -0.00563,0.00145 -0.00711,0.00998 -0.012292,0.012645 -0.035044,0.018024 -0.031715,-0.00937 -0.036874,-0.025295 -0.00183,-0.00566 -0.01046,-0.00699 -0.012292,-0.012645 -0.00259,-0.008 0.00366,-0.017751 0,-0.025291 -0.013319,-0.027399 -0.069646,-0.059 -0.086044,-0.07587 -0.014952,-0.015382 -0.055233,-0.1074042 -0.061459,-0.1138094 -0.00289,-0.00298 -0.00939,0.00297 -0.012292,0 -0.0029,-0.00298 0.0029,-0.00966 0,-0.012645 C 3.2700976,4.049 3.2582446,4.04881 3.2524046,4.030789 3.2418846,3.998321 3.2612846,4.000233 3.2401126,3.967562 3.2090576,3.919641 3.0109646,3.7535137 3.006568,3.7399443 c -0.00647,-0.019994 0.00402,-0.042561 0,-0.063227 -0.00989,-0.050887 -0.00897,-0.00581 -0.024583,-0.037937 -0.00367,-0.00754 0.00367,-0.017751 0,-0.025292 -0.025578,-0.052627 8.498e-4,0.013519 -0.024584,-0.012645 -0.037728,-0.038814 0.00718,-0.010515 -0.012292,-0.050582 -0.00183,-0.00378 -0.00939,0.00298 -0.012292,0 -0.00515,-0.0053 -0.00857,-0.030273 -0.012292,-0.037937 C 2.904647,3.4796563 2.86456,3.4558263 2.846774,3.4238063 2.834482,3.3985153 2.822191,3.3732243 2.809898,3.3479333 2.801708,3.3395033 2.791277,3.3328663 2.785315,3.3226423 2.764213,3.2864603 2.768143,3.1407743 2.760732,3.0950235 2.739328,2.962907 2.763872,3.0856035 2.736149,3.0570865 2.732969,3.0538165 2.713099,2.9495885 2.711566,2.9432771 2.701378,2.9013521 2.667917,2.8661121 2.650107,2.8294677 c -0.010638,-0.02189 -0.0043,-0.055008 -0.024584,-0.075873 -0.00289,-0.00298 -0.01046,0.00378 -0.012292,0 -0.00367,-0.00754 0.00455,-0.018277 0,-0.025292 -0.029942,-0.046206 -0.017994,0.013559 -0.036876,-0.025291 -0.00848,-0.017442 0.014886,-0.01131 -0.012292,-0.025292 -0.020804,-0.010701 -0.06594,0.072446 -0.073751,0.088518 -0.00367,0.00754 0.00367,0.017751 0,0.025292 -0.00787,0.016191 -0.01912,0.033721 -0.024584,0.050582 -0.00388,0.011997 0.00869,0.028994 0,0.037937 -0.00647,0.00666 -0.018106,0.00599 -0.024583,0.012645 -0.0029,0.00298 0.00227,0.00914 0,0.012645 -0.015462,0.02386 -0.051421,0.058644 -0.073751,0.075873 -0.00733,0.00565 -0.018105,0.00599 -0.024583,0.012645 -0.00571,0.00588 -0.019663,0.040463 -0.036876,0.050582 -0.015003,0.00882 -0.08956,0.041554 -0.1106265,0.063227 -0.010446,0.010746 -0.014138,0.02719 -0.024584,0.037937 -0.00289,0.00298 -0.00973,-0.00329 -0.012292,0 -0.014925,0.019192 -0.01822,0.047874 -0.036876,0.063227 -0.024366,0.020054 -0.059582,0.020923 -0.086043,0.037937 -0.011704,0.00753 -0.019355,0.039824 -0.024583,0.050582 -0.024132,0.049652 -0.09477,0.082606 -0.1352102,0.1138094 -0.022711,0.017524 -0.091043,0.111309 -0.098335,0.1138095 -0.00777,0.00267 -0.01681,-0.00267 -0.024583,0 -0.046077,0.015801 -0.065427,0.091107 -0.086043,0.1264549 -0.01982,0.033983 -0.056264,0.065184 -0.073751,0.1011639 -0.00183,0.00377 0.0029,0.00966 0,0.012645 -0.00289,0.00298 -0.00939,-0.00298 -0.012292,0 -0.0029,0.00298 0.00183,0.00888 0,0.012645 -0.00863,0.017757 -0.043934,0.032553 -0.049168,0.037937 -0.00647,0.00666 -0.00721,0.017449 -0.012292,0.025291 -0.022512,0.034741 -0.06138,0.050422 -0.073751,0.075874 -0.020848,0.042896 -0.079956,0.056966 -0.1106267,0.088518 -0.028427,0.029245 -0.06721,0.123497 -0.1106265,0.1011639 -0.028295,-0.014554 0.00536,-0.014833 -0.024583,-0.037936 -0.020731,-0.015996 -0.051531,-0.011575 -0.073751,-0.025291 -0.019875,-0.012268 -0.028437,-0.039918 -0.049167,-0.050582 -0.071947,-0.037009 -0.026523,0.0071 -0.073751,-0.025291 -0.0269216,-0.018464 -0.0447372,-0.060949 -0.073751,-0.075873 -0.003667,-0.00188 -0.0104596,0.00377 -0.0122917,0 -0.003667,-0.00754 0.002593,-0.017293 0,-0.025292 -0.0127889,-0.03947 -0.008195,0.00422 -0.0245838,-0.012645 -0.002896,-0.00298 0.002274,-0.00914 0,-0.012645 -0.0150818,-0.023274 -0.0352081,-0.030756 -0.0491673,-0.037937 -0.0183236,-0.00943 -0.0223895,-0.035679 -0.0368755,-0.050582 -0.003286,-0.00338 -0.0662452,-0.033013 -0.0491673,-0.050582 0.0462463,-0.047577 0.12805774,-0.031499 0.18437752,-0.037937 0.0148159,-0.00169 0.10289445,-0.059964 0.11062645,-0.075873 0.012321,-0.025351 -0.020322,-1.271e-4 0.012292,-0.025291 0.034501,-0.02662 0.087161,-0.048285 0.1106265,-0.088518 0.00667,-0.01143 0.0065,-0.026013 0.012292,-0.037937 -0.00262,-0.02629 0.019086,-0.0051 0.024583,-0.012645 0.010994,-0.015081 0.01442,-0.034897 0.024583,-0.050582 0.017409,-0.026866 0.044024,-0.048968 0.061459,-0.075873 0.00499,-0.00771 0.019592,-0.042877 0.024583,-0.050582 0.048391,-0.074676 0.1332565,-0.11956 0.1843774,-0.1896823 0.01536,-0.021069 0.012962,-0.057939 0.024584,-0.075873 0.00643,-0.00992 0.019401,-0.014627 0.024583,-0.025291 0.00721,-0.014835 0.00436,-0.046917 0.012292,-0.063227 0.00483,-0.00994 0.068599,-0.095864 0.073751,-0.101164 0.022628,-0.023279 0.04815,-0.043474 0.073751,-0.063227 0.010366,-0.008 0.027714,-0.00322 0.036876,-0.012645 0.01639,-0.01686 -0.026075,-0.012134 0.012292,-0.025291 0.00777,-0.00267 0.018789,0.00596 0.024583,0 0.00579,-0.00596 -0.00455,-0.018277 0,-0.025292 0.016566,-0.025563 0.095562,-0.047728 0.1229183,-0.075873 0.030129,-0.030995 0.011953,-0.050232 0.036876,-0.075873 0.00614,-0.00632 0.018438,-0.00632 0.024583,-0.012645 0.0029,-0.00298 -0.00289,-0.00966 0,-0.012645 0.0041,-0.00422 0.032778,-0.00843 0.036876,-0.012645 0.0029,-0.00298 -0.00341,-0.010307 0,-0.012645 0.044667,-0.030635 0.1844223,-0.012692 0.2089611,-0.037937 0.02093,-0.021532 -0.028585,-0.046318 -0.036876,-0.050582 -0.02159,-0.011105 -0.2502661,-0.114834 -0.2581286,-0.1391004 -0.00259,-0.008 0.00366,-0.017751 0,-0.025292 -0.00183,-0.00378 -0.00939,0.00298 -0.012292,0 -0.00289,-0.00298 0.00183,-0.00888 0,-0.012645 C 1.9059826,2.183598 1.8972376,2.171122 1.8880096,2.159255 1.8771506,2.14529 1.8589086,2.137314 1.8511336,2.121318 c -0.00183,-0.00378 0.0029,-0.00966 0,-0.012645 -0.00515,-0.0053 -0.029426,-0.00882 -0.036875,-0.012645 -0.015548,-0.008 -0.022969,-0.027207 -0.036876,-0.037937 -0.031015,-0.023931 -0.076572,-0.025913 -0.098335,-0.063228 -0.00667,-0.01143 -0.00511,-0.026846 -0.012292,-0.037937 -0.00227,-0.00351 -0.00819,0 -0.012292,0 -0.00409,-0.00421 -0.0097,-0.00731 -0.012292,-0.012645 C 1.6328416,1.925092 1.6308526,1.901523 1.6175876,1.881054 1.5997116,1.853468 1.5536686,1.835527 1.5438366,1.805181 c -0.00259,-0.008 0.00259,-0.017294 0,-0.025291 C 1.5433589,1.77841 1.4875416,1.698455 1.4823776,1.691372 1.4791576,1.686942 1.4249436,1.61964 1.4209186,1.615499 1.3980186,1.59194 1.3508026,1.572397 1.3348756,1.539626 1.2789196,1.4244943 1.3629996,1.555913 1.2979996,1.489044 1.2915296,1.482384 1.2921796,1.470418 1.2857076,1.463753 1.2792376,1.457093 1.2676026,1.457763 1.2611246,1.451108 1.2552546,1.445068 1.2429416,1.409305 1.2365416,1.400526 1.1702296,1.309567 1.2501906,1.427213 1.1873736,1.362589 1.1575196,1.331876 1.1910236,1.34402 1.1627906,1.324652 1.1551706,1.319422 1.1446856,1.318662 1.1382076,1.312007 1.1144574,1.287574 1.1004984,1.247921 1.0767485,1.223489 c -0.0029,-0.00298 -0.00863,0.00188 -0.012292,0 -0.051156,-0.026314 0.01314,8.743e-4 -0.012292,-0.025291 -0.025432,-0.026164 9.945e-4,0.039982 -0.024584,-0.012645 -0.00183,-0.00377 0.0029,-0.00966 0,-0.012645 -0.0029,-0.00298 -0.00863,0.00188 -0.012292,0 -0.010365,-0.00534 -0.014218,-0.019959 -0.0245838,-0.025291 -0.00733,-0.00378 -0.0187893,0.00596 -0.0245838,0 -0.002896,-0.00297 0,-0.00843 0,-0.012645 0,-0.039942 0.0183801,-0.01682 0.0491673,-0.037936 0.00762,-0.00523 0.0041,-0.021076 0.012292,-0.025291 0.018755,-0.00965 0.1130412,-0.023386 0.1229185,-0.025291 0.2155432,-0.041577 0.082499,-0.018774 0.1597938,-0.050582 0.035425,-0.0145779 0.077813,-0.008412 0.1106266,-0.0252911 0.017926,-0.009221 0.019664,-0.0202295 0.024583,-0.0252911 0.012292,-0.0126453 0.049168,0 0.061459,-0.0126453 0.00897,-0.00923 0.025828,-0.0689105 0.036876,-0.0632274 0.018826,0.009684 0.00961,0.0225347 0.024583,0.0379364 0.0066,0.00679 0.094854,0.0768248 0.1106265,0.10116389 0.015246,0.023527 0.019894,0.053639 0.036876,0.075873 0.047859,0.062665 0.1006457,0.1061086 0.1597938,0.151746 0.037651,0.029051 -0.020154,-0.00809 0.024583,0.037936 0.017933,0.018449 0.1123921,0.068676 0.1229185,0.1011639 0.00518,0.015995 -0.00398,0.034224 0,0.050582 0.016687,0.068666 0.071311,0.1245724 0.1229183,0.1643914 0.00733,0.00565 0.018106,0.00598 0.024583,0.012645 0.012383,0.012739 0.016732,0.038466 0.024584,0.050582 0.011364,0.017536 0.022389,0.035679 0.036876,0.050582 0.00647,0.00666 0.019502,0.0048 0.024583,0.012645 0.01216,0.018765 -2.993e-4,0.024983 0.012292,0.037937 0.00647,0.00666 0.019502,0.0048 0.024583,0.012645 0.00455,0.00701 -0.00367,0.017751 0,0.025291 0.012292,0.025292 0.024584,0.018968 0.036876,0.037937 0.019982,0.030834 0.060173,0.073227 0.073751,0.1011639 0.00183,0.00378 -0.0029,0.00966 0,0.012645 0.0029,0.00297 0.00863,-0.00188 0.012292,0 0.011879,0.00611 0.043227,0.038361 0.049168,0.050582 0.00183,0.00378 -0.0029,0.00967 0,0.012645 0.00579,0.00596 0.018789,-0.00596 0.024583,0 0.0029,0.00298 -0.0029,0.00967 0,0.012645 0.00244,0.0025 0.045802,0.00207 0.049167,0 0.017567,-0.010844 0.032778,-0.025291 0.049168,-0.037937 z"/></svg>
-6
backend-rs/frontend_assets/svg/spinner.svg
··· 1 - <!-- 2 - ~ Copyright (c) 2024, MLC 'Strawmelonjuice' Bloeiman 3 - ~ 4 - ~ Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 - --> 6 - <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" style="display:block;shape-rendering:auto" id="svg12" width="10" height="10" preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 5 5"><ellipse style="display:block;shape-rendering:auto;fill:#928e85;fill-opacity:.348548;stroke:none;stroke-width:.6375;stroke-dasharray:none" id="path2" cx="2.485" cy="2.5" rx="2.483" ry="2.497"/><g id="g1" transform="matrix(0.08486573,0,0,0.08243763,-1.689977,-1.6176723)"><rect id="rect1" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.9166666666666666s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g2" transform="matrix(0.07349589,0.04121881,-0.04243287,0.07139307,1.0001591,-3.1263857)"><rect id="rect2" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.8333333333333334s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g3" transform="matrix(0.04243287,0.07139307,-0.07349589,0.04121881,4.1064607,-3.1263857)"><rect id="rect3" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.75s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g4" transform="matrix(0,0.08243763,-0.08486573,0,6.7965963,-1.6176723)"><rect id="rect4" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.6666666666666666s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g5" transform="matrix(-0.04243287,0.07139307,-0.07349589,-0.04121881,8.3497475,0.99549531)"><rect id="rect5" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.5833333333333334s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g6" transform="matrix(-0.07349589,0.04121881,-0.04243287,-0.07139307,8.3497475,4.0129221)"><rect id="rect6" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.5s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g7" transform="matrix(-0.08486573,0,0,-0.08243763,6.7965963,6.62609)"><rect id="rect7" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.4166666666666667s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g8" transform="matrix(-0.07349589,-0.04121881,0.04243287,-0.07139307,4.1064607,8.1348033)"><rect id="rect8" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.3333333333333333s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g9" transform="matrix(-0.04243287,-0.07139307,0.07349589,-0.04121881,1.0001591,8.1348033)"><rect id="rect9" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.25s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g10" transform="matrix(0,-0.08243763,0.08486573,0,-1.689977,6.62609)"><rect id="rect10" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.16666666666666666s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g11" transform="matrix(0.04243287,-0.07139307,0.07349589,0.04121881,-3.2431278,4.0129221)"><rect id="rect11" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="-0.08333333333333333s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g><g id="g12" transform="matrix(0.07349589,-0.04121881,0.04243287,0.07139307,-3.2431278,0.99549531)"><rect id="rect12" width="6" height="12" x="47" y="24" fill="#fe718d" rx="3" ry="6"><animate attributeName="opacity" begin="0s" dur="1s" keyTimes="0;1" repeatCount="indefinite" values="1;0"/></rect></g></svg>
+14 -14
backend-rs/src/assets.rs
··· 35 35 } 36 36 } 37 37 38 - pub const STR_ASSETS_LOGO_SVG: &str = include_str!("../frontend_assets/svg/luminalogo-1.svg"); 38 + pub const STR_ASSETS_LOGO_SVG: &str = include_str!("../../backend/priv/static/svg/luminalogo-1.svg"); 39 39 40 - pub const STR_ASSETS_BTN_NEW_SVG: &str = include_str!("../frontend_assets/svg/add.svg"); 40 + pub const STR_ASSETS_BTN_NEW_SVG: &str = include_str!("../../backend/priv/static/svg/add.svg"); 41 41 42 - pub const STR_ASSETS_BTN_PUSH_SVG: &str = include_str!("../frontend_assets/svg/push.svg"); 42 + pub const STR_ASSETS_BTN_PUSH_SVG: &str = include_str!("../../backend/priv/static/svg/push.svg"); 43 43 44 - pub const STR_ASSETS_BTN_COMMENT_SVG: &str = include_str!("../frontend_assets/svg/comment.svg"); 44 + pub const STR_ASSETS_BTN_COMMENT_SVG: &str = include_str!("../../backend/priv/static/svg/comment.svg"); 45 45 46 - pub const STR_ASSETS_BTN_BOOST_SVG: &str = include_str!("../frontend_assets/svg/boost.svg"); 46 + pub const STR_ASSETS_BTN_BOOST_SVG: &str = include_str!("../../backend/priv/static/svg/boost.svg"); 47 47 48 - pub const STR_ASSETS_GREEN_CHECK_SVG: &str = include_str!("../frontend_assets/svg/green_check.svg"); 48 + pub const STR_ASSETS_GREEN_CHECK_SVG: &str = include_str!("../../backend/priv/static/svg/green_check.svg"); 49 49 50 - pub const STR_ASSETS_SPINNER_SVG: &str = include_str!("../frontend_assets/svg/spinner.svg"); 50 + pub const STR_ASSETS_SPINNER_SVG: &str = include_str!("../../backend/priv/static/svg/spinner.svg"); 51 51 52 - pub const STR_ASSETS_RED_CROSS_SVG: &str = include_str!("../frontend_assets/svg/red_cross.svg"); 53 - pub const STR_ASSETS_ANON_SVG: &str = include_str!("../frontend_assets/svg/avatar1.svg"); 52 + pub const STR_ASSETS_RED_CROSS_SVG: &str = include_str!("../../backend/priv/static/svg/red_cross.svg"); 53 + pub const STR_ASSETS_ANON_SVG: &str = include_str!("../../backend/priv/static/svg/avatar1.svg"); 54 54 55 55 pub fn vec_string_assets_anons_svg() -> Vec<String> { 56 56 vec![ 57 57 STR_ASSETS_ANON_SVG.to_string(), 58 - include_str!("../frontend_assets/svg/avatar2.svg").to_string(), 59 - include_str!("../frontend_assets/svg/avatar3.svg").to_string(), 60 - include_str!("../frontend_assets/svg/avatar4.svg").to_string(), 61 - include_str!("../frontend_assets/svg/avatar5.svg").to_string(), 62 - include_str!("../frontend_assets/svg/avatar6.svg").to_string(), 58 + include_str!("../../backend/priv/static/svg/avatar2.svg").to_string(), 59 + include_str!("../../backend/priv/static/svg/avatar3.svg").to_string(), 60 + include_str!("../../backend/priv/static/svg/avatar4.svg").to_string(), 61 + include_str!("../../backend/priv/static/svg/avatar5.svg").to_string(), 62 + include_str!("../../backend/priv/static/svg/avatar6.svg").to_string(), 63 63 ] 64 64 } 65 65
+21 -16
backend-rs/src/api_fe.rs
··· 16 16 use serde::{Deserialize, Serialize}; 17 17 use tokio::sync::{Mutex, MutexGuard}; 18 18 19 + use crate::database::fetch::user_by_id; 19 20 use crate::database::users::auth::{check, AuthResponse}; 20 21 use crate::database::users::{add, SafeUser}; 21 22 use crate::database::{self}; ··· 103 104 email: "unset".to_string(), 104 105 }, 105 106 }; 106 - let userd_maybe = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Username(username_b)).unwrap_or(None); 107 + let userd_maybe = database::fetch::user( 108 + &config, 109 + database::fetch::UserDataDiscriminator::Username(username_b), 110 + ) 111 + .unwrap_or(None); 107 112 if let Some(userd) = userd_maybe { 108 113 d.user = SafeUser { 109 114 username: userd.username, ··· 141 146 let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>"); 142 147 match result { 143 148 AuthResponse::Success(user_id) => { 144 - let user = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Id( user_id.to_string())) 145 - .unwrap() 146 - .unwrap(); 149 + let user = user_by_id(&config, user_id).unwrap(); 147 150 let username = user.username; 148 151 info!("User '{0}' logged in succesfully from {1}", username, ip); 149 152 session.insert("userid", user.id).unwrap(); ··· 188 191 let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>"); 189 192 match result { 190 193 Ok(user_id) => { 191 - let user = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Id( user_id.to_string())) 192 - .unwrap() 193 - .unwrap(); 194 + let user = database::fetch::user_by_id(&config, user_id).unwrap(); 194 195 let username = user.username; 195 196 session.insert("userid", user.id).unwrap(); 196 197 session.insert("username", username).unwrap(); ··· 271 272 let location = data.location.clone(); 272 273 let id_ = session.get::<i64>("userid").unwrap_or(Some(-100)); 273 274 let id = id_.unwrap_or(-100); 274 - let user: database::users::User = 275 - database::fetch::user(&config, database::fetch::UserDataDiscriminator::Id( id.to_string())) 276 - .unwrap() 277 - .unwrap(); 275 + let user: database::users::User = database::fetch::user_by_id(&config, id).unwrap(); 278 276 let server_vars = server_vars_mutex.lock().await.clone(); 279 277 let config: LuminaConfig = server_vars.clone().config; 280 278 let o: FEPageServeResponse = match location.as_str() { ··· 287 285 side: String::new(), 288 286 message: vec![899, 901], 289 287 }, 290 - "test" => FEPageServeResponse { message: vec![], side: String::new(), main: { 288 + "test" => FEPageServeResponse { 289 + message: vec![], 290 + side: String::new(), 291 + main: { 291 292 let mut s = format!( 292 293 "<h1>Post fetched from DB (dynamically rendered using HandleBars)</h1>\n{}\n", 293 294 &database::fetch::post(&config, 1) ··· 298 299 ); 299 300 s.push_str(include_str!("../frontend_assets/html/examplepost.html")); 300 301 s 301 - }, }, 302 + }, 303 + }, 302 304 "notifications-centre" => FEPageServeResponse { 303 305 main: String::from("Notifications should show up here!"), 304 306 side: String::from(""), ··· 357 359 .insert_header(CacheControl(vec![CacheDirective::NoCache])) 358 360 .body(r#"{"Ok": false, "Why": "TooShort"}"#.to_string()); 359 361 } 360 - if database::fetch::user(&config.clone(), database::fetch::UserDataDiscriminator::Username(username.clone())) 361 - .unwrap_or(None) 362 - .is_some() 362 + if database::fetch::user( 363 + &config.clone(), 364 + database::fetch::UserDataDiscriminator::Username(username.clone()), 365 + ) 366 + .unwrap_or(None) 367 + .is_some() 363 368 { 364 369 return HttpResponse::build(StatusCode::OK) 365 370 .content_type("text/json; charset=utf-8")
+147 -51
backend-rs/src/database/fetch.rs
··· 4 4 * Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 5 5 */ 6 6 7 - use crate::database::{LuminaDBConnection}; 7 + use crate::database::users::User; 8 + use crate::database::LuminaDBConnection; 8 9 use crate::post::PostInfo; 9 10 use crate::{database, LuminaConfig}; 10 11 use std::io::{Error, ErrorKind}; 11 - use crate::database::users::User; 12 12 13 13 pub enum UserDataDiscriminator { 14 - Id(String), 14 + Id(i64), 15 15 Username(String), 16 16 Email(String), 17 17 } 18 18 impl UserDataDiscriminator { 19 19 pub fn from_str(a: (impl AsRef<str>, impl AsRef<str>)) -> Self { 20 20 match a.0.as_ref() { 21 - "id" => UserDataDiscriminator::Id(a.1.as_ref().to_string()), 21 + "id" => UserDataDiscriminator::Id(a.1.as_ref().parse().unwrap()), 22 22 "username" => UserDataDiscriminator::Username(a.1.as_ref().to_string()), 23 23 "email" => UserDataDiscriminator::Email(a.1.as_ref().to_string()), 24 24 _ => panic!("Invalid discriminator"), ··· 31 31 config: &LuminaConfig, 32 32 discriminator: UserDataDiscriminator, 33 33 ) -> Result<Option<User>, Error> { 34 - let (discriminator_col, discriminator_1) = match discriminator { 35 - UserDataDiscriminator::Id(id) => ("id", id), 36 - UserDataDiscriminator::Username(username) => ("username", username), 37 - UserDataDiscriminator::Email(email) => ("email", email), 38 - }; 34 + match discriminator { 35 + UserDataDiscriminator::Id(id) => Ok(user_by_id(config, id)), 36 + UserDataDiscriminator::Username(username) => Ok(user_by_username(config, username)), 37 + UserDataDiscriminator::Email(email) => Ok(user_by_email(config, email)), 38 + } 39 + } 40 + 41 + /// Fetches user from database by id 42 + pub fn user_by_id(config: &LuminaConfig, id: i64) -> Option<User> { 39 43 match config.db_connect() { 40 44 LuminaDBConnection::SQLite(conn) => { 41 45 let mut stmt = conn 42 - .prepare( 43 - 44 - r#"SELECT * FROM Users WHERE ? = '?'"#, 45 - ) 46 + .prepare(r#"SELECT * FROM Users WHERE `id` = $1"#) 47 + .unwrap(); 48 + debug!("{:?}", stmt); 49 + let mut res = stmt.query([id.to_string()]).unwrap(); 50 + let res = res.next().unwrap().unwrap(); 51 + match (|| -> Result<(i64, String, String, String), rusqlite::Error> { 52 + let c: i64 = res.get(0)?; 53 + let username = res.get(1)?; 54 + let password = res.get(2)?; 55 + let email = res.get(3)?; 56 + Ok((c, username, password, email)) 57 + })() { 58 + Ok((a, username, password, email)) => Some(User { 59 + id: a, 60 + username, 61 + password, 62 + email, 63 + }), 64 + Err(_) => None, 65 + } 66 + } 67 + LuminaDBConnection::POSTGRES(mut client) => { 68 + match client.query(r#"SELECT * FROM Users WHERE `id` = $1"#, &[&id]) { 69 + Ok(res) => { 70 + let res = res.get(0)?; 71 + let id: i64 = res.get(0); 72 + let username: String = res.get(1); 73 + let password: String = res.get(2); 74 + let email: String = res.get(3); 75 + Some(User { 76 + id, 77 + username, 78 + password, 79 + email, 80 + }) 81 + } 82 + Err(_) => None, 83 + } 84 + } 85 + } 86 + } 46 87 47 - .unwrap() 48 - ; 88 + /// Fetches user from database by username 89 + pub fn user_by_username(config: &LuminaConfig, username: String) -> Option<User> { 90 + match config.db_connect() { 91 + LuminaDBConnection::SQLite(conn) => { 92 + let mut stmt = conn 93 + .prepare(r#"SELECT * FROM Users WHERE `username` = $1"#) 94 + .unwrap(); 49 95 debug!("{:?}", stmt); 50 - let mut res = stmt 51 - .query_map((discriminator_col,discriminator_1.as_str()), |row| { 52 - Ok({ 53 - serde_json::to_string(&User { 54 - id: row.get(0)?, 55 - username: row.get(1)?, 56 - password: row.get(2)?, 57 - email: row.get(3)?, 58 - }) 59 - .unwrap() 96 + let mut res = stmt.query([username]).unwrap(); 97 + let res = match res.next() { 98 + Ok(d) => d?, 99 + Err(e) => { 100 + error!("SQLite user fetch error. {:#}", e); 101 + panic!("{:#}", e) 102 + } 103 + }; 104 + match (|| -> Result<(i64, String, String, String), rusqlite::Error> { 105 + let id: i64 = res.get(0)?; 106 + let c = res.get(1)?; 107 + let password = res.get(2)?; 108 + let email = res.get(3)?; 109 + Ok((id, c, password, email)) 110 + })() { 111 + Ok((id, a, password, email)) => Some(User { 112 + id, 113 + username: a, 114 + password, 115 + email, 116 + }), 117 + Err(_) => None, 118 + } 119 + } 120 + LuminaDBConnection::POSTGRES(mut client) => { 121 + match client.query(r#"SELECT * FROM Users WHERE `username` = $1"#, &[&username]) { 122 + Ok(res) => { 123 + let res = res.get(0)?; 124 + let id: i64 = res.get(0); 125 + let username: String = res.get(1); 126 + let password: String = res.get(2); 127 + let email: String = res.get(3); 128 + Some(User { 129 + id, 130 + username, 131 + password, 132 + email, 60 133 }) 61 - }) 134 + } 135 + Err(_) => None, 136 + } 137 + } 138 + } 139 + } 140 + 141 + /// Fetches user from database by email 142 + pub fn user_by_email(config: &LuminaConfig, email: String) -> Option<User> { 143 + match config.db_connect() { 144 + LuminaDBConnection::SQLite(conn) => { 145 + let mut stmt = conn 146 + .prepare(r#"SELECT * FROM Users WHERE `email` = $1"#) 62 147 .unwrap(); 63 - // println!("{:?}", res.nth(0)); 64 - match res.next() { 65 - None => Ok(None), 66 - Some(r) => match r { 67 - Ok(s) => { 68 - let res: User = serde_json::from_str(&s)?; 69 - Ok(Some(res)) 70 - } 71 - Err(f) => { 72 - eprintln!("{:?}", f); 73 - Err(Error::new(ErrorKind::Other, "Unparseable data.")) 74 - } 75 - }, 148 + debug!("{:?}", stmt); 149 + let mut res = stmt.query([email]).unwrap(); 150 + let res = res.next().unwrap()?; 151 + match (|| -> Result<(i64, String, String, String), rusqlite::Error> { 152 + let c: i64 = res.get(0)?; 153 + let username = res.get(1)?; 154 + let password = res.get(2)?; 155 + let email = res.get(3)?; 156 + Ok((c, username, password, email)) 157 + })() { 158 + Ok((a, username, password, email)) => Some(User { 159 + id: a, 160 + username, 161 + password, 162 + email, 163 + }), 164 + Err(_) => None, 76 165 } 77 166 } 78 - LuminaDBConnection::POSTGRES(_) => { 79 - todo!("Postgres not implemented yet."); 167 + LuminaDBConnection::POSTGRES(mut client) => { 168 + match client.query(r#"SELECT * FROM Users WHERE `id` = $1"#, &[&email]) { 169 + Ok(res) => { 170 + let res = res.get(0)?; 171 + let id: i64 = res.get(0); 172 + let username: String = res.get(1); 173 + let password: String = res.get(2); 174 + let email: String = res.get(3); 175 + Some(User { 176 + id, 177 + username, 178 + password, 179 + email, 180 + }) 181 + } 182 + Err(_) => None, 183 + } 80 184 } 81 185 } 82 186 } 83 187 84 188 /// Fetches post from database 85 - pub fn post( 86 - config: &LuminaConfig, 87 - id: u128, 88 - ) -> Result<Option<PostInfo>, Error> { 189 + pub fn post(config: &LuminaConfig, id: u128) -> Result<Option<PostInfo>, Error> { 89 190 match config.db_connect() { 90 191 LuminaDBConnection::SQLite(conn) => { 91 192 let mut stmt = conn 92 - .prepare( 93 - 94 - r#"SELECT * FROM posts_pool WHERE `postid` = ?"#, 95 - 96 - 97 - ) 193 + .prepare(r#"SELECT * FROM posts_pool WHERE `postid` = ?"#) 98 194 .unwrap(); 99 195 debug!("{:?}", stmt); 100 196 let mut res = stmt
+2 -3
backend-rs/src/post.rs
··· 8 8 use serde::{Deserialize, Serialize}; 9 9 10 10 use crate::assets::STR_ASSETS_POST_RENDERS_HANDLEBARS; 11 - use crate::database::{fetch, IIExchangedUserInfo}; 12 11 use crate::database::users::User; 12 + use crate::database::{fetch, IIExchangedUserInfo}; 13 13 use crate::LuminaConfig; 14 14 15 15 #[derive(Debug, Serialize, Deserialize)] ··· 67 67 68 68 impl PostInfo { 69 69 pub fn to_formatted(&self, config: &LuminaConfig) -> PostPreRenderData { 70 - let author_u: User = 71 - fetch::user(config, fetch::UserDataDiscriminator::Id( self.author_id.to_string())).unwrap().unwrap(); 70 + let author_u: User = fetch::user_by_id(config, self.author_id).unwrap(); 72 71 73 72 let author = IIExchangedUserInfo { 74 73 id: self.author_id,
+1 -1
backend-rs/frontend_assets/html/home.html
··· 278 278 class="hidden h-full lg:block bg-brown-200 overflow-clip dark:bg-neutral-600" 279 279 ></div> 280 280 <div 281 - class="h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-brown-100 dark:bg-neutral-700" 281 + class="h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-fuchsia-50 dark:bg-darkish-550" 282 282 > 283 283 <div 284 284 id="mainright"
+2 -4
backend/src/lumina/web/pages.gleam
··· 459 459 html.input([ 460 460 attribute.type_("password"), 461 461 attribute.required(True), 462 - attribute.placeholder( 463 - "โ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ข", 464 - ), 462 + attribute.placeholder("โ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ข"), 465 463 attribute.id("password"), 466 464 attribute.class( 467 465 "py-2 px-4 w-full rounded-lg border focus:ring-blue-500 form-input text-slate-600", ··· 996 994 html.div( 997 995 [ 998 996 attribute.class( 999 - "h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-brown-100 dark:bg-neutral-700", 997 + "h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-fuchsia-50 dark:bg-darkish-550", 1000 998 ), 1001 999 ], 1002 1000 [
+9 -5
frontend/src/frontend/other/funnyrandomusername.gleam
··· 2 2 // Licensed under the BSD 3-Clause License. See the LICENSE file for more info. 3 3 const both = [ 4 4 "strawberry", "hat", "burger", "flat", "orange", "toothpaste", "nerd", "koala", 5 - "sample", 5 + "sample", "boss", 6 6 ] 7 7 8 8 const first = [ 9 9 "straw", "hacker", "hat", "strawberry", "apple", "rotten", "shrimp", "feared-", 10 - "smelly", 10 + "smelly", "girl", 11 11 ] 12 12 13 13 const last = [ ··· 30 30 |> list.append(both) 31 31 |> list.shuffle() 32 32 |> list.first() 33 - start 34 - <> end 35 - |> string.replace("--", "-") 33 + case end == start { 34 + True -> funnyrandomusername() 35 + False -> 36 + start 37 + <> end 38 + |> string.replace("--", "-") 39 + } 36 40 }
+5 -4
package.json
··· 4 4 "devDependencies": { 5 5 "@biomejs/biome": "latest", 6 6 "@types/bun": "latest", 7 - "tailwindcss": "latest", 8 7 "autoprefixer": "latest", 8 + "bun": "latest", 9 + "clean-css-cli": "^5.6.3", 10 + "daisyui": "^4.12.23", 9 11 "postcss": "latest", 10 - "typescript": "^5.6.3", 11 12 "postcss-cli": "^11.0.0", 12 - "clean-css-cli": "^5.6.3", 13 - "bun": "latest" 13 + "tailwindcss": "latest", 14 + "typescript": "^5.6.3" 14 15 }, 15 16 "dependencies": { 16 17 "axios": "^1.7.7",
-4
nodemon.json
··· 1 - { 2 - "ext": "ts,rs,gleam,svg,handlebars,hb,pcss,css", 3 - "ignore": ["./*/build/**", "./backend/priv/generated/**"] 4 - }