+19
-19
backend-rs/src/server.rs
+19
-19
backend-rs/src/server.rs
···
28
use tokio::sync::{Mutex, MutexGuard};
29
30
use crate::config::{LuminaConfig, LuminaLogConfig};
31
-
use crate::serve::notfound;
32
use assets::{fonts, vec_string_assets_anons_svg, STR_CLEAN_CUSTOMSTYLES_CSS};
33
34
/// ## API's to the front-end.
···
279
secret_key.clone(),
280
))
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))
293
.route(
294
"/api/fe/fetch-page",
295
web::post().to(api_fe::pageservresponder),
···
307
"/api/fe/auth-create/check-username",
308
web::post().to(api_fe::check_username),
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))
316
.service(avatar)
317
.service(serve_fonts)
318
.app_data(web::Data::clone(&server_q))
···
418
}
419
420
mod config;
421
-
mod serve;
422
423
#[doc = r"Font file server"]
424
#[get("/fonts/{a:.*}")]
···
28
use tokio::sync::{Mutex, MutexGuard};
29
30
use crate::config::{LuminaConfig, LuminaLogConfig};
31
+
use crate::pages::notfound;
32
use assets::{fonts, vec_string_assets_anons_svg, STR_CLEAN_CUSTOMSTYLES_CSS};
33
34
/// ## API's to the front-end.
···
279
secret_key.clone(),
280
))
281
.default_service(web::to(notfound))
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
.route(
294
"/api/fe/fetch-page",
295
web::post().to(api_fe::pageservresponder),
···
307
"/api/fe/auth-create/check-username",
308
web::post().to(api_fe::check_username),
309
)
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
.service(avatar)
317
.service(serve_fonts)
318
.app_data(web::Data::clone(&server_q))
···
418
}
419
420
mod config;
421
+
mod pages;
422
423
#[doc = r"Font file server"]
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
}
36
}
37
38
-
pub const STR_ASSETS_LOGO_SVG: &str = include_str!("../frontend_assets/svg/luminalogo-1.svg");
39
40
-
pub const STR_ASSETS_BTN_NEW_SVG: &str = include_str!("../frontend_assets/svg/add.svg");
41
42
-
pub const STR_ASSETS_BTN_PUSH_SVG: &str = include_str!("../frontend_assets/svg/push.svg");
43
44
-
pub const STR_ASSETS_BTN_COMMENT_SVG: &str = include_str!("../frontend_assets/svg/comment.svg");
45
46
-
pub const STR_ASSETS_BTN_BOOST_SVG: &str = include_str!("../frontend_assets/svg/boost.svg");
47
48
-
pub const STR_ASSETS_GREEN_CHECK_SVG: &str = include_str!("../frontend_assets/svg/green_check.svg");
49
50
-
pub const STR_ASSETS_SPINNER_SVG: &str = include_str!("../frontend_assets/svg/spinner.svg");
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");
54
55
pub fn vec_string_assets_anons_svg() -> Vec<String> {
56
vec![
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(),
63
]
64
}
65
···
35
}
36
}
37
38
+
pub const STR_ASSETS_LOGO_SVG: &str = include_str!("../../backend/priv/static/svg/luminalogo-1.svg");
39
40
+
pub const STR_ASSETS_BTN_NEW_SVG: &str = include_str!("../../backend/priv/static/svg/add.svg");
41
42
+
pub const STR_ASSETS_BTN_PUSH_SVG: &str = include_str!("../../backend/priv/static/svg/push.svg");
43
44
+
pub const STR_ASSETS_BTN_COMMENT_SVG: &str = include_str!("../../backend/priv/static/svg/comment.svg");
45
46
+
pub const STR_ASSETS_BTN_BOOST_SVG: &str = include_str!("../../backend/priv/static/svg/boost.svg");
47
48
+
pub const STR_ASSETS_GREEN_CHECK_SVG: &str = include_str!("../../backend/priv/static/svg/green_check.svg");
49
50
+
pub const STR_ASSETS_SPINNER_SVG: &str = include_str!("../../backend/priv/static/svg/spinner.svg");
51
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
55
pub fn vec_string_assets_anons_svg() -> Vec<String> {
56
vec![
57
STR_ASSETS_ANON_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
]
64
}
65
+21
-16
backend-rs/src/api_fe.rs
+21
-16
backend-rs/src/api_fe.rs
···
16
use serde::{Deserialize, Serialize};
17
use tokio::sync::{Mutex, MutexGuard};
18
19
use crate::database::users::auth::{check, AuthResponse};
20
use crate::database::users::{add, SafeUser};
21
use crate::database::{self};
···
103
email: "unset".to_string(),
104
},
105
};
106
-
let userd_maybe = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Username(username_b)).unwrap_or(None);
107
if let Some(userd) = userd_maybe {
108
d.user = SafeUser {
109
username: userd.username,
···
141
let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>");
142
match result {
143
AuthResponse::Success(user_id) => {
144
-
let user = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Id( user_id.to_string()))
145
-
.unwrap()
146
-
.unwrap();
147
let username = user.username;
148
info!("User '{0}' logged in succesfully from {1}", username, ip);
149
session.insert("userid", user.id).unwrap();
···
188
let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>");
189
match result {
190
Ok(user_id) => {
191
-
let user = database::fetch::user(&config, database::fetch::UserDataDiscriminator::Id( user_id.to_string()))
192
-
.unwrap()
193
-
.unwrap();
194
let username = user.username;
195
session.insert("userid", user.id).unwrap();
196
session.insert("username", username).unwrap();
···
271
let location = data.location.clone();
272
let id_ = session.get::<i64>("userid").unwrap_or(Some(-100));
273
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();
278
let server_vars = server_vars_mutex.lock().await.clone();
279
let config: LuminaConfig = server_vars.clone().config;
280
let o: FEPageServeResponse = match location.as_str() {
···
287
side: String::new(),
288
message: vec![899, 901],
289
},
290
-
"test" => FEPageServeResponse { message: vec![], side: String::new(), main: {
291
let mut s = format!(
292
"<h1>Post fetched from DB (dynamically rendered using HandleBars)</h1>\n{}\n",
293
&database::fetch::post(&config, 1)
···
298
);
299
s.push_str(include_str!("../frontend_assets/html/examplepost.html"));
300
s
301
-
}, },
302
"notifications-centre" => FEPageServeResponse {
303
main: String::from("Notifications should show up here!"),
304
side: String::from(""),
···
357
.insert_header(CacheControl(vec![CacheDirective::NoCache]))
358
.body(r#"{"Ok": false, "Why": "TooShort"}"#.to_string());
359
}
360
-
if database::fetch::user(&config.clone(), database::fetch::UserDataDiscriminator::Username(username.clone()))
361
-
.unwrap_or(None)
362
-
.is_some()
363
{
364
return HttpResponse::build(StatusCode::OK)
365
.content_type("text/json; charset=utf-8")
···
16
use serde::{Deserialize, Serialize};
17
use tokio::sync::{Mutex, MutexGuard};
18
19
+
use crate::database::fetch::user_by_id;
20
use crate::database::users::auth::{check, AuthResponse};
21
use crate::database::users::{add, SafeUser};
22
use crate::database::{self};
···
104
email: "unset".to_string(),
105
},
106
};
107
+
let userd_maybe = database::fetch::user(
108
+
&config,
109
+
database::fetch::UserDataDiscriminator::Username(username_b),
110
+
)
111
+
.unwrap_or(None);
112
if let Some(userd) = userd_maybe {
113
d.user = SafeUser {
114
username: userd.username,
···
146
let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>");
147
match result {
148
AuthResponse::Success(user_id) => {
149
+
let user = user_by_id(&config, user_id).unwrap();
150
let username = user.username;
151
info!("User '{0}' logged in succesfully from {1}", username, ip);
152
session.insert("userid", user.id).unwrap();
···
191
let ip = coninfo.realip_remote_addr().unwrap_or("<unknown IP>");
192
match result {
193
Ok(user_id) => {
194
+
let user = database::fetch::user_by_id(&config, user_id).unwrap();
195
let username = user.username;
196
session.insert("userid", user.id).unwrap();
197
session.insert("username", username).unwrap();
···
272
let location = data.location.clone();
273
let id_ = session.get::<i64>("userid").unwrap_or(Some(-100));
274
let id = id_.unwrap_or(-100);
275
+
let user: database::users::User = database::fetch::user_by_id(&config, id).unwrap();
276
let server_vars = server_vars_mutex.lock().await.clone();
277
let config: LuminaConfig = server_vars.clone().config;
278
let o: FEPageServeResponse = match location.as_str() {
···
285
side: String::new(),
286
message: vec![899, 901],
287
},
288
+
"test" => FEPageServeResponse {
289
+
message: vec![],
290
+
side: String::new(),
291
+
main: {
292
let mut s = format!(
293
"<h1>Post fetched from DB (dynamically rendered using HandleBars)</h1>\n{}\n",
294
&database::fetch::post(&config, 1)
···
299
);
300
s.push_str(include_str!("../frontend_assets/html/examplepost.html"));
301
s
302
+
},
303
+
},
304
"notifications-centre" => FEPageServeResponse {
305
main: String::from("Notifications should show up here!"),
306
side: String::from(""),
···
359
.insert_header(CacheControl(vec![CacheDirective::NoCache]))
360
.body(r#"{"Ok": false, "Why": "TooShort"}"#.to_string());
361
}
362
+
if database::fetch::user(
363
+
&config.clone(),
364
+
database::fetch::UserDataDiscriminator::Username(username.clone()),
365
+
)
366
+
.unwrap_or(None)
367
+
.is_some()
368
{
369
return HttpResponse::build(StatusCode::OK)
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
* Licensed under the BSD 3-Clause License. See the LICENSE file for more info.
5
*/
6
7
-
use crate::database::{LuminaDBConnection};
8
use crate::post::PostInfo;
9
use crate::{database, LuminaConfig};
10
use std::io::{Error, ErrorKind};
11
-
use crate::database::users::User;
12
13
pub enum UserDataDiscriminator {
14
-
Id(String),
15
Username(String),
16
Email(String),
17
}
18
impl UserDataDiscriminator {
19
pub fn from_str(a: (impl AsRef<str>, impl AsRef<str>)) -> Self {
20
match a.0.as_ref() {
21
-
"id" => UserDataDiscriminator::Id(a.1.as_ref().to_string()),
22
"username" => UserDataDiscriminator::Username(a.1.as_ref().to_string()),
23
"email" => UserDataDiscriminator::Email(a.1.as_ref().to_string()),
24
_ => panic!("Invalid discriminator"),
···
31
config: &LuminaConfig,
32
discriminator: UserDataDiscriminator,
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
-
};
39
match config.db_connect() {
40
LuminaDBConnection::SQLite(conn) => {
41
let mut stmt = conn
42
-
.prepare(
43
-
44
-
r#"SELECT * FROM Users WHERE ? = '?'"#,
45
-
)
46
47
-
.unwrap()
48
-
;
49
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()
60
})
61
-
})
62
.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
-
},
76
}
77
}
78
-
LuminaDBConnection::POSTGRES(_) => {
79
-
todo!("Postgres not implemented yet.");
80
}
81
}
82
}
83
84
/// Fetches post from database
85
-
pub fn post(
86
-
config: &LuminaConfig,
87
-
id: u128,
88
-
) -> Result<Option<PostInfo>, Error> {
89
match config.db_connect() {
90
LuminaDBConnection::SQLite(conn) => {
91
let mut stmt = conn
92
-
.prepare(
93
-
94
-
r#"SELECT * FROM posts_pool WHERE `postid` = ?"#,
95
-
96
-
97
-
)
98
.unwrap();
99
debug!("{:?}", stmt);
100
let mut res = stmt
···
4
* Licensed under the BSD 3-Clause License. See the LICENSE file for more info.
5
*/
6
7
+
use crate::database::users::User;
8
+
use crate::database::LuminaDBConnection;
9
use crate::post::PostInfo;
10
use crate::{database, LuminaConfig};
11
use std::io::{Error, ErrorKind};
12
13
pub enum UserDataDiscriminator {
14
+
Id(i64),
15
Username(String),
16
Email(String),
17
}
18
impl UserDataDiscriminator {
19
pub fn from_str(a: (impl AsRef<str>, impl AsRef<str>)) -> Self {
20
match a.0.as_ref() {
21
+
"id" => UserDataDiscriminator::Id(a.1.as_ref().parse().unwrap()),
22
"username" => UserDataDiscriminator::Username(a.1.as_ref().to_string()),
23
"email" => UserDataDiscriminator::Email(a.1.as_ref().to_string()),
24
_ => panic!("Invalid discriminator"),
···
31
config: &LuminaConfig,
32
discriminator: UserDataDiscriminator,
33
) -> Result<Option<User>, Error> {
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> {
43
match config.db_connect() {
44
LuminaDBConnection::SQLite(conn) => {
45
let mut stmt = conn
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
+
}
87
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();
95
debug!("{:?}", stmt);
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,
133
})
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"#)
147
.unwrap();
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,
165
}
166
}
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
+
}
184
}
185
}
186
}
187
188
/// Fetches post from database
189
+
pub fn post(config: &LuminaConfig, id: u128) -> Result<Option<PostInfo>, Error> {
190
match config.db_connect() {
191
LuminaDBConnection::SQLite(conn) => {
192
let mut stmt = conn
193
+
.prepare(r#"SELECT * FROM posts_pool WHERE `postid` = ?"#)
194
.unwrap();
195
debug!("{:?}", stmt);
196
let mut res = stmt
+2
-3
backend-rs/src/post.rs
+2
-3
backend-rs/src/post.rs
···
8
use serde::{Deserialize, Serialize};
9
10
use crate::assets::STR_ASSETS_POST_RENDERS_HANDLEBARS;
11
-
use crate::database::{fetch, IIExchangedUserInfo};
12
use crate::database::users::User;
13
use crate::LuminaConfig;
14
15
#[derive(Debug, Serialize, Deserialize)]
···
67
68
impl PostInfo {
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();
72
73
let author = IIExchangedUserInfo {
74
id: self.author_id,
···
8
use serde::{Deserialize, Serialize};
9
10
use crate::assets::STR_ASSETS_POST_RENDERS_HANDLEBARS;
11
use crate::database::users::User;
12
+
use crate::database::{fetch, IIExchangedUserInfo};
13
use crate::LuminaConfig;
14
15
#[derive(Debug, Serialize, Deserialize)]
···
67
68
impl PostInfo {
69
pub fn to_formatted(&self, config: &LuminaConfig) -> PostPreRenderData {
70
+
let author_u: User = fetch::user_by_id(config, self.author_id).unwrap();
71
72
let author = IIExchangedUserInfo {
73
id: self.author_id,
+1
-1
backend-rs/frontend_assets/html/home.html
+1
-1
backend-rs/frontend_assets/html/home.html
+2
-4
backend/src/lumina/web/pages.gleam
+2
-4
backend/src/lumina/web/pages.gleam
···
459
html.input([
460
attribute.type_("password"),
461
attribute.required(True),
462
-
attribute.placeholder(
463
-
"โขโขโขโขโขโขโขโขโขโขโขโข",
464
-
),
465
attribute.id("password"),
466
attribute.class(
467
"py-2 px-4 w-full rounded-lg border focus:ring-blue-500 form-input text-slate-600",
···
996
html.div(
997
[
998
attribute.class(
999
-
"h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-brown-100 dark:bg-neutral-700",
1000
),
1001
],
1002
[
···
459
html.input([
460
attribute.type_("password"),
461
attribute.required(True),
462
+
attribute.placeholder("โขโขโขโขโขโขโขโขโขโขโขโข"),
463
attribute.id("password"),
464
attribute.class(
465
"py-2 px-4 w-full rounded-lg border focus:ring-blue-500 form-input text-slate-600",
···
994
html.div(
995
[
996
attribute.class(
997
+
"h-full col-span-4 overflow-auto contentkeeper no:lg:p-12 bg-fuchsia-50 dark:bg-darkish-550",
998
),
999
],
1000
[
+9
-5
frontend/src/frontend/other/funnyrandomusername.gleam
+9
-5
frontend/src/frontend/other/funnyrandomusername.gleam
···
2
// Licensed under the BSD 3-Clause License. See the LICENSE file for more info.
3
const both = [
4
"strawberry", "hat", "burger", "flat", "orange", "toothpaste", "nerd", "koala",
5
-
"sample",
6
]
7
8
const first = [
9
"straw", "hacker", "hat", "strawberry", "apple", "rotten", "shrimp", "feared-",
10
-
"smelly",
11
]
12
13
const last = [
···
30
|> list.append(both)
31
|> list.shuffle()
32
|> list.first()
33
-
start
34
-
<> end
35
-
|> string.replace("--", "-")
36
}
···
2
// Licensed under the BSD 3-Clause License. See the LICENSE file for more info.
3
const both = [
4
"strawberry", "hat", "burger", "flat", "orange", "toothpaste", "nerd", "koala",
5
+
"sample", "boss",
6
]
7
8
const first = [
9
"straw", "hacker", "hat", "strawberry", "apple", "rotten", "shrimp", "feared-",
10
+
"smelly", "girl",
11
]
12
13
const last = [
···
30
|> list.append(both)
31
|> list.shuffle()
32
|> list.first()
33
+
case end == start {
34
+
True -> funnyrandomusername()
35
+
False ->
36
+
start
37
+
<> end
38
+
|> string.replace("--", "-")
39
+
}
40
}
+5
-4
package.json
+5
-4
package.json
···
4
"devDependencies": {
5
"@biomejs/biome": "latest",
6
"@types/bun": "latest",
7
-
"tailwindcss": "latest",
8
"autoprefixer": "latest",
9
"postcss": "latest",
10
-
"typescript": "^5.6.3",
11
"postcss-cli": "^11.0.0",
12
-
"clean-css-cli": "^5.6.3",
13
-
"bun": "latest"
14
},
15
"dependencies": {
16
"axios": "^1.7.7",
···
4
"devDependencies": {
5
"@biomejs/biome": "latest",
6
"@types/bun": "latest",
7
"autoprefixer": "latest",
8
+
"bun": "latest",
9
+
"clean-css-cli": "^5.6.3",
10
+
"daisyui": "^4.12.23",
11
"postcss": "latest",
12
"postcss-cli": "^11.0.0",
13
+
"tailwindcss": "latest",
14
+
"typescript": "^5.6.3"
15
},
16
"dependencies": {
17
"axios": "^1.7.7",