فهرست منبع

test(其它变更): 调整playground

gemercheung 2 سال پیش
والد
کامیت
ca35d41db7

+ 4 - 0
docs/.vitepress/i18n/pages/component.json

@@ -27,6 +27,10 @@
         {
           "link": "/tag",
           "text": "tag热点"
+        },
+        {
+          "link": "/daikan",
+          "text": "daikan带看"
         }
       ]
     }

+ 1 - 1
docs/.vitepress/vitepress/components/demo/vp-example.vue

@@ -3,7 +3,7 @@ import { computed, unref, watchEffect } from 'vue'
 import { File, Repl, ReplStore } from '@vue/repl'
 import mainCode from './main.vue?raw'
 import deptCode from './dept.js?raw'
-import { loadKanKanThemeChalkStyle } from './dept-home'
+// import { loadSDK, loadSDKDep } from './dept-home'
 import type { SFCOptions } from '@vue/repl'
 
 const sfcOptions: SFCOptions = {

+ 54 - 0
docs/examples/daikan/leader.vue

@@ -0,0 +1,54 @@
+<script setup lang="ts">
+import { onMounted, onUnmounted, provide, ref } from 'vue'
+import { KkDaikan } from 'kankan-components'
+const loading = ref(false)
+
+onMounted(() => {
+  const __win = window as any
+  if (!__win.__sdk) {
+    const __sdk = (__win.__sdk = new __win.KanKan({
+      num: 'KJ-t-wOXfx2SDFy',
+      server: '#DEMOSEVER#',
+    }))
+    provide('__sdk', __sdk)
+    debugger
+    __sdk.TagManager.on('ready', () => (loading.value = true))
+    __sdk.mount('#scene').render()
+  }
+})
+onUnmounted(() => {
+  const __win = window as any
+  if (__win.__sdk) {
+    __win.__sdk = null
+  }
+})
+const handleTagview = ({ id }) => {
+  console.log('id', id)
+}
+</script>
+
+<template>
+  <div id="scene" class="scene">
+    <Teleport v-if="loading" to=".kankan-plugins">
+      <!-- <div xui_daikan_view>
+        <kk-daikan />
+      </div> -->
+    </Teleport>
+  </div>
+</template>
+<style>
+html,
+body,
+#app {
+  width: 100%;
+  height: 100%;
+  padding: 0;
+  margin: 0;
+}
+.scene {
+  width: 100%;
+  height: 100%;
+  padding: 0;
+  margin: 0;
+}
+</style>

+ 37 - 0
docs/zh-CN/component/daikan.md

@@ -0,0 +1,37 @@
+---
+title: Daikan带看
+lang: zh-CN
+---
+
+# Daikan 带看
+
+## Daikan 属性
+
+| 名称    | 描述         | 类型     | 默认     |
+| ------- | ------------ | -------- | -------- |
+| `tag`   | 热点 Object  | `Object` | tag 类型 |
+| `image` | 热点图标背景 | `string` | 图像地址 |
+
+## Daikan Slots
+
+| 名称      | 描述    |
+| --------- | ------- |
+| `default` | slot Id |
+
+Tags 热点使用如下。
+
+## 带看人
+
+:::repl
+
+daikan/leader
+
+:::
+
+<!-- ## 自定义 UI 模版
+
+:::repl
+
+tag/custom
+
+::: -->

+ 7 - 0
packages/components/advance/daikan/index.ts

@@ -0,0 +1,7 @@
+import { withInstall } from '@kankan-components/utils'
+import daikan from './src/daikan.vue'
+
+export const KkDaikan = withInstall(daikan)
+
+export default KkDaikan
+export * from './src/daikan'

+ 25 - 0
packages/components/advance/daikan/src/daikan.ts

@@ -0,0 +1,25 @@
+import { buildProps } from '@kankan-components/utils'
+import type { ExtractPropTypes, PropType } from 'vue'
+
+export type DaikanUserInfoType = {
+  userId: string
+  roomId: string
+  nickName: string
+  avatar: string
+}
+
+export const daikanProps = buildProps({
+  socketLib: {
+    type: String,
+    required: true,
+  },
+  socketUrl: {
+    type: String,
+    required: true,
+  },
+  userInfo: {
+    type: Object as PropType<DaikanUserInfoType>,
+    required: true,
+  },
+} as const)
+export type DaikanProps = ExtractPropTypes<typeof daikanProps>

+ 14 - 0
packages/components/advance/daikan/src/daikan.vue

