complete site !

This commit is contained in:
unurled 2023-01-16 22:42:50 +01:00
commit abc34a2155
27 changed files with 1539 additions and 0 deletions

24
.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

3
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
}

18
README.md Normal file
View file

@ -0,0 +1,18 @@
# Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
## Recommended IDE Setup
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
## Type Support For `.vue` Imports in TS
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
1. Disable the built-in TypeScript Extension
1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.

13
index.html Normal file
View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Unurled</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

23
package.json Normal file
View file

@ -0,0 +1,23 @@
{
"name": "site",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview"
},
"dependencies": {
"@iconify/vue": "^4.0.2",
"mitt": "^3.0.0",
"vue": "^3.2.45",
"vue-router": "^4.1.6"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"typescript": "^4.9.3",
"vite": "^4.0.0",
"vue-tsc": "^1.0.11"
}
}

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

15
src/App.vue Normal file
View file

@ -0,0 +1,15 @@
<script setup lang="ts">
import NavBar from "./components/NavBar.vue"
import Footer from "./components/Footer.vue"
</script>
<template>
<NavBar />
<router-view />
<Footer />
</template>
<style scoped>
</style>

22
src/components/Footer.vue Normal file
View file

@ -0,0 +1,22 @@
<template>
<div class="footer">
<p>Made with by Unurled. View source on my <a class="git-link" href="https://git.unurled.me/unurled/site">git</a></p>
</div>
</template>
<style>
.footer {
position: absolute;
bottom: 5vh;
}
.git-link {
color: var(--dark-accent4);
}
.git-link:hover {
color: var(--dark-accent6);
}
</style>

View file

@ -0,0 +1,38 @@
<script setup lang="ts">
import { ref } from 'vue'
defineProps<{ msg: string }>()
const count = ref(0)
</script>
<template>
<h1>{{ msg }}</h1>
<div class="card">
<button type="button" @click="count++">count is {{ count }}</button>
<p>
Edit
<code>components/HelloWorld.vue</code> to test HMR
</p>
</div>
<p>
Check out
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
>create-vue</a
>, the official Vue + Vite starter
</p>
<p>
Install
<a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>
in your IDE for a better DX
</p>
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
</template>
<style scoped>
.read-the-docs {
color: #888;
}
</style>

78
src/components/Home.vue Normal file
View file

@ -0,0 +1,78 @@
<script setup lang="ts">
defineProps<{ name: string }>()
</script>
<script lang="ts">
var rotate = document.getElementById("rotate");
if (rotate != null) {
rotate.style.animation = "rotate 0.4s linear infinite both";
}
</script>
<template>
<h1 class="name-logo">{{ name }} <span id="rotate" class="rotate-25-cw">👋</span></h1>
</template>
<style>
.name-logo {
color: var(--dark-shade7);
}
.wave {
position: relative;
animation-name: wave;
animation-duration: 4s;
animation-iteration-count: infinite;
}
.rotate-25-cw {
-webkit-animation: rotate-25-cw 0.4s linear infinite both;
animation: rotate-25-cw 0.4s linear infinite both;
}
@-webkit-keyframes rotate-25-cw {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
}
@keyframes rotate-25-cw {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
}
@keyframes wave {
0% {
transform: rotate(25deg);
}
25% {
transform: rotate(-25deg);
}
50% {
transform: rotate(25deg);
}
75% {
transform: rotate(-25deg);
}
100% {
transform: rotate(25deg);
}
}
</style>

51
src/components/Link.vue Normal file
View file

