]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
docs(docs): Update Vue School summer banner (#1457)
authorNico Devs <3766839+nicodevs@users.noreply.github.com>
Mon, 25 Jul 2022 16:15:07 +0000 (13:15 -0300)
committerGitHub <noreply@github.com>
Mon, 25 Jul 2022 16:15:07 +0000 (18:15 +0200)
packages/docs/.vitepress/components/Banner.vue
packages/docs/.vitepress/components/BannerCountdown.vue [new file with mode: 0644]
packages/docs/package.json
pnpm-lock.yaml

index 7b0f80850701f72b37c777ff1570eaa4cf2fd546..2104f7c05b3a6863946d4bec351fae5667f41e29 100644 (file)
       <div class="vs-backpack">
         <img src="/images/vueschool/vs-backpack.png" alt="Backpack">
       </div>
-      <div class="vs-slogan">
-        <span class="vs-slogan-light">Summer Sale:</span> Get the 3 months plan for only <span style="text-decoration: line-through">$75</span> $50
+      <div class="vs-slogan-wrapper">
+        <div class="vs-slogan">
+          Learn Vue this summer and <span class="vs-slogan-light">save 40%</span>
+        </div>
+        <div class="vs-subline">
+          <span
+            v-if="isExtended"
+            :style="{ fontWeight: 'bold', marginRight: '8px' }">
+            Extended!
+          </span>
+          <span
+            v-else>
+            Limited time offer
+          </span>
+          <BannerCountdown
+            v-bind="{ remaining }" />
+        </div>
       </div>
       <div class="vs-button">
-        Get 33% OFF
+        Get Offer
       </div>
     </div>
     <div
 </template>
 
 <script>
+import BannerCountdown from './BannerCountdown.vue'
+
 export default {
+  components: {
+    BannerCountdown
+  },
   data () {
     return {
-      isVisible: false
+      isActive: null,
+      isExtended: null,
+      isVisible: false,
+      remaining: 0
     }
   },
   mounted () {
     const now = new Date()
-    const end = new Date('2022-07-23T00:00:00+02:00')
-    this.isVisible = !localStorage.getItem('VS_SUMMER_22') && (now < end)
+    const extension = new Date('2022-07-27T00:00:00+02:00')
+    const end = new Date('2022-07-29T00:00:00+02:00')
+
+    this.isActive = now < end
+    this.isExtended = now > extension && now < end
+
+    this.remaining = (this.isExtended ? end : extension) - now
+    this.isVisible = !localStorage.getItem('VS_SUMMER_22') && this.remaining > 0
     if (this.isVisible) document.body.classList.add('has-top-banner')
   },
   methods: {
@@ -71,26 +100,32 @@ export default {
   height: 5rem;
   display: flex;
 }
+
 #vs:hover {
   text-decoration: none;
 }
+
 @media (min-width: 680px) {
   #vs {
     height: 5rem;
   }
 }
+
 #vs:hover .vs-core .vs-button {
   background: #f22606;
 }
+
 #vs .vs-iso {
   position: absolute;
   left: 20px;
   height: 26px;
   display: none;
 }
+
 #vs .vs-iso img {
   height: 26px;
 }
+
 @media (min-width: 680px) {
   #vs .vs-iso {
     left: 40px;
@@ -101,71 +136,80 @@ export default {
     height: 40px;
   }
 }
+
 @media (min-width: 900px) {
   #vs .vs-iso {
     display: none;
   }
 }
+
 #vs .vs-logo {
   position: absolute;
   display: none;
   left: 40px;
 }
+
 @media (min-width: 900px) {
   #vs .vs-logo {
     display: block;
   }
 }
+
 #vs .vs-core {
   display: flex;
   align-items: center;
 }
+
 #vs .vs-core .vs-backpack {
-  margin-right: 14px;
+  margin-right: 26px;
 }
+
 #vs .vs-core .vs-backpack img {
-  height: 38px;
-}
-@media (min-width: 900px) {
-  #vs .vs-core .vs-backpack img {
-    height: 50px;
-  }
+  height: 44px;
 }
-@media (min-width: 900px) {
-  #vs .vs-core .vs-backpack img {
-    height: 74px;
-  }
+
+#vs .vs-core .vs-slogan-wrapper {
+  margin-right: 26px;
 }
+
 #vs .vs-core .vs-slogan {
   color: #FFF;
   font-weight: bold;
-  font-size: 14px;
-  margin-right: 26px;
+  font-size: 16px;
+  text-align: center;
 }
+
 @media (min-width: 680px) {
   #vs .vs-core .vs-slogan {
-    margin-right: 0;
-    font-size: 16px;
-  }
-}
-@media (min-width: 900px) {
-  #vs .vs-core .vs-slogan {
-    font-size: 20px;
+    font-size: 18px;
   }
 }
+
 #vs .vs-core .vs-slogan > .vs-slogan-light {
-  color: #ff5338;
+  color: #00b5ff;
   display: block;
-  text-align: left;
 }