@@ -0,0 +1,14 @@
+<template>
+  <div :class="[ns.b()]"><slot /></div>
+</template>
+
+<script lang="ts" setup>
+import { useNamespace } from '@kankan-components/hooks'
+import { daikanProps } from './daikan'
+
+const ns = useNamespace('daikan')
+defineOptions({
+  name: 'KkDaikan',
+})
+defineProps(daikanProps)
+</script>

+ 1 - 0
packages/components/advance/index.ts

@@ -1 +1,2 @@
 export * from './tag'
+export * from './daikan'

+ 9 - 2
packages/kankan-components/component.ts

@@ -4,7 +4,14 @@ import { KkAudio } from '@kankan-components/components/basic/audio'
 import { KkDialog } from '@kankan-components/components/basic/dialog'
 
 import { KkTag } from '@kankan-components/components/advance/tag'
-
+import { KkDaikan } from '@kankan-components/components/advance/daikan'
 import type { Plugin } from 'vue'
 
-export default [KkIcon, KkButton, KkAudio, KkDialog, KkTag] as Plugin[]
+export default [
+  KkIcon,
+  KkButton,
+  KkAudio,
+  KkDialog,
+  KkTag,
+  KkDaikan,
+] as Plugin[]

+ 26 - 21
playground/package.json

@@ -1,23 +1,28 @@
 {
-    "name": "playground",
-    "private": true,
-    "version": "0.0.0",
-    "type": "module",
-    "scripts": {
-        "dev": "vite",
-        "build": "vue-tsc --noEmit && vite build",
-        "preview": "vite preview"
-    },
-    "dependencies": {
-        "@kankan-components/components": "workspace:*",
-        "@kankan-components/utils": "workspace:*",
-        "vue": "^3.2.37",
-        "vue-router": "^4.0.16"
-    },
-    "devDependencies": {
-        "@vitejs/plugin-vue": "^3.1.0",
-        "typescript": "^4.6.4",
-        "vite": "^3.1.0",
-        "vue-tsc": "^1.0.5"
-    }
+  "name": "playground",
+  "private": true,
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite dev .",
+    "build": "vue-tsc --noEmit && vite build",
+    "preview": "vite preview"
+  },
+  "dependencies": {
+    "@kankan-components/components": "workspace:*",
+    "@kankan-components/utils": "workspace:*",
+    "@kankan-components/build-utils": "workspace:*",
+    "@element-plus/icons-vue": "^2.0.6",
+    "vue": "^3.2.37",
+    "vue-router": "^4.0.16"
+  },
+  "devDependencies": {
+    "@vitejs/plugin-vue": "^3.1.0",
+    "typescript": "^4.6.4",
+    "vite": "^3.1.0",
+    "vue-tsc": "^1.0.5",
+    "unplugin-vue-components": "0.21.2",
+    "vite-plugin-inspect": "^0.5.0",
+    "vite-plugin-mkcert": "^1.7.2"
+  }
 }

+ 50 - 0
playground/src/pages/daikan.vue

@@ -0,0 +1,50 @@
+<script setup lang="ts">
+import { onMounted, inject, ref } from 'vue'
+import { KkDaikan } from '@kankan-components/components'
+import type { DaikanUserInfoType } from '@kankan-components/components'
+import '@kankan-components/theme-chalk/src/tag.scss'
+const __sdk: any = inject('__sdk')
+
+const tags = ref<any>([])
+const socketUrl = ref('wss://testws.4dkankan.com')
+
+const userInfo = ref<DaikanUserInfoType>({
+  userId: 'test-user-1',
+  roomId: 'test-roomid-1',
+  avatar: '',
+  nickName: '',
+})
+
+onMounted(async () => {
+  __sdk.TagManager.on('loaded', (data: any) =>
+    __sdk.TagManager.load((tags.value = data) && tags.value)
+  )
+  __sdk.mount('#scene').render()
+})
+
+const handleTagview = (data: any) => {
+  console.log('tag', data)
+}
+</script>
+
+<template>
+  <div id="scene">
+    <Teleport v-if="tags.length" to=".kankan-plugins">
+      <div xui_daikan_view>
+        <KkDaikan
+          :socket-lib="xxx"
+          :user-info="userInfo"
+          :socket-url="socketUrl"
+        >
+        </KkDaikan>
+      </div>
+    </Teleport>
+  </div>
+</template>
+
+<style scoped>
+#scene {
+  width: 100vw;
+  height: 100vh;
+}
+</style>