@ -0,0 +1,51 @@
<script setup lang="ts">
import { Icon } from '@iconify/vue';
const props = defineProps({
isExternal: { type: Boolean, default: false },
href: { type: String, default: '/' },
label: { type: String, default: null },
icon: { type: String, default: null }
})
</script>
<template>
<div class="display">
<a v-if="isExternal" :href="href" target="_blank" class="link">
<div class="box"></div>
<Icon v-if="icon" :icon="icon" class="text-lg md:text-2xl" />
<span v-if="label">{{label}}</span>
</a>
</div>
</template>
<style>
.display {
display: inline-flex;
}
.link {
padding: .5em;
background-color: var(--dark-shade1);
-webkit-box-shadow: 0px 0px 20px 10px #2d3139;
-moz-box-shadow: 0px 0px 20px 10px #2d3139;
box-shadow: 0px 0px 20px 10px #2d3139;
text-shadow: 0px 0px 10px var(--dark-accent4);
border-radius: 1em;
font-size: 2rem;
color: var(--dark-accent4);
margin-right: 3em;
transition: transform .2s;
}
.link:hover {
color: var(--dark-accent1);
background-color: var(--dark-accent4);
transform: translate(0, 10%);
}
</style>

32
src/components/NavBar.vue Normal file
View file

@ -0,0 +1,32 @@
<script setup lang="ts">
import Link from './Link.vue';
</script>
<template>
<div class="nav">
<div class="links">
<Link href="https://unurled.me" :isExternal="true" label="Website" icon="mdi:web" />
<Link href="https://github.com/unurled" :isExternal="true" label="Github" icon="feather:github"/>
<Link href="https://git.unurled.me/unurled" :isExternal="true" label="Git" icon="mdi:git"/>
</div>
</div>
</template>
<style>
.nav {
display: flex;
position: fixed;
top: 2vh;
left: 40%;
align-items: center;
justify-content: center;
}
.links {
}
</style>

View file

@ -0,0 +1,43 @@
<script setup lang="ts">
const props = defineProps({
name: { type: String, default: "" },
description: { type: String, default: "" },
link: { type: String, default: null },
icon: { type: String, default: null }
})
</script>
<template>
<a class="card" :href="link">
<h1 class="name">{{ name }}</h1>
<p class="description">{{ description }}</p>
<img :src="icon" >
</a>
</template>
<style>
.card {
width: 25%;
color: var(--dark-accent2);
border: solid;
border-radius: 15px;
border-color: var(--dark-accent1);
margin-bottom: 10px;
transition: .5s transform;
max-height: 25%;
}
.card:hover {
color: var(--dark-accent3);
transform: translate(0, -8%);
color: var(--dark-accent4);
}
.card:hover .project-link {
color: var(--dark-accent3);
}
</style>

74
src/hex.css Normal file
View file

@ -0,0 +1,74 @@
:root {
--dark-shade0: #282c34;
--dark-shade0-1: #292d35;
--dark-shade0-2: #2a2e36;
--dark-shade0-3: #2b2f37;
--dark-shade0-4: #2d3139;
--dark-shade0-5: #2e323a;
--dark-shade1: #393e48;
--dark-shade2: #4b515c;
--dark-shade3: #5c6370;
--dark-shade4: #636d83;
--dark-shade5: #828997;
--dark-shade6: #979eab;
--dark-shade7: #abb2bf;
--dark-accent0: #e06c75;
--dark-accent1: #d19a66;
--dark-accent2: #e5c07b;
--dark-accent3: #98c379;
--dark-accent4: #56b6c2;
--dark-accent5: #61afef;
--dark-accent6: #c678dd;
--dark-accent7: #be5046;
--light-shade0: #fafafa;
--light-shade1: #cdced1;
--light-shade2: #a0a1a7;
--light-shade3: #9d9d9f;
--light-shade4: #83858b;
--light-shade5: #696c77;
--light-shade6: #51535d;
--light-shade7: #383a42;
--light-accent0: #e45649;
--light-accent1: #986801;
--light-accent2: #c18401;
--light-accent3: #50a14f;
--light-accent4: #0184bc;
--light-accent5: #4078f2;
--light-accent6: #a626a4;
--light-accent7: #ca1243;
}

162
src/hsl.css Normal file
View file