+
+#vs .vs-core .vs-slogan-wrapper .vs-subline {
+  color: #FFF;
+  text-align: center;
+  font-size: 12px;
+}
+
+@media (min-width: 680px) {
+  #vs .vs-core .vs-slogan-wrapper .vs-subline {
+    font-size: 16px;
+  }
+}
+
 @media (min-width: 900px) {
   #vs .vs-core .vs-slogan > .vs-slogan-light {
     text-align: center;
     display: inline;
   }
 }
+
 #vs .vs-core .vs-button {
-  margin-left: 43px;
   color: #fff;
   padding: 13px 24px;
   border-radius: 40px;
@@ -174,21 +218,25 @@ export default {
   font-weight: bold;
   text-transform: uppercase;
 }
+
 @media (min-width: 680px) {
   #vs .vs-core .vs-button {
     display: inline-block;
   }
 }
+
 #vs .vs-close {
   right: 10px;
   position: absolute;
   padding: 10px;
 }
+
 @media (min-width: 680px) {
   #vs .vs-close {
     right: 20px;
   }
 }
+
 #vs .vs-close:hover {
   color: #56d8ff;
 }
diff --git a/packages/docs/.vitepress/components/BannerCountdown.vue b/packages/docs/.vitepress/components/BannerCountdown.vue
new file mode 100644 (file)
index 0000000..e358ee2
--- /dev/null
@@ -0,0 +1,55 @@
+<template>
+  <ClientOnly>
+    <VueCountdown
+      v-if="remaining"
+      :time="remaining"
+      v-slot="data">
+      <span
+        v-for="part in ['days', 'hours', 'minutes', 'seconds']"
+        :key="part">
+        {{ data[part] }}{{ part[0].toLowerCase() }}
+        <span
+          v-if="part !== 'seconds'"
+          class="px-1 text-xl font-bold">
+          :
+        </span>
+      </span>
+    </VueCountdown>
+  </ClientOnly>
+</template>
+
+<script>
+import VueCountdown from '@chenfengyuan/vue-countdown'
+
+const countdownTransform = (props) => {
+  Object.entries(props).forEach(([key, value]) => {
+    const digits = value < 10 ? `0${value}` : value
+    props[key] = digits
+  })
+  return props
+}
+
+export default {
+  components: {
+    VueCountdown
+  },
+  props: {
+    remaining: {
+      type: Number,
+      default: 0
+    }
+  },
+  computed: {
+    isVisible () {
+      return this.remaining > 0
+    }
+  }
+}
+</script>
+
+<style scoped>
+span {
+  color: #ff5338;
+  font-weight: bold;
+}
+</style>
\ No newline at end of file
index 1ed4d93ef084d2d2c56b722bc4fe293bd1a18188..148a2bb7f10514171ffcbaea75496cbb512bfa0f 100644 (file)
@@ -8,6 +8,7 @@
     "docs:build": "vitepress build ."
   },
   "dependencies": {
+    "@chenfengyuan/vue-countdown": "2",
     "@vueuse/core": "^8.9.4",
     "pinia": "^2.0.0",
     "vitepress": "^0.22.2"
index 6028b8726dd6343c41bc4e5b331c0026e33f5d7b..725e5fbeb2d6c68b13b774c17ea4db6af65fe657 100644 (file)
@@ -1,4 +1,4 @@
-lockfileVersion: 5.4
+lockfileVersion: 5.3
 
 importers:
 
@@ -68,7 +68,7 @@ importers:
       rimraf: 3.0.2
       rollup: 2.77.0
       rollup-plugin-terser: 7.0.2_rollup@2.77.0
-      rollup-plugin-typescript2: 0.32.1_55kiftncucr43pz4hskma6yi2q
+      rollup-plugin-typescript2: 0.32.1_rollup@2.77.0+typescript@4.7.4
       semver: 7.3.7
       typedoc: 0.23.9_typescript@4.7.4
       typedoc-plugin-markdown: 3.13.4_typedoc@0.23.9
@@ -78,11 +78,13 @@ importers:
 
   packages/docs:
     specifiers:
+      '@chenfengyuan/vue-countdown': '2'
       '@vueuse/core': ^8.9.4
       pinia: ^2.0.0
       vitepress: ^0.22.2
     dependencies:
-      '@vueuse/core': 8.9.4
+      '@chenfengyuan/vue-countdown': 2.0.0_vue@3.2.37
+      '@vueuse/core': 8.9.4_vue@3.2.37
       pinia: link:../pinia
       vitepress: 0.22.3
 
@@ -91,15 +93,15 @@ importers:
       '@nuxt/kit': 3.0.0-rc.6
       '@nuxt/module-builder': latest
       nuxt: ^3.0.0-rc.4
-      pinia: '>=2.0.14'
+      pinia: '>=2.0.17'
       typescript: ^4.7.4
       vue-tsc: ^0.39.0
     dependencies:
-      '@nuxt/kit': 3.0.0-rc.6
+      '@nuxt/kit': 3.0.0-rc.6_rollup@2.77.0
       pinia: link:../pinia
     devDependencies:
       '@nuxt/module-builder': 0.1.7
-      nuxt: 3.0.0-rc.4
+      nuxt: 3.0.0-rc.4_rollup@2.77.0
       typescript: 4.7.4
       vue-tsc: 0.39.0_typescript@4.7.4
 
@@ -111,10 +113,10 @@ importers:
       vue-demi: '*'
     dependencies:
       '@vue/devtools-api': 6.2.1
-      vue-demi: 0.13.5
+      vue-demi: 0.13.5_vue@3.2.37
     devDependencies:
       '@microsoft/api-extractor': 7.28.6
-      '@vue/test-utils': 2.0.2
+      '@vue/test-utils': 2.0.2_vue@3.2.37
 
   packages/playground:
     specifiers:
@@ -127,14 +129,14 @@ importers:
       vue-promised: ^2.2.0
       vue-router: ^4.1.2
     dependencies:
-      '@vueuse/core': 8.9.4
+      '@vueuse/core': 8.9.4_vue@3.2.37
       mande: 1.0.1
       pinia: link:../pinia
-      swrv: 1.0.0-beta.8
-      vue-promised: 2.2.0
-      vue-router: 4.1.2
+      swrv: 1.0.0-beta.8_vue@3.2.37
+      vue-promised: 2.2.0_vue@3.2.37
+      vue-router: 4.1.2_vue@3.2.37
     devDependencies:
-      '@vitejs/plugin-vue': 3.0.1_vite@3.0.3
+      '@vitejs/plugin-vue': 3.0.1_vite@3.0.3+vue@3.2.37
       vite: 3.0.3
 
   packages/size-check:
@@ -154,7 +156,7 @@ importers:
       siroc: ^0.16.0
       vue-demi: '*'
     dependencies:
-      vue-demi: 0.13.5
+      vue-demi: 0.13.5_vue@3.2.37
     devDependencies:
       pinia: link:../pinia
       siroc: 0.16.0
@@ -708,6 +710,14 @@ packages:
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
     dev: true
 
+  /@chenfengyuan/vue-countdown/2.0.0_vue@3.2.37:
+    resolution: {integrity: sha512-uZQBuajO9Jp5y5Hh5/C61qZw5oQXv3Cgd0FWO4j22SmwY7pzEHC7A/liobHjHeLiQH9WKVEhyOzmIZ2a4WSXhQ==}
+    peerDependencies:
+      vue: ^3.0.0
+    dependencies:
+      vue: 3.2.37
+    dev: false
+
   /@cloudflare/kv-asset-handler/0.2.0:
     resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==}
     dependencies:
@@ -1102,11 +1112,11 @@ packages:
     resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==}
     dev: true
 
-  /@nuxt/kit/3.0.0-rc.1:
+  /@nuxt/kit/3.0.0-rc.1_rollup@2.77.0:
     resolution: {integrity: sha512-S2x0zdLYLZ4/2lMnS6emSmFPJszPJf70Y4/8gpmkPb4TArEjPNaOTCIz7tKpj/Upo71fv7cfuwYw/X0F2UAntg==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
-      '@nuxt/schema': 3.0.0-rc.4
+      '@nuxt/schema': 3.0.0-rc.4_rollup@2.77.0
       c12: 0.2.8
       consola: 2.15.3
       defu: 6.0.0
@@ -1121,8 +1131,8 @@ packages:
       pkg-types: 0.3.3
       scule: 0.2.1
       semver: 7.3.7
-      unctx: 1.1.4
-      unimport: 0.1.9
+      unctx: 1.1.4_rollup@2.77.0
+      unimport: 0.1.9_rollup@2.77.0
       untyped: 0.4.4
     transitivePeerDependencies:
       - esbuild
@@ -1132,11 +1142,11 @@ packages:
       - webpack
     dev: true
 
-  /@nuxt/kit/3.0.0-rc.6:
+  /@nuxt/kit/3.0.0-rc.6_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-+lxSd6dSWlAzMXfGOPcY4856xnMF1Ck1rycFUZ+K2QYiDXphq/fiW2eMaWLVvqgPyL2Box2WzVDZJ6C5ceptcw==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
-      '@nuxt/schema': 3.0.0-rc.6
+      '@nuxt/schema': 3.0.0-rc.6_bd950b848f6d589b9f192f58f6a905b6
       c12: 0.2.8
       consola: 2.15.3
       defu: 6.0.0
@@ -1151,8 +1161,8 @@ packages:
       pkg-types: 0.3.3
       scule: 0.2.1
       semver: 7.3.7
-      unctx: 1.1.4
-      unimport: 0.4.7
+      unctx: 1.1.4_bd950b848f6d589b9f192f58f6a905b6
+      unimport: 0.4.7_bd950b848f6d589b9f192f58f6a905b6
       untyped: 0.4.4
     transitivePeerDependencies:
       - esbuild
@@ -1160,12 +1170,13 @@ packages:
       - supports-color
       - vite
       - webpack
+    dev: true
 
-  /@nuxt/kit/3.0.0-rc.6_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /@nuxt/kit/3.0.0-rc.6_rollup@2.77.0:
     resolution: {integrity: sha512-+lxSd6dSWlAzMXfGOPcY4856xnMF1Ck1rycFUZ+K2QYiDXphq/fiW2eMaWLVvqgPyL2Box2WzVDZJ6C5ceptcw==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
-      '@nuxt/schema': 3.0.0-rc.6_xwkqxbepnvmjxhyzf5mpnkifwy
+      '@nuxt/schema': 3.0.0-rc.6_rollup@2.77.0
       c12: 0.2.8
       consola: 2.15.3
       defu: 6.0.0
@@ -1180,8 +1191,8 @@ packages:
       pkg-types: 0.3.3
       scule: 0.2.1
       semver: 7.3.7
-      unctx: 1.1.4_xwkqxbepnvmjxhyzf5mpnkifwy
-      unimport: 0.4.7_xwkqxbepnvmjxhyzf5mpnkifwy
+      unctx: 1.1.4_rollup@2.77.0
+      unimport: 0.4.7_rollup@2.77.0
       untyped: 0.4.4
     transitivePeerDependencies:
       - esbuild
@@ -1189,7 +1200,6 @@ packages:
       - supports-color
       - vite
       - webpack
-    dev: true
 
   /@nuxt/module-builder/0.1.7:
     resolution: {integrity: sha512-ueTrJhXrKKxGp6VAe2C/nOqTeRoy0qfq9RH2QVl0kq0duDyQHCe1e8dw8yBbYjTlSvfqBPYaraxpX8i2zis2cw==}
@@ -1204,7 +1214,7 @@ packages:
       - supports-color
     dev: true
 
-  /@nuxt/schema/3.0.0-rc.4:
+  /@nuxt/schema/3.0.0-rc.4_rollup@2.77.0:
     resolution: {integrity: sha512-5yjfKvPJ/NboevQYZLyO1SS9nJW6KHtdd7Ei61D19gYGtnN+aOpxOnUX08A1rZMb3G2Cw5JRxVeF9+AfBYefJg==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
@@ -1217,7 +1227,7 @@ packages:
       scule: 0.2.1
       std-env: 3.1.1
       ufo: 0.8.5
-      unimport: 0.2.10
+      unimport: 0.2.10_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -1225,7 +1235,7 @@ packages:
       - webpack
     dev: true
 
-  /@nuxt/schema/3.0.0-rc.6:
+  /@nuxt/schema/3.0.0-rc.6_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-BcD5YtWRhn+jU2DlzuI1TeITFeOt5x6qm2KeaU/d5jzJ0oZDzmZwKsAimLtRbHwyU6/kKa+zFbK6pp5obm1XLg==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
@@ -1238,14 +1248,15 @@ packages:
       scule: 0.2.1
       std-env: 3.1.1
       ufo: 0.8.5
-      unimport: 0.4.7
+      unimport: 0.4.7_bd950b848f6d589b9f192f58f6a905b6
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
+    dev: true
 
-  /@nuxt/schema/3.0.0-rc.6_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /@nuxt/schema/3.0.0-rc.6_rollup@2.77.0:
     resolution: {integrity: sha512-BcD5YtWRhn+jU2DlzuI1TeITFeOt5x6qm2KeaU/d5jzJ0oZDzmZwKsAimLtRbHwyU6/kKa+zFbK6pp5obm1XLg==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     dependencies:
@@ -1258,19 +1269,18 @@ packages:
       scule: 0.2.1
       std-env: 3.1.1
       ufo: 0.8.5
-      unimport: 0.4.7_xwkqxbepnvmjxhyzf5mpnkifwy
+      unimport: 0.4.7_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
-    dev: true
 
-  /@nuxt/telemetry/2.1.3:
+  /@nuxt/telemetry/2.1.3_rollup@2.77.0:
     resolution: {integrity: sha512-k8wP3D17di27/loe35GZEqXyabG/045tFD1CipmG9MOnZdwf6WeL+gFEXzIaDeDFVLmbI1bnddOk+RutxeIjVA==}
     hasBin: true
     dependencies:
-      '@nuxt/kit': 3.0.0-rc.1
+      '@nuxt/kit': 3.0.0-rc.1_rollup@2.77.0
       chalk: 5.0.1
       ci-info: 3.3.2
       consola: 2.15.3
@@ -1308,7 +1318,7 @@ packages:
     peerDependencies:
       vue: ^3.2.37
     dependencies:
-      '@nuxt/kit': 3.0.0-rc.6_xwkqxbepnvmjxhyzf5mpnkifwy
+      '@nuxt/kit': 3.0.0-rc.6_bd950b848f6d589b9f192f58f6a905b6
       '@rollup/plugin-replace': 4.0.0_rollup@2.75.7
       '@vitejs/plugin-vue': 2.3.3_vite@2.9.14+vue@3.2.37
       '@vitejs/plugin-vue-jsx': 1.3.10
@@ -1333,7 +1343,7 @@ packages:
       rollup: 2.75.7
       rollup-plugin-visualizer: 5.6.0_rollup@2.75.7
       ufo: 0.8.5
-      unplugin: 0.7.1_xwkqxbepnvmjxhyzf5mpnkifwy
+      unplugin: 0.7.1_bd950b848f6d589b9f192f58f6a905b6
       vite: 2.9.14
       vite-node: 0.14.2
       vite-plugin-checker: 0.4.8_vite@2.9.14
@@ -1907,7 +1917,7 @@ packages:
       vue: 3.2.37
     dev: true
 
-  /@vitejs/plugin-vue/3.0.1_vite@3.0.3:
+  /@vitejs/plugin-vue/3.0.1_vite@3.0.3+vue@3.2.37:
     resolution: {integrity: sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -1915,6 +1925,7 @@ packages:
       vue: ^3.2.25
     dependencies:
       vite: 3.0.3
+      vue: 3.2.37
     dev: true
 
   /@volar/code-gen/0.39.0:
@@ -2156,13 +2167,15 @@ packages:
     resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
     dev: true
 
-  /@vue/test-utils/2.0.2:
+  /@vue/test-utils/2.0.2_vue@3.2.37:
     resolution: {integrity: sha512-E2P4oXSaWDqTZNbmKZFVLrNN/siVN78YkEqs7pHryWerrlZR9bBFLWdJwRoguX45Ru6HxIflzKl4vQvwRMwm5g==}
     peerDependencies:
       vue: ^3.0.1
+    dependencies:
+      vue: 3.2.37
     dev: true
 
-  /@vueuse/core/8.9.4:
+  /@vueuse/core/8.9.4_vue@3.2.37:
     resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}
     peerDependencies:
       '@vue/composition-api': ^1.1.0
@@ -2175,8 +2188,9 @@ packages:
     dependencies:
       '@types/web-bluetooth': 0.0.14
       '@vueuse/metadata': 8.9.4
-      '@vueuse/shared': 8.9.4
-      vue-demi: 0.13.5
+      '@vueuse/shared': 8.9.4_vue@3.2.37
+      vue: 3.2.37
+      vue-demi: 0.13.5_vue@3.2.37
     dev: false
 
   /@vueuse/head/0.7.6_vue@3.2.37:
@@ -2191,7 +2205,7 @@ packages:
     resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==}
     dev: false
 
-  /@vueuse/shared/8.9.4:
+  /@vueuse/shared/8.9.4_vue@3.2.37:
     resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}
     peerDependencies:
       '@vue/composition-api': ^1.1.0
@@ -2202,7 +2216,8 @@ packages:
       vue:
         optional: true
     dependencies:
-      vue-demi: 0.13.5
+      vue: 3.2.37
+      vue-demi: 0.13.5_vue@3.2.37
     dev: false
 
   /JSONStream/1.3.5:
@@ -3311,11 +3326,6 @@ packages:
 
   /debug/2.6.9:
     resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
-    peerDependencies:
-      supports-color: '*'
-    peerDependenciesMeta:
-      supports-color:
-        optional: true
     dependencies:
       ms: 2.0.0
     dev: true
@@ -6610,7 +6620,7 @@ packages:
       table: 6.8.0
       ufo: 0.8.5
       unenv: 0.5.2
-      unimport: 0.4.7_zqo64ogfzzycugxswskc4gmbhu
+      unimport: 0.4.7_esbuild@0.14.48+rollup@2.75.7
       unstorage: 0.5.4
     transitivePeerDependencies:
       - bufferutil
@@ -6763,15 +6773,15 @@ packages:
       fsevents: 2.3.2
     dev: true
 
-  /nuxt/3.0.0-rc.4:
+  /nuxt/3.0.0-rc.4_rollup@2.77.0:
     resolution: {integrity: sha512-Cj23WECa9JSN1Gkhh48e9JzkigXugMZ3glH+/ftN9jmYXce2NrOYHBn7Drg1dO7VdlkkhpxtSVf81u5zRZe/gg==}
     engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
     hasBin: true
     dependencies:
       '@nuxt/devalue': 2.0.0
-      '@nuxt/kit': 3.0.0-rc.6
-      '@nuxt/schema': 3.0.0-rc.4
-      '@nuxt/telemetry': 2.1.3
+      '@nuxt/kit': 3.0.0-rc.6_rollup@2.77.0
+      '@nuxt/schema': 3.0.0-rc.4_rollup@2.77.0
+      '@nuxt/telemetry': 2.1.3_rollup@2.77.0
       '@nuxt/ui-templates': 0.1.1
       '@nuxt/vite-builder': 3.0.0-rc.4_vue@3.2.37
       '@vue/reactivity': 3.2.37
@@ -6798,10 +6808,10 @@ packages:
       perfect-debounce: 0.1.3
       scule: 0.2.1
       ufo: 0.8.5
-      unctx: 1.1.4
+      unctx: 1.1.4_rollup@2.77.0
       unenv: 0.5.2
-      unimport: 0.2.10
-      unplugin: 0.7.1
+      unimport: 0.2.10_rollup@2.77.0
+      unplugin: 0.7.1_rollup@2.77.0
       untyped: 0.4.4
       vue: 3.2.37
       vue-bundle-renderer: 0.3.9
@@ -7782,7 +7792,7 @@ packages:
       glob: 7.2.3
     dev: true
 
-  /rollup-plugin-dts/3.0.2_3zpigpz7crs5s43nhxirf6uitu:
+  /rollup-plugin-dts/3.0.2_rollup@2.70.1+typescript@4.6.3:
     resolution: {integrity: sha512-hswlsdWu/x7k5pXzaLP6OvKRKcx8Bzprksz9i9mUe72zvt8LvqAb/AZpzs6FkLgmyRaN8B6rUQOVtzA3yEt9Yw==}
     engines: {node: '>=v12.22.1'}
     peerDependencies:
@@ -7796,7 +7806,7 @@ packages:
       '@babel/code-frame': 7.18.6
     dev: true
 
-  /rollup-plugin-dts/4.2.2_55kiftncucr43pz4hskma6yi2q:
+  /rollup-plugin-dts/4.2.2_rollup@2.77.0+typescript@4.7.4:
     resolution: {integrity: sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ==}
     engines: {node: '>=v12.22.11'}
     peerDependencies:
@@ -7810,7 +7820,7 @@ packages:
       '@babel/code-frame': 7.18.6
     dev: true
 
-  /rollup-plugin-esbuild/4.5.0_govqm6ojxii7nmcilqhifhza5u:
+  /rollup-plugin-esbuild/4.5.0_esbuild@0.12.29+rollup@2.70.1:
     resolution: {integrity: sha512-ieUd3AoYWsN6Tfp0LBNnC+QpdhKjDEaH4NK3ghuEXOH56/7TAtD+hMbD9vSWZgsGSbaqCkrn4j6PaUj1vOSt1g==}
     engines: {node: '>=12'}
     peerDependencies:
@@ -7824,7 +7834,7 @@ packages:
       rollup: 2.70.1
     dev: true
 
-  /rollup-plugin-esbuild/4.9.1_nkjtn7ewzjrspe36n7zrekxwnm:
+  /rollup-plugin-esbuild/4.9.1_esbuild@0.14.50+rollup@2.77.0:
     resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==}
     engines: {node: '>=12'}
     peerDependencies:
@@ -7866,7 +7876,7 @@ packages:
       terser: 5.12.1
     dev: true
 
-  /rollup-plugin-typescript2/0.32.1_55kiftncucr43pz4hskma6yi2q:
+  /rollup-plugin-typescript2/0.32.1_rollup@2.77.0+typescript@4.7.4:
     resolution: {integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==}
     peerDependencies:
       rollup: '>=1.26.3'
@@ -8006,8 +8016,6 @@ packages:
       on-finished: 2.4.1
       range-parser: 1.2.1
       statuses: 2.0.1
-    transitivePeerDependencies:
-      - supports-color
     dev: true
 
   /serialize-javascript/4.0.0:
@@ -8030,8 +8038,6 @@ packages:
       escape-html: 1.0.3
       parseurl: 1.3.3
       send: 0.18.0
-    transitivePeerDependencies:
-      - supports-color
     dev: true
 
   /set-blocking/2.0.0:
@@ -8107,8 +8113,8 @@ packages:
       jiti: 1.13.0
       mkdist: 0.3.10_typescript@4.6.3
       rollup: 2.70.1
-      rollup-plugin-dts: 3.0.2_3zpigpz7crs5s43nhxirf6uitu
-      rollup-plugin-esbuild: 4.5.0_govqm6ojxii7nmcilqhifhza5u
+      rollup-plugin-dts: 3.0.2_rollup@2.70.1+typescript@4.6.3
+      rollup-plugin-esbuild: 4.5.0_esbuild@0.12.29+rollup@2.70.1
       sort-package-json: 1.55.0
       typescript: 4.6.3
       upath: 2.0.1
@@ -8449,10 +8455,12 @@ packages:
       stable: 0.1.8
     dev: true
 
-  /swrv/1.0.0-beta.8:
+  /swrv/1.0.0-beta.8_vue@3.2.37:
     resolution: {integrity: sha512-MsjaMOvZODfM0cess/HhbSrNbAotYinv4vzipLckKYBo/QmrvjNUPGZSRSqByXy/9AjrMRFWo0YanaVPbqADPQ==}
     peerDependencies:
       vue: ^3.0.0
+    dependencies:
+      vue: 3.2.37
     dev: false
 
   /symbol-tree/3.2.4:
@@ -8772,8 +8780,8 @@ packages:
       pretty-bytes: 5.6.0
       rimraf: 3.0.2
       rollup: 2.77.0
-      rollup-plugin-dts: 4.2.2_55kiftncucr43pz4hskma6yi2q
-      rollup-plugin-esbuild: 4.9.1_nkjtn7ewzjrspe36n7zrekxwnm
+      rollup-plugin-dts: 4.2.2_rollup@2.77.0+typescript@4.7.4
+      rollup-plugin-esbuild: 4.9.1_esbuild@0.14.50+rollup@2.77.0
       scule: 0.2.1
       typescript: 4.7.4
       untyped: 0.3.0
@@ -8781,32 +8789,32 @@ packages:
       - supports-color
     dev: true
 
-  /unctx/1.1.4:
+  /unctx/1.1.4_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-fQMML+GjUpIjQa0HBrrJezo2dFpTAbQbU0/KFKw4T5wpc9deGjLHSYthdfNAo2xSWM34csI6arzedezQkqtfGw==}
     dependencies:
       acorn: 8.8.0
       estree-walker: 2.0.2
       magic-string: 0.26.2
