From 9c6b91c5629c302eb88f3769ddac939446e92868 Mon Sep 17 00:00:00 2001 From: eggy <eggyrules@gmail.com> Date: Thu, 21 Jul 2022 22:03:35 -0400 Subject: [PATCH] feat: add dark mode --- app.vue | 34 +++++++-- assets/images/moon.svg | 3 + assets/images/sun.svg | 7 ++ components/ColourPicker.vue | 112 ++++++++++++++++++++++++++++++ components/Navbar.vue | 38 ++++++++++ data/projects.ts | 1 + layouts/base.vue | 21 ++++++ layouts/default.vue | 39 ++++++++++- nuxt.config.ts | 23 +++++- package.json | 4 +- pages/blog.vue | 0 pages/index.vue | 2 + pages/stories.vue | 0 public/favicon.ico | Bin 0 -> 2238 bytes public/robots.txt | 3 + server/routes/sitemap.xml.ts | 11 --- tailwind.config.ts | 1 + yarn.lock | 131 ++++++++++++++++++++++++++++++----- 18 files changed, 394 insertions(+), 36 deletions(-) create mode 100644 assets/images/moon.svg create mode 100644 assets/images/sun.svg create mode 100644 components/ColourPicker.vue create mode 100644 components/Navbar.vue create mode 100644 data/projects.ts create mode 100644 layouts/base.vue create mode 100644 pages/blog.vue create mode 100644 pages/stories.vue create mode 100644 public/favicon.ico create mode 100644 public/robots.txt delete mode 100644 server/routes/sitemap.xml.ts diff --git a/app.vue b/app.vue index 8e7f33e..7b70722 100644 --- a/app.vue +++ b/app.vue @@ -1,7 +1,31 @@ <template> - <div> - <NuxtLayout> - <NuxtPage /> - </NuxtLayout> - </div> + <NuxtLayout> + <NuxtPage /> + </NuxtLayout> </template> + +<style> +* { + box-sizing: border-box; + /* for that cool wave dark mode effect */ + z-index: 1; + position: relative; +} + +html, +body, +div#__nuxt { + height: 100%; + width: 100%; +} + +:root { + --text-color: #243746; + --bg: #f1e7d0; +} + +.dark { + --text-color: #ebf4f1; + --bg: #091a28; +} +</style> diff --git a/assets/images/moon.svg b/assets/images/moon.svg new file mode 100644 index 0000000..8cab6ac --- /dev/null +++ b/assets/images/moon.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12 11.807C10.7418 10.5483 9.88488 8.94484 9.53762 7.1993C9.19037 5.45375 9.36832 3.64444 10.049 2C8.10826 2.38205 6.3256 3.33431 4.92899 4.735C1.02399 8.64 1.02399 14.972 4.92899 18.877C8.83499 22.783 15.166 22.782 19.072 18.877C20.4723 17.4805 21.4245 15.6983 21.807 13.758C20.1625 14.4385 18.3533 14.6164 16.6077 14.2692C14.8622 13.9219 13.2588 13.0651 12 11.807V11.807Z" /> +</svg> diff --git a/assets/images/sun.svg b/assets/images/sun.svg new file mode 100644 index 0000000..4c29540 --- /dev/null +++ b/assets/images/sun.svg @@ -0,0 +1,7 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M6.995 12C6.995 14.761 9.241 17.007 12.002 17.007C14.763 17.007 17.009 14.761 17.009 12C17.009 9.239 14.763 6.993 12.002 6.993C9.241 6.993 6.995 9.239 6.995 12ZM11 19H13V22H11V19ZM11 2H13V5H11V2ZM2 11H5V13H2V11ZM19 11H22V13H19V11Z" /> +<path d="M5.63702 19.778L4.22302 18.364L6.34402 16.243L7.75802 17.657L5.63702 19.778Z" /> +<path d="M16.242 6.34405L18.364 4.22205L19.778 5.63605L17.656 7.75805L16.242 6.34405Z" /> +<path d="M6.34402 7.75902L4.22302 5.63702L5.63802 4.22302L7.75802 6.34502L6.34402 7.75902Z" /> +<path d="M19.778 18.3639L18.364 19.7779L16.242 17.6559L17.656 16.2419L19.778 18.3639Z" /> +</svg> diff --git a/components/ColourPicker.vue b/components/ColourPicker.vue new file mode 100644 index 0000000..e6c65b4 --- /dev/null +++ b/components/ColourPicker.vue @@ -0,0 +1,112 @@ +<script setup lang="ts"> +import { type Ref, ref } from "vue"; +import IconSun from "@/assets/images/sun.svg?component"; +import IconMoon from "../assets/images/moon.svg?component"; + +const colorMode = useColorMode(); + +const isToggled = ref(colorMode.value === "dark"); + +const toggle = () => { + isToggled.value = !isToggled.value; + colorMode.preference = isToggled.value ? "dark" : "light"; +}; + +/* +// it unchecks on refresh and i can't make it automatically +// check itself + +const darkToggleEl: Ref<HTMLInputElement> = ref(null); + +onMounted(() => { + if (isToggled.value) { + darkToggleEl.value.checked = true; + } +}); +*/ +</script> + +<template> + <label for="toggle" :class="['toggle-wrapper']"> + <div :class="['toggle', isToggled ? 'enabled' : 'disabled']"> + <div class="icons"> + <IconMoon /> + <IconSun /> + </div> + <input + id="toggle" + name="toggle" + type="checkbox" + :checked="isToggled" + ref="darkToggleEl" + @click="toggle" + /> + </div> + </label> +</template> + +<style scoped> +.toggle-wrapper { + width: 6rem; + display: block; + --black: #333333; + --white: #f5f5f5; + --scale: 2rem; + --transition: 0.2s ease; + --bg: var(--white); + --fg: var(--black); +} + +html.dark .toggle-wrapper { + --black: #f5f5f5; + --white: #333333; +} + +.toggle { + height: var(--scale); + width: calc(var(--scale) * 2); + background: var(--fg); + border-radius: var(--scale); + padding: calc(var(--scale) * 0.175); + position: relative; + margin: auto; + cursor: pointer; + transition: background var(--transition); +} + +.toggle::before { + content: ""; + display: block; + height: calc(var(--scale) * 0.65); + width: calc(var(--scale) * 0.65); + border-radius: 50%; + background: var(--bg); + position: absolute; + z-index: 2; + transform: translate(0); + transition: transform var(--transition), background var(--transition); +} + +.toggle.enabled::before { + transform: translateX(calc(var(--scale))); +} + +.toggle input { + position: absolute; + top: 0; + opacity: 0; +} + +.toggle .icons { + display: flex; + justify-content: space-between; + align-items: center; + height: 100%; +} + +.toggle .icons svg { + transform: scale(0.7); + z-index: 0; + fill: var(--bg); +} +</style> diff --git a/components/Navbar.vue b/components/Navbar.vue new file mode 100644 index 0000000..d5121b3 --- /dev/null +++ b/components/Navbar.vue @@ -0,0 +1,38 @@ +<script setup lang="ts"> +import ColourPicker from "./ColourPicker.vue"; +</script> +<template> + <nav class="flex items-center justify-between"> + <ul> + <li class="home-text"><a href="/">Eggworld</a></li> + <li><a href="/about">About</a></li> + <li><a href="/blog">Blog</a></li> + <li><a href="/stories">Stories</a></li> + </ul> + <ColourPicker /> + </nav> +</template> + +<style scoped> +nav { + height: 5rem; + width: 100%; + border: 1px solid red; + padding: 1rem; +} + +ul { + width: 100%; + display: flex; + align-items: center; + gap: 3rem; +} + +li { + font-size: large; +} +li.home-text { + font-size: x-large; + font-weight: bold; +} +</style> diff --git a/data/projects.ts b/data/projects.ts new file mode 100644 index 0000000..ff8b4c5 --- /dev/null +++ b/data/projects.ts @@ -0,0 +1 @@ +export default {}; diff --git a/layouts/base.vue b/layouts/base.vue new file mode 100644 index 0000000..4304644 --- /dev/null +++ b/layouts/base.vue @@ -0,0 +1,21 @@ +<template> + <div class="container"> + <slot /> + </div> +</template> + +<style scoped> +.container { + display: flex; + flex-direction: column; + margin-left: 10%; + margin-right: 10%; + height: 100%; + width: 100%; +} + +.dark-mode body { + background-color: #091a28; + color: #ebf4f1; +} +</style> diff --git a/layouts/default.vue b/layouts/default.vue index a971c34..5bc57d4 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -1,6 +1,41 @@ +<script setup lang="ts"> +import Default from "./base.vue"; +import Navbar from "../components/Navbar.vue"; +</script> + <template> <div> - DEFAULT TEMPLATE LAYOUT - <slot /> + <Navbar /> + <Default> + <slot /> + </Default> </div> </template> + +<style> +html { + background: white; + color: black; + transition: color 0.2s ease, background 0.2s ease; +} + +html.dark { + background: #222; + color: white; +} + +html::before { + content: ""; + position: fixed; + height: 100%; + width: 100%; + background: #222; + transform: translateX(-100%); + transition: transform 0.2s ease; + z-index: 0; +} + +html.dark::before { + transform: translateX(0); +} +</style> diff --git a/nuxt.config.ts b/nuxt.config.ts index a37738d..e8d81d5 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,8 +1,14 @@ import { defineNuxtConfig } from "nuxt"; +import svgLoader from "vite-svg-loader"; // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ - modules: ["@nuxt/content", "@nuxtjs/tailwindcss"], + modules: [ + "@nuxt/content", + "@nuxtjs/color-mode", + "@nuxtjs/tailwindcss", + "@nuxtjs/sitemap", + ], nitro: { prerender: { routes: ["/sitemap.xml"], @@ -11,5 +17,20 @@ export default defineNuxtConfig({ typescript: { shim: false, }, + sitemap: { + hostname: process.env.BASE_URL || "https://eggworld.tk", + }, tailwindcss: {}, + colorMode: { + classSuffix: "", + }, + vite: { + plugins: [svgLoader()], + }, + head: { + meta: [ + { name: "viewport", content: " width=device-width,initial-scale=1" }, + ], + link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }], + }, }); diff --git a/package.json b/package.json index 61f9a4e..8527956 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,10 @@ }, "devDependencies": { "@nuxt/content": "^2.0.1", + "@nuxtjs/color-mode": "^3.1.4", + "@nuxtjs/sitemap": "^2.4.0", "@nuxtjs/tailwindcss": "^5.3.0", "nuxt": "3.0.0-rc.6", - "sitemap": "^7.1.1" + "vite-svg-loader": "^3.4.0" } } diff --git a/pages/blog.vue b/pages/blog.vue new file mode 100644 index 0000000..e69de29 diff --git a/pages/index.vue b/pages/index.vue index 2d61764..755f6ee 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -1 +1,3 @@ +<script setup lang="ts"></script> + <template>HELLO</template> diff --git a/pages/stories.vue b/pages/stories.vue new file mode 100644 index 0000000..e69de29 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d6bd4b988f598ee4c14a77f2db3f6b74979bd667 GIT binary patch literal 2238 zcmeHI2UlBV7=F-du_`!Q>2+YVwp!ad;$Efh8F99Ck80g@uhzOctfEzHAp{b#NCYWb zwI>jgNRtLK$smMKC}k7@g#Za5Aqn{2sE5$<3q1XDzAyJa&-*^_`p&sP3jH!OL1!wI zslaRi3uqIBrL<W*v1a`9mpD`Cq&+b)fr;@r{C+>2O)XHHT=-e<z)ph`)n+$bzE%tl z4k8c;KxcMAsBxpPwj0Hc0Hh6J+N1P5OxOX4G%nOw+z1APIPgagWNHfv&3!0oibL5v z4n<Q8g>}7<6W-I?hwh#p2rI3SxI$3+;wbS(k*DuKN#htK&H%*DAVexNdi(yw$Vd?K zDifsc5H^+9VarZC@c}5+CX9wc*lls5z}QVX<0!KH1-T~znJ0__Lnn-OH-?6WP^7X_ zj2O1p?8nwBFU0l3*j!<ToZ^ZqEeKMLjz%B&`gY`MTaa()0-rQ<cDcZ>*#}Q^3x3mE zQA~a^s$D@ji|l>~t^E+%22o|SBNmN9QEjH!5lARkiF*_>sz*V2m1@k0$76_uM<J=Q zK=i8~yNoXUVsN1JcL(G;C&bjlB5fn`w0jX9i;!&?615cq>RYwJMEYYGq5gJsbYR;K z9pt1fQ<H8i3MIvrQe2^R0BWNRcDEM-Lp#c}W{gu@)gBw=J4kbgL#i^8PJre*42h}^ zn!0*;d{i^lDWsW|R-4e?*+sqYLxt9aeBEC7TH9#00g4%gK-Y|7Z3Bv_ewk+s;z|=j zp%IuI9`JX!!RBs4m~t1|{3s{?F{-7%e*hA)6WNF0r#sa@Fn}`ZNx_~jno|eLbrzUi zUPv|d5a`<=q&W&mOHS{$1|K4k2wL}dqSoPshVEvq(~EuWT}hYv@Z<lv1Gztz&)iY* z)5X)*m?x8$WT&Mmls}Y~O=BS{7Uys|48!5Bkw}Gy7zhfBxXizco4@d2gS?Gv$@jm- z$>$eLRrvm9)_dK`3?7d);%?hMh5u?<4xzjyUw^Y|Yr^2$?{bq3KKq>9c^fuvnzi|h z4Xgoo%a_Ughilg{O!`Ob3H$hyhghk%KTYD_c=Ih5dM5$B`yQLh^7lWOG+6yY78U;D zOGtTn^((Kwwubl>uRlM@KlV7wXFu`eQ%^th?5gMHvHYAQ{(%SCn9My7FJF<Bv67W% z(jR$r(jRx-o#4rlcW*Y^DBgYdC(*cxZ4dXBTe%G9w%b{M?j3g~^H*PUEn(MPKbK){ zSjtLeExR$9$0e7N>t%~c`tn6rkm;3IO`&nY!ucHL!bNQ6i<dB*w2KbDBxhxw%{k{> zmOpPEXa0ior@GVI>^Y}pP<V!!n{oOXXC6WWvyMIP__XvBPCV)4Q%;?RCg_MGXB>6( T%+zD1XA@`&``JCbCOhyqM_3EQ literal 0 HcmV?d00001 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..18679ee --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +Sitemap: https://eggworld.tk/sitemap.xml +User-agent: * +Disallow: \ No newline at end of file diff --git a/server/routes/sitemap.xml.ts b/server/routes/sitemap.xml.ts deleted file mode 100644 index 7d8467a..0000000 --- a/server/routes/sitemap.xml.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { SitemapStream, streamToPromise } from "sitemap"; -export default defineEventHandler(async (event) => { - // Fetch all documents - const docs = await serverQueryContent(event).find(); - const sitemap = new SitemapStream({ hostname: "https://example.com" }); - for (const doc of docs) { - sitemap.write({ url: doc._path, changefreq: "monthly" }); - } - sitemap.end(); - return streamToPromise(sitemap); -}); diff --git a/tailwind.config.ts b/tailwind.config.ts index 83317e0..90ce358 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,6 +1,7 @@ import { Config } from "tailwindcss"; export default <Config>{ + darkMode: "class", theme: { extend: {}, }, diff --git a/yarn.lock b/yarn.lock index a2efdfe..cb0d59a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -589,6 +589,30 @@ vite-node "^0.18.1" vite-plugin-checker "^0.4.9" +"@nuxtjs/color-mode@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-3.1.4.tgz#7b54af2b3a21d07acac158ded8b2e8f45b4d4a24" + integrity sha512-3pxZNbZCFCzBgkyJLU/YvC2L2l1yRvITuD91zfJoIGm52PTx66y/Q1/UW8i9YFDVhJvvRd67s6eWvgaKQtTPlw== + dependencies: + "@nuxt/kit" "^3.0.0-rc.3" + lodash.template "^4.5.0" + pathe "^0.3.0" + +"@nuxtjs/sitemap@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/sitemap/-/sitemap-2.4.0.tgz#6a9fa1c35e161f87375d59949d973568cec40614" + integrity sha512-TVgIYOtPp7KAfaUo76WRpGbO20j4D/xi/A7shFIGjARHs+FvfAWXNCtBT87dTwe/RoYzAsEKtijFFUTaSu5bUA== + dependencies: + async-cache "^1.1.0" + consola "^2.13.0" + etag "^1.8.1" + fresh "^0.5.2" + fs-extra "^8.1.0" + is-https "^2.0.2" + lodash.unionby "^4.8.0" + minimatch "^3.0.4" + sitemap "^4.1.1" + "@nuxtjs/tailwindcss@^5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@nuxtjs/tailwindcss/-/tailwindcss-5.3.0.tgz#7bd85d46909d151902e7267e6c1653e3cf6eb567" @@ -752,10 +776,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.6.tgz#0ba49ac517ad69abe7a1508bc9b3a5483df9d5d7" integrity sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw== -"@types/node@^17.0.5": - version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" - integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== +"@types/node@^12.0.2": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/parse-json@^4.0.0": version "4.0.0" @@ -774,7 +798,7 @@ dependencies: "@types/node" "*" -"@types/sax@^1.2.1": +"@types/sax@^1.2.0": version "1.2.4" resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e" integrity sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw== @@ -869,7 +893,7 @@ "@vue/compiler-core" "3.2.37" "@vue/shared" "3.2.37" -"@vue/compiler-sfc@3.2.37": +"@vue/compiler-sfc@3.2.37", "@vue/compiler-sfc@^3.2.20": version "3.2.37" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== @@ -1101,7 +1125,12 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -arg@^5.0.0, arg@^5.0.2: +arg@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +arg@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== @@ -1116,6 +1145,13 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-cache@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-cache/-/async-cache-1.1.0.tgz#4a9a5a89d065ec5d8e5254bd9ee96ba76c532b5a" + integrity sha512-YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g== + dependencies: + lru-cache "^4.0.0" + async@^2.6.2: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -1541,7 +1577,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -consola@^2.15.3: +consola@^2.13.0, consola@^2.15.3: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== @@ -2319,7 +2355,7 @@ fraction.js@^4.2.0: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== -fresh@0.5.2, fresh@~0.5.2: +fresh@0.5.2, fresh@^0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -2338,6 +2374,15 @@ fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -2934,6 +2979,11 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== +is-https@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-https/-/is-https-2.0.2.tgz#7009d303c72580f15897d5c063d6b6bc1f838fef" + integrity sha512-UfUCKVQH/6PQRCh5Qk9vNu4feLZiFmV/gr8DjbtJD0IrCRIDTA6E+d/AVFGPulI5tqK5W45fYbn1Nir1O99rFw== + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -3066,6 +3116,13 @@ jsonc-parser@^3.0.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d" integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -3275,6 +3332,11 @@ lodash.union@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== +lodash.unionby@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/lodash.unionby/-/lodash.unionby-4.8.0.tgz#883f098ff78f564a727b7508e09cdd539734bb83" + integrity sha512-e60kn4GJIunNkw6v9MxRnUuLYI/Tyuanch7ozoCtk/1irJTYBj+qNTxr5B3qVflmJhwStJBv387Cb+9VOfABMg== + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -3298,6 +3360,14 @@ longest-streak@^3.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== +lru-cache@^4.0.0: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4744,6 +4814,11 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -5230,15 +5305,16 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sitemap@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef" - integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg== +sitemap@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-4.1.1.tgz#c9b459c7d797e629c61f56b86586d4f67dbf250b" + integrity sha512-+8yd66IxyIFEMFkFpVoPuoPwBvdiL7Ap/HS5YD7igqO4phkyTPFIprCAE9NMHehAY5ZGN3MkAze4lDrOAX3sVQ== dependencies: - "@types/node" "^17.0.5" - "@types/sax" "^1.2.1" - arg "^5.0.0" + "@types/node" "^12.0.2" + "@types/sax" "^1.2.0" + arg "^4.1.1" sax "^1.2.4" + xmlbuilder "^13.0.0" slash@^3.0.0: version "3.0.0" @@ -5758,6 +5834,11 @@ unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: unist-util-is "^5.0.0" unist-util-visit-parents "^5.0.0" +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -5917,6 +5998,14 @@ vite-plugin-checker@^0.4.9: vscode-languageserver-textdocument "^1.0.1" vscode-uri "^3.0.2" +vite-svg-loader@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-3.4.0.tgz#4638827fe86b85ecfcea1ad61dd972c351d5befd" + integrity sha512-xD3yb1FX+f4l9/TmsYIqyki8ncpcVsZ2gEJFh/wLuNNqt55C8OJ+JlcMWOA/Z9gRA+ylV/TA1wmJLxzZkCRqlA== + dependencies: + "@vue/compiler-sfc" "^3.2.20" + svgo "^2.7.0" + "vite@^2.9.12 || ^3.0.0-0": version "3.0.2" resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.2.tgz#2a7b4642c53ae066cf724e7e581d6c1fd24e2c32" @@ -6083,6 +6172,11 @@ ws@^8.6.0, ws@^8.7.0, ws@^8.8.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +xmlbuilder@^13.0.0: + version "13.0.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" + integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== + xtend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -6100,6 +6194,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yallist@^3.0.0, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"