@ -0,0 +1,162 @@
:root {
--dark-shade0: hsl(220, 13%, 18%);
--dark-shade0-h: 220;
--dark-shade0-s: 13%;
--dark-shade0-l: 18%;
--dark-shade1: hsl(220, 12%, 25%);
--dark-shade1-h: 220;
--dark-shade1-s: 12%;
--dark-shade1-l: 25%;
--dark-shade2: hsl(219, 10%, 33%);
--dark-shade2-h: 219;
--dark-shade2-s: 10%;
--dark-shade2-l: 33%;
--dark-shade3: hsl(219, 10%, 40%);
--dark-shade3-h: 219;
--dark-shade3-s: 10%;
--dark-shade3-l: 40%;
--dark-shade4: hsl(221, 14%, 45%);
--dark-shade4-h: 221;
--dark-shade4-s: 14%;
--dark-shade4-l: 45%;
--dark-shade5: hsl(220, 9%, 55%);
--dark-shade5-h: 220;
--dark-shade5-s: 9%;
--dark-shade5-l: 55%;
--dark-shade6: hsl(219, 11%, 63%);
--dark-shade6-h: 219;
--dark-shade6-s: 11%;
--dark-shade6-l: 63%;
--dark-shade7: hsl(219, 14%, 71%);
--dark-shade7-h: 219;
--dark-shade7-s: 14%;
--dark-shade7-l: 71%;
--dark-accent0: hsl(355, 65%, 65%);
--dark-accent0-h: 355;
--dark-accent0-s: 65%;
--dark-accent0-l: 65%;
--dark-accent1: hsl(29, 54%, 61%);
--dark-accent1-h: 29;
--dark-accent1-s: 54%;
--dark-accent1-l: 61%;
--dark-accent2: hsl(39, 67%, 69%);
--dark-accent2-h: 39;
--dark-accent2-s: 67%;
--dark-accent2-l: 69%;
--dark-accent3: hsl(95, 38%, 62%);
--dark-accent3-h: 95;
--dark-accent3-s: 38%;
--dark-accent3-l: 62%;
--dark-accent4: hsl(187, 47%, 55%);
--dark-accent4-h: 187;
--dark-accent4-s: 47%;
--dark-accent4-l: 55%;
--dark-accent5: hsl(207, 82%, 66%);
--dark-accent5-h: 207;
--dark-accent5-s: 82%;
--dark-accent5-l: 66%;
--dark-accent6: hsl(286, 60%, 67%);
--dark-accent6-h: 286;
--dark-accent6-s: 60%;
--dark-accent6-l: 67%;
--dark-accent7: hsl(5, 48%, 51%);
--dark-accent7-h: 5;
--dark-accent7-s: 48%;
--dark-accent7-l: 51%;
--light-shade0: hsl(0, 0%, 98%);
--light-shade0-h: 0;
--light-shade0-s: 0%;
--light-shade0-l: 98%;
--light-shade1: hsl(225, 4%, 81%);
--light-shade1-h: 225;
--light-shade1-s: 4%;
--light-shade1-l: 81%;
--light-shade2: hsl(231, 4%, 64%);
--light-shade2-h: 231;
--light-shade2-s: 4%;
--light-shade2-l: 64%;
--light-shade3: hsl(240, 1%, 62%);
--light-shade3-h: 240;
--light-shade3-s: 1%;
--light-shade3-l: 62%;
--light-shade4: hsl(225, 3%, 53%);
--light-shade4-h: 225;
--light-shade4-s: 3%;
--light-shade4-l: 53%;
--light-shade5: hsl(227, 6%, 44%);
--light-shade5-h: 227;
--light-shade5-s: 6%;
--light-shade5-l: 44%;
--light-shade6: hsl(230, 7%, 34%);
--light-shade6-h: 230;
--light-shade6-s: 7%;
--light-shade6-l: 34%;
--light-shade7: hsl(228, 8%, 24%);
--light-shade7-h: 228;
--light-shade7-s: 8%;
--light-shade7-l: 24%;
--light-accent0: hsl(5, 74%, 59%);
--light-accent0-h: 5;
--light-accent0-s: 74%;
--light-accent0-l: 59%;
--light-accent1: hsl(41, 99%, 30%);
--light-accent1-h: 41;
--light-accent1-s: 99%;
--light-accent1-l: 30%;
--light-accent2: hsl(41, 99%, 38%);
--light-accent2-h: 41;
--light-accent2-s: 99%;
--light-accent2-l: 38%;
--light-accent3: hsl(119, 34%, 47%);
--light-accent3-h: 119;
--light-accent3-s: 34%;
--light-accent3-l: 47%;
--light-accent4: hsl(198, 99%, 37%);
--light-accent4-h: 198;
--light-accent4-s: 99%;
--light-accent4-l: 37%;
--light-accent5: hsl(221, 87%, 60%);
--light-accent5-h: 221;
--light-accent5-s: 87%;
--light-accent5-l: 60%;
--light-accent6: hsl(301, 63%, 40%);
--light-accent6-h: 301;
--light-accent6-s: 63%;
--light-accent6-l: 40%;
--light-accent7: hsl(344, 84%, 43%);
--light-accent7-h: 344;
--light-accent7-s: 84%;
--light-accent7-l: 43%;
}

