+19
-19
backend-rs/src/server.rs
+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
+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
+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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
+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
+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
+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
+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
+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
+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
+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
+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",