From 9ca8fae42412abc0918efe10c045ac147804ba2f Mon Sep 17 00:00:00 2001 From: wibus-wee <1596355173@qq.com> Date: Sat, 24 Feb 2024 20:05:48 +0800 Subject: [PATCH 1/3] perf(generator): remove hardcode for dashboard functions router --- packages/generator/index.ts | 4 ++-- packages/modules/dashboard/custom/index.ts | 0 packages/modules/dashboard/custom/router.ts | 10 ++++++++++ packages/modules/index.ts | 5 +++++ packages/shared/src/types.ts | 19 +++++++++---------- 5 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 packages/modules/dashboard/custom/index.ts create mode 100644 packages/modules/dashboard/custom/router.ts diff --git a/packages/generator/index.ts b/packages/generator/index.ts index c6b2d38..6056296 100644 --- a/packages/generator/index.ts +++ b/packages/generator/index.ts @@ -13,7 +13,7 @@ const externalUrl = `https://fastly.jsdelivr.net/gh/wibus-wee/activation-script@ function MITM(hostnames: any[], external = false) { return ` [MITM] -hostname = ${external ? `%APPEND% ` : ''}${hostnames.join(', ')}, as.as, *.as.as +hostname = ${external ? `%APPEND% ` : ''}${hostnames.join(', ')} ` } function Script(_scripts: typeof scripts, external = false) { @@ -185,7 +185,7 @@ async function patch() { // 去重,合并 const newHostnames = Array.from( // new Set([...oldHostnames[1].split(", "), ...hostnames]) - new Set([...(oldHostnames?.[1] || '').split(', '), ...hostnames, 'as.as', '*.as.as']), + new Set([...(oldHostnames?.[1] || '').split(', '), ...hostnames]), ) console.log('[*] NewHostnames', newHostnames) diff --git a/packages/modules/dashboard/custom/index.ts b/packages/modules/dashboard/custom/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/modules/dashboard/custom/router.ts b/packages/modules/dashboard/custom/router.ts new file mode 100644 index 0000000..d250a5f --- /dev/null +++ b/packages/modules/dashboard/custom/router.ts @@ -0,0 +1,10 @@ +import { type ActivatorObjFunc, buildResponse } from '@as/shared' + +export const DashboardModuleRouter: ActivatorObjFunc[] = [ + { + base: '/', + func: () => { + buildResponse({ status: 200, body: 'Dashboard' }) + }, + }, +] diff --git a/packages/modules/index.ts b/packages/modules/index.ts index 1dec8ec..0f0c868 100644 --- a/packages/modules/index.ts +++ b/packages/modules/index.ts @@ -10,8 +10,13 @@ import { paddleVerify } from './paddle/validate' // import { raycastAiModels } from "./raycast/customs/ai/models"; // import { raycastTrialStatus } from "./raycast/customs/custom"; import { spotifyRemoveAds } from './spotify/custom' +import { DashboardModuleRouter } from './dashboard/custom/router' export const activator: Activator = { + dashboard: { + base: 'http://as.as/*', + customs: DashboardModuleRouter, + }, lemonSqueezy: { base: 'https://api.lemonsqueezy.com/v1/licenses', activate: lemonSqueezyActive, diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts index d23eef3..f3669d7 100644 --- a/packages/shared/src/types.ts +++ b/packages/shared/src/types.ts @@ -1,16 +1,15 @@ -type ActivatorObjFunc = - | { - base: string - func: ActivatorFunction - type?: 'http-request' | 'http-response' - } - | ActivatorFunction +export interface ActivatorObjFunc { + base: string + func: ActivatorFunction + type?: 'http-request' | 'http-response' +} + export interface Activator { [key: string]: { base: string | string[] - activate?: ActivatorObjFunc - validate?: ActivatorObjFunc - customs?: ActivatorObjFunc[] + activate?: ActivatorObjFunc | ActivatorFunction + validate?: ActivatorObjFunc | ActivatorFunction + customs?: Array } } From f5cd7a18a369011ca93f9e55113ba4bbc3bebc7f Mon Sep 17 00:00:00 2001 From: wibus-wee <1596355173@qq.com> Date: Sat, 24 Feb 2024 20:06:40 +0800 Subject: [PATCH 2/3] feat(dashboard): manager dashboard support --- .gitignore | 29 +- .vscode/extensions.json | 3 + package.json | 6 +- packages/dashboard/README.md | 2 + packages/dashboard/env.d.ts | 1 + packages/dashboard/index.html | 13 + packages/dashboard/index.ts | 1 - packages/dashboard/package.json | 30 +- packages/dashboard/public/favicon.ico | Bin 0 -> 4286 bytes packages/dashboard/src/App.vue | 85 ++ packages/dashboard/src/assets/base.css | 86 ++ packages/dashboard/src/assets/logo.svg | 1 + packages/dashboard/src/assets/main.css | 35 + .../dashboard/src/components/HelloWorld.vue | 41 + .../dashboard/src/components/TheWelcome.vue | 88 ++ .../dashboard/src/components/WelcomeItem.vue | 87 ++ .../src/components/icons/IconCommunity.vue | 7 + .../components/icons/IconDocumentation.vue | 7 + .../src/components/icons/IconEcosystem.vue | 7 + .../src/components/icons/IconSupport.vue | 7 + .../src/components/icons/IconTooling.vue | 19 + packages/dashboard/src/index.ts | 11 - packages/dashboard/src/main.ts | 11 + packages/dashboard/src/router/index.ts | 23 + packages/dashboard/src/views/AboutView.vue | 15 + packages/dashboard/src/views/HomeView.vue | 9 + packages/dashboard/tsconfig.app.json | 14 + packages/dashboard/tsconfig.json | 11 +- packages/dashboard/tsconfig.node.json | 19 + packages/dashboard/vite.config.ts | 18 + pnpm-lock.yaml | 1000 +++++++++++++++-- tsconfig.json | 2 +- 32 files changed, 1555 insertions(+), 133 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 packages/dashboard/README.md create mode 100644 packages/dashboard/env.d.ts create mode 100644 packages/dashboard/index.html delete mode 100644 packages/dashboard/index.ts create mode 100644 packages/dashboard/public/favicon.ico create mode 100644 packages/dashboard/src/App.vue create mode 100644 packages/dashboard/src/assets/base.css create mode 100644 packages/dashboard/src/assets/logo.svg create mode 100644 packages/dashboard/src/assets/main.css create mode 100644 packages/dashboard/src/components/HelloWorld.vue create mode 100644 packages/dashboard/src/components/TheWelcome.vue create mode 100644 packages/dashboard/src/components/WelcomeItem.vue create mode 100644 packages/dashboard/src/components/icons/IconCommunity.vue create mode 100644 packages/dashboard/src/components/icons/IconDocumentation.vue create mode 100644 packages/dashboard/src/components/icons/IconEcosystem.vue create mode 100644 packages/dashboard/src/components/icons/IconSupport.vue create mode 100644 packages/dashboard/src/components/icons/IconTooling.vue delete mode 100644 packages/dashboard/src/index.ts create mode 100644 packages/dashboard/src/main.ts create mode 100644 packages/dashboard/src/router/index.ts create mode 100644 packages/dashboard/src/views/AboutView.vue create mode 100644 packages/dashboard/src/views/HomeView.vue create mode 100644 packages/dashboard/tsconfig.app.json create mode 100644 packages/dashboard/tsconfig.node.json create mode 100644 packages/dashboard/vite.config.ts diff --git a/.gitignore b/.gitignore index 829900c..fbbb389 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,31 @@ dist activator.js node_modules generator.js -activator.sgmodule \ No newline at end of file +activator.sgmodule +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/package.json b/package.json index ab561cc..3c21f1c 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,12 @@ "author": "wibus-wee ", "keywords": [], "scripts": { - "build:core": "pnpm -C packages/core run build", + "build:core": "pnpm -C packages/core run build && cp dist/activator.js activator.js", + "build:dashboard": "pnpm -C packages/dashboard run build", "build:generator": "pnpm -C packages/generator run build", "build": "npm run build:core && npm run build:generator", - "typecheck": "tsc --noEmit", + "dev:dashboard": "pnpm -C packages/dashboard run dev", + "typecheck": "tsc --noEmit && pnpm -C packages/dashboard run typecheck", "prepare": "simple-git-hooks", "lint": "eslint ." }, diff --git a/packages/dashboard/README.md b/packages/dashboard/README.md new file mode 100644 index 0000000..c692951 --- /dev/null +++ b/packages/dashboard/README.md @@ -0,0 +1,2 @@ +# dashboard +This is the dashboard package. diff --git a/packages/dashboard/env.d.ts b/packages/dashboard/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/dashboard/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/dashboard/index.html b/packages/dashboard/index.html new file mode 100644 index 0000000..a888544 --- /dev/null +++ b/packages/dashboard/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/packages/dashboard/index.ts b/packages/dashboard/index.ts deleted file mode 100644 index 6f39cd4..0000000 --- a/packages/dashboard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './src' diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 5f08205..d92b186 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,15 +1,29 @@ { "name": "@as/dashboard", - "version": "1.3.0", - "description": "", - "author": "", - "license": "ISC", - "keywords": [], - "main": "index.js", + "type": "module", + "version": "0.0.0", + "private": true, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "build-only": "vite build", + "typecheck": "vue-tsc --build --force" }, "dependencies": { - "@as/shared": "workspace:^" + "@as/shared": "workspace:^", + "vue": "^3.4.15", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.2", + "@types/node": "^20.11.10", + "@vitejs/plugin-vue": "^5.0.3", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/tsconfig": "^0.5.1", + "npm-run-all2": "^6.1.1", + "typescript": "~5.3.0", + "vite": "^5.0.11", + "vue-tsc": "^1.8.27" } } diff --git a/packages/dashboard/public/favicon.ico b/packages/dashboard/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/packages/dashboard/src/App.vue b/packages/dashboard/src/App.vue new file mode 100644 index 0000000..7905b05 --- /dev/null +++ b/packages/dashboard/src/App.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/packages/dashboard/src/assets/base.css b/packages/dashboard/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/packages/dashboard/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/packages/dashboard/src/assets/logo.svg b/packages/dashboard/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/packages/dashboard/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/packages/dashboard/src/assets/main.css b/packages/dashboard/src/assets/main.css new file mode 100644 index 0000000..36fb845 --- /dev/null +++ b/packages/dashboard/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; + padding: 3px; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/packages/dashboard/src/components/HelloWorld.vue b/packages/dashboard/src/components/HelloWorld.vue new file mode 100644 index 0000000..38d821e --- /dev/null +++ b/packages/dashboard/src/components/HelloWorld.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/packages/dashboard/src/components/TheWelcome.vue b/packages/dashboard/src/components/TheWelcome.vue new file mode 100644 index 0000000..49d8f73 --- /dev/null +++ b/packages/dashboard/src/components/TheWelcome.vue @@ -0,0 +1,88 @@ + + + diff --git a/packages/dashboard/src/components/WelcomeItem.vue b/packages/dashboard/src/components/WelcomeItem.vue new file mode 100644 index 0000000..6d7086a --- /dev/null +++ b/packages/dashboard/src/components/WelcomeItem.vue @@ -0,0 +1,87 @@ + + + diff --git a/packages/dashboard/src/components/icons/IconCommunity.vue b/packages/dashboard/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/packages/dashboard/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/packages/dashboard/src/components/icons/IconDocumentation.vue b/packages/dashboard/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/packages/dashboard/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/packages/dashboard/src/components/icons/IconEcosystem.vue b/packages/dashboard/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/packages/dashboard/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/packages/dashboard/src/components/icons/IconSupport.vue b/packages/dashboard/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/packages/dashboard/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/packages/dashboard/src/components/icons/IconTooling.vue b/packages/dashboard/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/packages/dashboard/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/packages/dashboard/src/index.ts b/packages/dashboard/src/index.ts deleted file mode 100644 index faf5550..0000000 --- a/packages/dashboard/src/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { buildResponse } from '@as/shared' - -export function DashboardRoute(url: string) { - buildResponse({ - body: { - title: 'Dashboard', - content: 'Hello, World!', - url, - }, - }) -} diff --git a/packages/dashboard/src/main.ts b/packages/dashboard/src/main.ts new file mode 100644 index 0000000..5a5dbdb --- /dev/null +++ b/packages/dashboard/src/main.ts @@ -0,0 +1,11 @@ +import './assets/main.css' + +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(router) + +app.mount('#app') diff --git a/packages/dashboard/src/router/index.ts b/packages/dashboard/src/router/index.ts new file mode 100644 index 0000000..3e49915 --- /dev/null +++ b/packages/dashboard/src/router/index.ts @@ -0,0 +1,23 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: HomeView, + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import('../views/AboutView.vue'), + }, + ], +}) + +export default router diff --git a/packages/dashboard/src/views/AboutView.vue b/packages/dashboard/src/views/AboutView.vue new file mode 100644 index 0000000..756ad2a --- /dev/null +++ b/packages/dashboard/src/views/AboutView.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/dashboard/src/views/HomeView.vue b/packages/dashboard/src/views/HomeView.vue new file mode 100644 index 0000000..d5c0217 --- /dev/null +++ b/packages/dashboard/src/views/HomeView.vue @@ -0,0 +1,9 @@ + + + diff --git a/packages/dashboard/tsconfig.app.json b/packages/dashboard/tsconfig.app.json new file mode 100644 index 0000000..ef62aae --- /dev/null +++ b/packages/dashboard/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "../../types.d.ts"], + "exclude": ["src/**/__tests__/*"] +} diff --git a/packages/dashboard/tsconfig.json b/packages/dashboard/tsconfig.json index 687bf76..d85c910 100644 --- a/packages/dashboard/tsconfig.json +++ b/packages/dashboard/tsconfig.json @@ -1,4 +1,11 @@ { - "extends": "../../tsconfig.json", - "include": ["../../types.d.ts"] + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ], + "files": [] } diff --git a/packages/dashboard/tsconfig.node.json b/packages/dashboard/tsconfig.node.json new file mode 100644 index 0000000..0fa71ee --- /dev/null +++ b/packages/dashboard/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"], + "noEmit": true + }, + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ] +} diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts new file mode 100644 index 0000000..8b792f7 --- /dev/null +++ b/packages/dashboard/vite.config.ts @@ -0,0 +1,18 @@ +import { URL, fileURLToPath } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueJsx(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11bd081..a71b5a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,7 +44,7 @@ importers: version: 3.29.1 rollup-plugin-esbuild: specifier: ^5.0.0 - version: 5.0.0(esbuild@0.19.2)(rollup@3.29.1) + version: 5.0.0(esbuild@0.19.12)(rollup@3.29.1) rollup-plugin-ts: specifier: ^3.4.5 version: 3.4.5(rollup@3.29.1)(typescript@5.2.2) @@ -66,12 +66,50 @@ importers: '@as/shared': specifier: workspace:^ version: link:../shared + devDependencies: + '@rollup/plugin-json': + specifier: ^6.1.0 + version: 6.1.0(rollup@3.29.1) packages/dashboard: dependencies: '@as/shared': specifier: workspace:^ version: link:../shared + vue: + specifier: ^3.4.15 + version: 3.4.19(typescript@5.3.3) + vue-router: + specifier: ^4.2.5 + version: 4.3.0(vue@3.4.19) + devDependencies: + '@tsconfig/node20': + specifier: ^20.1.2 + version: 20.1.2 + '@types/node': + specifier: ^20.11.10 + version: 20.11.20 + '@vitejs/plugin-vue': + specifier: ^5.0.3 + version: 5.0.4(vite@5.1.4)(vue@3.4.19) + '@vitejs/plugin-vue-jsx': + specifier: ^3.1.0 + version: 3.1.0(vite@5.1.4)(vue@3.4.19) + '@vue/tsconfig': + specifier: ^0.5.1 + version: 0.5.1 + npm-run-all2: + specifier: ^6.1.1 + version: 6.1.2 + typescript: + specifier: ~5.3.0 + version: 5.3.3 + vite: + specifier: ^5.0.11 + version: 5.1.4(@types/node@20.11.20) + vue-tsc: + specifier: ^1.8.27 + version: 1.8.27(typescript@5.3.3) packages/generator: dependencies: @@ -104,6 +142,14 @@ packages: engines: {node: '>=0.10.0'} dev: false + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + /@antfu/eslint-config@2.6.4(@vue/compiler-sfc@3.4.19)(eslint@8.56.0)(typescript@5.2.2): resolution: {integrity: sha512-dMD/QC5KWS1OltdpKLhfZM7W7y7zils85opk8d4lyNr7yn0OFjZs7eMYtcC6DrrN2kQ1JrFvBM7uB0QdWn5PUQ==} hasBin: true @@ -197,17 +243,197 @@ packages: dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 - dev: false + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true /@babel/helper-string-parser@7.23.4: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} - dev: false /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - dev: false + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + transitivePeerDependencies: + - supports-color + dev: true /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} @@ -216,7 +442,6 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - dev: false /@babel/parser@7.23.9: resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} @@ -224,7 +449,66 @@ packages: hasBin: true dependencies: '@babel/types': 7.23.9 - dev: false + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) + dev: true + + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true /@babel/types@7.23.9: resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} @@ -233,7 +517,6 @@ packages: '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - dev: false /@es-joy/jsdoccomment@0.42.0: resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} @@ -265,6 +548,15 @@ packages: get-tsconfig: 4.7.0 dev: true + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -274,8 +566,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.2: - resolution: {integrity: sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==} + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -292,8 +584,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.2: - resolution: {integrity: sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -310,8 +602,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.2: - resolution: {integrity: sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -328,8 +620,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.2: - resolution: {integrity: sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -346,8 +638,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.2: - resolution: {integrity: sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -364,8 +656,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.2: - resolution: {integrity: sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -382,8 +674,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.2: - resolution: {integrity: sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -400,8 +692,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.2: - resolution: {integrity: sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -418,8 +710,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.2: - resolution: {integrity: sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -436,8 +728,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.2: - resolution: {integrity: sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -454,8 +746,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.2: - resolution: {integrity: sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -472,8 +764,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.2: - resolution: {integrity: sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -490,8 +782,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.2: - resolution: {integrity: sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -508,8 +800,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.2: - resolution: {integrity: sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -526,8 +818,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.2: - resolution: {integrity: sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -544,8 +836,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.2: - resolution: {integrity: sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -562,8 +854,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.2: - resolution: {integrity: sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -580,8 +872,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.2: - resolution: {integrity: sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -598,8 +890,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.2: - resolution: {integrity: sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -616,8 +908,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.2: - resolution: {integrity: sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -634,8 +926,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.2: - resolution: {integrity: sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -652,8 +944,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.2: - resolution: {integrity: sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -809,6 +1101,19 @@ packages: rollup: 3.29.1 dev: true + /@rollup/plugin-json@6.1.0(rollup@3.29.1): + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.1) + rollup: 3.29.1 + dev: true + /@rollup/plugin-node-resolve@15.2.1(rollup@3.29.1): resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} engines: {node: '>=14.0.0'} @@ -857,6 +1162,125 @@ packages: rollup: 3.29.1 dev: true + /@rollup/pluginutils@5.1.0(rollup@3.29.1): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.12.0: + resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.12.0: + resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.12.0: + resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.12.0: + resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.12.0: + resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.12.0: + resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.12.0: + resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.12.0: + resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.12.0: + resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.12.0: + resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.12.0: + resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.12.0: + resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.12.0: + resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@stylistic/eslint-plugin-js@1.6.1(eslint@8.56.0): resolution: {integrity: sha512-gHRxkbA5p8S1fnChE7Yf5NFltRZCzbCuQOcoTe93PSKBC4GqVjZmlWUSLz9pJKHvDAUTjWkfttWHIOaFYPEhRQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -924,10 +1348,18 @@ packages: - typescript dev: false + /@tsconfig/node20@20.1.2: + resolution: {integrity: sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==} + dev: true + /@types/estree@1.0.1: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: false @@ -942,6 +1374,12 @@ packages: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true + /@types/node@20.11.20: + resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/node@20.6.0: resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} dev: true @@ -957,7 +1395,7 @@ packages: /@types/prompts@2.4.5: resolution: {integrity: sha512-TvrzGMCwARi2qqXcD7VmvMvfMP3F7JRQpeEHECK0oufRNZInoBqzd8v/1zksKFE5XW8OOGto/5FsDT8lnpvGRA==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.11.20 kleur: 3.0.3 dev: true @@ -1074,7 +1512,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.0 ts-api-utils: 1.2.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -1094,7 +1532,7 @@ packages: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) eslint: 8.56.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -1112,6 +1550,93 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: false + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.19): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) + '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.23.9) + vite: 5.1.4(@types/node@20.11.20) + vue: 3.4.19(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.19): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.1.4(@types/node@20.11.20) + vue: 3.4.19(typescript@5.3.3) + dev: true + + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/babel-helper-vue-transform-on@1.2.1: + resolution: {integrity: sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==} + dev: true + + /@vue/babel-plugin-jsx@1.2.1(@babel/core@7.23.9): + resolution: {integrity: sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + '@vue/babel-helper-vue-transform-on': 1.2.1 + '@vue/babel-plugin-resolve-type': 1.2.1(@babel/core@7.23.9) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/babel-plugin-resolve-type@1.2.1(@babel/core@7.23.9): + resolution: {integrity: sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/parser': 7.23.9 + '@vue/compiler-sfc': 3.4.19 + dev: true + /@vue/compiler-core@3.4.19: resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} dependencies: @@ -1120,14 +1645,12 @@ packages: entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 - dev: false /@vue/compiler-dom@3.4.19: resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} dependencies: '@vue/compiler-core': 3.4.19 '@vue/shared': 3.4.19 - dev: false /@vue/compiler-sfc@3.4.19: resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} @@ -1141,18 +1664,70 @@ packages: magic-string: 0.30.7 postcss: 8.4.35 source-map-js: 1.0.2 - dev: false /@vue/compiler-ssr@3.4.19: resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} dependencies: '@vue/compiler-dom': 3.4.19 '@vue/shared': 3.4.19 + + /@vue/devtools-api@6.6.1: + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} dev: false + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.3.3 + vue-template-compiler: 2.7.16 + dev: true + + /@vue/reactivity@3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + dependencies: + '@vue/shared': 3.4.19 + + /@vue/runtime-core@3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + dependencies: + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 + + /@vue/runtime-dom@3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + dependencies: + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 + + /@vue/server-renderer@3.4.19(vue@3.4.19): + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + peerDependencies: + vue: 3.4.19 + dependencies: + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19(typescript@5.3.3) + /@vue/shared@3.4.19: resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} - dev: false + + /@vue/tsconfig@0.5.1: + resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} + dev: true /@wessberg/stringutil@1.0.19: resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} @@ -1214,7 +1789,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: false /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -1303,7 +1877,6 @@ packages: electron-to-chromium: 1.4.670 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: false /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1316,7 +1889,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: false /callsites@3.1.0: @@ -1324,13 +1897,17 @@ packages: engines: {node: '>=6'} dev: false + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + /caniuse-lite@1.0.30001533: resolution: {integrity: sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw==} dev: true /caniuse-lite@1.0.30001587: resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} - dev: false /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1339,7 +1916,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: false /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1406,7 +1982,6 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: false /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -1417,7 +1992,6 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1460,10 +2034,18 @@ packages: typescript: 5.2.2 dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: false + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /core-js-compat@3.36.0: resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} dependencies: @@ -1491,6 +2073,13 @@ packages: hasBin: true dev: false + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1542,7 +2131,6 @@ packages: /electron-to-chromium@1.4.670: resolution: {integrity: sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==} - dev: false /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -1555,7 +2143,6 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: false /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1597,34 +2184,35 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true - /esbuild@0.19.2: - resolution: {integrity: sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.2 - '@esbuild/android-arm64': 0.19.2 - '@esbuild/android-x64': 0.19.2 - '@esbuild/darwin-arm64': 0.19.2 - '@esbuild/darwin-x64': 0.19.2 - '@esbuild/freebsd-arm64': 0.19.2 - '@esbuild/freebsd-x64': 0.19.2 - '@esbuild/linux-arm': 0.19.2 - '@esbuild/linux-arm64': 0.19.2 - '@esbuild/linux-ia32': 0.19.2 - '@esbuild/linux-loong64': 0.19.2 - '@esbuild/linux-mips64el': 0.19.2 - '@esbuild/linux-ppc64': 0.19.2 - '@esbuild/linux-riscv64': 0.19.2 - '@esbuild/linux-s390x': 0.19.2 - '@esbuild/linux-x64': 0.19.2 - '@esbuild/netbsd-x64': 0.19.2 - '@esbuild/openbsd-x64': 0.19.2 - '@esbuild/sunos-x64': 0.19.2 - '@esbuild/win32-arm64': 0.19.2 - '@esbuild/win32-ia32': 0.19.2 - '@esbuild/win32-x64': 0.19.2 + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 dev: true /escalade@3.1.1: @@ -1634,7 +2222,6 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: false /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -1657,7 +2244,7 @@ packages: eslint: '>=6.0.0' dependencies: eslint: 8.56.0 - semver: 7.5.4 + semver: 7.6.0 dev: false /eslint-config-flat-gitignore@0.1.3: @@ -2210,6 +2797,11 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2271,6 +2863,11 @@ packages: once: 1.4.0 dev: true + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + /globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -2297,7 +2894,6 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: false /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -2310,6 +2906,11 @@ packages: dependencies: function-bind: 1.1.1 + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /helpertypes@0.0.19: resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} engines: {node: '>=10.0.0'} @@ -2319,6 +2920,11 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: false + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -2456,7 +3062,6 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -2475,6 +3080,12 @@ packages: hasBin: true dev: false + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + /jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -2489,6 +3100,11 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: false + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: false @@ -2497,6 +3113,12 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: false + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2616,6 +3238,12 @@ packages: wrap-ansi: 9.0.0 dev: true + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -2641,7 +3269,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: false /mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} @@ -2659,6 +3286,11 @@ packages: resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} dev: false + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2715,7 +3347,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: false /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} @@ -2729,11 +3360,14 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: false /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -2749,7 +3383,6 @@ packages: /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: false /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -2760,6 +3393,25 @@ packages: validate-npm-package-license: 3.0.4 dev: false + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /npm-run-all2@6.1.2: + resolution: {integrity: sha512-WwwnS8Ft+RpXve6T2EIEVpFLSqN+ORHRvgNk3H9N62SZXjmzKoRhMFg3I17TK3oMaAEr+XFbRirWS2Fn3BCPSg==} + engines: {node: ^14.18.0 || >=16.0.0, npm: '>= 8'} + hasBin: true + dependencies: + ansi-styles: 6.2.1 + cross-spawn: 7.0.3 + memorystream: 0.3.1 + minimatch: 9.0.3 + pidtree: 0.6.0 + read-package-json-fast: 3.0.2 + shell-quote: 1.8.1 + dev: true + /npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2887,6 +3539,10 @@ packages: lines-and-columns: 1.2.4 dev: false + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2968,7 +3624,6 @@ packages: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2997,6 +3652,14 @@ packages: safe-buffer: 5.2.1 dev: true + /read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + json-parse-even-better-errors: 3.0.1 + npm-normalize-package-bin: 3.0.1 + dev: true + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -3073,7 +3736,7 @@ packages: glob: 7.2.3 dev: false - /rollup-plugin-esbuild@5.0.0(esbuild@0.19.2)(rollup@3.29.1): + /rollup-plugin-esbuild@5.0.0(esbuild@0.19.12)(rollup@3.29.1): resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} peerDependencies: @@ -3083,7 +3746,7 @@ packages: '@rollup/pluginutils': 5.0.4(rollup@3.29.1) debug: 4.3.4 es-module-lexer: 1.3.1 - esbuild: 0.19.2 + esbuild: 0.19.12 joycon: 3.1.1 jsonc-parser: 3.2.0 rollup: 3.29.1 @@ -3142,6 +3805,29 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.12.0: + resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.12.0 + '@rollup/rollup-android-arm64': 4.12.0 + '@rollup/rollup-darwin-arm64': 4.12.0 + '@rollup/rollup-darwin-x64': 4.12.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 + '@rollup/rollup-linux-arm64-gnu': 4.12.0 + '@rollup/rollup-linux-arm64-musl': 4.12.0 + '@rollup/rollup-linux-riscv64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-musl': 4.12.0 + '@rollup/rollup-win32-arm64-msvc': 4.12.0 + '@rollup/rollup-win32-ia32-msvc': 4.12.0 + '@rollup/rollup-win32-x64-msvc': 4.12.0 + fsevents: 2.3.3 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -3157,6 +3843,11 @@ packages: hasBin: true dev: false + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -3170,7 +3861,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: false /serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} @@ -3188,6 +3878,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -3233,7 +3927,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: false /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -3334,7 +4027,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: false /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -3347,6 +4039,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + /synckit@0.6.2: resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} engines: {node: '>=12.20'} @@ -3372,7 +4068,6 @@ packages: /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: false /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -3456,6 +4151,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + /ua-parser-js@1.0.36: resolution: {integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==} dev: true @@ -3464,6 +4164,10 @@ packages: resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} dev: false + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -3495,7 +4199,6 @@ packages: browserslist: 4.23.0 escalade: 3.1.1 picocolors: 1.0.0 - dev: false /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3514,6 +4217,42 @@ packages: spdx-expression-parse: 3.0.1 dev: false + /vite@5.1.4(@types/node@20.11.20): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.20 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.12.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /vue-eslint-parser@9.4.2(eslint@8.56.0): resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} engines: {node: ^14.17.0 || >=16.0.0} @@ -3532,6 +4271,49 @@ packages: - supports-color dev: false + /vue-router@4.3.0(vue@3.4.19): + resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.19(typescript@5.3.3) + dev: false + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) + semver: 7.6.0 + typescript: 5.3.3 + dev: true + + /vue@3.4.19(typescript@5.3.3): + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19(vue@3.4.19) + '@vue/shared': 3.4.19 + typescript: 5.3.3 + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3570,6 +4352,10 @@ packages: engines: {node: '>=10'} dev: false + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/tsconfig.json b/tsconfig.json index 3eb546c..cc17dbc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,5 +11,5 @@ "skipDefaultLibCheck": true, "skipLibCheck": true }, - "exclude": ["node_modules", "dist", "**/*.js", "**/*.mjs", "**/*.sgmodule"] + "exclude": ["node_modules", "dist", "**/*.js", "**/*.mjs", "**/*.sgmodule", "packages/dashboard/**/*.ts"] } From 5c1ac71f241f9b2a7bd4eb579e5d8bc8ef71a8db Mon Sep 17 00:00:00 2001 From: wibus-wee <1596355173@qq.com> Date: Sun, 10 Mar 2024 16:12:55 +0800 Subject: [PATCH 3/3] Add new UI components and update dependencies --- packages/dashboard/components.json | 16 + packages/dashboard/package.json | 11 +- packages/dashboard/src/App.vue | 82 +-- packages/dashboard/src/assets/base.css | 86 --- packages/dashboard/src/assets/main.css | 105 +++- .../dashboard/src/components/HelloWorld.vue | 41 -- .../dashboard/src/components/TheWelcome.vue | 88 --- .../dashboard/src/components/WelcomeItem.vue | 87 --- .../src/components/icons/IconCommunity.vue | 7 - .../components/icons/IconDocumentation.vue | 7 - .../src/components/icons/IconEcosystem.vue | 7 - .../src/components/icons/IconSupport.vue | 7 - .../src/components/icons/IconTooling.vue | 19 - .../ui/alert-dialog/AlertDialog.vue | 14 + .../ui/alert-dialog/AlertDialogAction.vue | 20 + .../ui/alert-dialog/AlertDialogCancel.vue | 20 + .../ui/alert-dialog/AlertDialogContent.vue | 42 ++ .../alert-dialog/AlertDialogDescription.vue | 25 + .../ui/alert-dialog/AlertDialogFooter.vue | 21 + .../ui/alert-dialog/AlertDialogHeader.vue | 16 + .../ui/alert-dialog/AlertDialogTitle.vue | 22 + .../ui/alert-dialog/AlertDialogTrigger.vue | 11 + .../src/components/ui/alert-dialog/index.ts | 9 + .../src/components/ui/button/Button.vue | 27 + .../src/components/ui/button/index.ts | 34 ++ .../src/components/ui/dialog/Dialog.vue | 14 + .../src/components/ui/dialog/DialogClose.vue | 11 + .../components/ui/dialog/DialogContent.vue | 50 ++ .../ui/dialog/DialogDescription.vue | 24 + .../src/components/ui/dialog/DialogFooter.vue | 19 + .../src/components/ui/dialog/DialogHeader.vue | 16 + .../ui/dialog/DialogScrollContent.vue | 59 ++ .../src/components/ui/dialog/DialogTitle.vue | 29 + .../components/ui/dialog/DialogTrigger.vue | 11 + .../src/components/ui/dialog/index.ts | 9 + .../ui/dropdown-menu/DropdownMenu.vue | 14 + .../DropdownMenuCheckboxItem.vue | 40 ++ .../ui/dropdown-menu/DropdownMenuContent.vue | 38 ++ .../ui/dropdown-menu/DropdownMenuGroup.vue | 11 + .../ui/dropdown-menu/DropdownMenuItem.vue | 28 + .../ui/dropdown-menu/DropdownMenuLabel.vue | 24 + .../dropdown-menu/DropdownMenuRadioGroup.vue | 19 + .../dropdown-menu/DropdownMenuRadioItem.vue | 41 ++ .../dropdown-menu/DropdownMenuSeparator.vue | 22 + .../ui/dropdown-menu/DropdownMenuShortcut.vue | 14 + .../ui/dropdown-menu/DropdownMenuSub.vue | 19 + .../dropdown-menu/DropdownMenuSubContent.vue | 30 + .../dropdown-menu/DropdownMenuSubTrigger.vue | 33 + .../ui/dropdown-menu/DropdownMenuTrigger.vue | 13 + .../src/components/ui/dropdown-menu/index.ts | 16 + .../components/ui/hover-card/HoverCard.vue | 13 + .../ui/hover-card/HoverCardContent.vue | 41 ++ .../ui/hover-card/HoverCardTrigger.vue | 11 + .../src/components/ui/hover-card/index.ts | 3 + .../src/components/ui/input/Input.vue | 24 + .../src/components/ui/input/index.ts | 1 + .../src/components/ui/label/Label.vue | 27 + .../src/components/ui/label/index.ts | 1 + .../src/components/ui/popover/Popover.vue | 15 + .../components/ui/popover/PopoverContent.vue | 48 ++ .../components/ui/popover/PopoverTrigger.vue | 11 + .../src/components/ui/popover/index.ts | 3 + .../src/components/ui/separator/Separator.vue | 20 + .../src/components/ui/separator/index.ts | 1 + .../src/components/ui/switch/Switch.vue | 37 ++ .../src/components/ui/switch/index.ts | 1 + .../dashboard/src/components/ui/tabs/Tabs.vue | 15 + .../src/components/ui/tabs/TabsContent.vue | 22 + .../src/components/ui/tabs/TabsList.vue | 25 + .../src/components/ui/tabs/TabsTrigger.vue | 27 + .../dashboard/src/components/ui/tabs/index.ts | 4 + .../src/components/ui/textarea/Textarea.vue | 24 + .../src/components/ui/textarea/index.ts | 1 + packages/dashboard/src/lib/utils.ts | 6 + packages/dashboard/src/router/index.ts | 5 + packages/dashboard/src/views/HomeView.vue | 4 +- .../components/PresetSelector.vue | 6 + .../PlaygroundView/components/PresetShare.vue | 49 ++ .../src/views/PlaygroundView/index.vue | 118 ++++ packages/dashboard/tailwind.config.js | 93 +++ packages/dashboard/tsconfig.app.json | 4 +- packages/dashboard/tsconfig.node.json | 2 +- packages/dashboard/vite.config.ts | 7 + pnpm-lock.yaml | 572 +++++++++++++++--- 84 files changed, 2130 insertions(+), 539 deletions(-) create mode 100644 packages/dashboard/components.json delete mode 100644 packages/dashboard/src/assets/base.css delete mode 100644 packages/dashboard/src/components/HelloWorld.vue delete mode 100644 packages/dashboard/src/components/TheWelcome.vue delete mode 100644 packages/dashboard/src/components/WelcomeItem.vue delete mode 100644 packages/dashboard/src/components/icons/IconCommunity.vue delete mode 100644 packages/dashboard/src/components/icons/IconDocumentation.vue delete mode 100644 packages/dashboard/src/components/icons/IconEcosystem.vue delete mode 100644 packages/dashboard/src/components/icons/IconSupport.vue delete mode 100644 packages/dashboard/src/components/icons/IconTooling.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialog.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogAction.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogCancel.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogContent.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogDescription.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogFooter.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogHeader.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogTitle.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/AlertDialogTrigger.vue create mode 100644 packages/dashboard/src/components/ui/alert-dialog/index.ts create mode 100644 packages/dashboard/src/components/ui/button/Button.vue create mode 100644 packages/dashboard/src/components/ui/button/index.ts create mode 100644 packages/dashboard/src/components/ui/dialog/Dialog.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogClose.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogContent.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogDescription.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogFooter.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogHeader.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogScrollContent.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogTitle.vue create mode 100644 packages/dashboard/src/components/ui/dialog/DialogTrigger.vue create mode 100644 packages/dashboard/src/components/ui/dialog/index.ts create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenu.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuContent.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuGroup.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuItem.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuLabel.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSub.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue create mode 100644 packages/dashboard/src/components/ui/dropdown-menu/index.ts create mode 100644 packages/dashboard/src/components/ui/hover-card/HoverCard.vue create mode 100644 packages/dashboard/src/components/ui/hover-card/HoverCardContent.vue create mode 100644 packages/dashboard/src/components/ui/hover-card/HoverCardTrigger.vue create mode 100644 packages/dashboard/src/components/ui/hover-card/index.ts create mode 100644 packages/dashboard/src/components/ui/input/Input.vue create mode 100644 packages/dashboard/src/components/ui/input/index.ts create mode 100644 packages/dashboard/src/components/ui/label/Label.vue create mode 100644 packages/dashboard/src/components/ui/label/index.ts create mode 100644 packages/dashboard/src/components/ui/popover/Popover.vue create mode 100644 packages/dashboard/src/components/ui/popover/PopoverContent.vue create mode 100644 packages/dashboard/src/components/ui/popover/PopoverTrigger.vue create mode 100644 packages/dashboard/src/components/ui/popover/index.ts create mode 100644 packages/dashboard/src/components/ui/separator/Separator.vue create mode 100644 packages/dashboard/src/components/ui/separator/index.ts create mode 100644 packages/dashboard/src/components/ui/switch/Switch.vue create mode 100644 packages/dashboard/src/components/ui/switch/index.ts create mode 100644 packages/dashboard/src/components/ui/tabs/Tabs.vue create mode 100644 packages/dashboard/src/components/ui/tabs/TabsContent.vue create mode 100644 packages/dashboard/src/components/ui/tabs/TabsList.vue create mode 100644 packages/dashboard/src/components/ui/tabs/TabsTrigger.vue create mode 100644 packages/dashboard/src/components/ui/tabs/index.ts create mode 100644 packages/dashboard/src/components/ui/textarea/Textarea.vue create mode 100644 packages/dashboard/src/components/ui/textarea/index.ts create mode 100644 packages/dashboard/src/lib/utils.ts create mode 100644 packages/dashboard/src/views/PlaygroundView/components/PresetSelector.vue create mode 100644 packages/dashboard/src/views/PlaygroundView/components/PresetShare.vue create mode 100644 packages/dashboard/src/views/PlaygroundView/index.vue create mode 100644 packages/dashboard/tailwind.config.js diff --git a/packages/dashboard/components.json b/packages/dashboard/components.json new file mode 100644 index 0000000..6bc51dc --- /dev/null +++ b/packages/dashboard/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://shadcn-vue.com/schema.json", + "style": "default", + "typescript": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/assets/main.css", + "baseColor": "slate", + "cssVariables": true + }, + "framework": "vite", + "aliases": { + "components": "@/components", + "utils": "@/lib/utils" + } +} diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index d92b186..e29917d 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -12,16 +12,25 @@ }, "dependencies": { "@as/shared": "workspace:^", + "@vueuse/core": "^10.9.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.0", + "lucide-vue-next": "^0.354.0", + "radix-vue": "^1.5.1", + "tailwind-merge": "^2.2.1", + "tailwindcss-animate": "^1.0.7", "vue": "^3.4.15", "vue-router": "^4.2.5" }, "devDependencies": { + "@radix-icons/vue": "^1.0.0", "@tsconfig/node20": "^20.1.2", "@types/node": "^20.11.10", "@vitejs/plugin-vue": "^5.0.3", "@vitejs/plugin-vue-jsx": "^3.1.0", "@vue/tsconfig": "^0.5.1", - "npm-run-all2": "^6.1.1", + "autoprefixer": "^10.4.18", + "tailwindcss": "^3.4.1", "typescript": "~5.3.0", "vite": "^5.0.11", "vue-tsc": "^1.8.27" diff --git a/packages/dashboard/src/App.vue b/packages/dashboard/src/App.vue index 7905b05..14949a0 100644 --- a/packages/dashboard/src/App.vue +++ b/packages/dashboard/src/App.vue @@ -1,85 +1,7 @@ - - + \ No newline at end of file diff --git a/packages/dashboard/src/assets/base.css b/packages/dashboard/src/assets/base.css deleted file mode 100644 index 8816868..0000000 --- a/packages/dashboard/src/assets/base.css +++ /dev/null @@ -1,86 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: - color 0.5s, - background-color 0.5s; - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/packages/dashboard/src/assets/main.css b/packages/dashboard/src/assets/main.css index 36fb845..10b7e9c 100644 --- a/packages/dashboard/src/assets/main.css +++ b/packages/dashboard/src/assets/main.css @@ -1,35 +1,78 @@ -@import './base.css'; - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - font-weight: normal; -} - -a, -.green { - text-decoration: none; - color: hsla(160, 100%, 37%, 1); - transition: 0.4s; - padding: 3px; -} - -@media (hover: hover) { - a:hover { - background-color: hsla(160, 100%, 37%, 0.2); +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --ring: 212.7 26.8% 83.9%; } } - -@media (min-width: 1024px) { - body { - display: flex; - place-items: center; + +@layer base { + * { + @apply border-border; } - - #app { - display: grid; - grid-template-columns: 1fr 1fr; - padding: 0 2rem; + body { + @apply bg-background text-foreground; } -} +} \ No newline at end of file diff --git a/packages/dashboard/src/components/HelloWorld.vue b/packages/dashboard/src/components/HelloWorld.vue deleted file mode 100644 index 38d821e..0000000 --- a/packages/dashboard/src/components/HelloWorld.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/packages/dashboard/src/components/TheWelcome.vue b/packages/dashboard/src/components/TheWelcome.vue deleted file mode 100644 index 49d8f73..0000000 --- a/packages/dashboard/src/components/TheWelcome.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/WelcomeItem.vue b/packages/dashboard/src/components/WelcomeItem.vue deleted file mode 100644 index 6d7086a..0000000 --- a/packages/dashboard/src/components/WelcomeItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/packages/dashboard/src/components/icons/IconCommunity.vue b/packages/dashboard/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/packages/dashboard/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/packages/dashboard/src/components/icons/IconDocumentation.vue b/packages/dashboard/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/packages/dashboard/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/packages/dashboard/src/components/icons/IconEcosystem.vue b/packages/dashboard/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/packages/dashboard/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/packages/dashboard/src/components/icons/IconSupport.vue b/packages/dashboard/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/packages/dashboard/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/packages/dashboard/src/components/icons/IconTooling.vue b/packages/dashboard/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/packages/dashboard/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialog.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialog.vue new file mode 100644 index 0000000..8fb30de --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialog.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogAction.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogAction.vue new file mode 100644 index 0000000..092d6cd --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogAction.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogCancel.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogCancel.vue new file mode 100644 index 0000000..9935c06 --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogCancel.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogContent.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogContent.vue new file mode 100644 index 0000000..9f09909 --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogContent.vue @@ -0,0 +1,42 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogDescription.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogDescription.vue new file mode 100644 index 0000000..9682cbb --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogDescription.vue @@ -0,0 +1,25 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogFooter.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogFooter.vue new file mode 100644 index 0000000..55d0a0e --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogFooter.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogHeader.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogHeader.vue new file mode 100644 index 0000000..c61c449 --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogHeader.vue @@ -0,0 +1,16 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTitle.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTitle.vue new file mode 100644 index 0000000..50c583d --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTitle.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTrigger.vue b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTrigger.vue new file mode 100644 index 0000000..4f5e2fd --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/AlertDialogTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/alert-dialog/index.ts b/packages/dashboard/src/components/ui/alert-dialog/index.ts new file mode 100644 index 0000000..91d138a --- /dev/null +++ b/packages/dashboard/src/components/ui/alert-dialog/index.ts @@ -0,0 +1,9 @@ +export { default as AlertDialog } from './AlertDialog.vue' +export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue' +export { default as AlertDialogContent } from './AlertDialogContent.vue' +export { default as AlertDialogHeader } from './AlertDialogHeader.vue' +export { default as AlertDialogTitle } from './AlertDialogTitle.vue' +export { default as AlertDialogDescription } from './AlertDialogDescription.vue' +export { default as AlertDialogFooter } from './AlertDialogFooter.vue' +export { default as AlertDialogAction } from './AlertDialogAction.vue' +export { default as AlertDialogCancel } from './AlertDialogCancel.vue' diff --git a/packages/dashboard/src/components/ui/button/Button.vue b/packages/dashboard/src/components/ui/button/Button.vue new file mode 100644 index 0000000..a764102 --- /dev/null +++ b/packages/dashboard/src/components/ui/button/Button.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/dashboard/src/components/ui/button/index.ts b/packages/dashboard/src/components/ui/button/index.ts new file mode 100644 index 0000000..e18f26b --- /dev/null +++ b/packages/dashboard/src/components/ui/button/index.ts @@ -0,0 +1,34 @@ +import { type VariantProps, cva } from 'class-variance-authority' + +export { default as Button } from './Button.vue' + +export const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: + 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +export type ButtonVariants = VariantProps diff --git a/packages/dashboard/src/components/ui/dialog/Dialog.vue b/packages/dashboard/src/components/ui/dialog/Dialog.vue new file mode 100644 index 0000000..a04c026 --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/Dialog.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogClose.vue b/packages/dashboard/src/components/ui/dialog/DialogClose.vue new file mode 100644 index 0000000..a64703e --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogClose.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogContent.vue b/packages/dashboard/src/components/ui/dialog/DialogContent.vue new file mode 100644 index 0000000..7b3aeab --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogContent.vue @@ -0,0 +1,50 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogDescription.vue b/packages/dashboard/src/components/ui/dialog/DialogDescription.vue new file mode 100644 index 0000000..3637b7e --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogDescription.vue @@ -0,0 +1,24 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogFooter.vue b/packages/dashboard/src/components/ui/dialog/DialogFooter.vue new file mode 100644 index 0000000..ac2d0c1 --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogFooter.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogHeader.vue b/packages/dashboard/src/components/ui/dialog/DialogHeader.vue new file mode 100644 index 0000000..b2c9085 --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogHeader.vue @@ -0,0 +1,16 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogScrollContent.vue b/packages/dashboard/src/components/ui/dialog/DialogScrollContent.vue new file mode 100644 index 0000000..cd9ba0d --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogScrollContent.vue @@ -0,0 +1,59 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogTitle.vue b/packages/dashboard/src/components/ui/dialog/DialogTitle.vue new file mode 100644 index 0000000..1bb4046 --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogTitle.vue @@ -0,0 +1,29 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/DialogTrigger.vue b/packages/dashboard/src/components/ui/dialog/DialogTrigger.vue new file mode 100644 index 0000000..ee0c12f --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/DialogTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/dialog/index.ts b/packages/dashboard/src/components/ui/dialog/index.ts new file mode 100644 index 0000000..847e999 --- /dev/null +++ b/packages/dashboard/src/components/ui/dialog/index.ts @@ -0,0 +1,9 @@ +export { default as Dialog } from './Dialog.vue' +export { default as DialogClose } from './DialogClose.vue' +export { default as DialogTrigger } from './DialogTrigger.vue' +export { default as DialogHeader } from './DialogHeader.vue' +export { default as DialogTitle } from './DialogTitle.vue' +export { default as DialogDescription } from './DialogDescription.vue' +export { default as DialogContent } from './DialogContent.vue' +export { default as DialogScrollContent } from './DialogScrollContent.vue' +export { default as DialogFooter } from './DialogFooter.vue' diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenu.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenu.vue new file mode 100644 index 0000000..b83d90b --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenu.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue new file mode 100644 index 0000000..cd21fde --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue @@ -0,0 +1,40 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuContent.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuContent.vue new file mode 100644 index 0000000..b33d58e --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuContent.vue @@ -0,0 +1,38 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuGroup.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuGroup.vue new file mode 100644 index 0000000..3f20135 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuGroup.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuItem.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuItem.vue new file mode 100644 index 0000000..3360e87 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuItem.vue @@ -0,0 +1,28 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuLabel.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuLabel.vue new file mode 100644 index 0000000..ecf9b2f --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuLabel.vue @@ -0,0 +1,24 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue new file mode 100644 index 0000000..4a72790 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue new file mode 100644 index 0000000..c8b9029 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue @@ -0,0 +1,41 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue new file mode 100644 index 0000000..fc51205 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue new file mode 100644 index 0000000..abaeda6 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSub.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSub.vue new file mode 100644 index 0000000..e0f4bd7 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSub.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue new file mode 100644 index 0000000..446f9fb --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue @@ -0,0 +1,30 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue new file mode 100644 index 0000000..3474553 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue new file mode 100644 index 0000000..8efd5a9 --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue @@ -0,0 +1,13 @@ + + + diff --git a/packages/dashboard/src/components/ui/dropdown-menu/index.ts b/packages/dashboard/src/components/ui/dropdown-menu/index.ts new file mode 100644 index 0000000..6f9446c --- /dev/null +++ b/packages/dashboard/src/components/ui/dropdown-menu/index.ts @@ -0,0 +1,16 @@ +export { DropdownMenuPortal } from 'radix-vue' + +export { default as DropdownMenu } from './DropdownMenu.vue' +export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue' +export { default as DropdownMenuContent } from './DropdownMenuContent.vue' +export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue' +export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue' +export { default as DropdownMenuItem } from './DropdownMenuItem.vue' +export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue' +export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue' +export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue' +export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue' +export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue' +export { default as DropdownMenuSub } from './DropdownMenuSub.vue' +export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue' +export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue' diff --git a/packages/dashboard/src/components/ui/hover-card/HoverCard.vue b/packages/dashboard/src/components/ui/hover-card/HoverCard.vue new file mode 100644 index 0000000..5c6d903 --- /dev/null +++ b/packages/dashboard/src/components/ui/hover-card/HoverCard.vue @@ -0,0 +1,13 @@ + + + diff --git a/packages/dashboard/src/components/ui/hover-card/HoverCardContent.vue b/packages/dashboard/src/components/ui/hover-card/HoverCardContent.vue new file mode 100644 index 0000000..8affac4 --- /dev/null +++ b/packages/dashboard/src/components/ui/hover-card/HoverCardContent.vue @@ -0,0 +1,41 @@ + + + diff --git a/packages/dashboard/src/components/ui/hover-card/HoverCardTrigger.vue b/packages/dashboard/src/components/ui/hover-card/HoverCardTrigger.vue new file mode 100644 index 0000000..3e300b9 --- /dev/null +++ b/packages/dashboard/src/components/ui/hover-card/HoverCardTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/hover-card/index.ts b/packages/dashboard/src/components/ui/hover-card/index.ts new file mode 100644 index 0000000..c7bfd32 --- /dev/null +++ b/packages/dashboard/src/components/ui/hover-card/index.ts @@ -0,0 +1,3 @@ +export { default as HoverCard } from './HoverCard.vue' +export { default as HoverCardTrigger } from './HoverCardTrigger.vue' +export { default as HoverCardContent } from './HoverCardContent.vue' diff --git a/packages/dashboard/src/components/ui/input/Input.vue b/packages/dashboard/src/components/ui/input/Input.vue new file mode 100644 index 0000000..39c9cee --- /dev/null +++ b/packages/dashboard/src/components/ui/input/Input.vue @@ -0,0 +1,24 @@ + + + diff --git a/packages/dashboard/src/components/ui/input/index.ts b/packages/dashboard/src/components/ui/input/index.ts new file mode 100644 index 0000000..a691dd6 --- /dev/null +++ b/packages/dashboard/src/components/ui/input/index.ts @@ -0,0 +1 @@ +export { default as Input } from './Input.vue' diff --git a/packages/dashboard/src/components/ui/label/Label.vue b/packages/dashboard/src/components/ui/label/Label.vue new file mode 100644 index 0000000..8fba8db --- /dev/null +++ b/packages/dashboard/src/components/ui/label/Label.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/dashboard/src/components/ui/label/index.ts b/packages/dashboard/src/components/ui/label/index.ts new file mode 100644 index 0000000..572c2f0 --- /dev/null +++ b/packages/dashboard/src/components/ui/label/index.ts @@ -0,0 +1 @@ +export { default as Label } from './Label.vue' diff --git a/packages/dashboard/src/components/ui/popover/Popover.vue b/packages/dashboard/src/components/ui/popover/Popover.vue new file mode 100644 index 0000000..1a5873a --- /dev/null +++ b/packages/dashboard/src/components/ui/popover/Popover.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/dashboard/src/components/ui/popover/PopoverContent.vue b/packages/dashboard/src/components/ui/popover/PopoverContent.vue new file mode 100644 index 0000000..e691fe8 --- /dev/null +++ b/packages/dashboard/src/components/ui/popover/PopoverContent.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/dashboard/src/components/ui/popover/PopoverTrigger.vue b/packages/dashboard/src/components/ui/popover/PopoverTrigger.vue new file mode 100644 index 0000000..22f4772 --- /dev/null +++ b/packages/dashboard/src/components/ui/popover/PopoverTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/packages/dashboard/src/components/ui/popover/index.ts b/packages/dashboard/src/components/ui/popover/index.ts new file mode 100644 index 0000000..495d55a --- /dev/null +++ b/packages/dashboard/src/components/ui/popover/index.ts @@ -0,0 +1,3 @@ +export { default as Popover } from './Popover.vue' +export { default as PopoverTrigger } from './PopoverTrigger.vue' +export { default as PopoverContent } from './PopoverContent.vue' diff --git a/packages/dashboard/src/components/ui/separator/Separator.vue b/packages/dashboard/src/components/ui/separator/Separator.vue new file mode 100644 index 0000000..791626c --- /dev/null +++ b/packages/dashboard/src/components/ui/separator/Separator.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/dashboard/src/components/ui/separator/index.ts b/packages/dashboard/src/components/ui/separator/index.ts new file mode 100644 index 0000000..2287bcb --- /dev/null +++ b/packages/dashboard/src/components/ui/separator/index.ts @@ -0,0 +1 @@ +export { default as Separator } from './Separator.vue' diff --git a/packages/dashboard/src/components/ui/switch/Switch.vue b/packages/dashboard/src/components/ui/switch/Switch.vue new file mode 100644 index 0000000..f2ee993 --- /dev/null +++ b/packages/dashboard/src/components/ui/switch/Switch.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/dashboard/src/components/ui/switch/index.ts b/packages/dashboard/src/components/ui/switch/index.ts new file mode 100644 index 0000000..87b4b17 --- /dev/null +++ b/packages/dashboard/src/components/ui/switch/index.ts @@ -0,0 +1 @@ +export { default as Switch } from './Switch.vue' diff --git a/packages/dashboard/src/components/ui/tabs/Tabs.vue b/packages/dashboard/src/components/ui/tabs/Tabs.vue new file mode 100644 index 0000000..2fa0971 --- /dev/null +++ b/packages/dashboard/src/components/ui/tabs/Tabs.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/dashboard/src/components/ui/tabs/TabsContent.vue b/packages/dashboard/src/components/ui/tabs/TabsContent.vue new file mode 100644 index 0000000..c0aa0f3 --- /dev/null +++ b/packages/dashboard/src/components/ui/tabs/TabsContent.vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/dashboard/src/components/ui/tabs/TabsList.vue b/packages/dashboard/src/components/ui/tabs/TabsList.vue new file mode 100644 index 0000000..9644cdc --- /dev/null +++ b/packages/dashboard/src/components/ui/tabs/TabsList.vue @@ -0,0 +1,25 @@ + + + diff --git a/packages/dashboard/src/components/ui/tabs/TabsTrigger.vue b/packages/dashboard/src/components/ui/tabs/TabsTrigger.vue new file mode 100644 index 0000000..5fa6748 --- /dev/null +++ b/packages/dashboard/src/components/ui/tabs/TabsTrigger.vue @@ -0,0 +1,27 @@ + + + diff --git a/packages/dashboard/src/components/ui/tabs/index.ts b/packages/dashboard/src/components/ui/tabs/index.ts new file mode 100644 index 0000000..fbea0c6 --- /dev/null +++ b/packages/dashboard/src/components/ui/tabs/index.ts @@ -0,0 +1,4 @@ +export { default as Tabs } from './Tabs.vue' +export { default as TabsTrigger } from './TabsTrigger.vue' +export { default as TabsList } from './TabsList.vue' +export { default as TabsContent } from './TabsContent.vue' diff --git a/packages/dashboard/src/components/ui/textarea/Textarea.vue b/packages/dashboard/src/components/ui/textarea/Textarea.vue new file mode 100644 index 0000000..b72cb7e --- /dev/null +++ b/packages/dashboard/src/components/ui/textarea/Textarea.vue @@ -0,0 +1,24 @@ + + +