11
src/main.ts Normal file
View file

@ -0,0 +1,11 @@
import './style.css'
import './hex.css'
import { createApp } from 'vue'
import { router } from './router/index'
import App from './App.vue'
const app = createApp(App)
app.use(router)
app.mount('#app')

162
src/rgb.css Normal file
View file

@ -0,0 +1,162 @@
:root {
--dark-shade0: rgb(40, 44, 52);
--dark-shade0-r: 40;
--dark-shade0-g: 44;
--dark-shade0-b: 52;
--dark-shade1: rgb(57, 62, 72);
--dark-shade1-r: 57;
--dark-shade1-g: 62;
--dark-shade1-b: 72;
--dark-shade2: rgb(75, 81, 92);
--dark-shade2-r: 75;
--dark-shade2-g: 81;
--dark-shade2-b: 92;
--dark-shade3: rgb(92, 99, 112);
--dark-shade3-r: 92;
--dark-shade3-g: 99;
--dark-shade3-b: 112;
--dark-shade4: rgb(99, 109, 131);
--dark-shade4-r: 99;
--dark-shade4-g: 109;
--dark-shade4-b: 131;
--dark-shade5: rgb(130, 137, 151);
--dark-shade5-r: 130;
--dark-shade5-g: 137;
--dark-shade5-b: 151;
--dark-shade6: rgb(151, 158, 171);
--dark-shade6-r: 151;
--dark-shade6-g: 158;
--dark-shade6-b: 171;
--dark-shade7: rgb(171, 178, 191);
--dark-shade7-r: 171;
--dark-shade7-g: 178;
--dark-shade7-b: 191;
--dark-accent0: rgb(224, 108, 117);
--dark-accent0-r: 224;
--dark-accent0-g: 108;
--dark-accent0-b: 117;
--dark-accent1: rgb(209, 154, 102);
--dark-accent1-r: 209;
--dark-accent1-g: 154;
--dark-accent1-b: 102;
--dark-accent2: rgb(229, 192, 123);
--dark-accent2-r: 229;
--dark-accent2-g: 192;
--dark-accent2-b: 123;
--dark-accent3: rgb(152, 195, 121);
--dark-accent3-r: 152;
--dark-accent3-g: 195;
--dark-accent3-b: 121;
--dark-accent4: rgb(86, 182, 194);
--dark-accent4-r: 86;
--dark-accent4-g: 182;
--dark-accent4-b: 194;
--dark-accent5: rgb(97, 175, 239);
--dark-accent5-r: 97;
--dark-accent5-g: 175;
--dark-accent5-b: 239;
--dark-accent6: rgb(198, 120, 221);
--dark-accent6-r: 198;
--dark-accent6-g: 120;
--dark-accent6-b: 221;
--dark-accent7: rgb(190, 80, 70);
--dark-accent7-r: 190;
--dark-accent7-g: 80;
--dark-accent7-b: 70;
--light-shade0: rgb(250, 250, 250);
--light-shade0-r: 250;
--light-shade0-g: 250;
--light-shade0-b: 250;
--light-shade1: rgb(205, 206, 209);
--light-shade1-r: 205;
--light-shade1-g: 206;
--light-shade1-b: 209;
--light-shade2: rgb(160, 161, 167);
--light-shade2-r: 160;
--light-shade2-g: 161;
--light-shade2-b: 167;
--light-shade3: rgb(157, 157, 159);
--light-shade3-r: 157;
--light-shade3-g: 157;
--light-shade3-b: 159;
--light-shade4: rgb(131, 133, 139);
--light-shade4-r: 131;
--light-shade4-g: 133;
--light-shade4-b: 139;
--light-shade5: rgb(105, 108, 119);
--light-shade5-r: 105;
--light-shade5-g: 108;
--light-shade5-b: 119;
--light-shade6: rgb(81, 83, 93);
--light-shade6-r: 81;
--light-shade6-g: 83;
--light-shade6-b: 93;
--light-shade7: rgb(56, 58, 66);
--light-shade7-r: 56;
--light-shade7-g: 58;
--light-shade7-b: 66;
--light-accent0: rgb(228, 86, 73);
--light-accent0-r: 228;
--light-accent0-g: 86;
--light-accent0-b: 73;
--light-accent1: rgb(152, 104, 1);
--light-accent1-r: 152;
--light-accent1-g: 104;
--light-accent1-b: 1;
--light-accent2: rgb(193, 132, 1);
--light-accent2-r: 193;
--light-accent2-g: 132;
--light-accent2-b: 1;
--light-accent3: rgb(80, 161, 79);
--light-accent3-r: 80;
--light-accent3-g: 161;
--light-accent3-b: 79;
--light-accent4: rgb(1, 132, 188);
--light-accent4-r: 1;
--light-accent4-g: 132;
--light-accent4-b: 188;
--light-accent5: rgb(64, 120, 242);
--light-accent5-r: 64;
--light-accent5-g: 120;
--light-accent5-b: 242;
--light-accent6: rgb(166, 38, 164);
--light-accent6-r: 166;
--light-accent6-g: 38;
--light-accent6-b: 164;
--light-accent7: rgb(202, 18, 67);
--light-accent7-r: 202;
--light-accent7-g: 18;
--light-accent7-b: 67;
}

