Browse Source

chore: fix package.json + remove `/@` alias + add docs as workspace

userquin 2 years ago
parent
commit
5b1f2220df
55 changed files with 248 additions and 314 deletions
  1. 20 4
      docs/.vitepress/config.ts
  2. 1 1
      docs/.vitepress/theme/components/DonutExample.vue
  3. 1 1
      docs/.vitepress/theme/components/ExtendExample.vue
  4. 1 1
      docs/.vitepress/theme/components/FirstScene.vue
  5. 1 1
      docs/.vitepress/theme/components/FirstSceneLightToon.vue
  6. 16 0
      docs/package.json
  7. 20 0
      docs/tsconfig.json
  8. 7 0
      docs/vite.config.ts
  9. 4 7
      package.json
  10. 2 1
      playground/package.json
  11. 1 1
      playground/src/components/AnimatedModel.vue
  12. 1 1
      playground/src/components/Cameras.vue
  13. 1 1
      playground/src/components/FBXModels.vue
  14. 1 1
      playground/src/components/MultipleCanvas.vue
  15. 1 2
      playground/src/components/TestSphere.vue
  16. 1 2
      playground/src/components/Text3D.vue
  17. 1 2
      playground/src/components/TheBasic.vue
  18. 1 1
      playground/src/components/TheConditional.vue
  19. 1 1
      playground/src/components/TheEnvironment.vue
  20. 1 1
      playground/src/components/TheEvents.vue
  21. 1 1
      playground/src/components/TheFirstScene.vue
  22. 1 1
      playground/src/components/TheGizmos.vue
  23. 1 2
      playground/src/components/TheGroups.vue
  24. 8 8
      playground/src/components/TheParticles.vue
  25. 1 1
      playground/src/components/TheSmallExperience.vue
  26. 1 1
      playground/src/components/TheSphere.vue
  27. 1 1
      playground/src/components/VectorSetProps.vue
  28. 1 1
      playground/src/components/gltf/index.vue
  29. 1 1
      playground/src/components/meshWobbleMaterial/index.vue
  30. 1 1
      playground/src/components/portal-journey/TheFireFlies.vue
  31. 1 1
      playground/src/components/portal-journey/ThePortal.vue
  32. 1 1
      playground/src/components/portal-journey/index.vue
  33. 1 1
      playground/src/components/shaders-experiment/index.vue
  34. 1 1
      playground/src/pages/shapes.vue
  35. 0 1
      playground/vite.config.ts
  36. 103 218
      pnpm-lock.yaml
  37. 1 0
      pnpm-workspace.yaml
  38. 2 2
      src/components/TresCanvas.ts
  39. 13 5
      src/components/TresScene.ts
  40. 1 1
      src/composables/useCamera/index.ts
  41. 1 1
      src/composables/useCamera/useCamera.test.ts
  42. 1 1
      src/composables/useLoader/index.ts
  43. 1 1
      src/composables/useLoader/useLoader.test.ts
  44. 1 1
      src/composables/useRaycaster/index.ts
  45. 1 1
      src/composables/useRaycaster/useRaycaster.test.ts
  46. 6 5
      src/composables/useRenderer/index.ts
  47. 1 1
      src/composables/useSeek/index.ts
  48. 1 1
      src/composables/useSeek/useSeek.test.ts
  49. 1 1
      src/composables/useTres/index.ts
  50. 2 2
      src/composables/useTres/useTres.test.ts
  51. 1 1
      src/core/nodeOps.ts
  52. 5 5
      src/index.ts
  53. 1 4
      tsconfig.json
  54. 0 3
      tsconfig.node.json
  55. 1 8
      vite.config.ts

+ 20 - 4
docs/.vitepress/config.ts

@@ -1,5 +1,3 @@
-import Unocss from 'unocss/vite'
-import svgLoader from 'vite-svg-loader'
 import { defineConfig } from 'vitepress'
 import { resolve } from 'pathe'
 
