summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitignore26
-rw-r--r--.npmrc1
-rw-r--r--LICENSE170
-rw-r--r--README.md8
-rw-r--r--avatar.pngbin0 -> 54357 bytes
-rw-r--r--clockback.pngbin0 -> 12507 bytes
-rw-r--r--close.svg12
-rw-r--r--copland88x31.pngbin0 -> 2972 bytes
-rw-r--r--firefly.pngbin0 -> 9771 bytes
-rw-r--r--freebsd88x31.gifbin0 -> 1032 bytes
-rw-r--r--index.html303
-rw-r--r--kasane-teto.gifbin0 -> 71127 bytes
-rw-r--r--lain.gif (renamed from static/lain.gif)bin26825 -> 26825 bytes
-rw-r--r--meow.pngbin0 -> 67278 bytes
-rw-r--r--milkoutsideabagofmilk.pngbin0 -> 772121 bytes
-rw-r--r--package.json29
-rw-r--r--pnpm-lock.yaml1520
-rw-r--r--projects.pngbin0 -> 6136 bytes
-rw-r--r--rose_88x31.png (renamed from static/rose_88x31.png)bin4963 -> 4963 bytes
-rw-r--r--src/app.d.ts13
-rw-r--r--src/app.html11
-rw-r--r--src/lib/#decoder.ts#17
-rw-r--r--src/lib/assets/close.svg4
-rw-r--r--src/lib/assets/xmpp.svg31
-rw-r--r--src/lib/decoder.ts16
-rw-r--r--src/lib/images/github.svg16
-rw-r--r--src/lib/images/svelte-logo.svg1
-rw-r--r--src/lib/images/svelte-welcome.pngbin360807 -> 0 bytes
-rw-r--r--src/lib/images/svelte-welcome.webpbin115470 -> 0 bytes
-rw-r--r--src/lib/mobile.js4
-rw-r--r--src/lib/navigation.ts13
-rw-r--r--src/lib/styles/contact.scss38
-rw-r--r--src/lib/styles/index.scss2
-rw-r--r--src/lib/styles/shadow.scss9
-rw-r--r--src/routes/+error.svelte41
-rw-r--r--src/routes/+layout.js1
-rw-r--r--src/routes/+layout.svelte37
-rw-r--r--src/routes/+page.svelte232
-rw-r--r--src/routes/+page.ts1
-rw-r--r--src/routes/ContactCard.svelte40
-rw-r--r--src/routes/Header.svelte316
-rw-r--r--src/routes/projects/+page.svelte53
-rw-r--r--src/routes/projects/+page.ts1
-rw-r--r--src/routes/projects/ProjectEntry.svelte36
-rw-r--r--src/routes/styles.scss48
-rw-r--r--static/antibrave.js1
-rw-r--r--static/antibravestyle.css288
-rw-r--r--static/bvg.pngbin6984 -> 0 bytes
-rwxr-xr-xstatic/deobfuscate.sh17
-rw-r--r--static/huh.jpgbin23872 -> 0 bytes
-rw-r--r--static/ltg.gifbin2965 -> 0 bytes
-rw-r--r--static/me.pngbin108139 -> 0 bytes
-rw-r--r--static/not-very-brave.html42
-rw-r--r--static/robots.txt3
-rw-r--r--static/rose.apngbin849075 -> 0 bytes
-rw-r--r--static/rose.gifbin644180 -> 0 bytes
-rw-r--r--static/rose.pngbin10403 -> 0 bytes
-rw-r--r--static/wilted-flower.apngbin1005408 -> 0 bytes
-rw-r--r--static/wilted-flower.gifbin479385 -> 0 bytes
-rw-r--r--style.css379
-rw-r--r--svelte.config.js19
-rw-r--r--transrights.png (renamed from static/transrights.png)bin297 -> 297 bytes
-rw-r--r--tsconfig.json19
-rw-r--r--vite.config.ts8
-rw-r--r--xeniatransnow.png (renamed from static/xeniatransnow.png)bin512 -> 512 bytes
65 files changed, 695 insertions, 3131 deletions
diff --git a/.gitignore b/.gitignore
index 069ce6f..b25c15b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,25 +1 @@
-node_modules
-
-# Output
-.output
-.vercel
-/.svelte-kit
-/build
-
-# OS
-.DS_Store
-Thumbs.db
-
-# Env
-.env
-.env.*
-!.env.example
-!.env.test
-
-# Vite
-vite.config.js.timestamp-*
-vite.config.ts.timestamp-*
-
-# emacs <3
-.*~undo-tree~
-*~ \ No newline at end of file
+*~
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index b6f27f1..0000000
--- a/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-engine-strict=true
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 835a683..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,170 +0,0 @@
-Creative Commons Attribution-ShareAlike 4.0 International
-
- Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
-
-Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
-
-Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described.
-
-Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
-
-Creative Commons Attribution-ShareAlike 4.0 International Public License
-
-By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
-
-Section 1 – Definitions.
-
- a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
-
- b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
-
- c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
-
- d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
-
- e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
-
- f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
-
- g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike.
-
- h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
-
- i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
-
- j. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
-
- k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
-
- l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
-
- m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
-
-Section 2 – Scope.
-
- a. License grant.
-
- 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
-
- A. reproduce and Share the Licensed Material, in whole or in part; and
-
- B. produce, reproduce, and Share Adapted Material.
-
- 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
-
- 3. Term. The term of this Public License is specified in Section 6(a).
-
- 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
-
- 5. Downstream recipients.
-
- A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
-
- B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
-
- C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
-
- 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
-
- b. Other rights.
-
- 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
-
- 2. Patent and trademark rights are not licensed under this Public License.
-
- 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
-
-Section 3 – License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the following conditions.
-
- a. Attribution.
-
- 1. If You Share the Licensed Material (including in modified form), You must:
-
- A. retain the following if it is supplied by the Licensor with the Licensed Material:
-
- i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
-
- ii. a copyright notice;
-
- iii. a notice that refers to this Public License;
-
- iv. a notice that refers to the disclaimer of warranties;
-
- v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
-
- B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
-
- C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
-
- 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
-
- 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
-
- b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
-
- 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License.
-
- 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
-
- 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
-
-Section 4 – Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
-
- a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
-
- b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
-
- c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
-For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
-
-Section 5 – Disclaimer of Warranties and Limitation of Liability.
-
- a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
-
- b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
-
- c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
-
-Section 6 – Term and Termination.
-
- a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
-
- b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
-
- 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
-
- 2. upon express reinstatement by the Licensor.
-
- c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
-
- d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
-
- e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
-
-Section 7 – Other Terms and Conditions.
-
- a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
-
- b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
-
-Section 8 – Interpretation.
-
- a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
-
- b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
-
- c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
-
- d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
-
-Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
-
-Creative Commons may be contacted at creativecommons.org.
diff --git a/README.md b/README.md
deleted file mode 100644
index 47e1510..0000000
--- a/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-webbed site!
-
-```
-pnpm install
-pnpm build
-```
-
-credit to https://insertdomain.name (https://codeberg.org/karakara/website) for a lot of inspiration and a good reference on how to do things with svelte
diff --git a/avatar.png b/avatar.png
new file mode 100644
index 0000000..2cda90a
--- /dev/null
+++ b/avatar.png
Binary files differ
diff --git a/clockback.png b/clockback.png
new file mode 100644
index 0000000..8226964
--- /dev/null
+++ b/clockback.png
Binary files differ
diff --git a/close.svg b/close.svg
new file mode 100644
index 0000000..03d9970
--- /dev/null
+++ b/close.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 460.775 460.775" xml:space="preserve">
+<path d="M285.08,230.397L456.218,59.27c6.076-6.077,6.076-15.911,0-21.986L423.511,4.565c-2.913-2.911-6.866-4.55-10.992-4.55
+ c-4.127,0-8.08,1.639-10.993,4.55l-171.138,171.14L59.25,4.565c-2.913-2.911-6.866-4.55-10.993-4.55
+ c-4.126,0-8.08,1.639-10.992,4.55L4.558,37.284c-6.077,6.075-6.077,15.909,0,21.986l171.138,171.128L4.575,401.505
+ c-6.074,6.077-6.074,15.911,0,21.986l32.709,32.719c2.911,2.911,6.865,4.55,10.992,4.55c4.127,0,8.08-1.639,10.994-4.55
+ l171.117-171.12l171.118,171.12c2.913,2.911,6.866,4.55,10.993,4.55c4.128,0,8.081-1.639,10.992-4.55l32.709-32.719
+ c6.074-6.075,6.074-15.909,0-21.986L285.08,230.397z"/>
+</svg> \ No newline at end of file
diff --git a/copland88x31.png b/copland88x31.png
new file mode 100644
index 0000000..d907fd3
--- /dev/null
+++ b/copland88x31.png
Binary files differ
diff --git a/firefly.png b/firefly.png
new file mode 100644
index 0000000..c522bc3
--- /dev/null
+++ b/firefly.png
Binary files differ
diff --git a/freebsd88x31.gif b/freebsd88x31.gif
new file mode 100644
index 0000000..4f6712a
--- /dev/null
+++ b/freebsd88x31.gif
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0eea621
--- /dev/null
+++ b/index.html
@@ -0,0 +1,303 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Rose Garden</title>
+ <link rel="stylesheet" href="./style.css">
+ </head>
+ <body>
+
+ <div class="workspace">
+
+ <input class="radio" type="radio" id="home" name="windows_box" value="" checked="true"></input>
+ <input class="radio" type="radio" id="projects" name="windows_box" value=""></input>
+
+ <input class="radio" type="radio" id="home-info" name="home_menu" checked="true">
+ <input class="radio" type="radio" id="home-contact" name="home_menu">
+
+ <input class="radio" type="radio" id="projects-personal" name="projects_menu" checked="true">
+ <input class="radio" type="radio" id="projects-shards" name="projects_menu">
+ <input class="radio" type="radio" id="projects-crystal" name="projects_menu">
+ <input class="radio" type="radio" id="projects-vanillaos" name="projects_menu">
+
+ <ul id="home-menu" class="menu left">
+ <li><label>Home</label></li>
+ <li>
+ <label for="home-info" class="menu-button">Info
+ </label>
+ </li>
+ <li>
+ <label for="home-contact" class="menu-button">Contact
+ </label>
+ </li>
+ </ul>
+
+ <ul id="projects-menu" class="menu left">
+ <li><label>Projects</label></li>
+ <li>
+ <label for="projects-personal" class="menu-button">Personal</label>
+ </li>
+ <li>
+ <label for="projects-shards" class="menu-button">Project Shards</label>
+ </li>
+ <li>
+ <label for="projects-crystal" class="menu-button">Crystal Linux</label>
+ </li>
+ <li>
+ <label for="projects-vanillaos" class="menu-button">Vanilla OS</label>
+ </li>
+ </ul>
+
+ <div class="dock">
+ <div class="dockelement">
+ <label for="home" title="About me"> <img src="avatar.png" alt="Home">
+ </label>
+ </div>
+ <div class="dockelement">
+ <label for="projects" title="Projects"><img src="projects.png" alt="Projects">
+ </label>
+ </div>
+ <div class="dockelement">
+ <div class="clock">
+ <p id="time" class="time">
+ 12:00
+ </p>
+ <div class="cal">
+ <p id="day" class="day">
+ MON
+ </p>
+ <p id="date" class="date">
+ 6
+ </p>
+ <p id="month" class="month">
+ JUL
+ </p>
+ </div>
+ </div>
+ </div>
+ <a class="dockelement" href="https://www.youtube.com/watch?v=duPJqfKiA78" title="Triple Baka!!">
+ <img src="./kasane-teto.gif" alt="kasane teto dancing">
+ <div class="embedded"></div>
+ </a>
+ <a class="dockelement" href="https://www.freebsd.org" title="Powered by FreeBSD">
+ <img class="square" src="https://www.freebsd.org/gifs/daemon-phk.png" alt="freebsd beastie">
+ <div class="embedded"></div>
+ </a>
+ <a class="dockelement" title="Milk outside a bag of milk outside a bag of milk" href="https://nikita-kryukov.itch.io/milk-outside-a-bag-of-milk-outside-a-bag-of-milk">
+ <img class="square" src="./milkoutsideabagofmilk.png" alt="milk chan looking up, surrounded by the text 'milk outside a bag of milk'"/>
+ <div class="embedded"></div>
+ </a>
+
+ </div>
+
+
+ <div id="home-window" class="window">
+ <div class="title-bar">
+ <span>ABOUT.rtf — /home/lain</span>
+ <div class="controls">
+ <span><a href="#"><img src="./close.svg" width="18" height="18"/></a></span>
+ </div>
+ </div>
+ <div class="content" id="home-content-info">
+ <div>
+ <p>Hi!! I'm <b>Rose</b> (or Xenia or axtlos). I'm an 18 year old Programmer specialising in osdev and systems programming.</p>
+ <br>
+ <p>I mostly use C for my projects, but also have experience with Rust, Go, fortran and python (see the Projects window for more info).</p>
+ <br>
+ <p>I am currently studying Computer Science and work at Nokia as a software developer.</p>
+ </div>
+ <div style="justify-content: center; align-items: center; text-align: center;">
+ <img src="./firefly.png" width="90%" max-width="400">
+ </div>
+ <div>
+ <hr style="justify-content: bottom; border-top:2px solid #A0A0A0; width: 100%">
+ <p>Click the buttons in the left menu to view extra information or the deskapps in the right to open different windows! The window can also be moved around.</p>
+ </div>
+ </div>
+ <div class="content" id="home-content-contact">
+ <div>
+ <p>I can be contacted through these platforms</p>
+ <p>Note that I will ignore messages that simply say "hello!" or something similiar, please include a tiny introduction</p>
+ <br>
+ <h2>XMPP</h2>
+ <p>I have two xmpp accounts:</p>
+ <p><b>axtlos@disroot.org</b> and <b>rose@vostok.one</b></p>
+ <p>Contact me on whichever one is more convenient, I am fully available on both so there is no difference for me</p>
+ <hr style="border-top:2px solid #A0A0A0; width: 100%">
+ <br>
+ <h2>Matrix</h2>
+ <p>I dont check matrix a lot, so it may take a bit for me to respond to messages</p>
+ <p><b>@xenia:the-apothecary.club</b></p>
+ <hr style="border-top:2px solid #A0A0A0; width: 100%">
+ <br>
+ <h2>EMAIL</h2>
+ <p>Ol' Reliable</p>
+ <p><b>axtlos@disroot.org</b></p>
+ </div>
+ </div>
+ </div>
+
+ <div id="projects-window" class="window">
+ <div class="title-bar">
+ <span>PROJECTS.rtf — /home/lain</span>
+ <div class="controls">
+ <span><a href="#"><img src="./close.svg" width="18" height="18"/></a></span>
+ </div>
+ </div>
+ <div class="content" id="projects-content-personal">
+ <div>
+ <h1 style="text-align:center">Personal Projects</h1>
+ <p style="text-align:center">Personal Projects that aren't part of any bigger Organization/Project</p>
+ <br>
+ <h2>runc</h2>
+ <a href="https://codeberg.org/axtlos/runc">https://codeberg.org/axtlos/runc</a>
+ <p>Easily execute source files like shell scripts based on a static configuration</p>
+ <br>
+ <h2>extlib</h2>
+ <a href="https://codeberg.org/axtlos/extlib">https://codeberg.org/axtlos/extlib</a>
+ <p>C library that adds some handy functions</p>
+ <br>
+ <h2>FsVerify</h2>
+ <a href="https://github.com/axtloss/fsverify">https://github.com/axtloss/fsverify</a>
+ <p>Block Based filesystem verification for immutable Linux Distributions written in golang and C</p>
+ <br>
+ <h2>BVG - Basic Vector Graphics</h2>
+ <a href="https://github.com/axtloss/fsverify/tree/main/fbwarn">https://github.com/axtloss/fsverify/tree/main/fbwarn</a>
+ <p>Custom made vector graphics format for use with FsVerify, the parser (fbwarn) is written in C using raylib</p>
+ <br>
+ <h2>FsGuard</h2>
+ <a href="https://github.com/linux-immutability-tools/fsguard">https://github.com/linux-immutability-tools/fsguard</a>
+ <p>File tree based filesysetm integrity verification, fully written in go and use by Vanilla OS through fswarn</p>
+ <br>
+ <h2>JshipIT</h2>
+ <a href="https://github.com/axtloss/JshipIT">https://github.com/axtloss/JshipIT</a>
+ <p>OCI client written in Java similiar to podman/docker with a focus on using containers as a form of isolated environments, similiar to Distrobox and Toolbox</p>
+ </div>
+ </div>
+ <div class="content" id="projects-content-shards">
+ <div>
+ <h1 style="text-align:center">Project Shards</h1>
+ <p style="text-align:center">Immutable linux distribution using systemd-sysupdate to manage atomic updates</p>
+ <br>
+ <br>
+ <h2>shards-build-definitions</h2>
+ <a href="https://github.com/project-shards/shards-build-definitions">https://github.com/project-shards/shards-build-definitions</a>
+ <p>The apache buildstream project for building Project Shards images.</p>
+ <br>
+ <h2>Shards Installer</h2>
+ <a href="https://github.com/Project-Shards/shards-installer">https://github.com/Project-Shards/shards-installer</a>
+ <p>The Project Shards installer. Written in libadwaita with C</p>
+ </div>
+ </div>
+ <div class="content" id="projects-content-crystal">
+ <div>
+ <h1 style="text-align:center">Crystal Linux</h1>
+ <p style="text-align:center">An Arch Linux based Linux Distribution</p>
+ <br>
+ <h2>Jade</h2>
+ <a href="https://gitlab.com/crystal-linux/software/jade">https://gitlab.com/crystal-linux/software/jade</a>
+ <p>Installer backend for Crystal Linux, written in rust</p>
+ <br>
+ <h2>Jade-GUI</h2>
+ <a href="https://github.com/crystal-linux/software/jade-gui">https://gitlab.com/crystal-linux/software/jade-gui</a>
+ <p>Graphical frontend for Jade, written in python using gtk4 and libadwaita</p>
+ </div>
+ </div>
+ <div class="content" id="projects-content-vanillaos">
+ <div>
+ <h1 style="text-align:center">Vanilla OS</h1>
+ <p style="text-align:center">Immutable linux distribution based on Debian sid</p>
+ <br>
+ <h2>VIB</h2>
+ <a href="https://vib.vanillaos.org">https://vib.vanillaos.org</a>
+ <p>Buildsystem to create oci images out of yaml files, written in go</p>
+ <h2>Vanilla System Operator</h2>
+ <a href="https://github.com/vanilla-os/vanilla-system-operator">https://github.com/vanilla-os/vanilla-system-operator</a>
+ <p>Tool to manage Vanilla OS installations, including waydroid app management</p>
+ </div>
+ </div>
+ </div>
+ <div class="bottom-bar-wrapper">
+ <div class="bottom-bar">
+ <a href="https://xenia.blahaj.land" target="_blank" rel="noopener noreferrer" title="rose garden">
+ <img src="rose_88x31.png" alt="button that says 'rose', a rose grows out of the o, on the left the character milk chan is visible, a very pale girl with shoulder length brown hair wearing a black hoodie">
+ </a>
+ <a href="https://chronovore.dev" target="_blank" rel="noopener noreferrer" title="legiayayana's orbit">
+ <img src="https://chronovore.dev/button/chronovore.png" alt="button that says 'ada', text is overlayed a photograph of neptune, which in this image is a blue gas giant">
+ </a>
+ <a href="https://futile.eu" target="_blank" rel="noopener noreferrer" title="legiayayana's orbit">
+ <img src="https://futile.eu/static/buttons/futile.png" alt="button that says 'futile'">
+ </a>
+ <a>
+ <iframe src="https://increm.net/badge?key=xenia" title="incremnet badge" width="88" height="31" frameborder="0" style="background-color: #d4d0c8"></iframe>
+ </a>
+ <a href="https://nyaa.si/view/964646" target="_blank" rel="noopener noreferrer" title="watch lain now!!">
+ <img src="lain.gif" alt="lain" width="88px" height="31px">
+ </a>
+ <a><img src="copland88x31.png" alt="copland os now!" width="88px" height="31px"></a>
+ <a><img src="transrights.png" alt="trans rights now!" width="88px" height="31px"></a>
+ <a><img src="xeniatransnow.png" alt="use linux now!" width="88px" height="31px"></a>
+ </div>
+ </div>
+ <script>
+ document.querySelectorAll('.window').forEach(windowEl => {
+ const titleBar = windowEl.querySelector('.title-bar');
+ let offsetX = 0, offsetY = 0, isDragging = false;
+
+ titleBar.addEventListener('mousedown', (e) => {
+ isDragging = true;
+ offsetX = e.clientX - windowEl.offsetLeft;
+ offsetY = e.clientY - windowEl.offsetTop;
+ windowEl.style.zIndex = 1000;
+ });
+
+ document.addEventListener('mousemove', (e) => {
+ if (isDragging) {
+ windowEl.style.left = `${e.clientX - offsetX}px`;
+ windowEl.style.top = `${e.clientY - offsetY}px`;
+ }
+ });
+
+ document.addEventListener('mouseup', () => {
+ isDragging = false;
+ });
+ });
+ </script>
+
+ <script>
+ let link = document.querySelectorAll(".menu-button");
+
+ link.forEach(function(elem) {
+ elem.addEventListener("mousedown", () => {
+ elem.classList.add("ripple-effect");
+ setTimeout(() => {
+ elem.classList.remove("ripple-effect");
+ }, 1000);
+ })
+ });
+ </script>
+
+ <script>
+ function updateClockAndCalendar() {
+ const now = new Date();
+ const hours = now.getHours();
+ const minutes = now.getMinutes();
+
+ const displayHours = hours < 10 ? `0${hours}` : hours;
+ const displayMinutes = minutes < 10 ? `0${minutes}` : minutes;
+ document.getElementById('time').textContent = `${displayHours}:${displayMinutes}`;
+
+ const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
+ const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
+ document.getElementById('day').textContent = days[now.getDay()];
+ document.getElementById('date').textContent = now.getDate();
+ document.getElementById('month').textContent = months[now.getMonth()];
+ }
+
+
+ updateClockAndCalendar();
+ setInterval(updateClockAndCalendar, 1000);
+ </script>
+ </body>
+</html>
diff --git a/kasane-teto.gif b/kasane-teto.gif
new file mode 100644
index 0000000..6be81cb
--- /dev/null
+++ b/kasane-teto.gif
Binary files differ
diff --git a/static/lain.gif b/lain.gif
index b9cab1d..b9cab1d 100644
--- a/static/lain.gif
+++ b/lain.gif
Binary files differ
diff --git a/meow.png b/meow.png
new file mode 100644
index 0000000..ff73f2a
--- /dev/null
+++ b/meow.png
Binary files differ
diff --git a/milkoutsideabagofmilk.png b/milkoutsideabagofmilk.png
new file mode 100644
index 0000000..a53f703
--- /dev/null
+++ b/milkoutsideabagofmilk.png
Binary files differ
diff --git a/package.json b/package.json
deleted file mode 100644
index b782534..0000000
--- a/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "website",
- "version": "0.0.1",
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
- },
- "devDependencies": {
- "@fontsource/fira-mono": "^5.0.0",
- "@neoconfetti/svelte": "^2.0.0",
- "@sveltejs/adapter-auto": "^3.0.0",
- "@sveltejs/adapter-static": "^3.0.4",
- "@sveltejs/kit": "^2.0.0",
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
- "sass-embedded": "^1.77.8",
- "svelte": "^4.2.7",
- "svelte-check": "^3.6.0",
- "typescript": "^5.0.0",
- "vite": "^5.0.3"
- },
- "type": "module",
- "dependencies": {
- "@fontsource-variable/inter": "^5.0.20",
- "@fontsource-variable/playwrite-hr": "^5.0.2"
- }
-}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
deleted file mode 100644
index 7e6098f..0000000
--- a/pnpm-lock.yaml
+++ /dev/null
@@ -1,1520 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- dependencies:
- '@fontsource-variable/inter':
- specifier: ^5.0.20
- version: 5.0.20
- '@fontsource-variable/playwrite-hr':
- specifier: ^5.0.2
- version: 5.0.2
- devDependencies:
- '@fontsource/fira-mono':
- specifier: ^5.0.0
- version: 5.0.13
- '@neoconfetti/svelte':
- specifier: ^2.0.0
- version: 2.2.1
- '@sveltejs/adapter-auto':
- specifier: ^3.0.0
- version: 3.2.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))
- '@sveltejs/adapter-static':
- specifier: ^3.0.4
- version: 3.0.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))
- '@sveltejs/kit':
- specifier: ^2.0.0
- version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- '@sveltejs/vite-plugin-svelte':
- specifier: ^3.0.0
- version: 3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- sass-embedded:
- specifier: ^1.77.8
- version: 1.77.8
- svelte:
- specifier: ^4.2.7
- version: 4.2.18
- svelte-check:
- specifier: ^3.6.0
- version: 3.8.5(postcss@8.4.41)(svelte@4.2.18)
- typescript:
- specifier: ^5.0.0
- version: 5.5.4
- vite:
- specifier: ^5.0.3
- version: 5.4.1(sass-embedded@1.77.8)
-
-packages:
-
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
- '@bufbuild/protobuf@1.10.0':
- resolution: {integrity: sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==}
-
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@fontsource-variable/inter@5.0.20':
- resolution: {integrity: sha512-dhzG4Zls/tIrf8h0FhTNi8jT/uFwNhdTY2vKe6DYqoXDYOfEcTVZDyh1hKml1rlLT44Y7OoKoGz8w7czDW7twQ==}
-
- '@fontsource-variable/playwrite-hr@5.0.2':
- resolution: {integrity: sha512-KdQGSHyDR0883Z6Pl/gowJjtgNVtOtpm80J70hoOTf2RPrFsnBhW+T6CGJmzYUs8V0TfHOsT0F0eAu4S2vME/A==}
-
- '@fontsource/fira-mono@5.0.13':
- resolution: {integrity: sha512-fZDjR2BdAqmauEbTjcIT62zYzbOgDa5+IQH34D2k8Pxmy1T815mAqQkZciWZVQ9dc/BgdTtTUV9HJ2ulBNwchg==}
-
- '@jridgewell/gen-mapping@0.3.5':
- resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/set-array@1.2.1':
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- '@jridgewell/trace-mapping@0.3.25':
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
-
- '@neoconfetti/svelte@2.2.1':
- resolution: {integrity: sha512-2Ts0Rxaf6clW2qG+AKhTwpl01AAyZEAe03XeuQ7Vp+qYIaM3ycuI94j546fmEkUxwACwGI3Zl2cZ/pncTuNcJg==}
-
- '@polka/url@1.0.0-next.25':
- resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
-
- '@rollup/rollup-android-arm-eabi@4.20.0':
- resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.20.0':
- resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.20.0':
- resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.20.0':
- resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
- resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.20.0':
- resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-gnu@4.20.0':
- resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-musl@4.20.0':
- resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
- resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-gnu@4.20.0':
- resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.20.0':
- resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==}
- cpu: [s390x]
- os: [linux]
-
- '@rollup/rollup-linux-x64-gnu@4.20.0':
- resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-musl@4.20.0':
- resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-win32-arm64-msvc@4.20.0':
- resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.20.0':
- resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.20.0':
- resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==}
- cpu: [x64]
- os: [win32]
-
- '@sveltejs/adapter-auto@3.2.4':
- resolution: {integrity: sha512-a64AKYbfTUrVwU0xslzv1Jf3M8bj0IwhptaXmhgIkjXspBXhD0od9JiItQHchijpLMGdEDcYBlvqySkEawv6mQ==}
- peerDependencies:
- '@sveltejs/kit': ^2.0.0
-
- '@sveltejs/adapter-static@3.0.4':
- resolution: {integrity: sha512-Qm4GAHCnRXwfWG9/AtnQ7mqjyjTs7i0Opyb8H2KH9rMR7fLxqiPx/tXeoE6HHo66+72CjyOb4nFH3lrejY4vzA==}
- peerDependencies:
- '@sveltejs/kit': ^2.0.0
-
- '@sveltejs/kit@2.5.22':
- resolution: {integrity: sha512-PQ98baF2WzvG5yiO4cZKJZJG60XjHTZD1jyho3u9Kmthx2ytdGYyVPPvKXgKXpKSq4wwctD9dl0d2blSbJMcOg==}
- engines: {node: '>=18.13'}
- hasBin: true
- peerDependencies:
- '@sveltejs/vite-plugin-svelte': ^3.0.0
- svelte: ^4.0.0 || ^5.0.0-next.0
- vite: ^5.0.3
-
- '@sveltejs/vite-plugin-svelte-inspector@2.1.0':
- resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
- engines: {node: ^18.0.0 || >=20}
- peerDependencies:
- '@sveltejs/vite-plugin-svelte': ^3.0.0
- svelte: ^4.0.0 || ^5.0.0-next.0
- vite: ^5.0.0
-
- '@sveltejs/vite-plugin-svelte@3.1.1':
- resolution: {integrity: sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==}
- engines: {node: ^18.0.0 || >=20}
- peerDependencies:
- svelte: ^4.0.0 || ^5.0.0-next.0
- vite: ^5.0.0
-
- '@types/cookie@0.6.0':
- resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
-
- '@types/estree@1.0.5':
- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
-
- '@types/pug@2.0.10':
- resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
-
- acorn@8.12.1:
- resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
-
- aria-query@5.3.0:
- resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
-
- axobject-query@4.1.0:
- resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
- engines: {node: '>= 0.4'}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- binary-extensions@2.3.0:
- resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
- engines: {node: '>=8'}
-
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- buffer-builder@0.2.0:
- resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==}
-
- buffer-crc32@1.0.0:
- resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
- engines: {node: '>=8.0.0'}
-
- chokidar@3.6.0:
- resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
- engines: {node: '>= 8.10.0'}
-
- code-red@1.0.4:
- resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- cookie@0.6.0:
- resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
- engines: {node: '>= 0.6'}
-
- css-tree@2.3.1:
- resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
- engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
-
- debug@4.3.6:
- resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
-
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
- detect-indent@6.1.0:
- resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
- engines: {node: '>=8'}
-
- devalue@5.0.0:
- resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==}
-
- es6-promise@3.3.1:
- resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
-
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
- hasBin: true
-
- esm-env@1.0.0:
- resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
-
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- fs.realpath@1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
- globalyzer@0.1.0:
- resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
-
- globrex@0.1.2:
- resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- immutable@4.3.7:
- resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==}
-
- import-meta-resolve@4.1.0:
- resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
-
- inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- is-binary-path@2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-reference@3.0.2:
- resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
-
- kleur@4.1.5:
- resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
- engines: {node: '>=6'}
-
- locate-character@3.0.0:
- resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
-
- magic-string@0.30.11:
- resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
-
- mdn-data@2.0.30:
- resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
-
- min-indent@1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
-
- mri@1.2.0:
- resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
- engines: {node: '>=4'}
-
- mrmime@2.0.0:
- resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
- engines: {node: '>=10'}
-
- ms@2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-
- nanoid@3.3.7:
- resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
- path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
-
- periscopic@3.1.0:
- resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
-
- picocolors@1.0.1:
- resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- postcss@8.4.41:
- resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
- engines: {node: ^10 || ^12 || >=14}
-
- readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
-
- rimraf@2.7.1:
- resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
- deprecated: Rimraf versions prior to v4 are no longer supported
- hasBin: true
-
- rollup@4.20.0:
- resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- rxjs@7.8.1:
- resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
-
- sade@1.8.1:
- resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
- engines: {node: '>=6'}
-
- sander@0.5.1:
- resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
-
- sass-embedded-android-arm64@1.77.8:
- resolution: {integrity: sha512-EmWHLbEx0Zo/f/lTFzMeH2Du+/I4RmSRlEnERSUKQWVp3aBSO04QDvdxfFezgQ+2Yt/ub9WMqBpma9P/8MPsLg==}
- engines: {node: '>=14.0.0'}
- cpu: [arm64]
- os: [android]
- hasBin: true
-
- sass-embedded-android-arm@1.77.8:
- resolution: {integrity: sha512-GpGL7xZ7V1XpFbnflib/NWbM0euRzineK0iwoo31/ntWKAXGj03iHhGzkSiOwWSFcXgsJJi3eRA5BTmBvK5Q+w==}
- engines: {node: '>=14.0.0'}
- cpu: [arm]
- os: [android]
- hasBin: true
-
- sass-embedded-android-ia32@1.77.8:
- resolution: {integrity: sha512-+GjfJ3lDezPi4dUUyjQBxlNKXNa+XVWsExtGvVNkv1uKyaOxULJhubVo2G6QTJJU0esJdfeXf5Ca5/J0ph7+7w==}
- engines: {node: '>=14.0.0'}
- cpu: [ia32]
- os: [android]
- hasBin: true
-
- sass-embedded-android-x64@1.77.8:
- resolution: {integrity: sha512-YZbFDzGe5NhaMCygShqkeCWtzjhkWxGVunc7ULR97wmxYPQLPeVyx7XFQZc84Aj0lKAJBJS4qRZeqphMqZEJsQ==}
- engines: {node: '>=14.0.0'}
- cpu: [x64]
- os: [android]
- hasBin: true
-
- sass-embedded-darwin-arm64@1.77.8:
- resolution: {integrity: sha512-aifgeVRNE+i43toIkDFFJc/aPLMo0PJ5s5hKb52U+oNdiJE36n65n2L8F/8z3zZRvCa6eYtFY2b7f1QXR3B0LA==}
- engines: {node: '>=14.0.0'}
- cpu: [arm64]
- os: [darwin]
- hasBin: true
-
- sass-embedded-darwin-x64@1.77.8:
- resolution: {integrity: sha512-/VWZQtcWIOek60Zj6Sxk6HebXA1Qyyt3sD8o5qwbTgZnKitB1iEBuNunyGoAgMNeUz2PRd6rVki6hvbas9hQ6w==}
- engines: {node: '>=14.0.0'}
- cpu: [x64]
- os: [darwin]
- hasBin: true
-
- sass-embedded-linux-arm64@1.77.8:
- resolution: {integrity: sha512-6iIOIZtBFa2YfMsHqOb3qake3C9d/zlKxjooKKnTSo+6g6z+CLTzMXe1bOfayb7yxeenElmFoK1k54kWD/40+g==}
- engines: {node: '>=14.0.0'}
- cpu: [arm64]
- os: [linux]
- hasBin: true
-
- sass-embedded-linux-arm@1.77.8:
- resolution: {integrity: sha512-2edZMB6jf0whx3T0zlgH+p131kOEmWp+I4wnKj7ZMUeokiY4Up05d10hSvb0Q63lOrSjFAWu6P5/pcYUUx8arQ==}
- engines: {node: '>=14.0.0'}
- cpu: [arm]
- os: [linux]
- hasBin: true
-
- sass-embedded-linux-ia32@1.77.8:
- resolution: {integrity: sha512-63GsFFHWN5yRLTWiSef32TM/XmjhCBx1DFhoqxmj+Yc6L9Z1h0lDHjjwdG6Sp5XTz5EmsaFKjpDgnQTP9hJX3Q==}
- engines: {node: '>=14.0.0'}
- cpu: [ia32]
- os: [linux]
- hasBin: true
-
- sass-embedded-linux-musl-arm64@1.77.8:
- resolution: {integrity: sha512-j8cgQxNWecYK+aH8ESFsyam/Q6G+9gg8eJegiRVpA9x8yk3ykfHC7UdQWwUcF22ZcuY4zegrjJx8k+thsgsOVA==}
- engines: {node: '>=14.0.0'}
- cpu: [arm64]
- os: [linux]
-
- sass-embedded-linux-musl-arm@1.77.8:
- resolution: {integrity: sha512-nFkhSl3uu9btubm+JBW7uRglNVJ8W8dGfzVqh3fyQJKS1oyBC3vT3VOtfbT9YivXk28wXscSHpqXZwY7bUuopA==}
- engines: {node: '>=14.0.0'}
- cpu: [arm]
- os: [linux]
-
- sass-embedded-linux-musl-ia32@1.77.8:
- resolution: {integrity: sha512-oWveMe+8TFlP8WBWPna/+Ec5TV0CE+PxEutyi0ltSruBds2zxRq9dPVOqrpPcDN9QUx50vNZC0Afgch0aQEd0g==}
- engines: {node: '>=14.0.0'}
- cpu: [ia32]
- os: [linux]
-
- sass-embedded-linux-musl-x64@1.77.8:
- resolution: {integrity: sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==}
- engines: {node: '>=14.0.0'}
- cpu: [x64]
- os: [linux]
-
- sass-embedded-linux-x64@1.77.8:
- resolution: {integrity: sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==}
- engines: {node: '>=14.0.0'}
- cpu: [x64]
- os: [linux]
- hasBin: true
-
- sass-embedded-win32-arm64@1.77.8:
- resolution: {integrity: sha512-7L8zT6xzEvTYj86MvUWnbkWYCNQP+74HvruLILmiPPE+TCgOjgdi750709BtppVJGGZSs40ZuN6mi/YQyGtwXg==}
- engines: {node: '>=14.0.0'}
- cpu: [arm64]
- os: [win32]
- hasBin: true
-
- sass-embedded-win32-ia32@1.77.8:
- resolution: {integrity: sha512-7Buh+4bP0WyYn6XPbthkIa3M2vtcR8QIsFVg3JElVlr+8Ng19jqe0t0SwggDgbMX6AdQZC+Wj4F1BprZSok42A==}
- engines: {node: '>=14.0.0'}
- cpu: [ia32]
- os: [win32]
- hasBin: true
-
- sass-embedded-win32-x64@1.77.8:
- resolution: {integrity: sha512-rZmLIx4/LLQm+4GW39sRJW0MIlDqmyV0fkRzTmhFP5i/wVC7cuj8TUubPHw18rv2rkHFfBZKZJTCkPjCS5Z+SA==}
- engines: {node: '>=14.0.0'}
- cpu: [x64]
- os: [win32]
- hasBin: true
-
- sass-embedded@1.77.8:
- resolution: {integrity: sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==}
- engines: {node: '>=16.0.0'}
-
- set-cookie-parser@2.7.0:
- resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==}
-
- sirv@2.0.4:
- resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
- engines: {node: '>= 10'}
-
- sorcery@0.11.1:
- resolution: {integrity: sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==}
- hasBin: true
-
- source-map-js@1.2.0:
- resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
- engines: {node: '>=0.10.0'}
-
- strip-indent@3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
- engines: {node: '>=8'}
-
- supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
-
- svelte-check@3.8.5:
- resolution: {integrity: sha512-3OGGgr9+bJ/+1nbPgsvulkLC48xBsqsgtc8Wam281H4G9F5v3mYGa2bHRsPuwHC5brKl4AxJH95QF73kmfihGQ==}
- hasBin: true
- peerDependencies:
- svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
-
- svelte-hmr@0.16.0:
- resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==}
- engines: {node: ^12.20 || ^14.13.1 || >= 16}
- peerDependencies:
- svelte: ^3.19.0 || ^4.0.0
-
- svelte-preprocess@5.1.4:
- resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==}
- engines: {node: '>= 16.0.0'}
- peerDependencies:
- '@babel/core': ^7.10.2
- coffeescript: ^2.5.1
- less: ^3.11.3 || ^4.0.0
- postcss: ^7 || ^8
- postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
- pug: ^3.0.0
- sass: ^1.26.8
- stylus: ^0.55.0
- sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
- svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
- typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- coffeescript:
- optional: true
- less:
- optional: true
- postcss:
- optional: true
- postcss-load-config:
- optional: true
- pug:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- typescript:
- optional: true
-
- svelte@4.2.18:
- resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==}
- engines: {node: '>=16'}
-
- tiny-glob@0.2.9:
- resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- totalist@3.0.1:
- resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
- engines: {node: '>=6'}
-
- tslib@2.6.3:
- resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
-
- typescript@5.5.4:
- resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- varint@6.0.0:
- resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
-
- vite@5.4.1:
- resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- sass-embedded:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
- vitefu@0.2.5:
- resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
- peerDependencies:
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0
- peerDependenciesMeta:
- vite:
- optional: true
-
- wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
-snapshots:
-
- '@ampproject/remapping@2.3.0':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
-
- '@bufbuild/protobuf@1.10.0': {}
-
- '@esbuild/aix-ppc64@0.21.5':
- optional: true
-
- '@esbuild/android-arm64@0.21.5':
- optional: true
-
- '@esbuild/android-arm@0.21.5':
- optional: true
-
- '@esbuild/android-x64@0.21.5':
- optional: true
-
- '@esbuild/darwin-arm64@0.21.5':
- optional: true
-
- '@esbuild/darwin-x64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-arm64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-x64@0.21.5':
- optional: true
-
- '@esbuild/linux-arm64@0.21.5':
- optional: true
-
- '@esbuild/linux-arm@0.21.5':
- optional: true
-
- '@esbuild/linux-ia32@0.21.5':
- optional: true
-
- '@esbuild/linux-loong64@0.21.5':
- optional: true
-
- '@esbuild/linux-mips64el@0.21.5':
- optional: true
-
- '@esbuild/linux-ppc64@0.21.5':
- optional: true
-
- '@esbuild/linux-riscv64@0.21.5':
- optional: true
-
- '@esbuild/linux-s390x@0.21.5':
- optional: true
-
- '@esbuild/linux-x64@0.21.5':
- optional: true
-
- '@esbuild/netbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/openbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/sunos-x64@0.21.5':
- optional: true
-
- '@esbuild/win32-arm64@0.21.5':
- optional: true
-
- '@esbuild/win32-ia32@0.21.5':
- optional: true
-
- '@esbuild/win32-x64@0.21.5':
- optional: true
-
- '@fontsource-variable/inter@5.0.20': {}
-
- '@fontsource-variable/playwrite-hr@5.0.2': {}
-
- '@fontsource/fira-mono@5.0.13': {}
-
- '@jridgewell/gen-mapping@0.3.5':
- dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/set-array@1.2.1': {}
-
- '@jridgewell/sourcemap-codec@1.5.0': {}
-
- '@jridgewell/trace-mapping@0.3.25':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
-
- '@neoconfetti/svelte@2.2.1': {}
-
- '@polka/url@1.0.0-next.25': {}
-
- '@rollup/rollup-android-arm-eabi@4.20.0':
- optional: true
-
- '@rollup/rollup-android-arm64@4.20.0':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.20.0':
- optional: true
-
- '@rollup/rollup-darwin-x64@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-arm-musleabihf@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-arm64-gnu@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-arm64-musl@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-riscv64-gnu@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-s390x-gnu@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-x64-gnu@4.20.0':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.20.0':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.20.0':
- optional: true
-
- '@rollup/rollup-win32-ia32-msvc@4.20.0':
- optional: true
-
- '@rollup/rollup-win32-x64-msvc@4.20.0':
- optional: true
-
- '@sveltejs/adapter-auto@3.2.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))':
- dependencies:
- '@sveltejs/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- import-meta-resolve: 4.1.0
-
- '@sveltejs/adapter-static@3.0.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))':
- dependencies:
- '@sveltejs/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
-
- '@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))':
- dependencies:
- '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- '@types/cookie': 0.6.0
- cookie: 0.6.0
- devalue: 5.0.0
- esm-env: 1.0.0
- import-meta-resolve: 4.1.0
- kleur: 4.1.5
- magic-string: 0.30.11
- mrmime: 2.0.0
- sade: 1.8.1
- set-cookie-parser: 2.7.0
- sirv: 2.0.4
- svelte: 4.2.18
- tiny-glob: 0.2.9
- vite: 5.4.1(sass-embedded@1.77.8)
-
- '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))':
- dependencies:
- '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- debug: 4.3.6
- svelte: 4.2.18
- vite: 5.4.1(sass-embedded@1.77.8)
- transitivePeerDependencies:
- - supports-color
-
- '@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))':
- dependencies:
- '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8)))(svelte@4.2.18)(vite@5.4.1(sass-embedded@1.77.8))
- debug: 4.3.6
- deepmerge: 4.3.1
- kleur: 4.1.5
- magic-string: 0.30.11
- svelte: 4.2.18
- svelte-hmr: 0.16.0(svelte@4.2.18)
- vite: 5.4.1(sass-embedded@1.77.8)
- vitefu: 0.2.5(vite@5.4.1(sass-embedded@1.77.8))
- transitivePeerDependencies:
- - supports-color
-
- '@types/cookie@0.6.0': {}
-
- '@types/estree@1.0.5': {}
-
- '@types/pug@2.0.10': {}
-
- acorn@8.12.1: {}
-
- anymatch@3.1.3:
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
-
- aria-query@5.3.0:
- dependencies:
- dequal: 2.0.3
-
- axobject-query@4.1.0: {}
-
- balanced-match@1.0.2: {}
-
- binary-extensions@2.3.0: {}
-
- brace-expansion@1.1.11:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- buffer-builder@0.2.0: {}
-
- buffer-crc32@1.0.0: {}
-
- chokidar@3.6.0:
- dependencies:
- anymatch: 3.1.3
- braces: 3.0.3
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.3
-
- code-red@1.0.4:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
- '@types/estree': 1.0.5
- acorn: 8.12.1
- estree-walker: 3.0.3
- periscopic: 3.1.0
-
- concat-map@0.0.1: {}
-
- cookie@0.6.0: {}
-
- css-tree@2.3.1:
- dependencies:
- mdn-data: 2.0.30
- source-map-js: 1.2.0
-
- debug@4.3.6:
- dependencies:
- ms: 2.1.2
-
- deepmerge@4.3.1: {}
-
- dequal@2.0.3: {}
-
- detect-indent@6.1.0: {}
-
- devalue@5.0.0: {}
-
- es6-promise@3.3.1: {}
-
- esbuild@0.21.5:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
-
- esm-env@1.0.0: {}
-
- estree-walker@3.0.3:
- dependencies:
- '@types/estree': 1.0.5
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- fs.realpath@1.0.0: {}
-
- fsevents@2.3.3:
- optional: true
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
-
- globalyzer@0.1.0: {}
-
- globrex@0.1.2: {}
-
- graceful-fs@4.2.11: {}
-
- has-flag@4.0.0: {}
-
- immutable@4.3.7: {}
-
- import-meta-resolve@4.1.0: {}
-
- inflight@1.0.6:
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
-
- inherits@2.0.4: {}
-
- is-binary-path@2.1.0:
- dependencies:
- binary-extensions: 2.3.0
-
- is-extglob@2.1.1: {}
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-number@7.0.0: {}
-
- is-reference@3.0.2:
- dependencies:
- '@types/estree': 1.0.5
-
- kleur@4.1.5: {}
-
- locate-character@3.0.0: {}
-
- magic-string@0.30.11:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
-
- mdn-data@2.0.30: {}
-
- min-indent@1.0.1: {}
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.11
-
- minimist@1.2.8: {}
-
- mkdirp@0.5.6:
- dependencies:
- minimist: 1.2.8
-
- mri@1.2.0: {}
-
- mrmime@2.0.0: {}
-
- ms@2.1.2: {}
-
- nanoid@3.3.7: {}
-
- normalize-path@3.0.0: {}
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
-
- path-is-absolute@1.0.1: {}
-
- periscopic@3.1.0:
- dependencies:
- '@types/estree': 1.0.5
- estree-walker: 3.0.3
- is-reference: 3.0.2
-
- picocolors@1.0.1: {}
-
- picomatch@2.3.1: {}
-
- postcss@8.4.41:
- dependencies:
- nanoid: 3.3.7
- picocolors: 1.0.1
- source-map-js: 1.2.0
-
- readdirp@3.6.0:
- dependencies:
- picomatch: 2.3.1
-
- rimraf@2.7.1:
- dependencies:
- glob: 7.2.3
-
- rollup@4.20.0:
- dependencies:
- '@types/estree': 1.0.5
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.20.0
- '@rollup/rollup-android-arm64': 4.20.0
- '@rollup/rollup-darwin-arm64': 4.20.0
- '@rollup/rollup-darwin-x64': 4.20.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.20.0
- '@rollup/rollup-linux-arm-musleabihf': 4.20.0
- '@rollup/rollup-linux-arm64-gnu': 4.20.0
- '@rollup/rollup-linux-arm64-musl': 4.20.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0
- '@rollup/rollup-linux-riscv64-gnu': 4.20.0
- '@rollup/rollup-linux-s390x-gnu': 4.20.0
- '@rollup/rollup-linux-x64-gnu': 4.20.0
- '@rollup/rollup-linux-x64-musl': 4.20.0
- '@rollup/rollup-win32-arm64-msvc': 4.20.0
- '@rollup/rollup-win32-ia32-msvc': 4.20.0
- '@rollup/rollup-win32-x64-msvc': 4.20.0
- fsevents: 2.3.3
-
- rxjs@7.8.1:
- dependencies:
- tslib: 2.6.3
-
- sade@1.8.1:
- dependencies:
- mri: 1.2.0
-
- sander@0.5.1:
- dependencies:
- es6-promise: 3.3.1
- graceful-fs: 4.2.11
- mkdirp: 0.5.6
- rimraf: 2.7.1
-
- sass-embedded-android-arm64@1.77.8:
- optional: true
-
- sass-embedded-android-arm@1.77.8:
- optional: true
-
- sass-embedded-android-ia32@1.77.8:
- optional: true
-
- sass-embedded-android-x64@1.77.8:
- optional: true
-
- sass-embedded-darwin-arm64@1.77.8:
- optional: true
-
- sass-embedded-darwin-x64@1.77.8:
- optional: true
-
- sass-embedded-linux-arm64@1.77.8:
- optional: true
-
- sass-embedded-linux-arm@1.77.8:
- optional: true
-
- sass-embedded-linux-ia32@1.77.8:
- optional: true
-
- sass-embedded-linux-musl-arm64@1.77.8:
- optional: true
-
- sass-embedded-linux-musl-arm@1.77.8:
- optional: true
-
- sass-embedded-linux-musl-ia32@1.77.8:
- optional: true
-
- sass-embedded-linux-musl-x64@1.77.8:
- optional: true
-
- sass-embedded-linux-x64@1.77.8:
- optional: true
-
- sass-embedded-win32-arm64@1.77.8:
- optional: true
-
- sass-embedded-win32-ia32@1.77.8:
- optional: true
-
- sass-embedded-win32-x64@1.77.8:
- optional: true
-
- sass-embedded@1.77.8:
- dependencies:
- '@bufbuild/protobuf': 1.10.0
- buffer-builder: 0.2.0
- immutable: 4.3.7
- rxjs: 7.8.1
- supports-color: 8.1.1
- varint: 6.0.0
- optionalDependencies:
- sass-embedded-android-arm: 1.77.8
- sass-embedded-android-arm64: 1.77.8
- sass-embedded-android-ia32: 1.77.8
- sass-embedded-android-x64: 1.77.8
- sass-embedded-darwin-arm64: 1.77.8
- sass-embedded-darwin-x64: 1.77.8
- sass-embedded-linux-arm: 1.77.8
- sass-embedded-linux-arm64: 1.77.8
- sass-embedded-linux-ia32: 1.77.8
- sass-embedded-linux-musl-arm: 1.77.8
- sass-embedded-linux-musl-arm64: 1.77.8
- sass-embedded-linux-musl-ia32: 1.77.8
- sass-embedded-linux-musl-x64: 1.77.8
- sass-embedded-linux-x64: 1.77.8
- sass-embedded-win32-arm64: 1.77.8
- sass-embedded-win32-ia32: 1.77.8
- sass-embedded-win32-x64: 1.77.8
-
- set-cookie-parser@2.7.0: {}
-
- sirv@2.0.4:
- dependencies:
- '@polka/url': 1.0.0-next.25
- mrmime: 2.0.0
- totalist: 3.0.1
-
- sorcery@0.11.1:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
- buffer-crc32: 1.0.0
- minimist: 1.2.8
- sander: 0.5.1
-
- source-map-js@1.2.0: {}
-
- strip-indent@3.0.0:
- dependencies:
- min-indent: 1.0.1
-
- supports-color@8.1.1:
- dependencies:
- has-flag: 4.0.0
-
- svelte-check@3.8.5(postcss@8.4.41)(svelte@4.2.18):
- dependencies:
- '@jridgewell/trace-mapping': 0.3.25
- chokidar: 3.6.0
- picocolors: 1.0.1
- sade: 1.8.1
- svelte: 4.2.18
- svelte-preprocess: 5.1.4(postcss@8.4.41)(svelte@4.2.18)(typescript@5.5.4)
- typescript: 5.5.4
- transitivePeerDependencies:
- - '@babel/core'
- - coffeescript
- - less
- - postcss
- - postcss-load-config
- - pug
- - sass
- - stylus
- - sugarss
-
- svelte-hmr@0.16.0(svelte@4.2.18):
- dependencies:
- svelte: 4.2.18
-
- svelte-preprocess@5.1.4(postcss@8.4.41)(svelte@4.2.18)(typescript@5.5.4):
- dependencies:
- '@types/pug': 2.0.10
- detect-indent: 6.1.0
- magic-string: 0.30.11
- sorcery: 0.11.1
- strip-indent: 3.0.0
- svelte: 4.2.18
- optionalDependencies:
- postcss: 8.4.41
- typescript: 5.5.4
-
- svelte@4.2.18:
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
- '@types/estree': 1.0.5
- acorn: 8.12.1
- aria-query: 5.3.0
- axobject-query: 4.1.0
- code-red: 1.0.4
- css-tree: 2.3.1
- estree-walker: 3.0.3
- is-reference: 3.0.2
- locate-character: 3.0.0
- magic-string: 0.30.11
- periscopic: 3.1.0
-
- tiny-glob@0.2.9:
- dependencies:
- globalyzer: 0.1.0
- globrex: 0.1.2
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- totalist@3.0.1: {}
-
- tslib@2.6.3: {}
-
- typescript@5.5.4: {}
-
- varint@6.0.0: {}
-
- vite@5.4.1(sass-embedded@1.77.8):
- dependencies:
- esbuild: 0.21.5
- postcss: 8.4.41
- rollup: 4.20.0
- optionalDependencies:
- fsevents: 2.3.3
- sass-embedded: 1.77.8
-
- vitefu@0.2.5(vite@5.4.1(sass-embedded@1.77.8)):
- optionalDependencies:
- vite: 5.4.1(sass-embedded@1.77.8)
-
- wrappy@1.0.2: {}
diff --git a/projects.png b/projects.png
new file mode 100644
index 0000000..ff86dbd
--- /dev/null
+++ b/projects.png
Binary files differ
diff --git a/static/rose_88x31.png b/rose_88x31.png
index 9be1a1f..9be1a1f 100644
--- a/static/rose_88x31.png
+++ b/rose_88x31.png
Binary files differ
diff --git a/src/app.d.ts b/src/app.d.ts
deleted file mode 100644
index 743f07b..0000000
--- a/src/app.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// See https://kit.svelte.dev/docs/types#app
-// for information about these interfaces
-declare global {
- namespace App {
- // interface Error {}
- // interface Locals {}
- // interface PageData {}
- // interface PageState {}
- // interface Platform {}
- }
-}
-
-export {};
diff --git a/src/app.html b/src/app.html
deleted file mode 100644
index adf8bd8..0000000
--- a/src/app.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!doctype html>
-<html lang="en">
- <head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- %sveltekit.head%
- </head>
- <body data-sveltekit-preload-data="hover">
- <div style="display: contents">%sveltekit.body%</div>
- </body>
-</html>
diff --git a/src/lib/#decoder.ts# b/src/lib/#decoder.ts#
deleted file mode 100644
index 3e5613f..0000000
--- a/src/lib/#decoder.ts#
+++ /dev/null
@@ -1,17 +0,0 @@
-export function decode(value: string): string {
- var offset: number = parseInt(value.substring(0,2), 16);
- var n: number = 2;
- var final: string = "";
- for (inti ; n < value.length; n=n+3) {
- var num: string = value.substring(n, n+3);
- var charAscii: number = parseInt(num, 16)-offset;
- final = final + String.fromCharCode(charAscii)
- }
- return final;
-}
-
-
-export function isDecoded(value: string): boolean {
- var offset: number = Number(value.substring(0,2));
- return isNaN(offset);
-}
diff --git a/src/lib/assets/close.svg b/src/lib/assets/close.svg
deleted file mode 100644
index cbb7654..0000000
--- a/src/lib/assets/close.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
- <path d="m 4 4 h 1 h 0.03125 c 0.253906 0.011719 0.511719 0.128906 0.6875 0.3125 l 2.28125 2.28125 l 2.3125 -2.28125 c 0.265625 -0.230469 0.445312 -0.304688 0.6875 -0.3125 h 1 v 1 c 0 0.285156 -0.035156 0.550781 -0.25 0.75 l -2.28125 2.28125 l 2.25 2.25 c 0.1875 0.1875 0.28125 0.453125 0.28125 0.71875 v 1 h -1 c -0.265625 0 -0.53125 -0.09375 -0.71875 -0.28125 l -2.28125 -2.28125 l -2.28125 2.28125 c -0.1875 0.1875 -0.453125 0.28125 -0.71875 0.28125 h -1 v -1 c 0 -0.265625 0.09375 -0.53125 0.28125 -0.71875 l 2.28125 -2.25 l -2.28125 -2.28125 c -0.210938 -0.195312 -0.304688 -0.46875 -0.28125 -0.75 z m 0 0"/>
-</svg>
diff --git a/src/lib/assets/xmpp.svg b/src/lib/assets/xmpp.svg
deleted file mode 100644
index f660926..0000000
--- a/src/lib/assets/xmpp.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- viewBox="0 0 1750 1273"
- height="1273"
- width="1750"
- version="1.1"
- id="svg2">
- <metadata
- id="metadata8">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs6" />
- <path
- id="path3342"
- d="m 445.5368,1260.3774 0.2798,-12.6227 12.5,-3.3998 c 86.3329,-23.4818 169.6413,-62.291 250.3046,-116.6045 21.6348,-14.5674 54.9023,-39.6297 54.4411,-41.0135 -0.219,-0.6568 -4.8638,-3.8543 -10.3219,-7.1055 C 643.2778,1014.4283 545.02,941.13549 450.3396,854.06369 429.6559,835.04199 380.3414,785.90449 358.9481,762.99999 180.5946,572.04763 62.054497,360.05908 18.4066,153.99998 8.7628,108.47213 2.3059,58.553447 0.6664,16.850277 L 0,-0.10203342 6.4083,2.3337566 c 3.5246,1.33968 58.833297,22.7793104 122.9083,47.6436104 166.6481,64.667773 168.944,65.464203 304.4367,105.604623 62.1152,18.40194 113.1902,33.71169 113.5,34.02166 0.3099,0.30997 0.4154,15.03845 0.2346,32.72995 -0.7292,71.3433 7.8053,140.72171 26.8373,218.16638 39.0143,158.75637 118.1187,319.92841 223.5627,455.50001 28.91491,37.1765 73.62151,88 77.40871,88 2.7547,0 26.96638,-26.2437 52.834,-57.2683 132.54379,-158.9674 227.42059,-358.08969 261.64909,-549.13496 10.0437,-56.05859 13.7745,-98.67828 13.4235,-153.34671 -0.121,-18.83748 -0.032,-34.43372 0.1968,-34.6583 0.2292,-0.22459 50.1417,-15.11502 110.9167,-33.08986 134.5925,-39.80714 140.484,-41.85315 312,-108.352043 l 123.5,-47.88249042 0.3207,7.61633002 c 0.3596,8.5370104 -1.1628,33.2485804 -3.3954,55.1163204 -3.8106,37.324233 -12.1421,84.466813 -21.8263,123.500003 -60.4804,243.77385 -227.0666,496.24088 -463.599,702.59971 -78.2752,68.2899 -161.6555,129.12491 -251.25,183.31441 -12.5125,7.5679 -22.75,14.1335 -22.75,14.5903 0,1.0394 22.9632,18.4731 41.5,31.5068 84.3957,59.3407 173.6883,101.5869 269,127.2694 l 7,1.8862 0.2799,12.6666 0.2799,12.6666 -3.2799,-6e-4 c -5.2353,-10e-4 -37.4406,-3.7921 -60.2799,-7.0959 -85.6385,-12.3881 -177.8337,-38.246 -257.5,-72.2208 -39.76812,-16.9597 -71.45999,-30.8513 -87.00005,-38.1349 -9.075,-4.2535 -17.85004,-8.1823 -19.50004,-8.7307 -2.6877,-0.8934 -5.0814,-0.039 -23,8.2132 -20.2043,9.3045 -59.60201,26.5462 -89.00001,38.9493 -95.6207,40.3427 -198.208,66.8187 -300.3568,77.5168 -7.8962,0.827 -15.6722,1.5036 -17.2799,1.5036 l -2.923,0 0.2799,-12.6226 z"
- style="fill:#000000" />
-</svg>
diff --git a/src/lib/decoder.ts b/src/lib/decoder.ts
deleted file mode 100644
index f28bbbc..0000000
--- a/src/lib/decoder.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export function decode(value: string): string {
- var offset: number = parseInt(value.substring(0,2), 16);
- var final: string = "";
- for (let i = 2; i < value.length; i=i+3) {
- var num: string = value.substring(i, i+3);
- var charAscii: number = parseInt(num, 16)-offset;
- final = final + String.fromCharCode(charAscii)
- }
- return final;
-}
-
-
-export function isDecoded(value: string): boolean {
- var offset: number = Number(value.substring(0,2));
- return isNaN(offset);
-}
diff --git a/src/lib/images/github.svg b/src/lib/images/github.svg
deleted file mode 100644
index bc5d249..0000000
--- a/src/lib/images/github.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="-3 -3 30 30">
- <path
- fill-rule="evenodd"
- clip-rule="evenodd"
- d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5229 6.47715 22 12 22C17.5229 22 22 17.5229 22 12C22 6.47715 17.5229 2 12 2ZM0 12C0 5.3726 5.3726 0 12 0C18.6274 0 24 5.3726 24 12C24 18.6274 18.6274 24 12 24C5.3726 24 0 18.6274 0 12Z"
- fill="rgba(0,0,0,0.7)"
- stroke="none"
- />
- <path
- fill-rule="evenodd"
- clip-rule="evenodd"
- d="M9.59162 22.7357C9.49492 22.6109 9.49492 21.4986 9.59162 19.399C8.55572 19.4347 7.90122 19.3628 7.62812 19.1833C7.21852 18.9139 6.80842 18.0833 6.44457 17.4979C6.08072 16.9125 5.27312 16.8199 4.94702 16.6891C4.62091 16.5582 4.53905 16.0247 5.84562 16.4282C7.15222 16.8316 7.21592 17.9303 7.62812 18.1872C8.04032 18.4441 9.02572 18.3317 9.47242 18.1259C9.91907 17.9201 9.88622 17.1538 9.96587 16.8503C10.0666 16.5669 9.71162 16.5041 9.70382 16.5018C9.26777 16.5018 6.97697 16.0036 6.34772 13.7852C5.71852 11.5669 6.52907 10.117 6.96147 9.49369C7.24972 9.07814 7.22422 8.19254 6.88497 6.83679C8.11677 6.67939 9.06732 7.06709 9.73672 7.99999C9.73737 8.00534 10.6143 7.47854 12.0001 7.47854C13.386 7.47854 13.8777 7.90764 14.2571 7.99999C14.6365 8.09234 14.94 6.36699 17.2834 6.83679C16.7942 7.79839 16.3844 8.99999 16.6972 9.49369C17.0099 9.98739 18.2372 11.5573 17.4833 13.7852C16.9807 15.2706 15.9927 16.1761 14.5192 16.5018C14.3502 16.5557 14.2658 16.6427 14.2658 16.7627C14.2658 16.9427 14.4942 16.9624 14.8233 17.8058C15.0426 18.368 15.0585 19.9739 14.8708 22.6234C14.3953 22.7445 14.0254 22.8257 13.7611 22.8673C13.2924 22.9409 12.7835 22.9822 12.2834 22.9982C11.7834 23.0141 11.6098 23.0123 10.9185 22.948C10.4577 22.9051 10.0154 22.8343 9.59162 22.7357Z"
- fill="rgba(0,0,0,0.7)"
- stroke="none"
- />
-</svg> \ No newline at end of file
diff --git a/src/lib/images/svelte-logo.svg b/src/lib/images/svelte-logo.svg
deleted file mode 100644
index 49492a8..0000000
--- a/src/lib/images/svelte-logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.1566,22.8189c-10.4-14.8851-30.94-19.2971-45.7914-9.8348L22.2825,29.6078A29.9234,29.9234,0,0,0,8.7639,49.6506a31.5136,31.5136,0,0,0,3.1076,20.2318A30.0061,30.0061,0,0,0,7.3953,81.0653a31.8886,31.8886,0,0,0,5.4473,24.1157c10.4022,14.8865,30.9423,19.2966,45.7914,9.8348L84.7167,98.3921A29.9177,29.9177,0,0,0,98.2353,78.3493,31.5263,31.5263,0,0,0,95.13,58.117a30,30,0,0,0,4.4743-11.1824,31.88,31.88,0,0,0-5.4473-24.1157" style="fill:#ff3e00"/><path d="M45.8171,106.5815A20.7182,20.7182,0,0,1,23.58,98.3389a19.1739,19.1739,0,0,1-3.2766-14.5025,18.1886,18.1886,0,0,1,.6233-2.4357l.4912-1.4978,1.3363.9815a33.6443,33.6443,0,0,0,10.203,5.0978l.9694.2941-.0893.9675a5.8474,5.8474,0,0,0,1.052,3.8781,6.2389,6.2389,0,0,0,6.6952,2.485,5.7449,5.7449,0,0,0,1.6021-.7041L69.27,76.281a5.4306,5.4306,0,0,0,2.4506-3.631,5.7948,5.7948,0,0,0-.9875-4.3712,6.2436,6.2436,0,0,0-6.6978-2.4864,5.7427,5.7427,0,0,0-1.6.7036l-9.9532,6.3449a19.0329,19.0329,0,0,1-5.2965,2.3259,20.7181,20.7181,0,0,1-22.2368-8.2427,19.1725,19.1725,0,0,1-3.2766-14.5024,17.9885,17.9885,0,0,1,8.13-12.0513L55.8833,23.7472a19.0038,19.0038,0,0,1,5.3-2.3287A20.7182,20.7182,0,0,1,83.42,29.6611a19.1739,19.1739,0,0,1,3.2766,14.5025,18.4,18.4,0,0,1-.6233,2.4357l-.4912,1.4978-1.3356-.98a33.6175,33.6175,0,0,0-10.2037-5.1l-.9694-.2942.0893-.9675a5.8588,5.8588,0,0,0-1.052-3.878,6.2389,6.2389,0,0,0-6.6952-2.485,5.7449,5.7449,0,0,0-1.6021.7041L37.73,51.719a5.4218,5.4218,0,0,0-2.4487,3.63,5.7862,5.7862,0,0,0,.9856,4.3717,6.2437,6.2437,0,0,0,6.6978,2.4864,5.7652,5.7652,0,0,0,1.602-.7041l9.9519-6.3425a18.978,18.978,0,0,1,5.2959-2.3278,20.7181,20.7181,0,0,1,22.2368,8.2427,19.1725,19.1725,0,0,1,3.2766,14.5024,17.9977,17.9977,0,0,1-8.13,12.0532L51.1167,104.2528a19.0038,19.0038,0,0,1-5.3,2.3287" style="fill:#fff"/></svg> \ No newline at end of file
diff --git a/src/lib/images/svelte-welcome.png b/src/lib/images/svelte-welcome.png
deleted file mode 100644
index fe7d2d6..0000000
--- a/src/lib/images/svelte-welcome.png
+++ /dev/null
Binary files differ
diff --git a/src/lib/images/svelte-welcome.webp b/src/lib/images/svelte-welcome.webp
deleted file mode 100644
index 6ec1a28..0000000
--- a/src/lib/images/svelte-welcome.webp
+++ /dev/null
Binary files differ
diff --git a/src/lib/mobile.js b/src/lib/mobile.js
deleted file mode 100644
index f9d7ac3..0000000
--- a/src/lib/mobile.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isMobile() {
- var a = navigator.userAgent||navigator.vendor||window.opera;
- return (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))
-}
diff --git a/src/lib/navigation.ts b/src/lib/navigation.ts
deleted file mode 100644
index c759d97..0000000
--- a/src/lib/navigation.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { derived } from 'svelte/store';
-import { navigating } from '$app/stores';
-
-let timer: ReturnType<typeof setTimeout> = null;
-export const isNavigating = derived(navigating, (newValue, set) => {
- if (timer) {
- clearTimeout(timer);
- }
- if (newValue) {
- timer = setTimeout(() => set(true), 500);
- }
- set(false);
-});
diff --git a/src/lib/styles/contact.scss b/src/lib/styles/contact.scss
deleted file mode 100644
index 910cac6..0000000
--- a/src/lib/styles/contact.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-@use "sass:color";
-@use "sass:meta";
-
-@mixin contact($color, $text-color: $color) {
- cursor: pointer;
- color: $text-color;
- background-color: color.adjust($color, $alpha: -0.1);
- padding: 7px 25px;
- min-width: 70px;
- max-width: 70vw;
- overflow-wrap: break-word;
- border-radius: 10px;
- align-items: center;
- justify-content: center;
- box-shadow: 0 1px 4px 1px color.change(black, $alpha: 0.10),
- 0 1px 10px 5px color.change(black, $alpha: 0.09),
- 0 3px 16px 8px color.change(black, $alpha: 0.04),
- 0 0 0 1px color.change(black, $alpha: 0.05);
- transition: box-shadow 0.3s ease-in-out;
-
- &:hover {
- box-shadow: 0 1px 4px 1px color.change($color, $alpha: 0.10),
- 0 1px 10px 5px color.change($color, $alpha: 0.09),
- 0 3px 16px 8px color.change($color, $alpha: 0.04),
- 0 0 0 1px color.change($color, $alpha: 0.05);
- }
- & h3 {
- text-align: center;
- }
-
- & p {
- user-select: none;
- }
-
- & noscript {
- text-overflow: ellipsis;
- }
-}
diff --git a/src/lib/styles/index.scss b/src/lib/styles/index.scss
deleted file mode 100644
index f8b00dd..0000000
--- a/src/lib/styles/index.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@forward "$lib/styles/shadow.scss";
-@forward "$lib/styles/contact.scss";
diff --git a/src/lib/styles/shadow.scss b/src/lib/styles/shadow.scss
deleted file mode 100644
index 382c337..0000000
--- a/src/lib/styles/shadow.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@use "sass:color";
-@use "sass:meta";
-
-@mixin shadow($color: black) {
- box-shadow: 0 1px 4px 1px color.change($color, $alpha: 0.13),
- 0 1px 10px 5px color.change($color, $alpha: 0.09),
- 0 3px 16px 8px color.change($color, $alpha: 0.04),
- 0 0 0 1px color.change($color, $alpha: 0.05);
-}
diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte
deleted file mode 100644
index 2ced366..0000000
--- a/src/routes/+error.svelte
+++ /dev/null
@@ -1,41 +0,0 @@
-<script lang="ts">
- import { page } from "$app/stores";
-
- let displayDog = ($page.status === 404) || false;
-</script>
-
-<div class="error-container">
- <div class="error">
- <h1>{$page.status ?? "oopsie daisies!"}</h1>
- <p>{$page.error?.message ?? "website broke &gt;w&lt; "}</p>
- </div>
- {#if displayDog}
- <div class="huh">
- <img src="/huh.jpg" alt="dog looking at the camera with a question mark edited next to it"/>
- </div>
- {/if}
-</div>
-
-<style lang="scss">
- .error-container {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- width: 100%;
- height: 100%;
-
- & .error {
- display: flex;
- flex-direction: column;
- align-items: center;
- margin: 36px 12px;
- border-spacing: 36px;
-
- & :not(:last-child) {
- margin-bottom: 1rem;
- }
- }
- }
-</style>
-
diff --git a/src/routes/+layout.js b/src/routes/+layout.js
deleted file mode 100644
index b40fb51..0000000
--- a/src/routes/+layout.js
+++ /dev/null
@@ -1 +0,0 @@
-export const ssr = true
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
deleted file mode 100644
index ad34a2e..0000000
--- a/src/routes/+layout.svelte
+++ /dev/null
@@ -1,37 +0,0 @@
-<script lang="ts">
- import Header from './Header.svelte';
- import './styles.scss';
- import { onMount } from "svelte";
-
- onMount(async () => {
- if( navigator.brave && await navigator.brave.isBrave() || !1 ) {
- window.location.href="/not-very-brave.html"
- }
- });
-</script>
-<div class="app">
- <Header>
- <main>
- <slot />
- </main>
- </Header>
-</div>
-
-<style>
- .app {
- display: flex;
- flex-direction: column;
- }
-
- main {
- flex: 1;
- display: flex;
- flex-direction: column;
- padding: 1rem;
- padding-top: 4em;
- width: 100%;
- max-width: 64rem;
- margin: 0 auto;
- box-sizing: border-box;
- }
-</style>
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
deleted file mode 100644
index 631f82e..0000000
--- a/src/routes/+page.svelte
+++ /dev/null
@@ -1,232 +0,0 @@
-<script lang="ts">
- import { fade } from "svelte/transition";
- import github from "$lib/images/github.svg?raw";
- import xmppSvg from "$lib/assets/xmpp.svg?raw";
- import { decode, isDecoded } from "$lib/decoder";
- import { getContext, onMount } from "svelte";
- import { isMobile } from "$lib/mobile";
- import { browser } from "$app/environment";
-
- const header = getContext<Header>("Header");
-
- var description = [
- "Hiiiii im Rose!! I've been coding and abusing computers for like 8 years now (as of 2024)!",
- "My main focus is in OSdev and Containers, but my experience ranges all accross the spectrum, ",
- "frontend, backend, weird amalgamations inbetween, I can make everything work! ",
- ].join("");
-
-
- var xmpp:string = "e714815f15b15315615a12714b15015a15915615615b11515615914e";
- var matrix: string = "c210213a12713012b1230fc13612a1270ef12313213113612a12712512313413b0f012512e137124"
- onMount(() => {
- if (navigator.webdriver) {
- return;
- }
-
- xmpp = decode(xmpp);
- matrix = decode(matrix);
- });
-
- onMount(async () => {
- var chrome: boolean = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
- if (chrome && !isMobile()) { // I can forgive people for using chrome on mobile tbh
- header.addMessage("Chrome browsers enforce Googles monopolistic position while harming user privacy. See https://contrachrome.com/", {
- dismissable: false
- })
- }
- });
-
- function copyText(text: string): (event: MouseEvent|KeyboardEvent) => void {
- return (event) => {
- if (event instanceof KeyboardEvent && event.code != "Enter")
- return;
-
- if (navigator.clipboard == null) {
- return;
- }
-
- navigator.clipboard.writeText(text)
- .then(() => header.addMessage("Copied to clipboard"))
- .catch(() => header.addMessage("Failed to copy to clipboard"));
- };
- }
-</script>
-
-<svelte:head>
- <title>rose</title>
- <meta name="description" content="Coder of C. Abuser of Containers. Hater of golang." />
- <meta property="og:title" content="axtlos"/>
- <meta property="og:type" content="website"/>
- <meta property="og:description" content={description}/>
- <meta property="og:image" content="/me.png"/>
- <meta property="og:url" content="https://xenia.blahaj.land"/>
- <meta property="og:locale" content="en_US"/>
- <link rel="me" href="https://eepy.moe/@rose"/>
-</svelte:head>
-
-<page>
- <section id="welcome">
- <h1>Hi! I'm Rose</h1>
- </section>
- <section id="about">
- <h2>About me!</h2>
- <p>
- I'm a software engineer with an interest in containers and OSdev.
- I currently live in germany and study computer science.
- </p>
- <p>
- Apart from coding and tinkering with hardware, I enjoy listening to music, reading books and going on walks!
- </p>
- </section>
- <section id="projects">
- <h2>My work</h2>
- <p>
- Currently most of my time is spent working on
- <a href="https://github.com/Vanilla-OS/vib">vib</a>.
- As the maintainer of vib I handle any project management,
- while actively expanding it with more features.
- </p>
- <p>
- In connection to vib, I am currently reviving an older
- project called Project Shards, an arch based immutable
- distribution, that went through many different designs,
- but has settled on using systemd-sysupdate in the same vein as
- <a href="https://os.gnome.org">GNOME OS</a>.
- </p>
- <p>
- A more thorough list of projects can be found in the
- <a href="/projects">Projects</a> page.
- </p>
- </section>
- <section id="contact">
- <h2>Contact</h2>
- <p class="subheader">Click on a card to copy its address</p>
- <p>
- One can contact me on these platforms!
- </p>
- {#if !browser}
- <p id="noscript">
- Javascript seems to be disabled! But this website requires js to deobfuscate the contacts
- The obfuscated codes are displayed in the boxes below, you can use <a href="/deobfuscate.sh">this shell script</a> to debofuscate them locally!
- </p>
- {/if}
- <ul>
- <li id="xmpp">
- <div
- role="button"
- tabindex="0"
- on:click={isDecoded(matrix) ? copyText(xmpp) : undefined}
- on:keydown={isDecoded(matrix) ? copyText(xmpp) : undefined}>
- <h3>XMPP</h3>
- {#if !browser}
- <noscript>{xmpp}</noscript>
- {:else}
- <p>{xmpp}</p>
- {/if}
- </div>
- </li>
- <li id="matrix">
- <div
- role="button"
- tabindex="0"
- on:click={isDecoded(matrix) ? copyText(matrix) : undefined}
- on:keydown={isDecoded(matrix) ? copyText(matrix) : undefined}>
- <h3>matrix</h3>
- {#if !browser}
- <noscript>{matrix}</noscript>
- {:else}
- <p>{matrix}</p>
- {/if}
- </div>
- </li>
- <li id="email">
- <div>
- <a class="permalink"
- href={isDecoded(matrix) ? `mailto:${xmpp}` : `javascript:void`}>
- <h3>email</h3>
- {#if !browser}
- <noscript>{xmpp}</noscript>
- {:else}
- <p>{xmpp}</p>
- {/if}
- </a>
- </div>
- </li>
- </ul>
- </section>
- <section id="buttons">
- <a href="https://xenia.blahaj.land" target="_blank" rel="noopener noreferrer" title="rose garden">
- <img src="/rose_88x31.png" alt="button that says 'rose', a rose grows out of the o, on the left the character milk chan is visible, a very pale girl with shoulder length brown hair wearing a black hoodie" width="88px" height="31px">
- </a>
- <a href="https://chronovore.dev/" target="_blank" rel="noopener noreferrer" title="legiayayana's orbit">
- <img src="https://chronovore.dev/button/chronovore.png" alt="button that says 'ada', text is overlayed a photograph of neptune, which in this image is a blue gas giant" width="88px" height="31px">
- </a>
- <a href="https://futile.eu/" target="_blank" rel="noopener noreferrer">
- <img src="https://futile.eu/static/buttons/futile.png" alt="button that says 'futile'" width="88px" height="31px">
- </a>
- <a>
- <iframe src="https://increm.net/badge?key=xenia" title="incremnet badge" width="88" height="31" frameborder="0" style="background-color: #d4d0c8"></iframe>
- </a>
- <a href="https://nyaa.si/view/964646" target="_blank" rel="noopener noreferrer" title="watch lain now!!">
- <img src="/lain.gif" alt="lain" width="88px" height="31px">
- </a>
- <a><img src="/ltg.gif" alt="now!" width="88px" height="31px"></a>
- <a><img src="/transrights.png" alt="trans rights now!" width="88px" height="31px"></a>
- <a><img src="/xeniatransnow.png" alt="use linux now!" width="88px" height="31px"></a>
- </section>
-</page>
-
-<style lang="scss">
- @use "$lib/styles";
- page {
- & section {
- width: 100%;
-
- &#buttons {
- margin-top: 15px;
- display: flex;
- justify-content: center;
- align-items: center;
- gap: 10px;
- padding-bottom: 10px;
- }
-
- &#contact {
- & .subheader {
- font-size: 0.8em;
- margin-top: -25px;
- }
- & ul {
- list-style: none;
- display: flex;
- gap: 10px;
- flex-wrap: wrap;
- flex-direction: row;
- padding: unset;
- margin: unset;
- margin-top: 1em;
- margin-bottom: 1em;
- justify-content: space-around;
-
- & li#xmpp > div { @include styles.contact($color: #FFC067, $text-color: #000000); }
- & li#matrix > div { @include styles.contact($color: #7D7, $text-color: #000000); }
- & li#email {
- & a {
- text-decoration: none;
- }
- & > div {
- @include styles.contact($color: #B19CD9, $text-color: #000000);
- }
- }
-
- & li > * {
- & p {
- text-align: center;
- }
- }
- }
- }
- }
- }
-
-</style>
diff --git a/src/routes/+page.ts b/src/routes/+page.ts
deleted file mode 100644
index 189f71e..0000000
--- a/src/routes/+page.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const prerender = true;
diff --git a/src/routes/ContactCard.svelte b/src/routes/ContactCard.svelte
deleted file mode 100644
index d347deb..0000000
--- a/src/routes/ContactCard.svelte
+++ /dev/null
@@ -1,40 +0,0 @@
-<script lang="ts">
- export let inline: boolean = false;
- export let svg: string;
- export let onclick;
-</script>
-
-<div
- role="button"
- tabindex="0"
- on:click={onclick}
- on:keydown={onclick}>
- <span class:inline={inline}>
- {@html svg}
- </span>
-</div>
-
-<span class:inline={inline}>
- {@html svg}
-</span>
-
-<style lang="scss">
- span {
- & :global(svg) {
- width: 1em;
- height: 1em;
- fill: currentColor;
- }
- &.inline :global(svg) { transform: translate(0, 0.125em); }
- }
-
- div {
- background-color: green;
- user-select: none;
- padding: 1px 18px;
- border-radius: 9999px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-</style>
diff --git a/src/routes/Header.svelte b/src/routes/Header.svelte
deleted file mode 100644
index 4490f1a..0000000
--- a/src/routes/Header.svelte
+++ /dev/null
@@ -1,316 +0,0 @@
-<script context="module" lang="ts">
-
- export type Header = {
- addMessage (message: string, options?: Partial<MessageOptions>): void
- };
-
- type HeaderMessage = {
- message: string,
- options: MessageOptions,
- dismiss: () => void,
- }
-
- type MessageOptions = {
- time: number,
- dismissable: boolean,
- };
-
-</script>
-
-<script lang="ts">
- import { page } from '$app/stores';
- import logo from '/rose.apng';
- import boowomp from '/wilted-flower.apng';
- import close from '$lib/assets/close.svg?raw';
- import { setContext } from "svelte";
- import { fly } from "svelte/transition";
- import { readable, writable } from "svelte/store";
- import { isNavigating } from "$lib/navigation.ts";
- import { onMount } from 'svelte';
-
- const newestMessage = writable<HeaderMessage|null>(null);
-
- var Rose = chrome ? boowomp : logo;
-
- const currentMessage = writable<HeaderMessage|null>(null, (set) => {
- let $currentMessage: HeaderMessage|null = null;
- let currentTimeout: number|null = null;
-
- const dismiss = () => {
- if (currentTimeout == null) clearTimeout(currentTimeout);
- $currentMessage = null;
- set(null);
- };
-
- const unsubscribe = newestMessage.subscribe(($newestMessage) => {
- if ($newestMessage == null) return;
-
- if ($currentMessage != null) dismiss();
-
- $currentMessage = $newestMessage;
- $currentMessage.dismiss = dismiss;
- if ($currentMessage.options.dismissable)
- currentTimeout = setTimeout(dismiss, $currentMessage.options.duration);
- set($currentMessage);
- });
-
- return () => {
- unsubscribe();
- dismiss();
- };
- });
-
- setContext<Header>("Header", {
- addMessage(...args: any[]) {
-
- let [ message, options ] = args as [string, Partial<MessageOptions>|undefined];
- options ??= { dismissable: true, duration: 5000 };
- options.dismissable ??= true;
- options.duration ??= 5000;
- newestMessage.set({
- type: "message",
- message,
- options: options as MessageOptions,
- dismiss: void {},
- });
-
- },
- });
-
- var chrome: boolean = false;
- onMount(async () => {
- chrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
- Rose = chrome ? boowomp : logo;
- });
-</script>
-
-<div class="main">
- <header>
- <div class="corner">
- <a href="/" class="name">
- {#if $isNavigating}
- <span class="loader"></span>
- {:else}
- <img id="logo" src={Rose} alt="rose"/>
- {/if}
- <p>rose</p>
- </a>
- </div>
-
- {#if $currentMessage != null}
- <div class="center" transition:fly>
- <p>
- {$currentMessage.message}
- </p>
- {#if $currentMessage.options.dismissable}
- <button
- class="dismiss"
- on:click={$currentMessage.dismiss}>
- <span class="icon">{@html close}</span>
- </button>
- {/if}
- </div>
- {/if}
-
- <nav>
- <ul>
- <li aria-current={$page.url.pathname === '/' ? 'page' : undefined}>
- <a href="/">Home</a>
- </li>
- <li aria-current={$page.url.pathname === '/projects' ? 'page' : undefined}>
- <a href="/projects">Projects</a>
- </li>
- </ul>
- </nav>
- </header>
- <slot />
-</div>
-
-<style lang="scss">
- @use "sass:color";
-
- @import "@fontsource-variable/playwrite-hr";
-
- header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- width: 100%;
- position: fixed;
- position: -webkit-sticky;
- top: 0;
- z-index: 99;
- background-color: color.change(white, $alpha: 0.9);
- height: 3em;
- }
-
- .name {
- font-family: 'Playwrite HR Variable', cursive;
- font-size: 1.3em;
- color: #150129;
- padding-bottom: 6px;
- }
-
- .loader {
- width: 1.5em;
- height: 1.5em;
- border: 5px solid transparent;
- border-bottom-color: #E2122D;
- border-radius: 50%;
- display: inline-block;
- box-sizing: border-box;
- animation: rotation 1s linear infinite;
- }
-
- @keyframes rotation {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
- }
-
- .corner {
- height: 3em;
- margin-bottom: 0px;
-
- & a {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 100%;
- text-decoration: none;
-
- &:visited {
- color: black;
- }
- &:hover &:active {
- color: black;
- }
-
- & p {
- padding-left: 4px;
- }
- }
-
- & img {
- width: 1.5em;
- height: 1.5em;
- object-fit: contain;
- }
-
- }
-
- .center {
- display: flex;
- flex-direction: row;
- background-color: #000000ac;
- border-radius: 100px;
- align-items: center;
- height: 2.5em;
-
- & > .dismiss {
- min-height: 2.3em;
- min-width: 2.3em;
- background: transparent;
- border: none;
- border-radius: 9999px;
- margin-right: 10px;
-
- &:hover { background: #ffffff30; }
- &:active { background: #ffffff60; }
-
- & > :global(span) {
- justify-content: center;
- align-content: center;
- width: 100%;
- height: 100%;
- fill: #ffffff;
- transform: translate(0, 0.125em);
- & > :global(svg) {
- width: 16px;
- height: 16px;
- object-fit: contain;
- text-align: center;
- fill: #ffffff;
- }
- }
- }
-
- & p {
- color: #fff;
- margin-left: 10px;
- margin-right: 10px;
- }
-
- }
-
- nav {
- display: flex;
- justify-content: right;
- font-size: 1.2em;
- padding-right: 10px;
- object-fit: contain;
- }
-
- ul {
- position: relative;
- padding: 0;
- margin: 0;
- height: 3em;
- display: flex;
- justify-content: center;
- align-items: center;
- list-style: none;
- background-size: contain;
- }
-
- li {
- position: relative;
- height: 100%;
- }
-
- li[aria-current='page']::before {
- --size: 6px;
- content: '';
- width: 0;
- height: 0;
- position: absolute;
- top: 0;
- left: calc(50% - var(--size));
- border: var(--size) solid transparent;
- border-top: var(--size) solid var(--color-theme-1);
- }
-
- nav a {
- display: flex;
- height: 100%;
- align-items: center;
- padding: 0 0.5rem;
- color: #150129;
- font-weight: 700;
- font-size-adjust: 0.3;
- text-transform: uppercase;
- letter-spacing: 0.1em;
- text-decoration: none;
- transition: color 0.2s linear;
- }
-
- a:hover {
- color: var(--color-theme-1);
- }
-
- @media (prefers-color-scheme: dark) {
- /* If the operating system is using dark mode, then apply this CSS */
- header {
- background-color: color.change(#292b33, $alpha: 0.9);
- }
-
- a:link:not(.permalink),a:visited:not(.permalink) {
- color: #b9cffb;
- }
-
- .name {
- color: #f5f5f5;
- }
- }
-
-</style>
diff --git a/src/routes/projects/+page.svelte b/src/routes/projects/+page.svelte
deleted file mode 100644
index 05c013f..0000000
--- a/src/routes/projects/+page.svelte
+++ /dev/null
@@ -1,53 +0,0 @@
-<script lang="ts">
- import ProjectEntry from "./ProjectEntry.svelte";
-</script>
-
-<page>
- <section id="title">
- <h1>Projects</h1>
- </section>
- <section id="brief">
- <p>
- A list of most projects I have worked on or am a part of, note that not all of them are still maintained.
- </p>
- </section>
- <ProjectEntry name={'FsVerify'} description={'Block Based filesystem verification for immutable Linux Distributions written in golang and C'}
- projType={'Personal Project'} link={'https://github.com/axtloss/fsverify'}/>
-
- <ProjectEntry name={'BVG - Basic Vector Graphics'} description={'Custom made vector graphic format for use with FsVerify, the parser (fbwarn) is written in C using raylib'}
- projType={'Personal Project'} link={'https://github.com/axtloss/fsverify/tree/main/fbwarn'}>
- <img src='/bvg.png' alt="The FsVerify logo drawn with BVG"/>
- </ProjectEntry>
-
- <ProjectEntry name={'vib'} description={'Building docker images using yaml recipes, written in golang'}
- projType={'Maintainer, Collaboration'} link={'https://vib.vanillaos.org'}/>
-
- <ProjectEntry name={'Vanilla System Operator'} description={'Tool to manage Vanilla OS installations, including Waydroid app management'}
- projType={'Collaboration'} link={'https://github.com/vanilla-os/vanilla-system-operator'}/>
-
- <ProjectEntry name={'FsGuard'} description={'File tree based Filesystem integrity verification, fully written in go and used by Vanilla OS through fswarn'}
- projType={'Maintainer, Personal Project'} link={'https://github.com/linux-immutability-tools/fsguard'}/>
-
- <ProjectEntry name={'jade'} description={'Installer backend for Crystal Linux, written in rust'}
- projType={'Collaboration / Personal Project'} link={'https://gitlab.com/crystal-linux/software/jade'}/>
-
- <ProjectEntry name={'jade-gui'} description={'Graphical frontend for Jade, written in python using gtk4 and libadwaita'}
- projType={'Collaboration / Personal Project'} link={'https://gitlab.com/crystal-linux/software/jade-gui'}/>
-
- <ProjectEntry name={'JshipIT'} description={'OCI client written in Java similiar to podman/docker with a focus on using containers as a form of isolated environments, similiar to Distrobox and Toolbx'}
- projType={'Personal Project'} link={'https://github.com/axtloss/JshipIT'}/>
-</page>
-
-<style lang="scss">
- @use 'sass:color';
- img {
- display: block;
- margin-left: auto;
- margin-right: auto;
- border-radius: 10px 10px 10px 10px;
- box-shadow: 0 1px 4px 1px color.change(black, $alpha: 0.13),
- 0 1px 10px 5px color.change(black, $alpha: 0.09),
- 0 3px 16px 8px color.change(black, $alpha: 0.04),
- 0 0 0 1px color.change(black, $alpha: 0.05);
- }
-</style>
diff --git a/src/routes/projects/+page.ts b/src/routes/projects/+page.ts
deleted file mode 100644
index 189f71e..0000000
--- a/src/routes/projects/+page.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const prerender = true;
diff --git a/src/routes/projects/ProjectEntry.svelte b/src/routes/projects/ProjectEntry.svelte
deleted file mode 100644
index 53c69b5..0000000
--- a/src/routes/projects/ProjectEntry.svelte
+++ /dev/null
@@ -1,36 +0,0 @@
-<script lang="ts">
- export let name: string;
- export let description: string;
- export let projType: string;
- export let link: string;
- export let id: string = name.toLowerCase().replaceAll(" ", "_");
-</script>
-
-<section id="{id}" class="box">
- <h2>{name}</h2>
- <section id="fsverify-link">
- <p class="subheader">
- {projType} - <a href="{link}">{link}</a>
- </p>
- </section>
- <slot />
- <p class="description">
- {description}
- </p>
-</section>
-
-
-<style lang="scss">
- @use 'sass:color';
- section {
- max-width: 790px;
- width: 100%;
- & h2 {
- margin-bottom: 0px;
- }
- & .description {
- text-align: center;
- }
- }
-
-</style>
diff --git a/src/routes/styles.scss b/src/routes/styles.scss
deleted file mode 100644
index d932800..0000000
--- a/src/routes/styles.scss
+++ /dev/null
@@ -1,48 +0,0 @@
-@import "@fontsource-variable/inter";
-
-body {
- font-family:
- 'Inter Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
- Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
- font-size: 1.2em;
- color: #150129;
-}
-
-h1 {
- width: 100%;
- font-size-adjust: 0.7;
- margin-bottom: 2px;
-}
-
-page {
- display: flex;
- flex-direction: column;
- align-items: center;
-
- width: 100%;
- height: 0;
- padding: 0 0 calc(100% * 495 / 2048) 0;
-}
-
-.permalink {
- color: #150129;
-}
-
-.subheader {
- font-size: 0.9em;
- margin-top: 0px;
-}
-
-a:link:not(.permalink),a:visited:not(.permalink) { color: #2160ad; }
-
-@media (prefers-color-scheme: dark) {
- /* If the operating system is using dark mode, then apply this CSS */
- body {
- background: #292b33;
- color: #f5f5f5
- }
- a:link:not(.permalink),a:visited:not(.permalink) {
- color: #b9cffb;
- }
-}
-
diff --git a/static/antibrave.js b/static/antibrave.js
deleted file mode 100644
index 99d679c..0000000
--- a/static/antibrave.js
+++ /dev/null
@@ -1 +0,0 @@
-!async function(){if(navigator.brave&&await navigator.brave.isBrave()||!1){window.location.href="https://axtlos.blahaj.land/not-very-brave.html"}};
diff --git a/static/antibravestyle.css b/static/antibravestyle.css
deleted file mode 100644
index e09fb7d..0000000
--- a/static/antibravestyle.css
+++ /dev/null
@@ -1,288 +0,0 @@
-/* $Id: mandoc.css,v 1.36 2018/07/23 22:51:26 schwarze Exp $ */
-/*
- * Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
- */
-
-/* Global defaults. */
-
-
-
-html { max-width: 65em; margin: auto; }
-body { font-family: Helvetica,Arial,sans-serif; background: white; }
-table { margin-top: 0em;
- margin-bottom: 0em; }
-td { vertical-align: top; }
-ul, ol, dl { margin-top: 0em;
- margin-bottom: 0em; }
-li, dt { margin-top: 1em; }
-
-.center {
- margin: auto;
- width: 99%;
-}
-
-.permalink { border-bottom: thin dotted;
- color: inherit;
- font: inherit;
- text-decoration: inherit; }
-* { clear: both }
-
-/* Search form and search results. */
-
-fieldset { border: thin solid silver;
- border-radius: 1em;
- text-align: center; }
-input[name=expr] {
- width: 25%; }
-
-table.results { margin-top: 1em;
- margin-left: 2em;
- font-size: smaller; }
-
-/* Header and footer lines. */
-
-table.head { width: 100%;
- border-bottom: 1px dotted #808080;
- margin-bottom: 1em;
- font-size: smaller; }
-td.head-vol { text-align: center; }
-td.head-rtitle {
- text-align: right; }
-
-table.foot { width: 100%;
- border-top: 1px dotted #808080;
- margin-top: 1em;
- font-size: smaller; }
-td.foot-os { text-align: right; }
-
-/* Sections and paragraphs. */
-
-.manual-text {
- margin-left: 3.8em; }
-.Nd { display: inline; }
-.Sh { margin-top: 1.2em;
- margin-bottom: 0.6em;
- text-align: left;
- font-size: 110%; }
-.Ss { margin-top: 1.2em;
- margin-bottom: 0.6em;
- margin-left: -1.2em;
- font-size: 105%; }
-.Pp { margin: 0.6em 0em; }
-.Sx { }
-.Xr { }
-
-/* Displays and lists. */
-
-.Bd { }
-.Bd-indent { margin-left: 3.8em; }
-
-.Bl-bullet { list-style-type: disc;
- padding-left: 1em; }
-.Bl-bullet > li { }
-.Bl-dash { list-style-type: none;
- padding-left: 0em; }
-.Bl-dash > li:before {
- content: "\2014 "; }
-.Bl-item { list-style-type: none;
- padding-left: 0em; }
-.Bl-item > li { }
-.Bl-compact > li {
- margin-top: 0em; }
-
-.Bl-enum { padding-left: 2em; }
-.Bl-enum > li { }
-.Bl-compact > li {
- margin-top: 0em; }
-
-.Bl-diag { }
-.Bl-diag > dt {
- font-style: normal;
- font-weight: bold; }
-.Bl-diag > dd {
- margin-left: 0em; }
-.Bl-hang { }
-.Bl-hang > dt { }
-.Bl-hang > dd {
- margin-left: 5.5em; }
-.Bl-inset { }
-.Bl-inset > dt { }
-.Bl-inset > dd {
- margin-left: 0em; }
-.Bl-ohang { }
-.Bl-ohang > dt { }
-.Bl-ohang > dd {
- margin-left: 0em; }
-.Bl-tag { margin-left: 5.5em; }
-.Bl-tag > dt {
- float: left;
- margin-top: 0em;
- margin-left: -5.5em;
- padding-right: 1.2em;
- vertical-align: top; }
-.Bl-tag > dd {
- clear: right;
- width: 100%;
- margin-top: 0em;
- margin-left: 0em;
- vertical-align: top;
- overflow: auto; }
-.Bl-compact > dt {
- margin-top: 0em; }
-
-.Bl-column { }
-.Bl-column > tbody > tr { }
-.Bl-column > tbody > tr > td {
- margin-top: 1em; }
-.Bl-compact > tbody > tr > td {
- margin-top: 0em; }
-
-.Rs { font-style: normal;
- font-weight: normal; }
-.RsA { }
-.RsB { font-style: italic;
- font-weight: normal; }
-.RsC { }
-.RsD { }
-.RsI { font-style: italic;
- font-weight: normal; }
-.RsJ { font-style: italic;
- font-weight: normal; }
-.RsN { }
-.RsO { }
-.RsP { }
-.RsQ { }
-.RsR { }
-.RsT { text-decoration: underline; }
-.RsU { }
-.RsV { }
-
-.eqn { }
-.tbl { }
-
-.HP { margin-left: 3.8em;
- text-indent: -3.8em; }
-
-/* Semantic markup for command line utilities. */
-
-table.Nm { }
-code.Nm { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Fl { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Cm { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Ar { font-style: italic;
- font-weight: normal; }
-.Op { display: inline; }
-.Ic { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Ev { font-style: normal;
- font-weight: normal;
- font-family: monospace; }
-.Pa { font-style: italic;
- font-weight: normal; }
-
-/* Semantic markup for function libraries. */
-
-.Lb { }
-code.In { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-a.In { }
-.Fd { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Ft { font-style: italic;
- font-weight: normal; }
-.Fn { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Fa { font-style: italic;
- font-weight: normal; }
-.Vt { font-style: italic;
- font-weight: normal; }
-.Va { font-style: italic;
- font-weight: normal; }
-.Dv { font-style: normal;
- font-weight: normal;
- font-family: monospace; }
-.Er { font-style: normal;
- font-weight: normal;
- font-family: monospace; }
-
-/* Various semantic markup. */
-
-.An { }
-.Lk { }
-.Mt { }
-.Cd { font-style: normal;
- font-weight: bold;
- font-family: inherit; }
-.Ad { font-style: underline;
- font-weight: normal; }
-.Ms { font-style: normal;
- font-weight: bold; }
-.St { }
-.Ux { }
-
-/* Physical markup. */
-
-.Bf { display: inline; }
-.No { font-style: normal;
- font-weight: normal; }
-.Em { text-decoration-line: underline;
- font-weight: normal; }
-.Sy { font-style: normal;
- font-weight: bold; }
-.Li { font-style: normal;
- font-weight: normal;
- font-family: monospace; }
-
-img {
- padding: 5px;
-}
-
-
-/* Overrides to avoid excessive margins on small devices. */
-
-@media (max-width: 37.5em) {
-.manual-text {
- margin-left: 0.5em; }
-.Sh, .Ss { margin-left: 0; }
-.Bd-indent { margin-left: 2em; }
-.Bl-hang > dd {
- margin-left: 2em; }
-.Bl-tag { margin-left: 2em; }
-.Bl-tag > dt {
- margin-left: -2em; }
-.HP { margin-left: 2em;
- text-indent: -2em; }
-}
-
-@media (prefers-color-scheme: dark) {
- /* If the operating system is using dark mode, then apply this CSS */
- body {
- background: #292b33;
- }
- td {
- color: #F5F5F5;
- }
- h1,h2 {
- color: #F5F5F5;
- }
-
- p {
- color: #F5F5F5;
- }
- section {
- color: #F5F5F5;
- }
- a:link:not(.permalink),a:visited:not(.permalink) {
- color: #b9cffb;
- }
-} \ No newline at end of file
diff --git a/static/bvg.png b/static/bvg.png
deleted file mode 100644
index b10c869..0000000
--- a/static/bvg.png
+++ /dev/null
Binary files differ
diff --git a/static/deobfuscate.sh b/static/deobfuscate.sh
deleted file mode 100755
index 40ce970..0000000
--- a/static/deobfuscate.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-value="$1"
-offset=$((16#${value:0:2}))
-n=2
-final=""
-
-
-while [ $n -lt ${#value} ]; do
- num=${value:n:3}
- charAscii=$((16#$num - $offset))
- final="$final$(printf \\u$(printf "%03x" $charAscii))"
- n=$((n + 3))
-done
-
-echo "$final"
-
diff --git a/static/huh.jpg b/static/huh.jpg
deleted file mode 100644
index 8d09392..0000000
--- a/static/huh.jpg
+++ /dev/null
Binary files differ
diff --git a/static/ltg.gif b/static/ltg.gif
deleted file mode 100644
index 0c311c6..0000000
--- a/static/ltg.gif
+++ /dev/null
Binary files differ
diff --git a/static/me.png b/static/me.png
deleted file mode 100644
index 72c0f8c..0000000
--- a/static/me.png
+++ /dev/null
Binary files differ
diff --git a/static/not-very-brave.html b/static/not-very-brave.html
deleted file mode 100644
index 3e79b91..0000000
--- a/static/not-very-brave.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8"/>
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <link rel="stylesheet" href="./antibravestyle.css" type="text/css" media="all"/>
- <title>You have been blocked for using brave"</title>
-</head>
-<body>
- <table class="head">
- <tr>
- <td class="head-ltitle">Not</td>
- <td class="head-vol">very</td>
- <td class="head-rtitle">Brave</td>
- </tr>
- </table>
- <h1>You have been blocked from accessing xenia.blahaj.land due to your choice of browser.</h2>
- <p>
- I generally believe in the right for people to choose the software they see best suited for them. However I do not tolerate if software developers build a product based on fake claims, run by a hateful person, exploiting website developers through cryptocurrency.
- <br/>
- What I defined here, is what brave is, a browser that claims to be good for privacy (spoiler: it is not) and even has some nice features like an adblocker built in. Except that adblocker is used to simply replace ads with custom ads from brave and reward website developers with some random cryptocurrency.
- <br/>
- As I do not have the time to research and write a long article about this, please read <a href="https://www.kevinmuldoon.com/do-not-use-brave-browser/">this great article</a> about the shortcomings of brave.
- <br/>
- In addition to the reasons listed in the article mentioned above, the founder of brave, <a href="https://en.wikipedia.org/wiki/Brendan_Eich">Brendan Eich</a>, the inventor of javascript (already horrible enough), is also the co-founder of Mozilla, the non profit Foundation behind Firefox, a browser that respects the users freedom more (it still has some shortcomings, but thats a different topic), in 2014 he became the CEO of Mozilla, but then resigned after being pushed out of Mozilla due to his views against same-sex marriage.
- <br/>
- I believe that lgbt rights are human rights. And will not stand any person saying anything against this. This includes people supporting Brendan Eich by using the Brave browser.
- </p>
- <h1>What now?</h1>
- <p>
- If you were not aware of the sketchiness of brave and Eich's horrendous views on human rights and do not agree with it, then its simple, switch to a different browser! Since you apparently already care about privacy, I suggest firefox! It is the browser I use on the daily and it has never let me down!
- <br/>
- If you however you already knew, or approve of it, then it also is simple, stay away from me. I do not want to interact with you and wish you the day you deserve (a horrible one that is).
- <table class="foot">
- <tr>
- <td class="foot-date">CC BY-SA 4.0</td>
- <td class="foot-home">Brave sucks</td>
- <td class="foot-os">lmao</td>
- </tr>
- </table>
-</body>
-</html>
diff --git a/static/robots.txt b/static/robots.txt
deleted file mode 100644
index e9e57dc..0000000
--- a/static/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# https://www.robotstxt.org/robotstxt.html
-User-agent: *
-Disallow:
diff --git a/static/rose.apng b/static/rose.apng
deleted file mode 100644
index 10cd312..0000000
--- a/static/rose.apng
+++ /dev/null
Binary files differ
diff --git a/static/rose.gif b/static/rose.gif
deleted file mode 100644
index b4e9ceb..0000000
--- a/static/rose.gif
+++ /dev/null
Binary files differ
diff --git a/static/rose.png b/static/rose.png
deleted file mode 100644
index dcb46f9..0000000
--- a/static/rose.png
+++ /dev/null
Binary files differ
diff --git a/static/wilted-flower.apng b/static/wilted-flower.apng
deleted file mode 100644
index 01a68e7..0000000
--- a/static/wilted-flower.apng
+++ /dev/null
Binary files differ
diff --git a/static/wilted-flower.gif b/static/wilted-flower.gif
deleted file mode 100644
index d0c5eba..0000000
--- a/static/wilted-flower.gif
+++ /dev/null
Binary files differ
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..84735c5
--- /dev/null
+++ b/style.css
@@ -0,0 +1,379 @@
+body, h1, h2, h3, p, ul, li, a, div {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ background-color: #505170;
+ color: #EEE;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ height: 100vh;
+ overflow: hidden;
+ position: relative;
+ user-select: none;
+}
+.dock {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 100px;
+ height: 100%;
+ background-color: #505170;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.dock .dockelement {
+ border-top: 4px solid #fff;
+ border-left: 4px solid #fff;
+ border-right: 4px solid #000;
+ border-bottom: 4px solid #000;
+ background: linear-gradient(135deg, #BBBBC3, #565560);
+ text-align: center;
+ width: 100%;
+}
+
+.dock a {
+ height: 100px;
+ display: block;
+ color: #EEE;
+ text-decoration: none;
+ font-size: 14px;
+ overflow: hidden;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.dock img {
+ width: 80px;
+ height: 80px;
+}
+
+.embedded {
+ position: absolute;
+ width: 80px;
+ height: 80px;
+ box-shadow: inset 2px 2px black, inset -2px -2px #cfcfcf;
+}
+
+.bottom-bar-wrapper {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 88px;
+ overflow-x: scroll;
+}
+
+
+.bottom-bar {
+ background-color: #505170;
+ display: flex;
+ height: 88px;
+ width: 1000px;
+ justify-content: left;
+ align-items: left;
+ z-index: 100;
+}
+
+.bottom-bar a {
+ border-top: 4px solid #fff;
+ border-left: 4px solid #fff;
+ border-right: 4px solid #000;
+ border-bottom: 4px solid #000;
+ width: 100px;
+ height: 100%;
+ display: block;
+ background: linear-gradient(135deg, #BBBBC3, #565560);
+ text-align: center;
+ color: #EEE;
+ text-decoration: none;
+ font-size: 14px;
+ overflow: hidden;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.bottom-bar a img {
+ width: 88px;
+ height: 31px;
+}
+
+.bottom-bar a .square {
+ width: 95%;
+ height: 95%;
+}
+
+.bottom-bar a:hover {
+ background-color: #666;
+}
+
+.menu {
+ position: absolute;
+ top: 0;
+ width: 160px;
+ background-color: #A0A0A0;
+ border: 2px solid #000;
+ color: black;
+ font-size: 14px;
+}
+
+.menu.left {
+ left: 0;
+}
+
+.menu li label {
+ border-top: 2px solid #fff;
+ border-left: 2px solid #fff;
+ border-right: 2px solid #000;
+ border-bottom: 2px solid #000;
+ list-style: none;
+ padding: 5px 15px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.menu li:first-child label {
+ background-color: black;
+ color: white;
+ border-top: 2px solid #fff;
+ border-left: 2px solid #fff;
+ border-right: 2px solid #4C4D50;
+ border-bottom: 2px solid #4C4D50;
+}
+
+.menu li:not(:first-child) label:hover {
+ background-color: #CFCFCF;
+}
+
+.menu li .key {
+ color: black;
+}
+
+.menu li label.ripple-effect {
+ animation: ripple 0.5s steps(1, start);
+ animation-iteration-count: 1;
+}
+
+@keyframes ripple {
+ 0% {
+ background-color: #A0A0A0;
+ }
+ 20% {
+ background-color: #CFCFCF;
+ }
+ 40% {
+ background-color: #A0A0A0;
+ }
+ 60% {
+ background-color: #CFCFCF;
+ }
+ 80% {
+ background-color: #A0A0A0;
+ }
+ 100% {
+ background-color: #CFCFCF;
+ }
+}
+
+
+.window {
+ position: absolute;
+ background-color: #A0A0A0;
+ border: 2px solid #000;
+ width: 70%;
+ height: 60%;
+ display: flex;
+ flex-direction: column;
+ top: 50%;
+ left: 40%;
+ transform: translate(-50%, -50%);
+}
+
+
+.window#home-window {
+ width: 60%;
+ height: 70%;
+}
+
+.window#projects-window {
+ width: 70%;
+ height: 60%;
+}
+
+@media screen and (min-width: 724px) {
+ .window {
+ top: 50%;
+ left: 50%;
+ }
+
+
+ .window#home-window {
+ width: 40%;
+ height: 65%;
+ }
+
+ .window#projects-window {
+ width: 40%;
+ height: 60%;
+ }
+}
+
+
+
+.window .title-bar {
+ background-color: #222;
+ border-top: 2px solid #fff;
+ border-left: 2px solid #fff;
+ border-right: 2px solid #4C4D50;
+ border-bottom: 2px solid #4C4D50;
+ padding: 5px 10px;
+ color: #EEE;
+ font-size: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-bottom: 2px solid #000;
+ cursor: grab;
+}
+
+.window .title-bar .controls {
+ position: absolute;
+ right: 10px;
+ display: flex;
+ gap: 5px;
+}
+
+.window .title-bar .controls span {
+ border-top: 2px solid #fff;
+ border-left: 2px solid #fff;
+ border-right: 2px solid #000;
+ border-bottom: 2px solid #000;
+ width: 20px;
+ height: 20px;
+ display: block;
+ background-color: #A0A0A0;
+ cursor: default;
+ justify-content: center;
+ align-items: center;
+}
+
+.window .title-bar .controls span:hover {
+ background-color: #999;
+}
+
+.window .content {
+ flex: 1;
+ flex-direction: column;
+ margin: 10px;
+ padding: 10px;
+ overflow-y: auto;
+ height: 100%;
+ background-color: white;
+ color: black;
+ box-shadow: inset 2px 2px black, inset -2px -2px #cfcfcf;
+ justify-content: space-between;
+ user-select: text;
+}
+
+.window .content img {
+ max-width: 400px;
+}
+
+.workspace {
+ position: relative;
+ flex: 1;
+ padding: 10px;
+}
+
+#home, #home-menu, #home-window,
+#projects, #projects-menu, #projects-window {
+ display: none;
+}
+
+#home-content-info, #home-content-contact,
+#projects-content-personal, #projects-content-shards,
+#projects-content-crystal, #projects-content-vanillaos {
+ display: none;
+}
+
+#home:checked ~ #home-window,
+#projects:checked ~ #projects-window {
+ display: flex;
+}
+
+#home:checked ~ #home-menu,
+#projects:checked ~ #projects-menu {
+ display: block;
+}
+
+#home-info:checked ~ .window #home-content-info,
+#home-contact:checked ~ .window #home-content-contact {
+ display: flex;
+}
+
+#projects-personal:checked ~ .window #projects-content-personal,
+#projects-shards:checked ~ .window #projects-content-shards,
+#projects-crystal:checked ~ .window #projects-content-crystal,
+#projects-vanillaos:checked ~ .window #projects-content-vanillaos {
+ display: flex;
+}
+
+.radio {
+ display:none;
+}
+
+.clock {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ background-image: url("clockback.png");
+ background-size: cover;
+ width: 100%;
+ height: 100px;
+ overflow: show;
+ gap: 1px;
+}
+
+.time {
+ font-size: 18px;
+ font-style: italic;
+ font-family: monospace;
+ color: #32D059;
+ margin-bottom: 12px;
+}
+
+.cal {
+ width: 80px;
+ gap: 0px;
+}
+
+.day {
+ color: black;
+ font-size: 10px;
+ margin-bottom: 7px;
+}
+
+.date {
+ color: black;
+ font-size: 25px;
+ margin-top: -8px;
+}
+
+.month {
+ color: black;
+ font-style: italic;
+ font-size: 10px;
+ margin-top: -5px;
+ margin-bottom: 7px;
+ transform: translateX(-3px);
+}
diff --git a/svelte.config.js b/svelte.config.js
deleted file mode 100644
index a103e15..0000000
--- a/svelte.config.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import adapter from '@sveltejs/adapter-static';
-import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
-
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- preprocess: vitePreprocess(),
-
- kit: {
- adapter: adapter({
- pages: "build",
- assets: "build",
- fallback: "huh.html",
- preprocess: false,
- strict: true,
- })
- }
-};
-
-export default config;
diff --git a/static/transrights.png b/transrights.png
index 0e2b9d4..0e2b9d4 100644
--- a/static/transrights.png
+++ b/transrights.png
Binary files differ
diff --git a/tsconfig.json b/tsconfig.json
deleted file mode 100644
index fc93cbd..0000000
--- a/tsconfig.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true,
- "moduleResolution": "bundler"
- }
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
- // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files
- //
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
- // from the referenced tsconfig.json - TypeScript does not merge them in
-}
diff --git a/vite.config.ts b/vite.config.ts
deleted file mode 100644
index 8f5b5c8..0000000
--- a/vite.config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { sveltekit } from '@sveltejs/kit/vite';
-import { defineConfig } from 'vite';
-
-export default defineConfig({
- plugins: [
- sveltekit()
- ]
-});
diff --git a/static/xeniatransnow.png b/xeniatransnow.png
index 6abafb5..6abafb5 100644
--- a/static/xeniatransnow.png
+++ b/xeniatransnow.png
Binary files differ