13
src/router/index.ts Normal file
View file

@ -0,0 +1,13 @@
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from './routes'
const router = createRouter({
history: createWebHistory(),
routes
})
router.beforeEach((to, from, next) => {
next()
})
export { router }

16
src/router/routes.ts Normal file
View file

@ -0,0 +1,16 @@
import Home from '../views/Home.vue'
import NotFound from '../views/NotFound.vue'
/** @type {import('vue-router').RouterOptions['routes']} */
export const routes = [
{
path: '/',
name: 'home',
component: Home,
meta: { title: 'Home' }
}, {
path: '/:path(.*)',
name: 'not-found',
component: NotFound
},
]

81
src/style.css Normal file
View file

@ -0,0 +1,81 @@
:root {
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 24px;
font-weight: 400;
color-scheme: light dark;
color: var(--dark-shade7);
background-color: var(--dark-shade0);
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
}
a {
font-weight: 500;
color: #646cff;
text-decoration: inherit;
}
a:hover {
color: #535bf2;
}
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}
h1 {
font-size: 3.2em;
line-height: 1.1;
}
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #646cff;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
.card {
padding: 2em;
}
#app {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}

126
src/views/Home.vue Normal file
View file

@ -0,0 +1,126 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import Project from '../components/Project.vue'
const isShowing = ref(false)
onMounted(() => {
// setup animations to start when on mount
isShowing.value = true
})
</script>
<template>
<div class="name-logo">
<h1>
Unurled
<div class="item-group">👋</div>
</h1>
</div>
<div class="main-content">
<div class="infos">
<h2>Hallo ! <br/> I'm unurled a French developper, I program with Java, Rust, JavaScript, Python, Scala.</h2>
<h3>You can contact me via email at <a href="mailto:unurled@unurled.me">unurled@unurled.me</a> <br/> or via discord at <a href="https://discordapp.com/users/369482919988690956">@unurled#0149</a></h3>
</div>
<div class="separator"></div>
<div class="projects">
<Project name="Raxen" description="A minecraft plugin" link="https://git.unurled.me/Elixium/Raxen" icon=""/>
<Project name="Lymel" description="A minecraft mod" link="https://git.unurled.me/Elixium/Lymel" icon=""/>
<Project name="Obsidian Color Text" description="color text with a command (and using html)" link="https://git.unurled.me/unurled/obsidian-color-text" icon=""/>
<Project name="Capes" description="A hacky way to get a custom cape with optifine without paying" link="https://git.unurled.me/unurled/capes" icon=""/>
<Project name="url-shortener" description="A shortening url service" link="https://git.unurled.me/unurled/url-shortener" icon=""/>
<Project name="text-display" description="A text displaying server" link="https://git.unurled.me/unurled/text-display" icon=""/>
</div>
</div>
</template>
<style>
.main-content {
display: flex;
animation: appear 5s ease-in-out;
animation-iteration-count: 1;
opacity: 1;
gap: 3em;
align-items: center;
}
.infos {
position: absolute;
width: 15em;
left: 5em;
margin-top: 4.5%;
flex-grow: 1;
}
.separator {
position: absolute;
left: 25rem;
margin-top: 4.5%;
height: 60vh;
width: 5px;
border-radius: 150000px;
background-color: var(--dark-shade7);
flex-grow: 5;
}
.projects {
position: absolute;
left: 30rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 10px;
}
@keyframes spin {
0% {
transform: rotate(-15deg);
}
50% {
transform: rotate(15deg);
}
100% {
transform: rotate(-15deg);
}
}
.item-group {
display: inline-block;
animation: spin 1s infinite ease-in-out;
}
.name-logo {
position: fixed;
color: var(--dark-shade7);
animation: logo 2s ease-in-out;
animation-iteration-count: 1;
top: 5vh; left: 7.5vw;
}
@keyframes logo {
0% {
top: 45vh;
left: 45vw;
opacity: 0;
}
100% {
top: 5vh; left: 7.5vw;
opacity: 1;
}
}
@keyframes appear {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
</style>

6
src/views/NotFound.vue Normal file
View file

@ -0,0 +1,6 @@
<template>
<div>
<span>¯\_()_/¯</span>
<span>Sorry...can't find this page!</span>
</div>
</template>

1
src/vite-env.d.ts vendored Normal file
View file

@ -0,0 +1 @@
/// <reference types="vite/client" />

18
tsconfig.json Normal file
View file

@ -0,0 +1,18 @@
{
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",
"moduleResolution": "Node",
"strict": true,
"jsx": "preserve",
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["ESNext", "DOM"],
"skipLibCheck": true,
"noEmit": true
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
"references": [{ "path": "./tsconfig.node.json" }]
}

9
tsconfig.node.json Normal file
View file

@ -0,0 +1,9 @@
{
"compilerOptions": {
"composite": true,
"module": "ESNext",
"moduleResolution": "Node",
"allowSyntheticDefaultImports": true
},
"include": ["vite.config.ts"]
}

7
vite.config.ts Normal file
View file

@ -0,0 +1,7 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
})