@@ -12,6 +10,9 @@ export default defineConfig({
   ],
   themeConfig: {
     logo: '/logo.svg',
+    search: {
+      provider: 'local',
+    },
     sidebar: [
       {
         text: 'Guide',
@@ -96,11 +97,26 @@ export default defineConfig({
     ],
   },
   vite: {
-    plugins: [svgLoader(), Unocss()],
+    optimizeDeps: {
+      exclude: ['vitepress'],
+      include: ['three'],
+    },
+    server: {
+      hmr: {
+        overlay: false,
+      },
+    },
     resolve: {
       alias: {
         '@tresjs/core': resolve(__dirname, '../../dist/tres.js'),
-        '/@': resolve(__dirname, '../../dist'),
+      },
+      dedupe: ['@tresjs/cientos', 'three'],
+    },
+  },
+  vue: {
+    template: {
+      compilerOptions: {
+        isCustomElement: tag => tag.startsWith('Tres') && tag !== 'TresCanvas',
       },
     },
   },

+ 1 - 1
docs/.vitepress/theme/components/DonutExample.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/tres'
+import { TresCanvas } from '@tresjs/core'
 import { BasicShadowMap, SRGBColorSpace, NoToneMapping } from 'three'
 
 import { OrbitControls } from '@tresjs/cientos'

+ 1 - 1
docs/.vitepress/theme/components/ExtendExample.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { useTres } from '/@/'
+import { useTres } from '@tresjs/core'
 
 const styles = {
   width: '100%',

+ 1 - 1
docs/.vitepress/theme/components/FirstScene.vue

@@ -2,7 +2,7 @@
 import { ref, onMounted } from 'vue'
 import { BasicShadowMap, SRGBColorSpace, NoToneMapping } from 'three'
 
-import { TresCanvas } from '/@/tres'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 const LightRef = ref()
 

+ 1 - 1
docs/.vitepress/theme/components/FirstSceneLightToon.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/tres'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 
 const styles = {

+ 16 - 0
docs/package.json

@@ -0,0 +1,16 @@
+{
+  "name": "docs",
+  "private": true,
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vitepress dev",
+    "build": "vitepress build",
+    "preview": "vitepress preview"
+  },
+  "devDependencies": {
+    "unocss": "^0.51.13",
+    "vite-svg-loader": "^4.0.0",
+    "vitepress": "1.0.0-alpha.75"
+  }
+}

+ 20 - 0
docs/tsconfig.json

@@ -0,0 +1,20 @@
+{
+  "compilerOptions": {
+    "module": "esnext",
+    "target": "esnext",
+    "lib": ["DOM", "ESNext"],
+    "strict": true,
+    "esModuleInterop": true,
+    "skipLibCheck": true,
+    "jsx": "preserve",
+    "noUnusedLocals": true,
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "forceConsistentCasingInFileNames": true,
+    "types": ["vite/client"]
+  },
+  "exclude": [
+    "dist",
+    "node_modules"
+  ]
+}

+ 7 - 0
docs/vite.config.ts

@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import Unocss from 'unocss/vite'
+import svgLoader from 'vite-svg-loader'
+
+export default defineConfig({
+  plugins: [svgLoader(), Unocss()],
+})

+ 4 - 7
package.json

@@ -10,22 +10,19 @@
   "exports": {
     ".": {
       "types": "./dist/index.d.ts",
-      "import": "./dist/index.js"
+      "import": "./dist/tres.js"
     },
     "./components": {
-      "types": "./dist/components/index.d.ts",
-      "import": "./dist/components/index.js"
+      "types": "./dist/components/index.d.ts"
     },
     "./composables": {
-      "types": "./dist/composables/index.d.ts",
-      "import": "./dist/composables/index.js"
+      "types": "./dist/composables/index.d.ts"
     },
     "./types": {
       "types": "./dist/types/index.d.ts"
     },
     "./utils": {
-      "types": "./dist/utils/index.d.ts",
-      "import": "./dist/utils/index.js"
+      "types": "./dist/utils/index.d.ts"
     },
     "./*": "./*"
   },

+ 2 - 1
playground/package.json

@@ -13,6 +13,7 @@
   },
   "devDependencies": {
     "unplugin-auto-import": "^0.16.0",
-    "vite-plugin-glsl": "^1.1.2"
+    "vite-plugin-glsl": "^1.1.2",
+    "vue-tsc": "^1.6.5"
   }
 }

+ 1 - 1
playground/src/components/AnimatedModel.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { Color, SRGBColorSpace } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls, useTweakPane, useGLTF, useAnimations } from '@tresjs/cientos'
 
 const bgColor = new Color('#F78B3D')

+ 1 - 1
playground/src/components/Cameras.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@'
+import { TresCanvas } from '@tresjs/core'
 import { BasicShadowMap, SRGBColorSpace, NoToneMapping, PerspectiveCamera, OrthographicCamera } from 'three'
 
 import { Box, useTweakPane } from '@tresjs/cientos'

+ 1 - 1
playground/src/components/FBXModels.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { Color, SRGBColorSpace } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls, useTweakPane, FBXModel, useFBX } from '@tresjs/cientos'
 
 const bgColor = new Color('#F78B3D')

+ 1 - 1
playground/src/components/MultipleCanvas.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { BasicShadowMap, NoToneMapping, SRGBColorSpace } from 'three'
-import { TresCanvas } from '/@/components/TresCanvas'
+import { TresCanvas } from '@tresjs/core'
 import { GLTFModel, OrbitControls } from '@tresjs/cientos'
 
 const state = reactive({

+ 1 - 2
playground/src/components/TestSphere.vue

@@ -1,7 +1,6 @@
 <!-- eslint-disable max-len -->
 <script setup lang="ts">
-import { useRenderLoop, useTexture } from '/@/'
-import { TresInstance } from '../types'
+import { type TresInstance, useRenderLoop, useTexture } from '@tresjs/core'
 
 const sphereRef: Ref<TresInstance | null> = ref(null)
 

+ 1 - 2
playground/src/components/Text3D.vue

@@ -1,8 +1,7 @@
 <script setup lang="ts">
 import { TextGeometry } from 'three/examples/jsm/geometries/TextGeometry'
 import { FontLoader } from 'three/examples/jsm/loaders/FontLoader'
-import { extend } from '../core/catalogue'
-import { useTexture } from '/@/composables'
+import { extend, useTexture } from '@tresjs/core'
 
 extend({ TextGeometry })
 

+ 1 - 2
playground/src/components/TheBasic.vue

@@ -1,9 +1,8 @@
 <script setup lang="ts">
 import { SRGBColorSpace, BasicShadowMap, NoToneMapping } from 'three'
 import { reactive, ref } from 'vue'
-import { TresCanvas } from '/@/components/TresCanvas'
+import { TresCanvas, useRenderLoop } from '@tresjs/core'
 import { OrbitControls, TransformControls } from '@tresjs/cientos'
-import { useRenderLoop } from '/@/'
 
 const state = reactive({
   clearColor: '#201919',

+ 1 - 1
playground/src/components/TheConditional.vue

@@ -2,7 +2,7 @@
 import { BasicShadowMap, MeshPhongMaterial, NoToneMapping, SRGBColorSpace } from 'three'
 import { reactive } from 'vue'
 import { OrbitControls, useTweakPane } from '@tresjs/cientos'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 
 const state = reactive({
   clearColor: '#201919',

+ 1 - 1
playground/src/components/TheEnvironment.vue

@@ -1,7 +1,7 @@
 <script setup lang="ts">
 import { ref, shallowRef, watch } from 'vue'
 import { Environment, Box, PamCameraMouse } from '@tresjs/cientos'
-import { TresCanvas } from '../core/useRenderer/component'
+import { TresCanvas } from '@tresjs/core'
 /* import { OrbitControls, GLTFModel } from '@tresjs/cientos' */
 
 const sphereRef = ref()

+ 1 - 1
playground/src/components/TheEvents.vue

@@ -2,7 +2,7 @@
 import { BasicShadowMap, NoToneMapping, SRGBColorSpace } from 'three'
 import { reactive } from 'vue'
 import { OrbitControls } from '@tresjs/cientos'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 
 const state = reactive({
   clearColor: '#201919',

+ 1 - 1
playground/src/components/TheFirstScene.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 </script>
 
 <template>

+ 1 - 1
playground/src/components/TheGizmos.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { BasicShadowMap, SRGBColorSpace, NoToneMapping } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls, TransformControls, useTweakPane } from '@tresjs/cientos'
 
 const state = shallowReactive({

+ 1 - 2
playground/src/components/TheGroups.vue

@@ -1,6 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/'
-import { useRenderLoop } from '/@/composables/useRenderLoop'
+import { TresCanvas, useRenderLoop } from '@tresjs/core'
 import { ref } from 'vue'
 import { OrbitControls } from '@tresjs/cientos/'
 

+ 8 - 8
playground/src/components/TheParticles.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { OrbitControls } from '@tresjs/cientos'
-import { TresCanvas, useRenderLoop } from '/@/'
+import { TresCanvas, useRenderLoop } from '@tresjs/core'
 import { AdditiveBlending } from 'three'
 
 /* import { OrbitControls, GLTFModel } from '@tresjs/cientos' */
@@ -70,12 +70,12 @@ onLoop(({ elapsed }) => {
 <template>
   <TresCanvas v-bind="gl">
     <TresPerspectiveCamera :position="[5, 5, 5]" :fov="45" :near="0.1" :far="1000" :look-at="[-8, 3, -3]" />
-      <OrbitControls />
-      <TresAmbientLight :intensity="0.5" />
-      <TresPoints>
-        <TresBufferGeometry :position="[positionArray, 3]" :a-scale="[scaleArray, 1]" />
-        <TresShaderMaterial v-bind="shader" />
-      </TresPoints>
-      <TresDirectionalLight :position="[0, 2, 4]" :intensity="1" cast-shadow />
+    <OrbitControls />
+    <TresAmbientLight :intensity="0.5" />
+    <TresPoints>
+      <TresBufferGeometry :position="[positionArray, 3]" :a-scale="[scaleArray, 1]" />
+      <TresShaderMaterial v-bind="shader" />
+    </TresPoints>
+    <TresDirectionalLight :position="[0, 2, 4]" :intensity="1" cast-shadow />
   </TresCanvas>
 </template>

+ 1 - 1
playground/src/components/TheSmallExperience.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos/'
 </script>
 <template>

+ 1 - 1
playground/src/components/TheSphere.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { useTres } from '/@/'
+import { useTres } from '@tresjs/core'
 import { watchEffect } from 'vue'
 
 const { state } = useTres()

+ 1 - 1
playground/src/components/VectorSetProps.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { SRGBColorSpace, BasicShadowMap, NoToneMapping } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 // import { useRenderLoop } from '..'
 /* import { OrbitControls, GLTFModel } from '@tresjs/cientos' */

+ 1 - 1
playground/src/components/gltf/index.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { SRGBColorSpace, BasicShadowMap, NoToneMapping } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 
 const state = reactive({

+ 1 - 1
playground/src/components/meshWobbleMaterial/index.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { useRenderLoop, extend } from '/@/'
+import { useRenderLoop, extend } from '@tresjs/core'
 
 import { WobbleMaterialImpl as MeshWobbleMaterial } from './material'
 import { shallowRef, watchEffect } from 'vue'

+ 1 - 1
playground/src/components/portal-journey/TheFireFlies.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { useRenderLoop } from '/@/'
+import { useRenderLoop } from '@tresjs/core'
 import { AdditiveBlending } from 'three'
 import FirefliesVertex from './shaders/fireflies/vertex.glsl'
 import FirefliesFragment from './shaders/fireflies/fragment.glsl'

+ 1 - 1
playground/src/components/portal-journey/ThePortal.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { SRGBColorSpace, DoubleSide, MeshBasicMaterial, ShaderMaterial, Color, Mesh } from 'three'
-import { useRenderLoop, useTexture } from '/@/'
+import { useRenderLoop, useTexture } from '@tresjs/core'
 import { useGLTF, useTweakPane } from '@tresjs/cientos'
 
 import PortalVertex from './shaders/portal/vertex.glsl'

+ 1 - 1
playground/src/components/portal-journey/index.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 import ThePortal from './ThePortal.vue'
 import TheFireFlies from './TheFireFlies.vue'

+ 1 - 1
playground/src/components/shaders-experiment/index.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { BasicShadowMap, SRGBColorSpace, NoToneMapping, Vector2 } from 'three'
-import { TresCanvas, TresInstance, useRenderLoop } from '/@/'
+import { TresCanvas, TresInstance, useRenderLoop } from '@tresjs/core'
 import { OrbitControls } from '@tresjs/cientos'
 import vertexShader from './shaders/vertex.glsl'
 import fragmentShader from './shaders/fragment.glsl'

+ 1 - 1
playground/src/pages/shapes.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { BasicShadowMap, CubicBezierCurve3, DoubleSide, NoToneMapping, SRGBColorSpace, Vector3 } from 'three'
-import { TresCanvas } from '/@/'
+import { TresCanvas } from '@tresjs/core'
 import {
   Plane,
   Tube,

+ 0 - 1
playground/vite.config.ts

@@ -34,7 +34,6 @@ export default defineConfig({
   resolve: {
     alias: {
       '@tresjs/core': resolve(__dirname, '../src/index.ts'),
-      '/@': resolve(__dirname, '../src'),
     },
     dedupe: ['three'],
   },

+ 103 - 218
pnpm-lock.yaml

@@ -129,6 +129,18 @@ importers:
         specifier: ^0.14.4
         version: 0.14.4(vue@3.3.4)
 
+  docs:
+    devDependencies:
+      unocss:
+        specifier: ^0.51.13
+        version: 0.51.13(postcss@8.4.23)(vite@4.3.7)
+      vite-svg-loader:
+        specifier: ^4.0.0
+        version: 4.0.0
+      vitepress:
+        specifier: 1.0.0-alpha.75
+        version: 1.0.0-alpha.75(@algolia/client-search@4.17.0)
+
   playground:
     dependencies:
       vue-router:
@@ -141,6 +153,9 @@ importers:
       vite-plugin-glsl:
         specifier: ^1.1.2
         version: 1.1.2(vite@4.3.7)
+      vue-tsc:
+        specifier: ^1.6.5
+        version: 1.6.5(typescript@5.0.4)
 
 packages:
 
@@ -427,15 +442,15 @@ packages:
     resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
     dev: true
 
-  /@docsearch/css@3.3.4:
-    resolution: {integrity: sha512-vDwCDoVXDgopw/hvr0zEADew2wWaGP8Qq0Bxhgii1Ewz2t4fQeyJwIRN/mWADeLFYPVkpz8TpEbxya/i6Tm0WA==}
+  /@docsearch/css@3.3.5:
+    resolution: {integrity: sha512-NaXVp3I8LdmJ54fn038KHgG7HmbIzZlKS2FkVf6mKcW5bYMJovkx4947joQyZk5yubxOZ+ddHSh79y39Aevufg==}
     dev: true
 
-  /@docsearch/js@3.3.4(@algolia/client-search@4.17.0):
-    resolution: {integrity: sha512-Xd2saBziXJ1UuVpcDz94zAFEFAM6ap993agh0za2e3LDZLhaW993b1f9gyUL4e1CZLsR076tztG2un2gVncvpA==}
+  /@docsearch/js@3.3.5(@algolia/client-search@4.17.0):
+    resolution: {integrity: sha512-nZi074OCryZnzva2LNcbQkwBJIND6cvuFI4s1FIe6Ygf6n9g6B/IYUULXNx05rpoCZ+KEoEt3taROpsHBliuSw==}
     dependencies:
-      '@docsearch/react': 3.3.4(@algolia/client-search@4.17.0)
-      preact: 10.13.2
+      '@docsearch/react': 3.3.5(@algolia/client-search@4.17.0)
+      preact: 10.14.1
     transitivePeerDependencies:
       - '@algolia/client-search'
       - '@types/react'
@@ -443,8 +458,8 @@ packages:
       - react-dom
     dev: true
 
-  /@docsearch/react@3.3.4(@algolia/client-search@4.17.0):
-    resolution: {integrity: sha512-aeOf1WC5zMzBEi2SI6WWznOmIo9rnpN4p7a3zHXxowVciqlI4HsZGtOR9nFOufLeolv7HibwLlaM0oyUqJxasw==}
+  /@docsearch/react@3.3.5(@algolia/client-search@4.17.0):
+    resolution: {integrity: sha512-Zuxf4z5PZ9eIQkVCNu76v1H+KAztKItNn3rLzZa7kpBS+++TgNARITnZeUS7C1DKoAhJZFr6T/H+Lvc6h/iiYg==}
     peerDependencies:
       '@types/react': '>= 16.8.0 < 19.0.0'
       react: '>= 16.8.0 < 19.0.0'
@@ -459,7 +474,7 @@ packages:
     dependencies:
       '@algolia/autocomplete-core': 1.8.2
       '@algolia/autocomplete-preset-algolia': 1.8.2(@algolia/client-search@4.17.0)(algoliasearch@4.17.0)
-      '@docsearch/css': 3.3.4
+      '@docsearch/css': 3.3.5
       algoliasearch: 4.17.0
     transitivePeerDependencies:
       - '@algolia/client-search'
@@ -1530,17 +1545,6 @@ packages:
       - rollup
     dev: true
 
-  /@vitejs/plugin-vue@4.2.3(vite@4.3.7)(vue@3.2.47):
-    resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
-    engines: {node: ^14.18.0 || >=16.0.0}
-    peerDependencies:
-      vite: ^4.0.0
-      vue: ^3.2.25
-    dependencies:
-      vite: 4.3.7(@types/node@20.2.0)
-      vue: 3.2.47
-    dev: true
-
   /@vitejs/plugin-vue@4.2.3(vite@4.3.7)(vue@3.3.4):
     resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
     engines: {node: ^14.18.0 || >=16.0.0}
@@ -1619,81 +1623,64 @@ packages:
       pretty-format: 27.5.1
     dev: true
 
-  /@vue/compiler-core@3.2.47:
-    resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
+  /@volar/language-core@1.4.1:
+    resolution: {integrity: sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==}
     dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/shared': 3.2.47
-      estree-walker: 2.0.2
-      source-map: 0.6.1
+      '@volar/source-map': 1.4.1
     dev: true
 
-  /@vue/compiler-core@3.3.2:
-    resolution: {integrity: sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==}
+  /@volar/source-map@1.4.1:
+    resolution: {integrity: sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==}
     dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/shared': 3.3.2
-      estree-walker: 2.0.2
-      source-map-js: 1.0.2
+      muggle-string: 0.2.2
     dev: true
 
-  /@vue/compiler-core@3.3.4:
-    resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
-    dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/shared': 3.3.4
-      estree-walker: 2.0.2
-      source-map-js: 1.0.2
-
-  /@vue/compiler-dom@3.2.47:
-    resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
-    dependencies:
-      '@vue/compiler-core': 3.2.47
-      '@vue/shared': 3.2.47
-    dev: true
-
-  /@vue/compiler-dom@3.3.2:
-    resolution: {integrity: sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==}
+  /@volar/typescript@1.4.1-patch.2(typescript@5.0.4):
+    resolution: {integrity: sha512-lPFYaGt8OdMEzNGJJChF40uYqMO4Z/7Q9fHPQC/NRVtht43KotSXLrkPandVVMf9aPbiJ059eAT+fwHGX16k4w==}
+    peerDependencies:
+      typescript: '*'
     dependencies:
-      '@vue/compiler-core': 3.3.2
-      '@vue/shared': 3.3.2
+      '@volar/language-core': 1.4.1
+      typescript: 5.0.4
     dev: true
 
-  /@vue/compiler-dom@3.3.4:
-    resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==}
+  /@volar/vue-language-core@1.6.5:
+    resolution: {integrity: sha512-IF2b6hW4QAxfsLd5mePmLgtkXzNi+YnH6ltCd80gb7+cbdpFMjM1I+w+nSg2kfBTyfu+W8useCZvW89kPTBpzg==}
     dependencies:
-      '@vue/compiler-core': 3.3.4
+      '@volar/language-core': 1.4.1
+      '@volar/source-map': 1.4.1
+      '@vue/compiler-dom': 3.3.4
+      '@vue/compiler-sfc': 3.3.4
+      '@vue/reactivity': 3.3.4
       '@vue/shared': 3.3.4
+      minimatch: 9.0.0
+      muggle-string: 0.2.2
+      vue-template-compiler: 2.7.14
+    dev: true
 
-  /@vue/compiler-sfc@3.2.47:
-    resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
+  /@volar/vue-typescript@1.6.5(typescript@5.0.4):
+    resolution: {integrity: sha512-er9rVClS4PHztMUmtPMDTl+7c7JyrxweKSAEe/o/Noeq2bQx6v3/jZHVHBe8ZNUti5ubJL/+Tg8L3bzmlalV8A==}
+    peerDependencies:
+      typescript: '*'
     dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/compiler-core': 3.2.47
-      '@vue/compiler-dom': 3.2.47
-      '@vue/compiler-ssr': 3.2.47
-      '@vue/reactivity-transform': 3.2.47
-      '@vue/shared': 3.2.47
-      estree-walker: 2.0.2
-      magic-string: 0.25.9
-      postcss: 8.4.23
-      source-map: 0.6.1
+      '@volar/typescript': 1.4.1-patch.2(typescript@5.0.4)
+      '@volar/vue-language-core': 1.6.5
+      typescript: 5.0.4
     dev: true
 
-  /@vue/compiler-sfc@3.3.2:
-    resolution: {integrity: sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==}
+  /@vue/compiler-core@3.3.4:
+    resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
     dependencies:
       '@babel/parser': 7.21.8
-      '@vue/compiler-core': 3.3.2
-      '@vue/compiler-dom': 3.3.2
-      '@vue/compiler-ssr': 3.3.2
-      '@vue/reactivity-transform': 3.3.2
-      '@vue/shared': 3.3.2
+      '@vue/shared': 3.3.4
       estree-walker: 2.0.2
-      magic-string: 0.30.0
-      postcss: 8.4.23
       source-map-js: 1.0.2
-    dev: true
+
+  /@vue/compiler-dom@3.3.4:
+    resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==}
+    dependencies:
+      '@vue/compiler-core': 3.3.4
+      '@vue/shared': 3.3.4
 
   /@vue/compiler-sfc@3.3.4:
     resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==}
@@ -1709,20 +1696,6 @@ packages:
       postcss: 8.4.23
       source-map-js: 1.0.2
 
-  /@vue/compiler-ssr@3.2.47:
-    resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
-    dependencies:
-      '@vue/compiler-dom': 3.2.47
-      '@vue/shared': 3.2.47
-    dev: true
-
-  /@vue/compiler-ssr@3.3.2:
-    resolution: {integrity: sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==}
-    dependencies:
-      '@vue/compiler-dom': 3.3.2
-      '@vue/shared': 3.3.2
-    dev: true
-
   /@vue/compiler-ssr@3.3.4:
     resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==}
     dependencies:
@@ -1732,26 +1705,6 @@ packages:
   /@vue/devtools-api@6.5.0:
     resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
 
-  /@vue/reactivity-transform@3.2.47:
-    resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
-    dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/compiler-core': 3.2.47
-      '@vue/shared': 3.2.47
-      estree-walker: 2.0.2
-      magic-string: 0.25.9
-    dev: true
-
-  /@vue/reactivity-transform@3.3.2:
-    resolution: {integrity: sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==}
-    dependencies:
-      '@babel/parser': 7.21.8
-      '@vue/compiler-core': 3.3.2
-      '@vue/shared': 3.3.2
-      estree-walker: 2.0.2
-      magic-string: 0.30.0
-    dev: true
-
   /@vue/reactivity-transform@3.3.4:
     resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==}
     dependencies:
@@ -1761,38 +1714,17 @@ packages:
       estree-walker: 2.0.2
       magic-string: 0.30.0
 
-  /@vue/reactivity@3.2.47:
-    resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
-    dependencies:
-      '@vue/shared': 3.2.47
-    dev: true
-
   /@vue/reactivity@3.3.4:
     resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==}
     dependencies:
       '@vue/shared': 3.3.4
 
-  /@vue/runtime-core@3.2.47:
-    resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==}
-    dependencies:
-      '@vue/reactivity': 3.2.47
-      '@vue/shared': 3.2.47
-    dev: true
-
   /@vue/runtime-core@3.3.4:
     resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==}
     dependencies:
       '@vue/reactivity': 3.3.4
       '@vue/shared': 3.3.4
 
-  /@vue/runtime-dom@3.2.47:
-    resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==}
-    dependencies:
-      '@vue/runtime-core': 3.2.47
-      '@vue/shared': 3.2.47
-      csstype: 2.6.21
-    dev: true
-
   /@vue/runtime-dom@3.3.4:
     resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==}
     dependencies:
@@ -1800,16 +1732,6 @@ packages:
       '@vue/shared': 3.3.4
       csstype: 3.1.2
 
-  /@vue/server-renderer@3.2.47(vue@3.2.47):
-    resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==}
-    peerDependencies:
-      vue: 3.2.47
-    dependencies:
-      '@vue/compiler-ssr': 3.2.47
-      '@vue/shared': 3.2.47
-      vue: 3.2.47
-    dev: true
-
   /@vue/server-renderer@3.3.4(vue@3.3.4):
     resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==}
     peerDependencies:
@@ -1819,14 +1741,6 @@ packages:
       '@vue/shared': 3.3.4
       vue: 3.3.4
 
-  /@vue/shared@3.2.47:
-    resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
-    dev: true
-
-  /@vue/shared@3.3.2:
-    resolution: {integrity: sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==}
-    dev: true
-
   /@vue/shared@3.3.4:
     resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
 
@@ -1842,18 +1756,6 @@ packages:
       '@vue/server-renderer': 3.3.4(vue@3.3.4)
     dev: true
 
-  /@vueuse/core@10.1.2(vue@3.2.47):
-    resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==}
-    dependencies:
-      '@types/web-bluetooth': 0.0.17
-      '@vueuse/metadata': 10.1.2
-      '@vueuse/shared': 10.1.2(vue@3.2.47)
-      vue-demi: 0.14.4(vue@3.2.47)
-    transitivePeerDependencies:
-      - '@vue/composition-api'
-      - vue
-    dev: true
-
   /@vueuse/core@10.1.2(vue@3.3.4):
     resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==}
     dependencies:
@@ -1868,15 +1770,6 @@ packages:
   /@vueuse/metadata@10.1.2:
     resolution: {integrity: sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==}
 
-  /@vueuse/shared@10.1.2(vue@3.2.47):
-    resolution: {integrity: sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==}
-    dependencies:
-      vue-demi: 0.14.4(vue@3.2.47)
-    transitivePeerDependencies:
-      - '@vue/composition-api'
-      - vue
-    dev: true
-
   /@vueuse/shared@10.1.2(vue@3.3.4):
     resolution: {integrity: sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==}
     dependencies:
@@ -2759,10 +2652,6 @@ packages:
       rrweb-cssom: 0.6.0
     dev: true
 
-  /csstype@2.6.21:
-    resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
-    dev: true
-
   /csstype@3.1.2:
     resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
 
@@ -2801,6 +2690,10 @@ packages:
     resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
     dev: true
 
+  /de-indent@1.0.2:
+    resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+    dev: true
+
   /debug@4.3.4:
     resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
     engines: {node: '>=6.0'}
@@ -3909,6 +3802,11 @@ packages:
       function-bind: 1.1.1
     dev: true
 
+  /he@1.2.0:
+    resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+    hasBin: true
+    dev: true
+
   /hosted-git-info@2.8.9:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     dev: true
@@ -4733,12 +4631,6 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dev: true
 
-  /magic-string@0.25.9:
-    resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
-    dependencies:
-      sourcemap-codec: 1.4.8
-    dev: true
-
   /magic-string@0.29.0:
     resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==}
     engines: {node: '>=12'}
@@ -4899,8 +4791,8 @@ packages:
     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
     dev: true
 
-  /minisearch@6.0.1:
-    resolution: {integrity: sha512-Ly1w0nHKnlhAAh6/BF/+9NgzXfoJxaJ8nhopFhQ3NcvFJrFIL+iCg9gw9e9UMBD+XIsp/RyznJ/o5UIe5Kw+kg==}
+  /minisearch@6.1.0:
+    resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==}
     dev: true
 
   /mkdirp@2.1.6:
@@ -4936,6 +4828,10 @@ packages:
     resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
     dev: true
 
+  /muggle-string@0.2.2:
+    resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==}
+    dev: true
+
   /mute-stream@1.0.0:
     resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
     engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -5439,8 +5335,8 @@ packages:
     resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==}
     dev: true
 
-  /preact@10.13.2:
-    resolution: {integrity: sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==}
+  /preact@10.14.1:
+    resolution: {integrity: sha512-4XDSnUisk3YFBb3p9WeKeH1mKoxdFUsaXcvxs9wlpYR1wax/TWJVqhwmIWbByX0h7jMEJH6Zc5J6jqc58FKaNQ==}
     dev: true
 
   /prelude-ls@1.1.2:
@@ -6054,11 +5950,6 @@ packages:
     engines: {node: '>= 8'}
     dev: true
 
-  /sourcemap-codec@1.4.8:
-    resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
-    deprecated: Please use @jridgewell/sourcemap-codec instead
-    dev: true
-
   /spdx-correct@3.2.0:
     resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
     dependencies:
@@ -6873,7 +6764,7 @@ packages:
   /vite-svg-loader@4.0.0:
     resolution: {integrity: sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA==}
     dependencies:
-      '@vue/compiler-sfc': 3.3.2
+      '@vue/compiler-sfc': 3.3.4
       svgo: 3.0.2
     dev: true
 
@@ -6914,17 +6805,17 @@ packages:
     resolution: {integrity: sha512-twpPZ/6UnDR8X0Nmj767KwKhXlTQQM9V/J1i2BP9ryO29/w4hpxBfEum6nvfpNhJ4H3h+cIhwzAK/e9crZ6HEQ==}
     hasBin: true
     dependencies:
-      '@docsearch/css': 3.3.4
-      '@docsearch/js': 3.3.4(@algolia/client-search@4.17.0)
-      '@vitejs/plugin-vue': 4.2.3(vite@4.3.7)(vue@3.2.47)
+      '@docsearch/css': 3.3.5
+      '@docsearch/js': 3.3.5(@algolia/client-search@4.17.0)
+      '@vitejs/plugin-vue': 4.2.3(vite@4.3.7)(vue@3.3.4)
       '@vue/devtools-api': 6.5.0
-      '@vueuse/core': 10.1.2(vue@3.2.47)
+      '@vueuse/core': 10.1.2(vue@3.3.4)
       body-scroll-lock: 4.0.0-beta.0
       mark.js: 8.11.1
-      minisearch: 6.0.1
+      minisearch: 6.1.0
       shiki: 0.14.2
       vite: 4.3.7(@types/node@20.2.0)
-      vue: 3.2.47
+      vue: 3.3.4
     transitivePeerDependencies:
       - '@algolia/client-search'
       - '@types/node'
@@ -7024,21 +6915,6 @@ packages:
     resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
     dev: true
 
-  /vue-demi@0.14.4(vue@3.2.47):
-    resolution: {integrity: sha512-YR9bCmtIYgsqNVRG3MLLWlhbZ9tTNMuWHPd7yx0pHS3NDX17MeVNHgKTOClYE8pBjsfNe4CMaReP7zQtHDIbiA==}
-    engines: {node: '>=12'}
-    hasBin: true
-    requiresBuild: true
-    peerDependencies:
-      '@vue/composition-api': ^1.0.0-rc.1
-      vue: ^3.0.0-0 || ^2.6.0
-    peerDependenciesMeta:
-      '@vue/composition-api':
-        optional: true
-    dependencies:
-      vue: 3.2.47
-    dev: true
-
   /vue-demi@0.14.4(vue@3.3.4):
     resolution: {integrity: sha512-YR9bCmtIYgsqNVRG3MLLWlhbZ9tTNMuWHPd7yx0pHS3NDX17MeVNHgKTOClYE8pBjsfNe4CMaReP7zQtHDIbiA==}
     engines: {node: '>=12'}