+ 4 - 0
playground/src/router.ts

@@ -12,6 +12,10 @@ export default createRouter({
             path: '/tag',
             component: () => import('./pages/tag.vue'),
         },
+        {
+            path: '/daikan',
+            component: () => import('./pages/daikan.vue'),
+        },
 
     ],
 })

+ 46 - 22
playground/vite.config.ts

@@ -1,28 +1,52 @@
-import { defineConfig } from 'vite'
+import path from 'path'
+import { defineConfig, loadEnv } from 'vite'
 import vue from '@vitejs/plugin-vue'
 import vueJsx from '@vitejs/plugin-vue-jsx'
 import VueMacros from 'unplugin-vue-macros/vite'
-// https://vitejs.dev/config/
-export default defineConfig({
-    server: {
-        port: 6868,
-        proxy: {
-            '/demoServer': {
-                target: 'https://test.4dkankan.com',
-                changeOrigin: true,
-                rewrite: (path) => path.replace(/^\/demoServer/, ''),
+import glob from 'fast-glob'
+// import {
+//     epPackage,
+//     epRoot,
+//     getPackageDependencies,
+//     pkgRoot,
+//     projRoot,
+// } from '@kankan-components/build-utils'
+
+export default defineConfig(async ({ mode }) => {
+    const env = loadEnv(mode, process.cwd(), '')
+    // let { dependencies } = getPackageDependencies(epPackage)
+    // dependencies = dependencies.filter((dep) => !dep.startsWith('@types/')) // exclude dts deps
+    // const optimizeDeps = (
+    //     await glob(['dayjs/(locale|plugin)/*.js'], {
+    //         cwd: path.resolve(projRoot, 'node_modules'),
+    //     })
+    // ).map((dep) => dep.replace(/\.js$/, ''))
+    return {
+        server: {
+            host: true,
+            https: !!env.HTTPS,
+            port: 6868,
+            proxy: {
+                '/demoServer': {
+                    target: 'https://test.4dkankan.com',
+                    changeOrigin: true,
+                    rewrite: (path) => path.replace(/^\/demoServer/, ''),
+                },
             },
         },
-    },
-    plugins: [
-        //@ts-ignore
-        VueMacros({
-            setupComponent: false,
-            setupSFC: false,
-            plugins: {
-                vue: vue(),
-                vueJsx: vueJsx(),
-            },
-        }),
-    ],
+        plugins: [
+            //@ts-ignore
+            VueMacros({
+                setupComponent: false,
+                setupSFC: false,
+                plugins: {
+                    vue: vue(),
+                    vueJsx: vueJsx(),
+                },
+            }),
+        ],
+        optimizeDeps: {
+            include: ['vue', '@vue/shared'],
+        },
+    }
 })

+ 288 - 88
pnpm-lock.yaml

@@ -428,17 +428,43 @@ importers:
     devDependencies:
       '@vue/shared': 3.2.39
 
+  play:
+    specifiers:
+      '@element-plus/icons-vue': ^2.0.6
+      '@vitejs/plugin-vue': ^2.3.3
+      unplugin-vue-components: 0.21.2
+      vite: ^2.9.15
+      vite-plugin-inspect: ^0.5.0
+      vite-plugin-mkcert: ^1.7.2
+      vue: ^3.2.37
+    dependencies:
+      '@element-plus/icons-vue': 2.0.10_vue@3.2.47
+      vue: 3.2.47
+    devDependencies:
+      '@vitejs/plugin-vue': 2.3.4_vite@2.9.15+vue@3.2.47
+      unplugin-vue-components: 0.21.2_vite@2.9.15+vue@3.2.47
+      vite: 2.9.15
+      vite-plugin-inspect: 0.5.1_vite@2.9.15
+      vite-plugin-mkcert: 1.10.1_vite@2.9.15
+
   playground:
     specifiers:
+      '@element-plus/icons-vue': ^2.0.6
+      '@kankan-components/build-utils': workspace:*
       '@kankan-components/components': workspace:*
       '@kankan-components/utils': workspace:*
       '@vitejs/plugin-vue': ^3.1.0
       typescript: ^4.6.4
+      unplugin-vue-components: 0.21.2
       vite: ^3.1.0
+      vite-plugin-inspect: ^0.5.0
+      vite-plugin-mkcert: ^1.7.2
       vue: ^3.2.37
       vue-router: ^4.0.16
       vue-tsc: ^1.0.5
     dependencies:
+      '@element-plus/icons-vue': 2.0.10_vue@3.2.39
+      '@kankan-components/build-utils': link:../internal/build-utils
       '@kankan-components/components': link:../packages/components
       '@kankan-components/utils': link:../packages/utils
       vue: 3.2.39
@@ -446,7 +472,10 @@ importers:
     devDependencies:
       '@vitejs/plugin-vue': 3.1.0_vite@3.1.3+vue@3.2.39
       typescript: 4.7.4
+      unplugin-vue-components: 0.21.2_vite@3.1.3+vue@3.2.39
       vite: 3.1.3
+      vite-plugin-inspect: 0.5.1_vite@3.1.3
+      vite-plugin-mkcert: 1.10.1_vite@3.1.3
       vue-tsc: 1.0.7_typescript@4.7.4
 
 packages:
@@ -644,7 +673,7 @@ packages:
     resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
       '@jridgewell/gen-mapping': 0.3.2
       jsesc: 2.5.2
 
@@ -788,7 +817,7 @@ packages:
     resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
 
   /@babel/helper-member-expression-to-functions/7.20.7:
     resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
@@ -814,7 +843,7 @@ packages:
       '@babel/helper-validator-identifier': 7.19.1
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
     transitivePeerDependencies:
       - supports-color
 
@@ -872,7 +901,7 @@ packages:
       '@babel/helper-member-expression-to-functions': 7.18.9
       '@babel/helper-optimise-call-expression': 7.18.6
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
     transitivePeerDependencies:
       - supports-color
 
@@ -894,7 +923,7 @@ packages:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
 
   /@babel/helper-simple-access/7.20.2:
     resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
@@ -946,7 +975,7 @@ packages:
     dependencies:
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
     transitivePeerDependencies:
       - supports-color
 
@@ -974,7 +1003,7 @@ packages:
     engines: {node: '>=6.0.0'}
     hasBin: true
     dependencies:
-      '@babel/types': 7.19.4
+      '@babel/types': 7.20.7
 
   /@babel/parser/7.20.15:
     resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
@@ -1898,8 +1927,8 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/code-frame': 7.18.6
-      '@babel/parser': 7.19.1
-      '@babel/types': 7.19.4
+      '@babel/parser': 7.20.15
+      '@babel/types': 7.20.7
 
   /@babel/template/7.20.7:
     resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
@@ -1919,8 +1948,8 @@ packages:
       '@babel/helper-function-name': 7.19.0
       '@babel/helper-hoist-variables': 7.18.6
       '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/parser': 7.19.1
-      '@babel/types': 7.19.4
+      '@babel/parser': 7.20.15
+      '@babel/types': 7.20.7
       debug: 4.3.4
       globals: 11.12.0
     transitivePeerDependencies:
@@ -2382,6 +2411,14 @@ packages:
       vue: 3.2.39
     dev: false
 
+  /@element-plus/icons-vue/2.0.10_vue@3.2.47:
+    resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==}
+    peerDependencies:
+      vue: ^3.2.0
+    dependencies:
+      vue: 3.2.47
+    dev: false
+
   /@esbuild-kit/cjs-loader/2.4.0:
     resolution: {integrity: sha512-DBBCiHPgL2B/elUpvCDhNHXnlZQ9sfO2uyt1OJyAXKT41beQEFY4OxZ6gwS+ZesRCbZ6JV8M7GEyOPkjv8kdIw==}
     dependencies:
@@ -2538,7 +2575,7 @@ packages:
       '@iconify/types': 1.1.0
       debug: 4.3.4
       kolorist: 1.6.0
-      local-pkg: 0.4.2
+      local-pkg: 0.4.3
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -4292,7 +4329,7 @@ packages:
     resolution: {integrity: sha512-fEJ6j7Cu8yiWjA4UmybOBH9Efgb/64ZTWuvCF4KysGu4xz8ettfyaqFt8WZ1btCxXsGZJjZ2/3svOF6rL+UFdQ==}
     dependencies:
       fast-glob: 3.2.12
-      minimatch: 5.1.0
+      minimatch: 5.1.6
       mkdirp: 1.0.4
       path-browserify: 1.0.1
     dev: false
@@ -5211,6 +5248,17 @@ packages:
       vite: 2.9.15
       vue: 3.2.39
 
+  /@vitejs/plugin-vue/2.3.4_vite@2.9.15+vue@3.2.47:
+    resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==}
+    engines: {node: '>=12.0.0'}
+    peerDependencies:
+      vite: ^2.5.10
+      vue: ^3.2.25
+    dependencies:
+      vite: 2.9.15
+      vue: 3.2.47
+    dev: true
+
   /@vitejs/plugin-vue/3.1.0_vite@3.1.3+vue@3.2.39:
     resolution: {integrity: sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==}
     engines: {node: ^14.18.0 || >=16.0.0}
@@ -5237,7 +5285,7 @@ packages:
     resolution: {integrity: sha512-T3iJ7Ej5Ywrsn1nEfvOQ98LdFZu3TtoXD8UELHto/u5QyQk4U2GfPl+0ZjuS39ZPocU9l/5CMhrxHsgv/hFWVA==}
     dependencies:
       '@volar/source-map': 1.0.7
-      '@vue/reactivity': 3.2.40
+      '@vue/reactivity': 3.2.47
       muggle-string: 0.1.0
     dev: true
 
@@ -5258,11 +5306,11 @@ packages:
     dependencies:
       '@volar/language-core': 1.0.7
       '@volar/source-map': 1.0.7
-      '@vue/compiler-dom': 3.2.40
-      '@vue/compiler-sfc': 3.2.40
-      '@vue/reactivity': 3.2.40
-      '@vue/shared': 3.2.40
-      minimatch: 5.1.0
+      '@vue/compiler-dom': 3.2.47
+      '@vue/compiler-sfc': 3.2.47
+      '@vue/reactivity': 3.2.47
+      '@vue/shared': 3.2.47
+      minimatch: 5.1.6
       vue-template-compiler: 2.7.12
     dev: true
 
@@ -5281,23 +5329,44 @@ packages:
       '@vue/compiler-sfc': 3.2.47
       magic-string: 0.26.7
 
-  /@vue-macros/define-model/0.11.2:
+  /@vue-macros/define-model/0.11.2_rollup@2.79.1+vite@2.9.15:
     resolution: {integrity: sha512-XYH1zFBWNBjJUTzVuwgGo0Yx4cCtUEDvLMcu6TKVeqq9wrcleof4pwikOc7XrLDNqN5AxPzGFQ7wPl0iUDfb7Q==}
     engines: {node: '>=14.19.0'}
     dependencies:
       '@rollup/pluginutils': 4.2.1
       '@vue-macros/common': 0.11.2
       ast-walker-scope: 0.2.3
-      unplugin: 0.9.6
+      unplugin: 0.9.5_rollup@2.79.1+vite@2.9.15
+    transitivePeerDependencies:
+      - esbuild
+      - rollup
+      - vite
+      - webpack
+    dev: true
 
-  /@vue-macros/define-model/0.11.2_rollup@2.79.1+vite@2.9.15:
+  /@vue-macros/define-model/0.11.2_temr4a75fo74qf6q7dadyncfje:
     resolution: {integrity: sha512-XYH1zFBWNBjJUTzVuwgGo0Yx4cCtUEDvLMcu6TKVeqq9wrcleof4pwikOc7XrLDNqN5AxPzGFQ7wPl0iUDfb7Q==}
     engines: {node: '>=14.19.0'}
     dependencies:
       '@rollup/pluginutils': 4.2.1
       '@vue-macros/common': 0.11.2
       ast-walker-scope: 0.2.3
-      unplugin: 0.9.5_rollup@2.79.1+vite@2.9.15
+      unplugin: 0.9.5_temr4a75fo74qf6q7dadyncfje
+    transitivePeerDependencies:
+      - esbuild
+      - rollup
+      - vite
+      - webpack
+    dev: false
+
+  /@vue-macros/define-model/0.11.2_vite@3.2.5:
+    resolution: {integrity: sha512-XYH1zFBWNBjJUTzVuwgGo0Yx4cCtUEDvLMcu6TKVeqq9wrcleof4pwikOc7XrLDNqN5AxPzGFQ7wPl0iUDfb7Q==}
+    engines: {node: '>=14.19.0'}
+    dependencies:
+      '@rollup/pluginutils': 4.2.1
+      '@vue-macros/common': 0.11.2
+      ast-walker-scope: 0.2.3
+      unplugin: 0.9.5_vite@3.2.5
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -5376,20 +5445,11 @@ packages:
   /@vue/compiler-core/3.2.39:
     resolution: {integrity: sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.20.15
       '@vue/shared': 3.2.39
       estree-walker: 2.0.2
       source-map: 0.6.1
 
-  /@vue/compiler-core/3.2.40:
-    resolution: {integrity: sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==}
-    dependencies:
-      '@babel/parser': 7.19.1
-      '@vue/shared': 3.2.40
-      estree-walker: 2.0.2
-      source-map: 0.6.1
-    dev: true
-
   /@vue/compiler-core/3.2.47:
     resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
     dependencies:
@@ -5404,13 +5464,6 @@ packages:
       '@vue/compiler-core': 3.2.39
       '@vue/shared': 3.2.39
 
-  /@vue/compiler-dom/3.2.40:
-    resolution: {integrity: sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==}
-    dependencies:
-      '@vue/compiler-core': 3.2.40
-      '@vue/shared': 3.2.40
-    dev: true
-
   /@vue/compiler-dom/3.2.47:
     resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
     dependencies:
@@ -5431,21 +5484,6 @@ packages:
       postcss: 8.4.16
       source-map: 0.6.1
 
-  /@vue/compiler-sfc/3.2.40:
-    resolution: {integrity: sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==}
-    dependencies:
-      '@babel/parser': 7.19.1
-      '@vue/compiler-core': 3.2.40
-      '@vue/compiler-dom': 3.2.40
-      '@vue/compiler-ssr': 3.2.40
-      '@vue/reactivity-transform': 3.2.40
-      '@vue/shared': 3.2.40
-      estree-walker: 2.0.2
-      magic-string: 0.25.9
-      postcss: 8.4.16
-      source-map: 0.6.1
-    dev: true
-
   /@vue/compiler-sfc/3.2.47:
     resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
     dependencies:
@@ -5466,13 +5504,6 @@ packages:
       '@vue/compiler-dom': 3.2.39
       '@vue/shared': 3.2.39
 
-  /@vue/compiler-ssr/3.2.40:
-    resolution: {integrity: sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==}
-    dependencies:
-      '@vue/compiler-dom': 3.2.40
-      '@vue/shared': 3.2.40
-    dev: true
-
   /@vue/compiler-ssr/3.2.47:
     resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
     dependencies:
@@ -5485,22 +5516,12 @@ packages:
   /@vue/reactivity-transform/3.2.39:
     resolution: {integrity: sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.20.15
       '@vue/compiler-core': 3.2.39
       '@vue/shared': 3.2.39
       estree-walker: 2.0.2
       magic-string: 0.25.9
 
-  /@vue/reactivity-transform/3.2.40:
-    resolution: {integrity: sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==}
-    dependencies:
-      '@babel/parser': 7.19.1
-      '@vue/compiler-core': 3.2.40
-      '@vue/shared': 3.2.40
-      estree-walker: 2.0.2
-      magic-string: 0.25.9
-    dev: true
-
   /@vue/reactivity-transform/3.2.47:
     resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
     dependencies:
@@ -5515,12 +5536,6 @@ packages:
     dependencies:
       '@vue/shared': 3.2.39
 
-  /@vue/reactivity/3.2.40:
-    resolution: {integrity: sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==}
-    dependencies:
-      '@vue/shared': 3.2.40
-    dev: true
-
   /@vue/reactivity/3.2.47:
     resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
     dependencies:
@@ -5581,10 +5596,6 @@ packages:
   /@vue/shared/3.2.39:
     resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==}
 
-  /@vue/shared/3.2.40:
-    resolution: {integrity: sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==}
-    dev: true
-
   /@vue/shared/3.2.47:
     resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
 
@@ -12582,6 +12593,7 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       brace-expansion: 2.0.1
+    dev: true
 
   /minimatch/5.1.6:
     resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
@@ -15950,11 +15962,40 @@ packages:
       chokidar: 3.5.3
       debug: 4.3.4
       fast-glob: 3.2.12
+      local-pkg: 0.4.2
+      magic-string: 0.26.3
+      minimatch: 5.1.0
+      resolve: 1.22.1
+      unplugin: 0.7.2_vite@3.2.5
+      vue: 3.2.47
+    transitivePeerDependencies:
+      - esbuild
+      - rollup
+      - supports-color
+      - vite
+      - webpack
+    dev: true
+
+  /unplugin-vue-components/0.21.2_vite@2.9.15+vue@3.2.47:
+    resolution: {integrity: sha512-HBU+EuesDj/HRs7EtYH7gBACljVhqLylltrCLModRmCToIIrrNvMh54aylUt4AD4qiwylgOx4Vgb9sBlrIcRDw==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/parser': ^7.15.8
+      vue: 2 || 3
+    peerDependenciesMeta:
+      '@babel/parser':
+        optional: true
+    dependencies:
+      '@antfu/utils': 0.5.2
+      '@rollup/pluginutils': 4.2.1
+      chokidar: 3.5.3
+      debug: 4.3.4
+      fast-glob: 3.2.12
       local-pkg: 0.4.3
       magic-string: 0.26.7
       minimatch: 5.1.6
       resolve: 1.22.1
-      unplugin: 0.7.2_vite@3.2.5
+      unplugin: 0.7.2_vite@2.9.15
       vue: 3.2.47
     transitivePeerDependencies:
       - esbuild
@@ -15964,6 +16005,35 @@ packages:
       - webpack
     dev: true
 
+  /unplugin-vue-components/0.21.2_vite@3.1.3+vue@3.2.39:
+    resolution: {integrity: sha512-HBU+EuesDj/HRs7EtYH7gBACljVhqLylltrCLModRmCToIIrrNvMh54aylUt4AD4qiwylgOx4Vgb9sBlrIcRDw==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/parser': ^7.15.8
+      vue: 2 || 3
+    peerDependenciesMeta:
+      '@babel/parser':
+        optional: true
+    dependencies:
+      '@antfu/utils': 0.5.2
+      '@rollup/pluginutils': 4.2.1
+      chokidar: 3.5.3
+      debug: 4.3.4
+      fast-glob: 3.2.12
+      local-pkg: 0.4.3
+      magic-string: 0.26.7
+      minimatch: 5.1.6
+      resolve: 1.22.1
+      unplugin: 0.7.2_vite@3.1.3
+      vue: 3.2.39
+    transitivePeerDependencies:
+      - esbuild
+      - rollup
+      - supports-color
+      - vite
+      - webpack
+    dev: true
+
   /unplugin-vue-define-options/0.11.2:
     resolution: {integrity: sha512-Eql/lAih50HLdg6eOGNjPZhLCTW7B297FvKdpfibRMtnlhhrZsRFUs5DyS3tcNBc7Zkc6GcS8mt6HKGNGhaXKg==}
     engines: {node: '>=14.19.0'}
@@ -16005,7 +16075,7 @@ packages:
     dependencies:
       '@rollup/pluginutils': 4.2.1
       '@vue-macros/common': 0.11.2
-      '@vue-macros/define-model': 0.11.2
+      '@vue-macros/define-model': 0.11.2_temr4a75fo74qf6q7dadyncfje
       '@vue-macros/define-render': 0.11.2
       '@vue-macros/hoist-static': 0.11.2
       '@vue-macros/setup-component': 0.11.2
@@ -16029,7 +16099,7 @@ packages:
     dependencies:
       '@rollup/pluginutils': 4.2.1
       '@vue-macros/common': 0.11.2
-      '@vue-macros/define-model': 0.11.2
+      '@vue-macros/define-model': 0.11.2_vite@3.2.5
       '@vue-macros/define-render': 0.11.2
       '@vue-macros/hoist-static': 0.11.2
       '@vue-macros/setup-component': 0.11.2
@@ -16070,6 +16140,54 @@ packages:
       webpack-virtual-modules: 0.4.5
     dev: true
 
+  /unplugin/0.7.2_vite@2.9.15:
+    resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
+    peerDependencies:
+      esbuild: '>=0.13'
+      rollup: ^2.50.0
+      vite: ^2.3.0 || ^3.0.0-0
+      webpack: 4 || 5
+    peerDependenciesMeta:
+      esbuild:
+        optional: true
+      rollup:
+        optional: true
+      vite:
+        optional: true
+      webpack:
+        optional: true
+    dependencies:
+      acorn: 8.8.0
+      chokidar: 3.5.3
+      vite: 2.9.15
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.4.5
+    dev: true
+
+  /unplugin/0.7.2_vite@3.1.3:
+    resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
+    peerDependencies:
+      esbuild: '>=0.13'
+      rollup: ^2.50.0
+      vite: ^2.3.0 || ^3.0.0-0
+      webpack: 4 || 5
+    peerDependenciesMeta:
+      esbuild:
+        optional: true
+      rollup:
+        optional: true
+      vite:
+        optional: true
+      webpack:
+        optional: true
+    dependencies:
+      acorn: 8.8.0
+      chokidar: 3.5.3
+      vite: 3.1.3
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.4.5
+    dev: true
+
   /unplugin/0.7.2_vite@3.2.5:
     resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
     peerDependencies:
@@ -16111,12 +16229,62 @@ packages:
       webpack:
         optional: true
     dependencies:
-      acorn: 8.8.0
+      acorn: 8.8.2
       chokidar: 3.5.3
       rollup: 2.79.1
       vite: 2.9.15
       webpack-sources: 3.2.3
-      webpack-virtual-modules: 0.4.5
+      webpack-virtual-modules: 0.4.6
+    dev: true
+
+  /unplugin/0.9.5_temr4a75fo74qf6q7dadyncfje:
+    resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==}
+    peerDependencies:
+      esbuild: '>=0.13'
+      rollup: ^2.50.0
+      vite: ^2.3.0 || ^3.0.0-0
+      webpack: 4 || 5
+    peerDependenciesMeta:
+      esbuild:
+        optional: true
+      rollup:
+        optional: true
+      vite:
+        optional: true
+      webpack:
+        optional: true
+    dependencies:
+      acorn: 8.8.2
+      chokidar: 3.5.3
+      esbuild: 0.14.54
+      rollup: 2.78.1
+      vite: 2.9.15
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.4.6
+    dev: false
+
+  /unplugin/0.9.5_vite@3.2.5:
+    resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==}
+    peerDependencies:
+      esbuild: '>=0.13'
+      rollup: ^2.50.0
+      vite: ^2.3.0 || ^3.0.0-0
+      webpack: 4 || 5
+    peerDependenciesMeta:
+      esbuild:
+        optional: true
+      rollup:
+        optional: true
+      vite:
+        optional: true
+      webpack:
+        optional: true
+    dependencies:
+      acorn: 8.8.2
+      chokidar: 3.5.3
+      vite: 3.2.5_f5vcjb3akvjdur4ffzogu2hewu
+      webpack-sources: 3.2.3
+      webpack-virtual-modules: 0.4.6
     dev: true
 
   /unplugin/0.9.6:
@@ -16324,6 +16492,22 @@ packages:
       - supports-color
     dev: true
 
+  /vite-plugin-inspect/0.5.1_vite@3.1.3:
+    resolution: {integrity: sha512-cSVdNhVPAfH3OdVSV331/t/YWjg++HR/KiBkVST8pjLISna7O8gRwU8NN7KLrEBJqKKQqoRYLBb0RSdYurEyeg==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      vite: ^2.9.0 || ^3.0.0-0
+    dependencies:
+      '@rollup/pluginutils': 4.2.1
+      debug: 4.3.4
+      kolorist: 1.6.0
+      sirv: 2.0.2
+      ufo: 0.8.5
+      vite: 3.1.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /vite-plugin-mkcert/1.10.1_vite@2.9.15:
     resolution: {integrity: sha512-fNNC0z+AcBZExKedjWC7bWlDMf4+WZJqO/4aYf7C/vYY1dqYVOM+zowwTYV0xSx5ZQgplfangPkZk+RwdUlpBg==}
     engines: {node: '>=v16.0.0'}
@@ -16340,6 +16524,22 @@ packages:
       - supports-color
     dev: true
 
+  /vite-plugin-mkcert/1.10.1_vite@3.1.3:
+    resolution: {integrity: sha512-fNNC0z+AcBZExKedjWC7bWlDMf4+WZJqO/4aYf7C/vYY1dqYVOM+zowwTYV0xSx5ZQgplfangPkZk+RwdUlpBg==}
+    engines: {node: '>=v16.0.0'}
+    peerDependencies:
+      vite: '>=3'
+    dependencies:
+      '@octokit/rest': 19.0.4
+      axios: 0.21.4_debug@4.3.4
+      debug: 4.3.4
+      picocolors: 1.0.0
+      vite: 3.1.3
+    transitivePeerDependencies:
+      - encoding
+      - supports-color
+    dev: true
+
   /vite-plugin-pwa/0.12.8_mzzo5qdcantp6obyzixnpsysz4:
     resolution: {integrity: sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA==}
     peerDependencies:

+ 5 - 4
pnpm-workspace.yaml

@@ -1,5 +1,6 @@
 packages:
-    - packages/*
-    - internal/*
-    - docs
-    - playground
+  - packages/*
+  - internal/*
+  - docs
+  - playground
+  - play