493
yarn.lock Normal file
View file

@ -0,0 +1,493 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/parser@^7.16.4":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
"@esbuild/android-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23"
integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==
"@esbuild/android-arm@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2"
integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==
"@esbuild/android-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e"
integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==
"@esbuild/darwin-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220"
integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==
"@esbuild/darwin-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4"
integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==
"@esbuild/freebsd-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27"
integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==
"@esbuild/freebsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72"
integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==
"@esbuild/linux-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca"
integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==
"@esbuild/linux-arm@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196"
integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==
"@esbuild/linux-ia32@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54"
integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==
"@esbuild/linux-loong64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8"
integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==
"@esbuild/linux-mips64el@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726"
integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==
"@esbuild/linux-ppc64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8"
integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==
"@esbuild/linux-riscv64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9"
integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==
"@esbuild/linux-s390x@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87"
integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==
"@esbuild/linux-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f"
integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==
"@esbuild/netbsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775"
integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==
"@esbuild/openbsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35"
integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==
"@esbuild/sunos-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c"
integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==
"@esbuild/win32-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a"
integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==
"@esbuild/win32-ia32@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09"
integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==
"@esbuild/win32-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091"
integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==
"@iconify/types@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57"
integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==
"@iconify/vue@^4.0.2":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@iconify/vue/-/vue-4.0.2.tgz#1df557cc82a454cb2d1eb69ded1fb48b6363ef87"
integrity sha512-LRp+mYh8N0bcX4lustHtI5o1aEoio9HN3/19uIzVOvI78qopKBjzsDK5hkEZYDSc6+LKG8hfLxTxpW8CejXGZg==
dependencies:
"@iconify/types" "^2.0.0"
"@vitejs/plugin-vue@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz#93815beffd23db46288c787352a8ea31a0c03e5e"
integrity sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==
"@volar/language-core@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.0.24.tgz#5d767571e77728464635e61af1debca944811fe0"
integrity sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==
dependencies:
"@volar/source-map" "1.0.24"
muggle-string "^0.1.0"
"@volar/source-map@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.0.24.tgz#ad4c827fea5c26b4bf38a86d983e7deb65b1c61e"
integrity sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==
dependencies:
muggle-string "^0.1.0"
"@volar/typescript@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.0.24.tgz#f934eda9774b31abdff53efc56782cd2623723d5"
integrity sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==
dependencies:
"@volar/language-core" "1.0.24"
"@volar/vue-language-core@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz#81d180a8e09a53cb575e83acb79a31493891a1a4"
integrity sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==
dependencies:
"@volar/language-core" "1.0.24"
"@volar/source-map" "1.0.24"
"@vue/compiler-dom" "^3.2.45"
"@vue/compiler-sfc" "^3.2.45"
"@vue/reactivity" "^3.2.45"
"@vue/shared" "^3.2.45"
minimatch "^5.1.1"
vue-template-compiler "^2.7.14"
"@volar/vue-typescript@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz#bef9b2bfb1b108c0f6cb12ec6fbf449b43fc8257"
integrity sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==
dependencies:
"@volar/typescript" "1.0.24"
"@volar/vue-language-core" "1.0.24"
"@vue/compiler-core@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b"
integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==
dependencies:
"@babel/parser" "^7.16.4"
"@vue/shared" "3.2.45"
estree-walker "^2.0.2"
source-map "^0.6.1"
"@vue/compiler-dom@3.2.45", "@vue/compiler-dom@^3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce"
integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==
dependencies:
"@vue/compiler-core" "3.2.45"
"@vue/shared" "3.2.45"
"@vue/compiler-sfc@3.2.45", "@vue/compiler-sfc@^3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70"
integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.45"
"@vue/compiler-dom" "3.2.45"
"@vue/compiler-ssr" "3.2.45"
"@vue/reactivity-transform" "3.2.45"
"@vue/shared" "3.2.45"
estree-walker "^2.0.2"
magic-string "^0.25.7"
postcss "^8.1.10"
source-map "^0.6.1"
"@vue/compiler-ssr@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2"
integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==
dependencies:
"@vue/compiler-dom" "3.2.45"
"@vue/shared" "3.2.45"
"@vue/devtools-api@^6.4.5":
version "6.4.5"
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz#d54e844c1adbb1e677c81c665ecef1a2b4bb8380"
integrity sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==
"@vue/reactivity-transform@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d"
integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==
dependencies:
"@babel/parser" "^7.16.4"
"@vue/compiler-core" "3.2.45"
"@vue/shared" "3.2.45"
estree-walker "^2.0.2"
magic-string "^0.25.7"
"@vue/reactivity@3.2.45", "@vue/reactivity@^3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0"
integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==
dependencies:
"@vue/shared" "3.2.45"
"@vue/runtime-core@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f"
integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==
dependencies:
"@vue/reactivity" "3.2.45"
"@vue/shared" "3.2.45"
"@vue/runtime-dom@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59"
integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==
dependencies:
"@vue/runtime-core" "3.2.45"
"@vue/shared" "3.2.45"
csstype "^2.6.8"
"@vue/server-renderer@3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f"
integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==
dependencies:
"@vue/compiler-ssr" "3.2.45"
"@vue/shared" "3.2.45"
"@vue/shared@3.2.45", "@vue/shared@^3.2.45":
version "3.2.45"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2"
integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
brace-expansion@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
csstype@^2.6.8:
version "2.6.21"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
de-indent@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
esbuild@^0.16.3:
version "0.16.17"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259"
integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==
optionalDependencies:
"@esbuild/android-arm" "0.16.17"
"@esbuild/android-arm64" "0.16.17"
"@esbuild/android-x64" "0.16.17"
"@esbuild/darwin-arm64" "0.16.17"
"@esbuild/darwin-x64" "0.16.17"
"@esbuild/freebsd-arm64" "0.16.17"
"@esbuild/freebsd-x64" "0.16.17"
"@esbuild/linux-arm" "0.16.17"
"@esbuild/linux-arm64" "0.16.17"
"@esbuild/linux-ia32" "0.16.17"
"@esbuild/linux-loong64" "0.16.17"
"@esbuild/linux-mips64el" "0.16.17"
"@esbuild/linux-ppc64" "0.16.17"
"@esbuild/linux-riscv64" "0.16.17"
"@esbuild/linux-s390x" "0.16.17"
"@esbuild/linux-x64" "0.16.17"
"@esbuild/netbsd-x64" "0.16.17"
"@esbuild/openbsd-x64" "0.16.17"
"@esbuild/sunos-x64" "0.16.17"
"@esbuild/win32-arm64" "0.16.17"
"@esbuild/win32-ia32" "0.16.17"
"@esbuild/win32-x64" "0.16.17"
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
dependencies:
has "^1.0.3"
magic-string@^0.25.7:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
dependencies:
sourcemap-codec "^1.4.8"
minimatch@^5.1.1:
version "5.1.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.4.tgz#4e2d39d872684e97b309a9104251c3f1aa4e9d1c"
integrity sha512-U0iNYXt9wALljzfnGkhFSy5sAC6/SCR3JrHrlsdJz4kF8MvhTRQNiC59iUi1iqsitV7abrNAJWElVL9pdnoUgw==
dependencies:
brace-expansion "^2.0.1"
mitt@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd"
integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==
muggle-string@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.1.0.tgz#1fda8a281c8b27bb8b70466dbc9f27586a8baa6c"
integrity sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
postcss@^8.1.10, postcss@^8.4.20:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
dependencies:
nanoid "^3.3.4"
picocolors "^1.0.0"
source-map-js "^1.0.2"
resolve@^1.22.1:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
dependencies:
is-core-module "^2.9.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
rollup@^3.7.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.10.0.tgz#6eb19196d8b3b375ca651cb78261faac48e24cd6"
integrity sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==
optionalDependencies:
fsevents "~2.3.2"
source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
typescript@^4.9.3:
version "4.9.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
vite@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.4.tgz#4612ce0b47bbb233a887a54a4ae0c6e240a0da31"
integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==
dependencies:
esbuild "^0.16.3"
postcss "^8.4.20"
resolve "^1.22.1"
rollup "^3.7.0"
optionalDependencies:
fsevents "~2.3.2"
vue-router@^4.1.6:
version "4.1.6"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.6.tgz#b70303737e12b4814578d21d68d21618469375a1"
integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==
dependencies:
"@vue/devtools-api" "^6.4.5"
vue-template-compiler@^2.7.14:
version "2.7.14"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
dependencies:
de-indent "^1.0.2"
he "^1.2.0"
vue-tsc@^1.0.11:
version "1.0.24"
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.0.24.tgz#c0b270a7c8422408d3b6694fee61b39a4b9e4740"
integrity sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==
dependencies:
"@volar/vue-language-core" "1.0.24"
"@volar/vue-typescript" "1.0.24"
vue@^3.2.45:
version "3.2.45"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8"
integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==
dependencies:
"@vue/compiler-dom" "3.2.45"
"@vue/compiler-sfc" "3.2.45"
"@vue/runtime-dom" "3.2.45"
"@vue/server-renderer" "3.2.45"
"@vue/shared" "3.2.45"