@@ -7080,14 +6956,23 @@ packages:
       vue: 3.3.4
     dev: false
 
-  /vue@3.2.47:
-    resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==}
+  /vue-template-compiler@2.7.14:
+    resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
     dependencies:
-      '@vue/compiler-dom': 3.2.47
-      '@vue/compiler-sfc': 3.2.47
-      '@vue/runtime-dom': 3.2.47
-      '@vue/server-renderer': 3.2.47(vue@3.2.47)
-      '@vue/shared': 3.2.47
+      de-indent: 1.0.2
+      he: 1.2.0
+    dev: true
+
+  /vue-tsc@1.6.5(typescript@5.0.4):
+    resolution: {integrity: sha512-Wtw3J7CC+JM2OR56huRd5iKlvFWpvDiU+fO1+rqyu4V2nMTotShz4zbOZpW5g9fUOcjnyZYfBo5q5q+D/q27JA==}
+    hasBin: true
+    peerDependencies:
+      typescript: '*'
+    dependencies:
+      '@volar/vue-language-core': 1.6.5
+      '@volar/vue-typescript': 1.6.5(typescript@5.0.4)
+      semver: 7.5.1
+      typescript: 5.0.4
     dev: true
 
   /vue@3.3.4:

+ 1 - 0
pnpm-workspace.yaml

@@ -1,2 +1,3 @@
 packages:
+  - docs
   - playground

+ 2 - 2
src/components/TresCanvas.ts

@@ -1,8 +1,8 @@
 import { TresScene } from './TresScene'
 import { defineComponent, h } from 'vue'
 import { ColorSpace, ShadowMapType, ToneMapping } from 'three'
-import { CameraType, useTresProvider } from '/@/composables'
-import { RendererPresetsType } from '/@/composables/useRenderer/const'
+import { CameraType, useTresProvider } from '../composables'
+import { RendererPresetsType } from '../composables/useRenderer/const'
 import { Component } from 'vue'
 
 export interface TresCanvasProps {

+ 13 - 5
src/components/TresScene.ts

@@ -1,11 +1,19 @@
 import { App, defineComponent, h, onMounted, onUnmounted, ref, watch, watchEffect } from 'vue'
 import * as THREE from 'three'
 import { ColorSpace, ShadowMapType, ToneMapping } from 'three'
-import { createTres } from '/@/core/renderer'
-import { CameraType, TRES_CONTEXT_KEY, useLogger } from '/@/composables'
-import { useCamera, useRenderer, useRenderLoop, useRaycaster, useTres } from '/@/composables'
-import { extend } from '/@/core/catalogue'
-import { RendererPresetsType } from '/@/composables/useRenderer/const'
+import { createTres } from '../core/renderer'
+import {
+  CameraType,
+  TRES_CONTEXT_KEY,
+  useLogger,
+  useCamera,
+  useRenderer,
+  useRenderLoop,
+  useRaycaster,
+  useTres,
+} from '../composables'
+import { extend } from '../core/catalogue'
+import { type RendererPresetsType } from '../composables/useRenderer/const'
 import { TresEvent, TresObject } from '../types'
 import { useEventListener } from '@vueuse/core'
 import { isString } from '@alvarosabu/utils'

+ 1 - 1
src/composables/useCamera/index.ts

@@ -1,4 +1,4 @@
-import { useTres } from '/@/composables/'
+import { useTres } from '../useTres'
 import { PerspectiveCamera, OrthographicCamera } from 'three'
 
 import { toRef, Ref, watchEffect } from 'vue'

+ 1 - 1
src/composables/useCamera/useCamera.test.ts

@@ -1,7 +1,7 @@
 import { computed } from 'vue'
 import { OrthographicCamera, PerspectiveCamera } from 'three'
 import { describe, test, expect, vi, afterEach } from 'vitest'
-import { withSetup } from '/@/utils/test-utils'
+import { withSetup } from '../../utils/test-utils'
 import { CameraType, useCamera } from '.'
 import { useTresProvider } from '../useTres'
 

+ 1 - 1
src/composables/useLoader/index.ts

@@ -1,6 +1,6 @@
 import { isArray } from '@alvarosabu/utils'
 import { Object3D } from 'three'
-import { useLogger } from '/@/composables'
+import { useLogger } from '../useLogger'
 
 export interface TresLoader<T> extends THREE.Loader {
   load(

+ 1 - 1
src/composables/useLoader/useLoader.test.ts

@@ -1,4 +1,4 @@
-import { useLoader } from './'
+import { useLoader } from '.'
 import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
 
 describe('useLoader', () => {

+ 1 - 1
src/composables/useRaycaster/index.ts

@@ -1,4 +1,4 @@
-import { useTres } from '/@/composables'
+import { useTres } from '../useTres'
 import { Raycaster, Vector2 } from 'three'
 import { onUnmounted, Ref, ref, ShallowRef, shallowRef } from 'vue'
 

+ 1 - 1
src/composables/useRaycaster/useRaycaster.test.ts

@@ -1,6 +1,6 @@
 import { Raycaster, Vector2 } from 'three'
 /* import { useRaycaster } from '.' */
-import { withSetup } from '/@/utils/test-utils'
+import { withSetup } from '../../utils/test-utils'
 
 /* const [composable, app] = withSetup(() => useRaycaster()) */
 

+ 6 - 5
src/composables/useRenderer/index.ts

@@ -19,12 +19,13 @@ import {
   ColorSpace,
 } from 'three'
 import type { ToneMapping } from 'three'
-import { useRenderLoop, useTres } from '/@/composables/'
-import { normalizeColor } from '/@/utils/normalize'
-import { TresColor } from '/@/types'
+import { useRenderLoop } from '../useRenderLoop'
+import { useTres } from '../useTres'
+import { normalizeColor } from '../../utils/normalize'
+import { TresColor } from '../../types'
 import { rendererPresets, RendererPresetsType } from './const'
-import { merge } from '/@/utils'
-import { useLogger } from '/@/composables'
+import { merge } from '../../utils'
+import { useLogger } from '../useLogger'
 
 export interface UseRendererOptions extends WebGLRendererParameters {
   /**

+ 1 - 1
src/composables/useSeek/index.ts

@@ -1,4 +1,4 @@
-import { useLogger } from '/@/composables'
+import { useLogger } from '../useLogger'
 
 /**
  * Seek composable return type

+ 1 - 1
src/composables/useSeek/useSeek.test.ts

@@ -1,6 +1,6 @@
 import { Object3D } from 'three'
 import { useSeek } from '.'
-import { withSetup } from '/@/utils/test-utils'
+import { withSetup } from '../../utils/test-utils'
 
 const [composable, app] = withSetup(() => useSeek())
 

+ 1 - 1
src/composables/useTres/index.ts

@@ -1,7 +1,7 @@
 import { Clock, EventDispatcher, Raycaster, Scene, Vector2, WebGLRenderer } from 'three'
 import { generateUUID } from 'three/src/math/MathUtils'
 import { computed, ComputedRef, inject, provide, shallowReactive, toRefs } from 'vue'
-import { Camera } from '/@/composables'
+import { Camera } from '../useCamera'
 
 export interface TresState {
   /**

+ 2 - 2
src/composables/useTres/useTres.test.ts

@@ -1,6 +1,6 @@
-import { useTresProvider } from '/@/composables'
+import { useTresProvider } from '.'
 import { useTres } from '.'
-import { withSetup } from '/@/utils/test-utils'
+import { withSetup } from '../../utils/test-utils'
 
 describe.skip('useTres', () => {
   it('should set the state', () => {

+ 1 - 1
src/core/nodeOps.ts

@@ -1,6 +1,6 @@
 import { RendererOptions } from 'vue'
 import { BufferAttribute, BufferGeometry, Material, Object3D } from 'three'
-import { useCamera, useLogger } from '/@/composables'
+import { useCamera, useLogger } from '../composables'
 import { isFunction } from '@alvarosabu/utils'
 import { catalogue } from './catalogue'
 import { TresInstance, TresObject } from '../types'

+ 5 - 5
src/index.ts

@@ -1,9 +1,9 @@
 import { App } from 'vue'
-import { TresCanvas } from '/@/components/TresCanvas'
-export * from '/@/composables'
-export * from '/@/core/catalogue'
-export * from '/@/components'
-export * from '/@/types'
+import { TresCanvas } from './components/TresCanvas'
+export * from './composables'
+export * from './core/catalogue'
+export * from './components'
+export * from './types'
 
 export interface TresOptions {
   extends?: Record<string, unknown>

+ 1 - 4
tsconfig.json

@@ -16,10 +16,7 @@
     "noUnusedLocals": true,
     "strictNullChecks": true,
     "forceConsistentCasingInFileNames": true,
-    "declaration": true,
-    "paths": {
-      "/@/*": ["src/*"]
-    }
+    "declaration": true
   },
   "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
   "exclude": ["node_modules", "src/**/*.cy.ts", "src/**/*.test.ts"],

+ 0 - 3
tsconfig.node.json

@@ -5,9 +5,6 @@
     "module": "ESNext",
     "moduleResolution": "Node",
     "allowSyntheticDefaultImports": true,
-    "paths": {
-      "/@/*": ["src/*"]
-    },
     "types": ["vitest/globals"]
   },
   "include": ["../../vite.config.ts", "src/**/*.test.ts"]

+ 1 - 8
vite.config.ts

@@ -8,11 +8,10 @@ import banner from 'vite-plugin-banner'
 import Inspect from 'vite-plugin-inspect'
 import dts from 'vite-plugin-dts'
 
-
 import copy from 'rollup-plugin-copy'
 
 /* import analyze from 'rollup-plugin-analyzer'
- *//* import { visualizer } from 'rollup-plugin-visualizer' */
+ */ /* import { visualizer } from 'rollup-plugin-visualizer' */
 import { resolve, join } from 'pathe'
 
 import { lightGreen, yellow, gray, bold } from 'kolorist'
@@ -28,9 +27,6 @@ export default defineConfig({
     port: 5174,
   },
   resolve: {
-    alias: {
-      '/@': resolve(__dirname, './src'),
-    },
     dedupe: ['@tresjs/cientos'],
   },
   plugins: [
@@ -66,9 +62,6 @@ export default defineConfig({
     environment: 'jsdom',
     globals: true,
     threads: false,
-    alias: {
-      '/@': resolve(__dirname, './src'),
-    },
   },
   build: {
     lib: {