-      unplugin: 0.6.3
+      unplugin: 0.6.3_bd950b848f6d589b9f192f58f6a905b6
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
+    dev: true
 
-  /unctx/1.1.4_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /unctx/1.1.4_rollup@2.77.0:
     resolution: {integrity: sha512-fQMML+GjUpIjQa0HBrrJezo2dFpTAbQbU0/KFKw4T5wpc9deGjLHSYthdfNAo2xSWM34csI6arzedezQkqtfGw==}
     dependencies:
       acorn: 8.8.0
       estree-walker: 2.0.2
       magic-string: 0.26.2
-      unplugin: 0.6.3_xwkqxbepnvmjxhyzf5mpnkifwy
+      unplugin: 0.6.3_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
-    dev: true
 
   /undici/5.6.0:
     resolution: {integrity: sha512-mc+8SY1fXubTrdx4CXDkeFFGV8lI3Tq4I/70U1V8Z6g4iscGII0uLO7CPnDt56bXEbvaKwo2T2+VrteWbZiXiQ==}
@@ -8822,7 +8830,7 @@ packages:
       pathe: 0.3.2
     dev: true
 
-  /unimport/0.1.9:
+  /unimport/0.1.9_rollup@2.77.0:
     resolution: {integrity: sha512-ap7MnS7zuA4A8eAyA8CHN3YFw1tMpWQK3rSrh6jvrB3tWkT4EKvslg9sNoax5WuL8TnMaXSydRxwOgUUXrnovg==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -8833,7 +8841,7 @@ packages:
       mlly: 0.5.4
       pathe: 0.3.2
       scule: 0.2.1
-      unplugin: 0.6.3
+      unplugin: 0.6.3_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -8841,7 +8849,7 @@ packages:
       - webpack
     dev: true
 
-  /unimport/0.2.10:
+  /unimport/0.2.10_rollup@2.77.0:
     resolution: {integrity: sha512-HoQ0ZDzHJboRYJ4/YxtMAATxiya/s5C2UE6jLFNj1e0D6Qfq6Pw2P40L+ALCkjLwLhR8l2VROE7kba/AaFtdQg==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -8853,7 +8861,7 @@ packages:
       pathe: 0.3.2
       scule: 0.2.1
       strip-literal: 0.4.0
-      unplugin: 0.7.1
+      unplugin: 0.7.1_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -8861,7 +8869,7 @@ packages:
       - webpack
     dev: true
 
-  /unimport/0.4.7:
+  /unimport/0.4.7_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-V2Pbscd1VSdgWm1/OI2pjtydEOTjE7DDnHZKhpOq7bSUBc1i8+1f6PK8jI1lJ1plRDcSNr0DLtAmtU9NPkFQpw==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -8873,14 +8881,15 @@ packages:
       pathe: 0.3.2
       scule: 0.2.1
       strip-literal: 0.4.0
-      unplugin: 0.7.2
+      unplugin: 0.7.2_bd950b848f6d589b9f192f58f6a905b6
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
+    dev: true
 
-  /unimport/0.4.7_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /unimport/0.4.7_esbuild@0.14.48+rollup@2.75.7:
     resolution: {integrity: sha512-V2Pbscd1VSdgWm1/OI2pjtydEOTjE7DDnHZKhpOq7bSUBc1i8+1f6PK8jI1lJ1plRDcSNr0DLtAmtU9NPkFQpw==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -8892,7 +8901,7 @@ packages:
       pathe: 0.3.2
       scule: 0.2.1
       strip-literal: 0.4.0
-      unplugin: 0.7.2_xwkqxbepnvmjxhyzf5mpnkifwy
+      unplugin: 0.7.2_esbuild@0.14.48+rollup@2.75.7
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -8900,7 +8909,7 @@ packages:
       - webpack
     dev: true
 
-  /unimport/0.4.7_zqo64ogfzzycugxswskc4gmbhu:
+  /unimport/0.4.7_rollup@2.77.0:
     resolution: {integrity: sha512-V2Pbscd1VSdgWm1/OI2pjtydEOTjE7DDnHZKhpOq7bSUBc1i8+1f6PK8jI1lJ1plRDcSNr0DLtAmtU9NPkFQpw==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -8912,13 +8921,12 @@ packages:
       pathe: 0.3.2
       scule: 0.2.1
       strip-literal: 0.4.0
-      unplugin: 0.7.2_zqo64ogfzzycugxswskc4gmbhu
+      unplugin: 0.7.2_rollup@2.77.0
     transitivePeerDependencies:
       - esbuild
       - rollup
       - vite
       - webpack
-    dev: true
 
   /universalify/0.1.2:
     resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
@@ -8930,7 +8938,7 @@ packages:
     engines: {node: '>= 10.0.0'}
     dev: true
 
-  /unplugin/0.6.3:
+  /unplugin/0.6.3_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -8948,10 +8956,14 @@ packages:
         optional: true
     dependencies:
       chokidar: 3.5.3
+      esbuild: 0.14.48
+      rollup: 2.75.7
+      vite: 2.9.14
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
+    dev: true
 
-  /unplugin/0.6.3_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /unplugin/0.6.3_rollup@2.77.0:
     resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -8969,14 +8981,11 @@ packages:
         optional: true
     dependencies:
       chokidar: 3.5.3
-      esbuild: 0.14.48
-      rollup: 2.75.7
-      vite: 2.9.14
+      rollup: 2.77.0
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
-    dev: true
 
-  /unplugin/0.7.1:
+  /unplugin/0.7.1_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -8995,11 +9004,14 @@ packages:
     dependencies:
       acorn: 8.7.1
       chokidar: 3.5.3
+      esbuild: 0.14.48
+      rollup: 2.75.7
+      vite: 2.9.14
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
     dev: true
 
-  /unplugin/0.7.1_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /unplugin/0.7.1_rollup@2.77.0:
     resolution: {integrity: sha512-Z6hNDXDNh9aimMkPU1mEjtk+2ova8gh0y7rJeJdGH1vWZOHwF2lLQiQ/R97rv9ymmzEQXsR2fyMet72T8jy6ew==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -9018,14 +9030,12 @@ packages:
     dependencies:
       acorn: 8.7.1
       chokidar: 3.5.3
-      esbuild: 0.14.48
-      rollup: 2.75.7
-      vite: 2.9.14
+      rollup: 2.77.0
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
     dev: true
 
-  /unplugin/0.7.2:
+  /unplugin/0.7.2_bd950b848f6d589b9f192f58f6a905b6:
     resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -9044,10 +9054,14 @@ packages:
     dependencies:
       acorn: 8.8.0
       chokidar: 3.5.3
+      esbuild: 0.14.48
+      rollup: 2.75.7
+      vite: 2.9.14
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
+    dev: true
 
-  /unplugin/0.7.2_xwkqxbepnvmjxhyzf5mpnkifwy:
+  /unplugin/0.7.2_esbuild@0.14.48+rollup@2.75.7:
     resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -9068,12 +9082,11 @@ packages:
       chokidar: 3.5.3
       esbuild: 0.14.48
       rollup: 2.75.7
-      vite: 2.9.14
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
     dev: true
 
-  /unplugin/0.7.2_zqo64ogfzzycugxswskc4gmbhu:
+  /unplugin/0.7.2_rollup@2.77.0:
     resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -9092,11 +9105,9 @@ packages:
     dependencies:
       acorn: 8.8.0
       chokidar: 3.5.3
-      esbuild: 0.14.48
-      rollup: 2.75.7
+      rollup: 2.77.0
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
-    dev: true
 
   /unstorage/0.5.4:
     resolution: {integrity: sha512-yihAdJiYzkmwJGBO9IV7XIlc9NpCBHlT9ZJxlMmPj+8uqkYvCkwwBO/c98+JCDLkmmdUPS0hnstl+q5bALsS+Q==}
@@ -9377,7 +9388,7 @@ packages:
       bundle-runner: 0.0.1
     dev: true
 
-  /vue-demi/0.13.5:
+  /vue-demi/0.13.5_vue@3.2.37:
     resolution: {integrity: sha512-tO3K2bML3AwiHmVHeKCq6HLef2st4zBXIV5aEkoJl6HZ+gJWxWv2O8wLH8qrA3SX3lDoTDHNghLX1xZg83MXvw==}
     engines: {node: '>=12'}
     hasBin: true
@@ -9388,9 +9399,11 @@ packages:
     peerDependenciesMeta:
       '@vue/composition-api':
         optional: true
+    dependencies:
+      vue: 3.2.37
     dev: false
 
-  /vue-promised/2.2.0:
+  /vue-promised/2.2.0_vue@3.2.37:
     resolution: {integrity: sha512-qjJOEs8MQSYIRcKiQhC7wzyy9uja/NNXS4ZeftXU6BpIQ6Ao24Gmx2mY9exmPLagv9PdrO9zUQ3yIXnoVaag4g==}
     peerDependencies:
       '@vue/composition-api': ^1.0.0
@@ -9399,7 +9412,8 @@ packages:
       '@vue/composition-api':
         optional: true
     dependencies:
-      vue-demi: 0.13.5
+      vue: 3.2.37
+      vue-demi: 0.13.5_vue@3.2.37
     dev: false
 
   /vue-router/4.1.1_vue@3.2.37:
@@ -9411,12 +9425,13 @@ packages:
       vue: 3.2.37
     dev: true
 
-  /vue-router/4.1.2:
+  /vue-router/4.1.2_vue@3.2.37:
     resolution: {integrity: sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==}
     peerDependencies:
       vue: ^3.2.0
     dependencies:
       '@vue/devtools-api': 6.2.1
+      vue: 3.2.37
     dev: false
 
   /vue-tsc/0.39.0_typescript@4.7.4: