├── .github └── FUNDING.yml ├── .gitignore ├── .prettierrc ├── .vscode └── extensions.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── components.d.ts ├── index.html ├── package.json ├── packages ├── ColorWheel.vue ├── index.ts ├── types.ts └── utils.ts ├── pnpm-lock.yaml ├── public ├── logo.svg └── preview.jpg ├── src ├── App.vue ├── assets │ └── highlight.scss ├── components │ ├── GradientAnimation.vue │ └── Logo.vue ├── composables │ └── useDarkmode.ts ├── main.ts ├── plugins │ └── highlight.ts └── vite-env.d.ts ├── tsconfig.build.json ├── tsconfig.json ├── tsconfig.node.json ├── unocss.config.ts └── vite.config.ts /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [xiaoluoboding] 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | lib 13 | dist-ssr 14 | *.local 15 | 16 | # Editor directories and files 17 | .vscode/* 18 | !.vscode/extensions.json 19 | .idea 20 | .DS_Store 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "singleQuote": true, 5 | "semi": false, 6 | "trailingComma": "none", 7 | "printWidth": 80 8 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.1.1](https://github.com/xiaoluoboding/vue-color-wheel/compare/v0.1.0...v0.1.1) (2024-05-20) 2 | 3 | 4 | ### Features 5 | 6 | * add click handle for wheel ([9b6c38e](https://github.com/xiaoluoboding/vue-color-wheel/commit/9b6c38ed1abe2deb933673ca8b44041161e271a4)) 7 | * add og image ([33fd37e](https://github.com/xiaoluoboding/vue-color-wheel/commit/33fd37e57d25e0ff2fc4f7c9d19bf04533a947d7)) 8 | * extract the component ([3aa2cd5](https://github.com/xiaoluoboding/vue-color-wheel/commit/3aa2cd5f58a611b7af96ea10e226669922c78fa0)) 9 | 10 | 11 | 12 | # [0.1.0](https://github.com/xiaoluoboding/vue-color-wheel/compare/e88c856bf6ed72d0b338a903cfaa6060538e6382...v0.1.0) (2024-02-25) 13 | 14 | 15 | ### Bug Fixes 16 | 17 | * fixed the offset ([a33af69](https://github.com/xiaoluoboding/vue-color-wheel/commit/a33af69d8af5e74fe9acfe69a3a82cd66a40d656)) 18 | 19 | 20 | ### Features 21 | 22 | * add docs ([a22a987](https://github.com/xiaoluoboding/vue-color-wheel/commit/a22a987cfc59a743066bd66ee917bdb9e9ec197f)) 23 | * add gradient mesh ([286001f](https://github.com/xiaoluoboding/vue-color-wheel/commit/286001fc939d692a887eff6a48114bead90a9c87)) 24 | * add monochromatic type ([e88c856](https://github.com/xiaoluoboding/vue-color-wheel/commit/e88c856bf6ed72d0b338a903cfaa6060538e6382)) 25 | * **core:** add click handle on tracker ([ad658a4](https://github.com/xiaoluoboding/vue-color-wheel/commit/ad658a4103f7436b805121b0eba9f1d154afb0c0)) 26 | * **core:** add showBrightness api ([77fa327](https://github.com/xiaoluoboding/vue-color-wheel/commit/77fa3272c4a1fa3be855f74b194576d43dad45a9)) 27 | * **core:** finish brightness wheel ([a5601dd](https://github.com/xiaoluoboding/vue-color-wheel/commit/a5601dd775828d90cfc53f9a74d1dced55d723d1)) 28 | * **core:** support brightness wheel ([1359bb3](https://github.com/xiaoluoboding/vue-color-wheel/commit/1359bb3af733583bfc2c575387354029b39cadfe)) 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Robert Shaw 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Color Wheel 2 | 3 | [![NPM][npmBadge]][npmUrl] 4 | [![Minzip Package][bundlePhobiaBadge]][bundlePhobiaUrl] 5 | [![NPM Download][npmDtBadge]][npmDtUrl] 6 | 7 | [npmBadge]: https://img.shields.io/npm/v/vue-color-wheel.svg?maxAge=2592000 8 | [npmUrl]: https://www.npmjs.com/package/vue-color-wheel 9 | [npmDtBadge]: https://img.shields.io/npm/dt/vue-color-wheel.svg 10 | [npmDtUrl]: https://www.npmjs.com/package/vue-color-wheel 11 | [bundlePhobiaBadge]: https://img.shields.io/bundlephobia/minzip/vue-color-wheel 12 | [bundlePhobiaUrl]: https://bundlephobia.com/package/vue-color-wheel@latest 13 | 14 | > A Color Wheel Picker for Vue, built on top of Vite & Vue 3 15 | 16 | ## Table of Contents 17 | 18 |
19 | 20 | TOC 21 | 22 | - [Vue Color Wheel](#vue-color-wheel) 23 | - [Table of Contents](#table-of-contents) 24 | - [Concept](#concept) 25 | - [Usage](#usage) 26 | - [Install](#install) 27 | - [Add to Project](#add-to-project) 28 | - [Color combinations](#color-combinations) 29 | - [Complementary](#complementary) 30 | - [Monochromatic](#monochromatic) 31 | - [Analogous](#analogous) 32 | - [Triadic](#triadic) 33 | - [Tetradic (Square)](#tetradic-square) 34 | - [License](#license) 35 | 36 |
37 | 38 | ## Concept 39 | 40 | Why using color wheel picker? Color Wheel makes color combinations easy. 41 | 42 | A color wheel picker is a helpful tool for selecting colors by visually showing relationships between different colors, aiding in choosing `harmonious color` schemes for designs. It allows adjusting parameters like hue, saturation, and brightness for more control over color selection, streamlining the process for creating visually appealing designs. 43 | 44 | ## Usage 45 | 46 | ### Install 47 | 48 | ```bash 49 | > pnpm i vue-color-wheel 50 | ``` 51 | 52 | ### Add to Project 53 | 54 | ```vue 55 | 67 | 68 | 80 | ``` 81 | 82 | ## Color combinations 83 | 84 | ### Complementary 85 | 86 | Two colors that are on opposite sides of the color wheel. This combination provides a high contrast and high impact color combination – together, these colors will appear brighter and more prominent. 87 | 88 | ### Monochromatic 89 | 90 | Three shades, tones and tints of one base color. Provides a subtle and conservative color combination. This is a versatile color combination that is easy to apply to design projects for a harmonious look. 91 | 92 | ### Analogous 93 | 94 | Three colors that are side by side on the color wheel. This color combination is versatile, but can be overwhelming. To balance an analogous color scheme, choose one dominant color, and use the others as accents. 95 | 96 | ### Triadic 97 | 98 | Three colors that are evenly spaced on the color wheel. This provides a high contrast color scheme, but less so than the complementary color combination — making it more versatile. This combination creates bold, vibrant color palettes. 99 | 100 | ### Tetradic (Square) 101 | 102 | Four colors that are evenly spaced on the color wheel. Tetradic color schemes are bold and work best if you let one color be dominant, and use the others as accents. The more colors you have in your palette, the more difficult it is to balance. 103 | 104 | ## License 105 | 106 | MIT [@xiaoluoboding](https://github.com/xiaoluoboding) 107 | -------------------------------------------------------------------------------- /components.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | /* prettier-ignore */ 3 | // @ts-nocheck 4 | // Generated by unplugin-vue-components 5 | // Read more: https://github.com/vuejs/core/pull/3399 6 | export {} 7 | 8 | declare module 'vue' { 9 | export interface GlobalComponents { 10 | GradientAnimation: typeof import('./src/components/GradientAnimation.vue')['default'] 11 | Logo: typeof import('./src/components/Logo.vue')['default'] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vue Color Wheel 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-color-wheel", 3 | "description": "A Color Wheel Picker for Vue", 4 | "version": "0.1.1", 5 | "type": "module", 6 | "author": "xiaoluoboding ", 7 | "scripts": { 8 | "dev": "vite --port 2423", 9 | "build:docs": "vite build --mode docs", 10 | "build:lib": "vite build --mode lib && vue-tsc -p tsconfig.build.json", 11 | "preview": "vite preview", 12 | "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", 13 | "release": "pnpm run build:lib && npm publish" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/xiaoluoboding/vue-color-wheel.git" 18 | }, 19 | "homepage": "https://github.com/xiaoluoboding/vue-color-wheel", 20 | "files": [ 21 | "lib" 22 | ], 23 | "main": "./lib/vue-color-wheel.umd.cjs", 24 | "module": "./lib/vue-color-wheel.js", 25 | "exports": { 26 | ".": { 27 | "import": "./lib/vue-color-wheel.js", 28 | "require": "./lib/vue-color-wheel.umd.cjs", 29 | "types": "./lib/index.d.ts" 30 | } 31 | }, 32 | "types": "./lib/index.d.ts", 33 | "devDependencies": { 34 | "@iconify/json": "^2.2.212", 35 | "@types/node": "^18.19.33", 36 | "@types/web-bluetooth": "^0.0.20", 37 | "@unocss/reset": "^0.55.7", 38 | "@vitejs/plugin-vue": "^4.6.2", 39 | "@vueuse/core": "9.13.0", 40 | "clean-css": "^5.3.3", 41 | "highlight.js": "^11.9.0", 42 | "sass": "^1.77.2", 43 | "typescript": "^4.9.5", 44 | "unocss": "^0.55.7", 45 | "unplugin-icons": "^0.16.6", 46 | "unplugin-vue-components": "^0.25.2", 47 | "vite": "^4.5.3", 48 | "vue": "^3.4.27", 49 | "vue-tsc": "^1.8.27" 50 | }, 51 | "dependencies": { 52 | "colord": "^2.9.3", 53 | "gsap": "^3.12.5", 54 | "moveable": "^0.53.0", 55 | "vue-sonner": "^1.1.2" 56 | } 57 | } -------------------------------------------------------------------------------- /packages/ColorWheel.vue: -------------------------------------------------------------------------------- 1 | 151 | 152 | 516 | 517 | 612 | -------------------------------------------------------------------------------- /packages/index.ts: -------------------------------------------------------------------------------- 1 | export { default as VueColorWheel } from './ColorWheel.vue' 2 | export * from './utils' 3 | export * from './types' 4 | -------------------------------------------------------------------------------- /packages/types.ts: -------------------------------------------------------------------------------- 1 | import { harmonies } from './utils' 2 | 3 | export type HarmonyColor = { 4 | hue: number 5 | saturation: number 6 | value: number 7 | } 8 | 9 | export type ColorWheelProps = { 10 | radius: number 11 | harmony: HarmonyType 12 | wheel: WheelType 13 | showBrightness: boolean 14 | color?: string 15 | defaultColor?: string 16 | } 17 | 18 | export type Harmony = { 19 | x: number 20 | y: number 21 | h: number 22 | s: number 23 | v: number 24 | rgb: string 25 | } 26 | 27 | export type HarmonyType = keyof typeof harmonies 28 | 29 | export type WheelType = 'aurora' | 'spectrum' 30 | -------------------------------------------------------------------------------- /packages/utils.ts: -------------------------------------------------------------------------------- 1 | import { colord, extend } from 'colord' 2 | import mixPlugin from 'colord/plugins/mix' 3 | 4 | extend([mixPlugin]) 5 | 6 | export const harmonies = { 7 | complementary: [180], 8 | analogous: [-30, 30], 9 | split: [-150, 150], 10 | triad: [120, 240], 11 | tetradic: [60, 180, 240], 12 | square: [90, 180, 270], 13 | compound: [30, 150, 180], 14 | // doubleAnalogous: [-60, -30, 30, 60] 15 | monochromatic: [360, 720], 16 | doubleSplit: [-150, -30, 30, 150] 17 | } as const 18 | 19 | export const xy2polar = (x: number, y: number): [number, number] => { 20 | let r = Math.sqrt(x * x + y * y) 21 | let phi = Math.atan2(y, x) 22 | return [r, phi] 23 | } 24 | 25 | export const polar2xy = (r: number, phi: number): [number, number] => { 26 | let x = r * Math.cos(phi) 27 | let y = r * Math.sin(phi) 28 | return [x, y] 29 | } 30 | 31 | export const rad2deg = (rad: number) => { 32 | return ((rad + Math.PI) / (2 * Math.PI)) * 360 33 | } 34 | 35 | export const deg2rad = (hue: number) => { 36 | return hue * (Math.PI / 180) 37 | } 38 | 39 | // hue in range [0, 360] 40 | // saturation, value in range [0,1] 41 | // return [r,g,b] each in range [0,255] 42 | // See: https://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV 43 | export const hsv2rgb = (hue: number, saturation: number, value: number) => { 44 | const hsv = { 45 | h: hue, 46 | s: saturation * 100, 47 | v: value * 100 48 | } 49 | 50 | return value === 1 51 | ? colord(hsv).toRgb() 52 | : colord(hsv).mix('#ffffff', value).toRgb() 53 | } 54 | 55 | export const hex2hsv = (color: string) => { 56 | const { h, s, v } = colord(color).toHsv() 57 | return { 58 | hue: h, 59 | saturation: s / 100, 60 | value: v / 100 61 | } 62 | } 63 | 64 | export const xy2rgb = ( 65 | x: number, 66 | y: number, 67 | radius: number, 68 | brightness = 1 69 | ) => { 70 | x -= radius 71 | y -= radius 72 | 73 | const [r, phi] = xy2polar(x, y) 74 | 75 | const hue = rad2deg(phi) 76 | const saturation = (r / radius) * 100 77 | const value = brightness * 100 78 | 79 | const hsv = { 80 | h: hue, 81 | s: saturation, 82 | v: value 83 | } 84 | 85 | return colord(hsv).toRgb() 86 | } 87 | 88 | export const hsv2xy = ( 89 | hue: number, 90 | saturation: number, 91 | value: number, 92 | radius: number 93 | ) => { 94 | const adjustedHue = hue - 180 95 | const [r, phi] = polar2xy(radius * saturation, deg2rad(adjustedHue)) 96 | return { 97 | x: r + radius, 98 | y: phi + radius 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | colord: 12 | specifier: ^2.9.3 13 | version: 2.9.3 14 | gsap: 15 | specifier: ^3.12.5 16 | version: 3.12.5 17 | moveable: 18 | specifier: ^0.53.0 19 | version: 0.53.0 20 | vue-sonner: 21 | specifier: ^1.1.2 22 | version: 1.1.2 23 | devDependencies: 24 | '@iconify/json': 25 | specifier: ^2.2.212 26 | version: 2.2.212 27 | '@types/node': 28 | specifier: ^18.19.33 29 | version: 18.19.33 30 | '@types/web-bluetooth': 31 | specifier: ^0.0.20 32 | version: 0.0.20 33 | '@unocss/reset': 34 | specifier: ^0.55.7 35 | version: 0.55.7 36 | '@vitejs/plugin-vue': 37 | specifier: ^4.6.2 38 | version: 4.6.2(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2))(vue@3.4.27(typescript@4.9.5)) 39 | '@vueuse/core': 40 | specifier: 9.13.0 41 | version: 9.13.0(vue@3.4.27(typescript@4.9.5)) 42 | clean-css: 43 | specifier: ^5.3.3 44 | version: 5.3.3 45 | highlight.js: 46 | specifier: ^11.9.0 47 | version: 11.9.0 48 | sass: 49 | specifier: ^1.77.2 50 | version: 1.77.2 51 | typescript: 52 | specifier: ^4.9.5 53 | version: 4.9.5 54 | unocss: 55 | specifier: ^0.55.7 56 | version: 0.55.7(postcss@8.4.38)(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2)) 57 | unplugin-icons: 58 | specifier: ^0.16.6 59 | version: 0.16.6(@vue/compiler-sfc@3.4.27)(vue-template-compiler@2.7.16) 60 | unplugin-vue-components: 61 | specifier: ^0.25.2 62 | version: 0.25.2(@babel/parser@7.24.5)(rollup@3.29.4)(vue@3.4.27(typescript@4.9.5)) 63 | vite: 64 | specifier: ^4.5.3 65 | version: 4.5.3(@types/node@18.19.33)(sass@1.77.2) 66 | vue: 67 | specifier: ^3.4.27 68 | version: 3.4.27(typescript@4.9.5) 69 | vue-tsc: 70 | specifier: ^1.8.27 71 | version: 1.8.27(typescript@4.9.5) 72 | 73 | packages: 74 | 75 | '@ampproject/remapping@2.3.0': 76 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 77 | engines: {node: '>=6.0.0'} 78 | 79 | '@antfu/install-pkg@0.1.1': 80 | resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} 81 | 82 | '@antfu/utils@0.7.8': 83 | resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==} 84 | 85 | '@babel/helper-string-parser@7.24.1': 86 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 87 | engines: {node: '>=6.9.0'} 88 | 89 | '@babel/helper-validator-identifier@7.24.5': 90 | resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} 91 | engines: {node: '>=6.9.0'} 92 | 93 | '@babel/parser@7.24.5': 94 | resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} 95 | engines: {node: '>=6.0.0'} 96 | hasBin: true 97 | 98 | '@babel/types@7.24.5': 99 | resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} 100 | engines: {node: '>=6.9.0'} 101 | 102 | '@cfcs/core@0.0.6': 103 | resolution: {integrity: sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==} 104 | 105 | '@daybrush/utils@1.13.0': 106 | resolution: {integrity: sha512-ALK12C6SQNNHw1enXK+UO8bdyQ+jaWNQ1Af7Z3FNxeAwjYhQT7do+TRE4RASAJ3ObaS2+TJ7TXR3oz2Gzbw0PQ==} 107 | 108 | '@egjs/agent@2.4.3': 109 | resolution: {integrity: sha512-XvksSENe8wPeFlEVouvrOhKdx8HMniJ3by7sro2uPF3M6QqWwjzVcmvwoPtdjiX8O1lfRoLhQMp1a7NGlVTdIA==} 110 | 111 | '@egjs/children-differ@1.0.1': 112 | resolution: {integrity: sha512-DRvyqMf+CPCOzAopQKHtW+X8iN6Hy6SFol+/7zCUiE5y4P/OB8JP8FtU4NxtZwtafvSL4faD5KoQYPj3JHzPFQ==} 113 | 114 | '@egjs/component@3.0.5': 115 | resolution: {integrity: sha512-cLcGizTrrUNA2EYE3MBmEDt2tQv1joVP1Q3oDisZ5nw0MZDx2kcgEXM+/kZpfa/PAkFvYVhRUZwytIQWoN3V/w==} 116 | 117 | '@egjs/list-differ@1.0.1': 118 | resolution: {integrity: sha512-OTFTDQcWS+1ZREOdCWuk5hCBgYO4OsD30lXcOCyVOAjXMhgL5rBRDnt/otb6Nz8CzU0L/igdcaQBDLWc4t9gvg==} 119 | 120 | '@esbuild/android-arm64@0.18.20': 121 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 122 | engines: {node: '>=12'} 123 | cpu: [arm64] 124 | os: [android] 125 | 126 | '@esbuild/android-arm@0.18.20': 127 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 128 | engines: {node: '>=12'} 129 | cpu: [arm] 130 | os: [android] 131 | 132 | '@esbuild/android-x64@0.18.20': 133 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 134 | engines: {node: '>=12'} 135 | cpu: [x64] 136 | os: [android] 137 | 138 | '@esbuild/darwin-arm64@0.18.20': 139 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 140 | engines: {node: '>=12'} 141 | cpu: [arm64] 142 | os: [darwin] 143 | 144 | '@esbuild/darwin-x64@0.18.20': 145 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 146 | engines: {node: '>=12'} 147 | cpu: [x64] 148 | os: [darwin] 149 | 150 | '@esbuild/freebsd-arm64@0.18.20': 151 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 152 | engines: {node: '>=12'} 153 | cpu: [arm64] 154 | os: [freebsd] 155 | 156 | '@esbuild/freebsd-x64@0.18.20': 157 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 158 | engines: {node: '>=12'} 159 | cpu: [x64] 160 | os: [freebsd] 161 | 162 | '@esbuild/linux-arm64@0.18.20': 163 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 164 | engines: {node: '>=12'} 165 | cpu: [arm64] 166 | os: [linux] 167 | 168 | '@esbuild/linux-arm@0.18.20': 169 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 170 | engines: {node: '>=12'} 171 | cpu: [arm] 172 | os: [linux] 173 | 174 | '@esbuild/linux-ia32@0.18.20': 175 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 176 | engines: {node: '>=12'} 177 | cpu: [ia32] 178 | os: [linux] 179 | 180 | '@esbuild/linux-loong64@0.18.20': 181 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 182 | engines: {node: '>=12'} 183 | cpu: [loong64] 184 | os: [linux] 185 | 186 | '@esbuild/linux-mips64el@0.18.20': 187 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 188 | engines: {node: '>=12'} 189 | cpu: [mips64el] 190 | os: [linux] 191 | 192 | '@esbuild/linux-ppc64@0.18.20': 193 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 194 | engines: {node: '>=12'} 195 | cpu: [ppc64] 196 | os: [linux] 197 | 198 | '@esbuild/linux-riscv64@0.18.20': 199 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 200 | engines: {node: '>=12'} 201 | cpu: [riscv64] 202 | os: [linux] 203 | 204 | '@esbuild/linux-s390x@0.18.20': 205 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 206 | engines: {node: '>=12'} 207 | cpu: [s390x] 208 | os: [linux] 209 | 210 | '@esbuild/linux-x64@0.18.20': 211 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [linux] 215 | 216 | '@esbuild/netbsd-x64@0.18.20': 217 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 218 | engines: {node: '>=12'} 219 | cpu: [x64] 220 | os: [netbsd] 221 | 222 | '@esbuild/openbsd-x64@0.18.20': 223 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 224 | engines: {node: '>=12'} 225 | cpu: [x64] 226 | os: [openbsd] 227 | 228 | '@esbuild/sunos-x64@0.18.20': 229 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [sunos] 233 | 234 | '@esbuild/win32-arm64@0.18.20': 235 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 236 | engines: {node: '>=12'} 237 | cpu: [arm64] 238 | os: [win32] 239 | 240 | '@esbuild/win32-ia32@0.18.20': 241 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 242 | engines: {node: '>=12'} 243 | cpu: [ia32] 244 | os: [win32] 245 | 246 | '@esbuild/win32-x64@0.18.20': 247 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [win32] 251 | 252 | '@iconify/json@2.2.212': 253 | resolution: {integrity: sha512-d1IXjpbSwk8V3C9D+mruRTJRPqZZpCnOWh9zyG/Zc5zJmPDLBEHNTKz+ZmeiJQ6LdzgjwLJai1WgFvt1HWVIPw==} 254 | 255 | '@iconify/types@2.0.0': 256 | resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} 257 | 258 | '@iconify/utils@2.1.23': 259 | resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==} 260 | 261 | '@jridgewell/gen-mapping@0.3.5': 262 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 263 | engines: {node: '>=6.0.0'} 264 | 265 | '@jridgewell/resolve-uri@3.1.2': 266 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 267 | engines: {node: '>=6.0.0'} 268 | 269 | '@jridgewell/set-array@1.2.1': 270 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 271 | engines: {node: '>=6.0.0'} 272 | 273 | '@jridgewell/sourcemap-codec@1.4.15': 274 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 275 | 276 | '@jridgewell/trace-mapping@0.3.25': 277 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 278 | 279 | '@nodelib/fs.scandir@2.1.5': 280 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 281 | engines: {node: '>= 8'} 282 | 283 | '@nodelib/fs.stat@2.0.5': 284 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 285 | engines: {node: '>= 8'} 286 | 287 | '@nodelib/fs.walk@1.2.8': 288 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 289 | engines: {node: '>= 8'} 290 | 291 | '@polka/url@1.0.0-next.25': 292 | resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 293 | 294 | '@rollup/pluginutils@5.1.0': 295 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 296 | engines: {node: '>=14.0.0'} 297 | peerDependencies: 298 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 299 | peerDependenciesMeta: 300 | rollup: 301 | optional: true 302 | 303 | '@scena/dragscroll@1.4.0': 304 | resolution: {integrity: sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==} 305 | 306 | '@scena/event-emitter@1.0.5': 307 | resolution: {integrity: sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==} 308 | 309 | '@scena/matrix@1.1.1': 310 | resolution: {integrity: sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==} 311 | 312 | '@types/estree@1.0.5': 313 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 314 | 315 | '@types/node@18.19.33': 316 | resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} 317 | 318 | '@types/web-bluetooth@0.0.16': 319 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} 320 | 321 | '@types/web-bluetooth@0.0.20': 322 | resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} 323 | 324 | '@unocss/astro@0.55.7': 325 | resolution: {integrity: sha512-mw8r14ArxUQBVCCisAJlF/WsZb650iBsduD/lXMk56N/nQ3MMArCcn62kcAxgZSb5tfIOQGQu/tbR8hEcD8y2g==} 326 | peerDependencies: 327 | vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 328 | peerDependenciesMeta: 329 | vite: 330 | optional: true 331 | 332 | '@unocss/cli@0.55.7': 333 | resolution: {integrity: sha512-ZHX2SR2WQbKfcmgOOHjBLB3V57Ct76Zb76YULzBj2EVX43lX/YDCVG87n6ePDY7rOcjCAthjrFQYCLV5KVLKHg==} 334 | engines: {node: '>=14'} 335 | hasBin: true 336 | 337 | '@unocss/config@0.55.7': 338 | resolution: {integrity: sha512-+X6rPScyFEWbkZyCyM+HfoJhJNN+CEl2n2izWkm0kuDj3w9fY9B3f/0dsk+jmx/gJEI5Y797q9zspNMNDib1AA==} 339 | engines: {node: '>=14'} 340 | 341 | '@unocss/core@0.55.7': 342 | resolution: {integrity: sha512-c+bWe844Xjlwc1EPwHj0+n3LpntJG7ELPbEOOxNIG+CQdcEX0l1G0rkM8+nKstJ9WJmgpf1HdJQLVMF62HXvhw==} 343 | 344 | '@unocss/extractor-arbitrary-variants@0.55.7': 345 | resolution: {integrity: sha512-imK2g/frlo5Ag0uVB+C/Psyo5+9AnqhoRAgYa6gyrQ/TJnrnwf+M3jFngU9evIMHw92vig1DGfPa2ZId901DwQ==} 346 | 347 | '@unocss/inspector@0.55.7': 348 | resolution: {integrity: sha512-N0mjZozDDyqx8Mh6C/ZlMTlDzGiq22sXY/hPRX55Cf44WZI4W/ZWajqAAp42B+lw2MN0k1FYEMIAwn9n+xgq/g==} 349 | 350 | '@unocss/postcss@0.55.7': 351 | resolution: {integrity: sha512-53Z/yv/CNdlTqKZQ9gpYRoLZSuzQ28J0SDrGCdzwjLcvHG/FD7/x1S7yxE7cUp/4sjvLL15HSzkWq8vNy6SkwQ==} 352 | engines: {node: '>=14'} 353 | peerDependencies: 354 | postcss: ^8.4.21 355 | 356 | '@unocss/preset-attributify@0.55.7': 357 | resolution: {integrity: sha512-L1sNw3DyM4mymIm4DBTTTOllk8LmhYlWMgDlaAW2MYWygjqDCsp99wRKT2175Ya5xHYBA6XetMoBryZD23qJYQ==} 358 | 359 | '@unocss/preset-icons@0.55.7': 360 | resolution: {integrity: sha512-JXLOHkyEKKAjLTqjAxYfhwln05WXilGg3jctkZWKpMNawPaonrGt3kZT12YMuMmOryxk7UcyKB0dtYc+p3QYvw==} 361 | 362 | '@unocss/preset-mini@0.55.7': 363 | resolution: {integrity: sha512-ZCskE2uprjGkpQezEPM6KPMf84rIZEUNc1p2DxWVHaFUPRV24/JSNsO4PsKrQgNIb2dLQxzPNlMzQJI7ssdBXQ==} 364 | 365 | '@unocss/preset-tagify@0.55.7': 366 | resolution: {integrity: sha512-aDsuN3a/ZirbCDKpFsue9tc8MHs3l0Rl81n2ZOdIrJoZW4YWyydMVl++cz/HERZW81ZySK8EJKwGBaMJMgsnHA==} 367 | 368 | '@unocss/preset-typography@0.55.7': 369 | resolution: {integrity: sha512-hLV4nsgsDIk66pt7Ej4NYUmaGtI2EfGb1h2yl5FmBtdtACrgPq+Skr2Br9Iq+Bj1QFhbsMOWLDdbojFQwBdH6A==} 370 | 371 | '@unocss/preset-uno@0.55.7': 372 | resolution: {integrity: sha512-z4pCxOv/OU1ARo++cvbijWNW2zy/EVTMqJXa+SEep9b99wFXPQE3gaPvLdURp/e5f1PoxVyPZ6JiBknbClSDuA==} 373 | 374 | '@unocss/preset-web-fonts@0.55.7': 375 | resolution: {integrity: sha512-ygAz0540kdBapErW2BcObWfQT/6g0SpVUPYg92PPiZD57CZAvuNXiYTfFMRXd88QrBL1zIrZ6NrzY0NZ645H+w==} 376 | 377 | '@unocss/preset-wind@0.55.7': 378 | resolution: {integrity: sha512-vLi0mtYDnvx3uYtBR4fSCR52T59drTUp3XVAAqQTbhvRctnSWm65MWE4G+gqdt2qQ9fM4SVCsxLLaXuJkI2eqw==} 379 | 380 | '@unocss/reset@0.55.7': 381 | resolution: {integrity: sha512-yvmLhxqUNgf6wue7IvhV/FdrQW9H9LF1Bmmhwwaiz2aV0E74aN4pbuYPZwNq3YafsQvNQ0UdtuXjddY4QMRCPw==} 382 | 383 | '@unocss/scope@0.55.7': 384 | resolution: {integrity: sha512-r0CaS1aSpcC37ztqOJ3qaWIzM6zwdlX8r0rib2vTvWTckw1J0ocVhjNkWRBM9kRWte006JhecdiZzXNHA40akg==} 385 | 386 | '@unocss/transformer-attributify-jsx-babel@0.55.7': 387 | resolution: {integrity: sha512-xl5K/Zg7tLyI6Oee+xHgvBm0gSEviYdBDwaGC4O6cP9VXTBm6waz9NUU6CmmVYKh4dSeLQ1PKNboMeg2nFuJMw==} 388 | 389 | '@unocss/transformer-attributify-jsx@0.55.7': 390 | resolution: {integrity: sha512-ZyUBc0wguBhd+nbIlcrSYpmzKtqBi+8BII8SK4lIB/Ol1wBboByPTjBENsQkxRyffp5K9VTuZZ/LamFgPGOWDg==} 391 | 392 | '@unocss/transformer-compile-class@0.55.7': 393 | resolution: {integrity: sha512-tiYiT9EG4ucSBvMo+9Hv43GY0YvXQjfQCXDhDm3tcJyreMg6BRMO412eir54RBS+JAdNU0DUoITVYu+PkF7hLg==} 394 | 395 | '@unocss/transformer-directives@0.55.7': 396 | resolution: {integrity: sha512-xNmR40FssHWYJSmJv/9TQC2IdTyZPV8U3Iv/PIuke1zndMwMciclghEFiw0wSeRmhoRI7iFZck5EI/Bokyo7CQ==} 397 | 398 | '@unocss/transformer-variant-group@0.55.7': 399 | resolution: {integrity: sha512-uLyZ08XXVriUDenZCTGA3xGgMD3B9GVr6mSz002pDlLpQDi8FcMQTOGg8X4ViCGzS3l03S/+r+JY7kJTpMFa9w==} 400 | 401 | '@unocss/vite@0.55.7': 402 | resolution: {integrity: sha512-xmdyDnt9Ag4o7DGl22/P6MaB+HSjWOQw9qYYzIefSv3SVUvn3cEhIX/PCWqFp8Kts2HyvAoJLbZmygSf1XdZNQ==} 403 | peerDependencies: 404 | vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 405 | 406 | '@vitejs/plugin-vue@4.6.2': 407 | resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} 408 | engines: {node: ^14.18.0 || >=16.0.0} 409 | peerDependencies: 410 | vite: ^4.0.0 || ^5.0.0 411 | vue: ^3.2.25 412 | 413 | '@volar/language-core@1.11.1': 414 | resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} 415 | 416 | '@volar/source-map@1.11.1': 417 | resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} 418 | 419 | '@volar/typescript@1.11.1': 420 | resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} 421 | 422 | '@vue/compiler-core@3.4.27': 423 | resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} 424 | 425 | '@vue/compiler-dom@3.4.27': 426 | resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} 427 | 428 | '@vue/compiler-sfc@3.4.27': 429 | resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} 430 | 431 | '@vue/compiler-ssr@3.4.27': 432 | resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} 433 | 434 | '@vue/language-core@1.8.27': 435 | resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} 436 | peerDependencies: 437 | typescript: '*' 438 | peerDependenciesMeta: 439 | typescript: 440 | optional: true 441 | 442 | '@vue/reactivity@3.4.27': 443 | resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} 444 | 445 | '@vue/runtime-core@3.4.27': 446 | resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} 447 | 448 | '@vue/runtime-dom@3.4.27': 449 | resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} 450 | 451 | '@vue/server-renderer@3.4.27': 452 | resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} 453 | peerDependencies: 454 | vue: 3.4.27 455 | 456 | '@vue/shared@3.4.27': 457 | resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} 458 | 459 | '@vueuse/core@9.13.0': 460 | resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} 461 | 462 | '@vueuse/metadata@9.13.0': 463 | resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} 464 | 465 | '@vueuse/shared@9.13.0': 466 | resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} 467 | 468 | acorn@8.11.3: 469 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 470 | engines: {node: '>=0.4.0'} 471 | hasBin: true 472 | 473 | anymatch@3.1.3: 474 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 475 | engines: {node: '>= 8'} 476 | 477 | balanced-match@1.0.2: 478 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 479 | 480 | binary-extensions@2.3.0: 481 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 482 | engines: {node: '>=8'} 483 | 484 | brace-expansion@2.0.1: 485 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 486 | 487 | braces@3.0.2: 488 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 489 | engines: {node: '>=8'} 490 | 491 | cac@6.7.14: 492 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 493 | engines: {node: '>=8'} 494 | 495 | chokidar@3.6.0: 496 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 497 | engines: {node: '>= 8.10.0'} 498 | 499 | clean-css@5.3.3: 500 | resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} 501 | engines: {node: '>= 10.0'} 502 | 503 | colord@2.9.3: 504 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} 505 | 506 | colorette@2.0.20: 507 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 508 | 509 | computeds@0.0.1: 510 | resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} 511 | 512 | confbox@0.1.7: 513 | resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} 514 | 515 | consola@3.2.3: 516 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 517 | engines: {node: ^14.18.0 || >=16.10.0} 518 | 519 | croact-css-styled@1.1.9: 520 | resolution: {integrity: sha512-G7yvRiVJ3Eoj0ov2h2xR4312hpOzATay2dGS9clK8yJQothjH1sBXIyvOeRP5wBKD9mPcKcoUXPCPsl0tQog4w==} 521 | 522 | croact-moveable@0.9.0: 523 | resolution: {integrity: sha512-fc3bieV6CdqqZFtzsSLi9KmvUMFW3oakUfhPCls1BxKjOfUfn8rktteGED2341A/Qghy8tI3Hm6SdocIc68IKg==} 524 | peerDependencies: 525 | croact: ^1.0.4 526 | 527 | croact@1.0.4: 528 | resolution: {integrity: sha512-9GhvyzTY/IVUrMQ2iz/mzgZ8+NcjczmIo/t4FkC1CU0CEcau6v6VsEih4jkTa4ZmRgYTF0qXEZLObCzdDFplpw==} 529 | 530 | cross-spawn@7.0.3: 531 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 532 | engines: {node: '>= 8'} 533 | 534 | css-styled@1.0.8: 535 | resolution: {integrity: sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==} 536 | 537 | css-to-mat@1.1.1: 538 | resolution: {integrity: sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==} 539 | 540 | css-tree@2.3.1: 541 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 542 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 543 | 544 | csstype@3.1.3: 545 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 546 | 547 | de-indent@1.0.2: 548 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 549 | 550 | debug@4.3.4: 551 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 552 | engines: {node: '>=6.0'} 553 | peerDependencies: 554 | supports-color: '*' 555 | peerDependenciesMeta: 556 | supports-color: 557 | optional: true 558 | 559 | defu@6.1.4: 560 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 561 | 562 | destr@2.0.3: 563 | resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} 564 | 565 | duplexer@0.1.2: 566 | resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} 567 | 568 | entities@4.5.0: 569 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 570 | engines: {node: '>=0.12'} 571 | 572 | esbuild@0.18.20: 573 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 574 | engines: {node: '>=12'} 575 | hasBin: true 576 | 577 | estree-walker@2.0.2: 578 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 579 | 580 | execa@5.1.1: 581 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 582 | engines: {node: '>=10'} 583 | 584 | fast-glob@3.3.2: 585 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 586 | engines: {node: '>=8.6.0'} 587 | 588 | fastq@1.17.1: 589 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 590 | 591 | fill-range@7.0.1: 592 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 593 | engines: {node: '>=8'} 594 | 595 | find-up@5.0.0: 596 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 597 | engines: {node: '>=10'} 598 | 599 | framework-utils@1.1.0: 600 | resolution: {integrity: sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg==} 601 | 602 | fsevents@2.3.3: 603 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 604 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 605 | os: [darwin] 606 | 607 | function-bind@1.1.2: 608 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 609 | 610 | gesto@1.19.4: 611 | resolution: {integrity: sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==} 612 | 613 | get-stream@6.0.1: 614 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 615 | engines: {node: '>=10'} 616 | 617 | glob-parent@5.1.2: 618 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 619 | engines: {node: '>= 6'} 620 | 621 | gsap@3.12.5: 622 | resolution: {integrity: sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==} 623 | 624 | gzip-size@6.0.0: 625 | resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} 626 | engines: {node: '>=10'} 627 | 628 | hasown@2.0.2: 629 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 630 | engines: {node: '>= 0.4'} 631 | 632 | he@1.2.0: 633 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 634 | hasBin: true 635 | 636 | highlight.js@11.9.0: 637 | resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} 638 | engines: {node: '>=12.0.0'} 639 | 640 | human-signals@2.1.0: 641 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 642 | engines: {node: '>=10.17.0'} 643 | 644 | immutable@4.3.6: 645 | resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} 646 | 647 | is-binary-path@2.1.0: 648 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 649 | engines: {node: '>=8'} 650 | 651 | is-core-module@2.13.1: 652 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 653 | 654 | is-extglob@2.1.1: 655 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 656 | engines: {node: '>=0.10.0'} 657 | 658 | is-glob@4.0.3: 659 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 660 | engines: {node: '>=0.10.0'} 661 | 662 | is-number@7.0.0: 663 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 664 | engines: {node: '>=0.12.0'} 665 | 666 | is-stream@2.0.1: 667 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 668 | engines: {node: '>=8'} 669 | 670 | isexe@2.0.0: 671 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 672 | 673 | jiti@1.21.0: 674 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 675 | hasBin: true 676 | 677 | keycode@2.2.1: 678 | resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==} 679 | 680 | keycon@1.4.0: 681 | resolution: {integrity: sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==} 682 | 683 | kolorist@1.8.0: 684 | resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 685 | 686 | local-pkg@0.4.3: 687 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 688 | engines: {node: '>=14'} 689 | 690 | local-pkg@0.5.0: 691 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 692 | engines: {node: '>=14'} 693 | 694 | locate-path@6.0.0: 695 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 696 | engines: {node: '>=10'} 697 | 698 | magic-string@0.30.10: 699 | resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} 700 | 701 | mdn-data@2.0.30: 702 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 703 | 704 | merge-stream@2.0.0: 705 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 706 | 707 | merge2@1.4.1: 708 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 709 | engines: {node: '>= 8'} 710 | 711 | micromatch@4.0.5: 712 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 713 | engines: {node: '>=8.6'} 714 | 715 | mimic-fn@2.1.0: 716 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 717 | engines: {node: '>=6'} 718 | 719 | minimatch@9.0.4: 720 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 721 | engines: {node: '>=16 || 14 >=14.17'} 722 | 723 | mlly@1.7.0: 724 | resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} 725 | 726 | moveable@0.53.0: 727 | resolution: {integrity: sha512-71jS9zIoQzMhnNvduhg4tUEdm23+fO/40FN7muVMbZvVwbTku2MIxxLhnU4qFvxI4oVxn75l79SbtgjuA+s7Pw==} 728 | 729 | mrmime@2.0.0: 730 | resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 731 | engines: {node: '>=10'} 732 | 733 | ms@2.1.2: 734 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 735 | 736 | muggle-string@0.3.1: 737 | resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} 738 | 739 | nanoid@3.3.7: 740 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 741 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 742 | hasBin: true 743 | 744 | node-fetch-native@1.6.4: 745 | resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} 746 | 747 | normalize-path@3.0.0: 748 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 749 | engines: {node: '>=0.10.0'} 750 | 751 | npm-run-path@4.0.1: 752 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 753 | engines: {node: '>=8'} 754 | 755 | ofetch@1.3.4: 756 | resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} 757 | 758 | onetime@5.1.2: 759 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 760 | engines: {node: '>=6'} 761 | 762 | overlap-area@1.1.0: 763 | resolution: {integrity: sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==} 764 | 765 | p-limit@3.1.0: 766 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 767 | engines: {node: '>=10'} 768 | 769 | p-locate@5.0.0: 770 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 771 | engines: {node: '>=10'} 772 | 773 | path-browserify@1.0.1: 774 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 775 | 776 | path-exists@4.0.0: 777 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 778 | engines: {node: '>=8'} 779 | 780 | path-key@3.1.1: 781 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 782 | engines: {node: '>=8'} 783 | 784 | path-parse@1.0.7: 785 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 786 | 787 | pathe@1.1.2: 788 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 789 | 790 | perfect-debounce@1.0.0: 791 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 792 | 793 | picocolors@1.0.1: 794 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 795 | 796 | picomatch@2.3.1: 797 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 798 | engines: {node: '>=8.6'} 799 | 800 | pkg-types@1.1.1: 801 | resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} 802 | 803 | postcss@8.4.38: 804 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 805 | engines: {node: ^10 || ^12 || >=14} 806 | 807 | queue-microtask@1.2.3: 808 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 809 | 810 | react-css-styled@1.1.9: 811 | resolution: {integrity: sha512-M7fJZ3IWFaIHcZEkoFOnkjdiUFmwd8d+gTh2bpqMOcnxy/0Gsykw4dsL4QBiKsxcGow6tETUa4NAUcmJF+/nfw==} 812 | 813 | react-moveable@0.56.0: 814 | resolution: {integrity: sha512-FmJNmIOsOA36mdxbrc/huiE4wuXSRlmon/o+/OrfNhSiYYYL0AV5oObtPluEhb2Yr/7EfYWBHTxF5aWAvjg1SA==} 815 | 816 | react-selecto@1.26.3: 817 | resolution: {integrity: sha512-Ubik7kWSnZyQEBNro+1k38hZaI1tJarE+5aD/qsqCOA1uUBSjgKVBy3EWRzGIbdmVex7DcxznFZLec/6KZNvwQ==} 818 | 819 | readdirp@3.6.0: 820 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 821 | engines: {node: '>=8.10.0'} 822 | 823 | resolve@1.22.8: 824 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 825 | hasBin: true 826 | 827 | reusify@1.0.4: 828 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 829 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 830 | 831 | rollup@3.29.4: 832 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 833 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 834 | hasBin: true 835 | 836 | run-parallel@1.2.0: 837 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 838 | 839 | sass@1.77.2: 840 | resolution: {integrity: sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==} 841 | engines: {node: '>=14.0.0'} 842 | hasBin: true 843 | 844 | selecto@1.26.3: 845 | resolution: {integrity: sha512-gZHgqMy5uyB6/2YDjv3Qqaf7bd2hTDOpPdxXlrez4R3/L0GiEWDCFaUfrflomgqdb3SxHF2IXY0Jw0EamZi7cw==} 846 | 847 | semver@7.6.2: 848 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 849 | engines: {node: '>=10'} 850 | hasBin: true 851 | 852 | shebang-command@2.0.0: 853 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 854 | engines: {node: '>=8'} 855 | 856 | shebang-regex@3.0.0: 857 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 858 | engines: {node: '>=8'} 859 | 860 | signal-exit@3.0.7: 861 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 862 | 863 | sirv@2.0.4: 864 | resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 865 | engines: {node: '>= 10'} 866 | 867 | source-map-js@1.2.0: 868 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 869 | engines: {node: '>=0.10.0'} 870 | 871 | source-map@0.6.1: 872 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 873 | engines: {node: '>=0.10.0'} 874 | 875 | strip-final-newline@2.0.0: 876 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 877 | engines: {node: '>=6'} 878 | 879 | supports-preserve-symlinks-flag@1.0.0: 880 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 881 | engines: {node: '>= 0.4'} 882 | 883 | to-fast-properties@2.0.0: 884 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 885 | engines: {node: '>=4'} 886 | 887 | to-regex-range@5.0.1: 888 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 889 | engines: {node: '>=8.0'} 890 | 891 | totalist@3.0.1: 892 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 893 | engines: {node: '>=6'} 894 | 895 | typescript@4.9.5: 896 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 897 | engines: {node: '>=4.2.0'} 898 | hasBin: true 899 | 900 | ufo@1.5.3: 901 | resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} 902 | 903 | unconfig@0.3.13: 904 | resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} 905 | 906 | undici-types@5.26.5: 907 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 908 | 909 | unocss@0.55.7: 910 | resolution: {integrity: sha512-3W9P7vj2EhSk/4oPCHBS0VgrwSf5zZL6Az1/XARVOpBnRJtCM2szFInYxHkMgt9pkZTsW8SFCuk/g+QIJ6A8tg==} 911 | engines: {node: '>=14'} 912 | peerDependencies: 913 | '@unocss/webpack': 0.55.7 914 | vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 915 | peerDependenciesMeta: 916 | '@unocss/webpack': 917 | optional: true 918 | vite: 919 | optional: true 920 | 921 | unplugin-icons@0.16.6: 922 | resolution: {integrity: sha512-jL70sAC7twp4hI/MTfm+vyvTRtHqiEIzf3XOjJz7yzhMEEQnk5Ey5YIXRAU03Mc4BF99ITvvnBzfyRZee86OeA==} 923 | peerDependencies: 924 | '@svgr/core': '>=7.0.0' 925 | '@svgx/core': ^1.0.1 926 | '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 927 | vue-template-compiler: ^2.6.12 928 | vue-template-es2015-compiler: ^1.9.0 929 | peerDependenciesMeta: 930 | '@svgr/core': 931 | optional: true 932 | '@svgx/core': 933 | optional: true 934 | '@vue/compiler-sfc': 935 | optional: true 936 | vue-template-compiler: 937 | optional: true 938 | vue-template-es2015-compiler: 939 | optional: true 940 | 941 | unplugin-vue-components@0.25.2: 942 | resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} 943 | engines: {node: '>=14'} 944 | peerDependencies: 945 | '@babel/parser': ^7.15.8 946 | '@nuxt/kit': ^3.2.2 947 | vue: 2 || 3 948 | peerDependenciesMeta: 949 | '@babel/parser': 950 | optional: true 951 | '@nuxt/kit': 952 | optional: true 953 | 954 | unplugin@1.10.1: 955 | resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} 956 | engines: {node: '>=14.0.0'} 957 | 958 | vite@4.5.3: 959 | resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} 960 | engines: {node: ^14.18.0 || >=16.0.0} 961 | hasBin: true 962 | peerDependencies: 963 | '@types/node': '>= 14' 964 | less: '*' 965 | lightningcss: ^1.21.0 966 | sass: '*' 967 | stylus: '*' 968 | sugarss: '*' 969 | terser: ^5.4.0 970 | peerDependenciesMeta: 971 | '@types/node': 972 | optional: true 973 | less: 974 | optional: true 975 | lightningcss: 976 | optional: true 977 | sass: 978 | optional: true 979 | stylus: 980 | optional: true 981 | sugarss: 982 | optional: true 983 | terser: 984 | optional: true 985 | 986 | vue-demi@0.14.7: 987 | resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} 988 | engines: {node: '>=12'} 989 | hasBin: true 990 | peerDependencies: 991 | '@vue/composition-api': ^1.0.0-rc.1 992 | vue: ^3.0.0-0 || ^2.6.0 993 | peerDependenciesMeta: 994 | '@vue/composition-api': 995 | optional: true 996 | 997 | vue-sonner@1.1.2: 998 | resolution: {integrity: sha512-yg4f5s0a3oiiI7cNvO0Dajux1Y7s04lxww3vnQtnwQawJ3KqaKA9RIRMdI9wGTosRGIOwgYFniFRGl4+IuKPZw==} 999 | 1000 | vue-template-compiler@2.7.16: 1001 | resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} 1002 | 1003 | vue-tsc@1.8.27: 1004 | resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} 1005 | hasBin: true 1006 | peerDependencies: 1007 | typescript: '*' 1008 | 1009 | vue@3.4.27: 1010 | resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} 1011 | peerDependencies: 1012 | typescript: '*' 1013 | peerDependenciesMeta: 1014 | typescript: 1015 | optional: true 1016 | 1017 | webpack-sources@3.2.3: 1018 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1019 | engines: {node: '>=10.13.0'} 1020 | 1021 | webpack-virtual-modules@0.6.1: 1022 | resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} 1023 | 1024 | which@2.0.2: 1025 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1026 | engines: {node: '>= 8'} 1027 | hasBin: true 1028 | 1029 | yocto-queue@0.1.0: 1030 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1031 | engines: {node: '>=10'} 1032 | 1033 | snapshots: 1034 | 1035 | '@ampproject/remapping@2.3.0': 1036 | dependencies: 1037 | '@jridgewell/gen-mapping': 0.3.5 1038 | '@jridgewell/trace-mapping': 0.3.25 1039 | 1040 | '@antfu/install-pkg@0.1.1': 1041 | dependencies: 1042 | execa: 5.1.1 1043 | find-up: 5.0.0 1044 | 1045 | '@antfu/utils@0.7.8': {} 1046 | 1047 | '@babel/helper-string-parser@7.24.1': {} 1048 | 1049 | '@babel/helper-validator-identifier@7.24.5': {} 1050 | 1051 | '@babel/parser@7.24.5': 1052 | dependencies: 1053 | '@babel/types': 7.24.5 1054 | 1055 | '@babel/types@7.24.5': 1056 | dependencies: 1057 | '@babel/helper-string-parser': 7.24.1 1058 | '@babel/helper-validator-identifier': 7.24.5 1059 | to-fast-properties: 2.0.0 1060 | 1061 | '@cfcs/core@0.0.6': 1062 | dependencies: 1063 | '@egjs/component': 3.0.5 1064 | 1065 | '@daybrush/utils@1.13.0': {} 1066 | 1067 | '@egjs/agent@2.4.3': {} 1068 | 1069 | '@egjs/children-differ@1.0.1': 1070 | dependencies: 1071 | '@egjs/list-differ': 1.0.1 1072 | 1073 | '@egjs/component@3.0.5': {} 1074 | 1075 | '@egjs/list-differ@1.0.1': {} 1076 | 1077 | '@esbuild/android-arm64@0.18.20': 1078 | optional: true 1079 | 1080 | '@esbuild/android-arm@0.18.20': 1081 | optional: true 1082 | 1083 | '@esbuild/android-x64@0.18.20': 1084 | optional: true 1085 | 1086 | '@esbuild/darwin-arm64@0.18.20': 1087 | optional: true 1088 | 1089 | '@esbuild/darwin-x64@0.18.20': 1090 | optional: true 1091 | 1092 | '@esbuild/freebsd-arm64@0.18.20': 1093 | optional: true 1094 | 1095 | '@esbuild/freebsd-x64@0.18.20': 1096 | optional: true 1097 | 1098 | '@esbuild/linux-arm64@0.18.20': 1099 | optional: true 1100 | 1101 | '@esbuild/linux-arm@0.18.20': 1102 | optional: true 1103 | 1104 | '@esbuild/linux-ia32@0.18.20': 1105 | optional: true 1106 | 1107 | '@esbuild/linux-loong64@0.18.20': 1108 | optional: true 1109 | 1110 | '@esbuild/linux-mips64el@0.18.20': 1111 | optional: true 1112 | 1113 | '@esbuild/linux-ppc64@0.18.20': 1114 | optional: true 1115 | 1116 | '@esbuild/linux-riscv64@0.18.20': 1117 | optional: true 1118 | 1119 | '@esbuild/linux-s390x@0.18.20': 1120 | optional: true 1121 | 1122 | '@esbuild/linux-x64@0.18.20': 1123 | optional: true 1124 | 1125 | '@esbuild/netbsd-x64@0.18.20': 1126 | optional: true 1127 | 1128 | '@esbuild/openbsd-x64@0.18.20': 1129 | optional: true 1130 | 1131 | '@esbuild/sunos-x64@0.18.20': 1132 | optional: true 1133 | 1134 | '@esbuild/win32-arm64@0.18.20': 1135 | optional: true 1136 | 1137 | '@esbuild/win32-ia32@0.18.20': 1138 | optional: true 1139 | 1140 | '@esbuild/win32-x64@0.18.20': 1141 | optional: true 1142 | 1143 | '@iconify/json@2.2.212': 1144 | dependencies: 1145 | '@iconify/types': 2.0.0 1146 | pathe: 1.1.2 1147 | 1148 | '@iconify/types@2.0.0': {} 1149 | 1150 | '@iconify/utils@2.1.23': 1151 | dependencies: 1152 | '@antfu/install-pkg': 0.1.1 1153 | '@antfu/utils': 0.7.8 1154 | '@iconify/types': 2.0.0 1155 | debug: 4.3.4 1156 | kolorist: 1.8.0 1157 | local-pkg: 0.5.0 1158 | mlly: 1.7.0 1159 | transitivePeerDependencies: 1160 | - supports-color 1161 | 1162 | '@jridgewell/gen-mapping@0.3.5': 1163 | dependencies: 1164 | '@jridgewell/set-array': 1.2.1 1165 | '@jridgewell/sourcemap-codec': 1.4.15 1166 | '@jridgewell/trace-mapping': 0.3.25 1167 | 1168 | '@jridgewell/resolve-uri@3.1.2': {} 1169 | 1170 | '@jridgewell/set-array@1.2.1': {} 1171 | 1172 | '@jridgewell/sourcemap-codec@1.4.15': {} 1173 | 1174 | '@jridgewell/trace-mapping@0.3.25': 1175 | dependencies: 1176 | '@jridgewell/resolve-uri': 3.1.2 1177 | '@jridgewell/sourcemap-codec': 1.4.15 1178 | 1179 | '@nodelib/fs.scandir@2.1.5': 1180 | dependencies: 1181 | '@nodelib/fs.stat': 2.0.5 1182 | run-parallel: 1.2.0 1183 | 1184 | '@nodelib/fs.stat@2.0.5': {} 1185 | 1186 | '@nodelib/fs.walk@1.2.8': 1187 | dependencies: 1188 | '@nodelib/fs.scandir': 2.1.5 1189 | fastq: 1.17.1 1190 | 1191 | '@polka/url@1.0.0-next.25': {} 1192 | 1193 | '@rollup/pluginutils@5.1.0(rollup@3.29.4)': 1194 | dependencies: 1195 | '@types/estree': 1.0.5 1196 | estree-walker: 2.0.2 1197 | picomatch: 2.3.1 1198 | optionalDependencies: 1199 | rollup: 3.29.4 1200 | 1201 | '@scena/dragscroll@1.4.0': 1202 | dependencies: 1203 | '@daybrush/utils': 1.13.0 1204 | '@scena/event-emitter': 1.0.5 1205 | 1206 | '@scena/event-emitter@1.0.5': 1207 | dependencies: 1208 | '@daybrush/utils': 1.13.0 1209 | 1210 | '@scena/matrix@1.1.1': 1211 | dependencies: 1212 | '@daybrush/utils': 1.13.0 1213 | 1214 | '@types/estree@1.0.5': {} 1215 | 1216 | '@types/node@18.19.33': 1217 | dependencies: 1218 | undici-types: 5.26.5 1219 | 1220 | '@types/web-bluetooth@0.0.16': {} 1221 | 1222 | '@types/web-bluetooth@0.0.20': {} 1223 | 1224 | '@unocss/astro@0.55.7(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2))': 1225 | dependencies: 1226 | '@unocss/core': 0.55.7 1227 | '@unocss/reset': 0.55.7 1228 | '@unocss/vite': 0.55.7(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2)) 1229 | optionalDependencies: 1230 | vite: 4.5.3(@types/node@18.19.33)(sass@1.77.2) 1231 | transitivePeerDependencies: 1232 | - rollup 1233 | 1234 | '@unocss/cli@0.55.7(rollup@3.29.4)': 1235 | dependencies: 1236 | '@ampproject/remapping': 2.3.0 1237 | '@rollup/pluginutils': 5.1.0(rollup@3.29.4) 1238 | '@unocss/config': 0.55.7 1239 | '@unocss/core': 0.55.7 1240 | '@unocss/preset-uno': 0.55.7 1241 | cac: 6.7.14 1242 | chokidar: 3.6.0 1243 | colorette: 2.0.20 1244 | consola: 3.2.3 1245 | fast-glob: 3.3.2 1246 | magic-string: 0.30.10 1247 | pathe: 1.1.2 1248 | perfect-debounce: 1.0.0 1249 | transitivePeerDependencies: 1250 | - rollup 1251 | 1252 | '@unocss/config@0.55.7': 1253 | dependencies: 1254 | '@unocss/core': 0.55.7 1255 | unconfig: 0.3.13 1256 | 1257 | '@unocss/core@0.55.7': {} 1258 | 1259 | '@unocss/extractor-arbitrary-variants@0.55.7': 1260 | dependencies: 1261 | '@unocss/core': 0.55.7 1262 | 1263 | '@unocss/inspector@0.55.7': 1264 | dependencies: 1265 | gzip-size: 6.0.0 1266 | sirv: 2.0.4 1267 | 1268 | '@unocss/postcss@0.55.7(postcss@8.4.38)': 1269 | dependencies: 1270 | '@unocss/config': 0.55.7 1271 | '@unocss/core': 0.55.7 1272 | css-tree: 2.3.1 1273 | fast-glob: 3.3.2 1274 | magic-string: 0.30.10 1275 | postcss: 8.4.38 1276 | 1277 | '@unocss/preset-attributify@0.55.7': 1278 | dependencies: 1279 | '@unocss/core': 0.55.7 1280 | 1281 | '@unocss/preset-icons@0.55.7': 1282 | dependencies: 1283 | '@iconify/utils': 2.1.23 1284 | '@unocss/core': 0.55.7 1285 | ofetch: 1.3.4 1286 | transitivePeerDependencies: 1287 | - supports-color 1288 | 1289 | '@unocss/preset-mini@0.55.7': 1290 | dependencies: 1291 | '@unocss/core': 0.55.7 1292 | '@unocss/extractor-arbitrary-variants': 0.55.7 1293 | 1294 | '@unocss/preset-tagify@0.55.7': 1295 | dependencies: 1296 | '@unocss/core': 0.55.7 1297 | 1298 | '@unocss/preset-typography@0.55.7': 1299 | dependencies: 1300 | '@unocss/core': 0.55.7 1301 | '@unocss/preset-mini': 0.55.7 1302 | 1303 | '@unocss/preset-uno@0.55.7': 1304 | dependencies: 1305 | '@unocss/core': 0.55.7 1306 | '@unocss/preset-mini': 0.55.7 1307 | '@unocss/preset-wind': 0.55.7 1308 | 1309 | '@unocss/preset-web-fonts@0.55.7': 1310 | dependencies: 1311 | '@unocss/core': 0.55.7 1312 | ofetch: 1.3.4 1313 | 1314 | '@unocss/preset-wind@0.55.7': 1315 | dependencies: 1316 | '@unocss/core': 0.55.7 1317 | '@unocss/preset-mini': 0.55.7 1318 | 1319 | '@unocss/reset@0.55.7': {} 1320 | 1321 | '@unocss/scope@0.55.7': {} 1322 | 1323 | '@unocss/transformer-attributify-jsx-babel@0.55.7': 1324 | dependencies: 1325 | '@unocss/core': 0.55.7 1326 | 1327 | '@unocss/transformer-attributify-jsx@0.55.7': 1328 | dependencies: 1329 | '@unocss/core': 0.55.7 1330 | 1331 | '@unocss/transformer-compile-class@0.55.7': 1332 | dependencies: 1333 | '@unocss/core': 0.55.7 1334 | 1335 | '@unocss/transformer-directives@0.55.7': 1336 | dependencies: 1337 | '@unocss/core': 0.55.7 1338 | css-tree: 2.3.1 1339 | 1340 | '@unocss/transformer-variant-group@0.55.7': 1341 | dependencies: 1342 | '@unocss/core': 0.55.7 1343 | 1344 | '@unocss/vite@0.55.7(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2))': 1345 | dependencies: 1346 | '@ampproject/remapping': 2.3.0 1347 | '@rollup/pluginutils': 5.1.0(rollup@3.29.4) 1348 | '@unocss/config': 0.55.7 1349 | '@unocss/core': 0.55.7 1350 | '@unocss/inspector': 0.55.7 1351 | '@unocss/scope': 0.55.7 1352 | '@unocss/transformer-directives': 0.55.7 1353 | chokidar: 3.6.0 1354 | fast-glob: 3.3.2 1355 | magic-string: 0.30.10 1356 | vite: 4.5.3(@types/node@18.19.33)(sass@1.77.2) 1357 | transitivePeerDependencies: 1358 | - rollup 1359 | 1360 | '@vitejs/plugin-vue@4.6.2(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2))(vue@3.4.27(typescript@4.9.5))': 1361 | dependencies: 1362 | vite: 4.5.3(@types/node@18.19.33)(sass@1.77.2) 1363 | vue: 3.4.27(typescript@4.9.5) 1364 | 1365 | '@volar/language-core@1.11.1': 1366 | dependencies: 1367 | '@volar/source-map': 1.11.1 1368 | 1369 | '@volar/source-map@1.11.1': 1370 | dependencies: 1371 | muggle-string: 0.3.1 1372 | 1373 | '@volar/typescript@1.11.1': 1374 | dependencies: 1375 | '@volar/language-core': 1.11.1 1376 | path-browserify: 1.0.1 1377 | 1378 | '@vue/compiler-core@3.4.27': 1379 | dependencies: 1380 | '@babel/parser': 7.24.5 1381 | '@vue/shared': 3.4.27 1382 | entities: 4.5.0 1383 | estree-walker: 2.0.2 1384 | source-map-js: 1.2.0 1385 | 1386 | '@vue/compiler-dom@3.4.27': 1387 | dependencies: 1388 | '@vue/compiler-core': 3.4.27 1389 | '@vue/shared': 3.4.27 1390 | 1391 | '@vue/compiler-sfc@3.4.27': 1392 | dependencies: 1393 | '@babel/parser': 7.24.5 1394 | '@vue/compiler-core': 3.4.27 1395 | '@vue/compiler-dom': 3.4.27 1396 | '@vue/compiler-ssr': 3.4.27 1397 | '@vue/shared': 3.4.27 1398 | estree-walker: 2.0.2 1399 | magic-string: 0.30.10 1400 | postcss: 8.4.38 1401 | source-map-js: 1.2.0 1402 | 1403 | '@vue/compiler-ssr@3.4.27': 1404 | dependencies: 1405 | '@vue/compiler-dom': 3.4.27 1406 | '@vue/shared': 3.4.27 1407 | 1408 | '@vue/language-core@1.8.27(typescript@4.9.5)': 1409 | dependencies: 1410 | '@volar/language-core': 1.11.1 1411 | '@volar/source-map': 1.11.1 1412 | '@vue/compiler-dom': 3.4.27 1413 | '@vue/shared': 3.4.27 1414 | computeds: 0.0.1 1415 | minimatch: 9.0.4 1416 | muggle-string: 0.3.1 1417 | path-browserify: 1.0.1 1418 | vue-template-compiler: 2.7.16 1419 | optionalDependencies: 1420 | typescript: 4.9.5 1421 | 1422 | '@vue/reactivity@3.4.27': 1423 | dependencies: 1424 | '@vue/shared': 3.4.27 1425 | 1426 | '@vue/runtime-core@3.4.27': 1427 | dependencies: 1428 | '@vue/reactivity': 3.4.27 1429 | '@vue/shared': 3.4.27 1430 | 1431 | '@vue/runtime-dom@3.4.27': 1432 | dependencies: 1433 | '@vue/runtime-core': 3.4.27 1434 | '@vue/shared': 3.4.27 1435 | csstype: 3.1.3 1436 | 1437 | '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@4.9.5))': 1438 | dependencies: 1439 | '@vue/compiler-ssr': 3.4.27 1440 | '@vue/shared': 3.4.27 1441 | vue: 3.4.27(typescript@4.9.5) 1442 | 1443 | '@vue/shared@3.4.27': {} 1444 | 1445 | '@vueuse/core@9.13.0(vue@3.4.27(typescript@4.9.5))': 1446 | dependencies: 1447 | '@types/web-bluetooth': 0.0.16 1448 | '@vueuse/metadata': 9.13.0 1449 | '@vueuse/shared': 9.13.0(vue@3.4.27(typescript@4.9.5)) 1450 | vue-demi: 0.14.7(vue@3.4.27(typescript@4.9.5)) 1451 | transitivePeerDependencies: 1452 | - '@vue/composition-api' 1453 | - vue 1454 | 1455 | '@vueuse/metadata@9.13.0': {} 1456 | 1457 | '@vueuse/shared@9.13.0(vue@3.4.27(typescript@4.9.5))': 1458 | dependencies: 1459 | vue-demi: 0.14.7(vue@3.4.27(typescript@4.9.5)) 1460 | transitivePeerDependencies: 1461 | - '@vue/composition-api' 1462 | - vue 1463 | 1464 | acorn@8.11.3: {} 1465 | 1466 | anymatch@3.1.3: 1467 | dependencies: 1468 | normalize-path: 3.0.0 1469 | picomatch: 2.3.1 1470 | 1471 | balanced-match@1.0.2: {} 1472 | 1473 | binary-extensions@2.3.0: {} 1474 | 1475 | brace-expansion@2.0.1: 1476 | dependencies: 1477 | balanced-match: 1.0.2 1478 | 1479 | braces@3.0.2: 1480 | dependencies: 1481 | fill-range: 7.0.1 1482 | 1483 | cac@6.7.14: {} 1484 | 1485 | chokidar@3.6.0: 1486 | dependencies: 1487 | anymatch: 3.1.3 1488 | braces: 3.0.2 1489 | glob-parent: 5.1.2 1490 | is-binary-path: 2.1.0 1491 | is-glob: 4.0.3 1492 | normalize-path: 3.0.0 1493 | readdirp: 3.6.0 1494 | optionalDependencies: 1495 | fsevents: 2.3.3 1496 | 1497 | clean-css@5.3.3: 1498 | dependencies: 1499 | source-map: 0.6.1 1500 | 1501 | colord@2.9.3: {} 1502 | 1503 | colorette@2.0.20: {} 1504 | 1505 | computeds@0.0.1: {} 1506 | 1507 | confbox@0.1.7: {} 1508 | 1509 | consola@3.2.3: {} 1510 | 1511 | croact-css-styled@1.1.9: 1512 | dependencies: 1513 | '@daybrush/utils': 1.13.0 1514 | css-styled: 1.0.8 1515 | framework-utils: 1.1.0 1516 | 1517 | croact-moveable@0.9.0(croact@1.0.4): 1518 | dependencies: 1519 | '@daybrush/utils': 1.13.0 1520 | '@egjs/agent': 2.4.3 1521 | '@egjs/children-differ': 1.0.1 1522 | '@egjs/list-differ': 1.0.1 1523 | '@scena/dragscroll': 1.4.0 1524 | '@scena/event-emitter': 1.0.5 1525 | '@scena/matrix': 1.1.1 1526 | croact: 1.0.4 1527 | croact-css-styled: 1.1.9 1528 | css-to-mat: 1.1.1 1529 | framework-utils: 1.1.0 1530 | gesto: 1.19.4 1531 | overlap-area: 1.1.0 1532 | react-css-styled: 1.1.9 1533 | react-moveable: 0.56.0 1534 | 1535 | croact@1.0.4: 1536 | dependencies: 1537 | '@daybrush/utils': 1.13.0 1538 | '@egjs/list-differ': 1.0.1 1539 | 1540 | cross-spawn@7.0.3: 1541 | dependencies: 1542 | path-key: 3.1.1 1543 | shebang-command: 2.0.0 1544 | which: 2.0.2 1545 | 1546 | css-styled@1.0.8: 1547 | dependencies: 1548 | '@daybrush/utils': 1.13.0 1549 | 1550 | css-to-mat@1.1.1: 1551 | dependencies: 1552 | '@daybrush/utils': 1.13.0 1553 | '@scena/matrix': 1.1.1 1554 | 1555 | css-tree@2.3.1: 1556 | dependencies: 1557 | mdn-data: 2.0.30 1558 | source-map-js: 1.2.0 1559 | 1560 | csstype@3.1.3: {} 1561 | 1562 | de-indent@1.0.2: {} 1563 | 1564 | debug@4.3.4: 1565 | dependencies: 1566 | ms: 2.1.2 1567 | 1568 | defu@6.1.4: {} 1569 | 1570 | destr@2.0.3: {} 1571 | 1572 | duplexer@0.1.2: {} 1573 | 1574 | entities@4.5.0: {} 1575 | 1576 | esbuild@0.18.20: 1577 | optionalDependencies: 1578 | '@esbuild/android-arm': 0.18.20 1579 | '@esbuild/android-arm64': 0.18.20 1580 | '@esbuild/android-x64': 0.18.20 1581 | '@esbuild/darwin-arm64': 0.18.20 1582 | '@esbuild/darwin-x64': 0.18.20 1583 | '@esbuild/freebsd-arm64': 0.18.20 1584 | '@esbuild/freebsd-x64': 0.18.20 1585 | '@esbuild/linux-arm': 0.18.20 1586 | '@esbuild/linux-arm64': 0.18.20 1587 | '@esbuild/linux-ia32': 0.18.20 1588 | '@esbuild/linux-loong64': 0.18.20 1589 | '@esbuild/linux-mips64el': 0.18.20 1590 | '@esbuild/linux-ppc64': 0.18.20 1591 | '@esbuild/linux-riscv64': 0.18.20 1592 | '@esbuild/linux-s390x': 0.18.20 1593 | '@esbuild/linux-x64': 0.18.20 1594 | '@esbuild/netbsd-x64': 0.18.20 1595 | '@esbuild/openbsd-x64': 0.18.20 1596 | '@esbuild/sunos-x64': 0.18.20 1597 | '@esbuild/win32-arm64': 0.18.20 1598 | '@esbuild/win32-ia32': 0.18.20 1599 | '@esbuild/win32-x64': 0.18.20 1600 | 1601 | estree-walker@2.0.2: {} 1602 | 1603 | execa@5.1.1: 1604 | dependencies: 1605 | cross-spawn: 7.0.3 1606 | get-stream: 6.0.1 1607 | human-signals: 2.1.0 1608 | is-stream: 2.0.1 1609 | merge-stream: 2.0.0 1610 | npm-run-path: 4.0.1 1611 | onetime: 5.1.2 1612 | signal-exit: 3.0.7 1613 | strip-final-newline: 2.0.0 1614 | 1615 | fast-glob@3.3.2: 1616 | dependencies: 1617 | '@nodelib/fs.stat': 2.0.5 1618 | '@nodelib/fs.walk': 1.2.8 1619 | glob-parent: 5.1.2 1620 | merge2: 1.4.1 1621 | micromatch: 4.0.5 1622 | 1623 | fastq@1.17.1: 1624 | dependencies: 1625 | reusify: 1.0.4 1626 | 1627 | fill-range@7.0.1: 1628 | dependencies: 1629 | to-regex-range: 5.0.1 1630 | 1631 | find-up@5.0.0: 1632 | dependencies: 1633 | locate-path: 6.0.0 1634 | path-exists: 4.0.0 1635 | 1636 | framework-utils@1.1.0: {} 1637 | 1638 | fsevents@2.3.3: 1639 | optional: true 1640 | 1641 | function-bind@1.1.2: {} 1642 | 1643 | gesto@1.19.4: 1644 | dependencies: 1645 | '@daybrush/utils': 1.13.0 1646 | '@scena/event-emitter': 1.0.5 1647 | 1648 | get-stream@6.0.1: {} 1649 | 1650 | glob-parent@5.1.2: 1651 | dependencies: 1652 | is-glob: 4.0.3 1653 | 1654 | gsap@3.12.5: {} 1655 | 1656 | gzip-size@6.0.0: 1657 | dependencies: 1658 | duplexer: 0.1.2 1659 | 1660 | hasown@2.0.2: 1661 | dependencies: 1662 | function-bind: 1.1.2 1663 | 1664 | he@1.2.0: {} 1665 | 1666 | highlight.js@11.9.0: {} 1667 | 1668 | human-signals@2.1.0: {} 1669 | 1670 | immutable@4.3.6: {} 1671 | 1672 | is-binary-path@2.1.0: 1673 | dependencies: 1674 | binary-extensions: 2.3.0 1675 | 1676 | is-core-module@2.13.1: 1677 | dependencies: 1678 | hasown: 2.0.2 1679 | 1680 | is-extglob@2.1.1: {} 1681 | 1682 | is-glob@4.0.3: 1683 | dependencies: 1684 | is-extglob: 2.1.1 1685 | 1686 | is-number@7.0.0: {} 1687 | 1688 | is-stream@2.0.1: {} 1689 | 1690 | isexe@2.0.0: {} 1691 | 1692 | jiti@1.21.0: {} 1693 | 1694 | keycode@2.2.1: {} 1695 | 1696 | keycon@1.4.0: 1697 | dependencies: 1698 | '@cfcs/core': 0.0.6 1699 | '@daybrush/utils': 1.13.0 1700 | '@scena/event-emitter': 1.0.5 1701 | keycode: 2.2.1 1702 | 1703 | kolorist@1.8.0: {} 1704 | 1705 | local-pkg@0.4.3: {} 1706 | 1707 | local-pkg@0.5.0: 1708 | dependencies: 1709 | mlly: 1.7.0 1710 | pkg-types: 1.1.1 1711 | 1712 | locate-path@6.0.0: 1713 | dependencies: 1714 | p-locate: 5.0.0 1715 | 1716 | magic-string@0.30.10: 1717 | dependencies: 1718 | '@jridgewell/sourcemap-codec': 1.4.15 1719 | 1720 | mdn-data@2.0.30: {} 1721 | 1722 | merge-stream@2.0.0: {} 1723 | 1724 | merge2@1.4.1: {} 1725 | 1726 | micromatch@4.0.5: 1727 | dependencies: 1728 | braces: 3.0.2 1729 | picomatch: 2.3.1 1730 | 1731 | mimic-fn@2.1.0: {} 1732 | 1733 | minimatch@9.0.4: 1734 | dependencies: 1735 | brace-expansion: 2.0.1 1736 | 1737 | mlly@1.7.0: 1738 | dependencies: 1739 | acorn: 8.11.3 1740 | pathe: 1.1.2 1741 | pkg-types: 1.1.1 1742 | ufo: 1.5.3 1743 | 1744 | moveable@0.53.0: 1745 | dependencies: 1746 | '@daybrush/utils': 1.13.0 1747 | '@scena/event-emitter': 1.0.5 1748 | croact: 1.0.4 1749 | croact-moveable: 0.9.0(croact@1.0.4) 1750 | react-moveable: 0.56.0 1751 | 1752 | mrmime@2.0.0: {} 1753 | 1754 | ms@2.1.2: {} 1755 | 1756 | muggle-string@0.3.1: {} 1757 | 1758 | nanoid@3.3.7: {} 1759 | 1760 | node-fetch-native@1.6.4: {} 1761 | 1762 | normalize-path@3.0.0: {} 1763 | 1764 | npm-run-path@4.0.1: 1765 | dependencies: 1766 | path-key: 3.1.1 1767 | 1768 | ofetch@1.3.4: 1769 | dependencies: 1770 | destr: 2.0.3 1771 | node-fetch-native: 1.6.4 1772 | ufo: 1.5.3 1773 | 1774 | onetime@5.1.2: 1775 | dependencies: 1776 | mimic-fn: 2.1.0 1777 | 1778 | overlap-area@1.1.0: 1779 | dependencies: 1780 | '@daybrush/utils': 1.13.0 1781 | 1782 | p-limit@3.1.0: 1783 | dependencies: 1784 | yocto-queue: 0.1.0 1785 | 1786 | p-locate@5.0.0: 1787 | dependencies: 1788 | p-limit: 3.1.0 1789 | 1790 | path-browserify@1.0.1: {} 1791 | 1792 | path-exists@4.0.0: {} 1793 | 1794 | path-key@3.1.1: {} 1795 | 1796 | path-parse@1.0.7: {} 1797 | 1798 | pathe@1.1.2: {} 1799 | 1800 | perfect-debounce@1.0.0: {} 1801 | 1802 | picocolors@1.0.1: {} 1803 | 1804 | picomatch@2.3.1: {} 1805 | 1806 | pkg-types@1.1.1: 1807 | dependencies: 1808 | confbox: 0.1.7 1809 | mlly: 1.7.0 1810 | pathe: 1.1.2 1811 | 1812 | postcss@8.4.38: 1813 | dependencies: 1814 | nanoid: 3.3.7 1815 | picocolors: 1.0.1 1816 | source-map-js: 1.2.0 1817 | 1818 | queue-microtask@1.2.3: {} 1819 | 1820 | react-css-styled@1.1.9: 1821 | dependencies: 1822 | css-styled: 1.0.8 1823 | framework-utils: 1.1.0 1824 | 1825 | react-moveable@0.56.0: 1826 | dependencies: 1827 | '@daybrush/utils': 1.13.0 1828 | '@egjs/agent': 2.4.3 1829 | '@egjs/children-differ': 1.0.1 1830 | '@egjs/list-differ': 1.0.1 1831 | '@scena/dragscroll': 1.4.0 1832 | '@scena/event-emitter': 1.0.5 1833 | '@scena/matrix': 1.1.1 1834 | css-to-mat: 1.1.1 1835 | framework-utils: 1.1.0 1836 | gesto: 1.19.4 1837 | overlap-area: 1.1.0 1838 | react-css-styled: 1.1.9 1839 | react-selecto: 1.26.3 1840 | 1841 | react-selecto@1.26.3: 1842 | dependencies: 1843 | selecto: 1.26.3 1844 | 1845 | readdirp@3.6.0: 1846 | dependencies: 1847 | picomatch: 2.3.1 1848 | 1849 | resolve@1.22.8: 1850 | dependencies: 1851 | is-core-module: 2.13.1 1852 | path-parse: 1.0.7 1853 | supports-preserve-symlinks-flag: 1.0.0 1854 | 1855 | reusify@1.0.4: {} 1856 | 1857 | rollup@3.29.4: 1858 | optionalDependencies: 1859 | fsevents: 2.3.3 1860 | 1861 | run-parallel@1.2.0: 1862 | dependencies: 1863 | queue-microtask: 1.2.3 1864 | 1865 | sass@1.77.2: 1866 | dependencies: 1867 | chokidar: 3.6.0 1868 | immutable: 4.3.6 1869 | source-map-js: 1.2.0 1870 | 1871 | selecto@1.26.3: 1872 | dependencies: 1873 | '@daybrush/utils': 1.13.0 1874 | '@egjs/children-differ': 1.0.1 1875 | '@scena/dragscroll': 1.4.0 1876 | '@scena/event-emitter': 1.0.5 1877 | css-styled: 1.0.8 1878 | css-to-mat: 1.1.1 1879 | framework-utils: 1.1.0 1880 | gesto: 1.19.4 1881 | keycon: 1.4.0 1882 | overlap-area: 1.1.0 1883 | 1884 | semver@7.6.2: {} 1885 | 1886 | shebang-command@2.0.0: 1887 | dependencies: 1888 | shebang-regex: 3.0.0 1889 | 1890 | shebang-regex@3.0.0: {} 1891 | 1892 | signal-exit@3.0.7: {} 1893 | 1894 | sirv@2.0.4: 1895 | dependencies: 1896 | '@polka/url': 1.0.0-next.25 1897 | mrmime: 2.0.0 1898 | totalist: 3.0.1 1899 | 1900 | source-map-js@1.2.0: {} 1901 | 1902 | source-map@0.6.1: {} 1903 | 1904 | strip-final-newline@2.0.0: {} 1905 | 1906 | supports-preserve-symlinks-flag@1.0.0: {} 1907 | 1908 | to-fast-properties@2.0.0: {} 1909 | 1910 | to-regex-range@5.0.1: 1911 | dependencies: 1912 | is-number: 7.0.0 1913 | 1914 | totalist@3.0.1: {} 1915 | 1916 | typescript@4.9.5: {} 1917 | 1918 | ufo@1.5.3: {} 1919 | 1920 | unconfig@0.3.13: 1921 | dependencies: 1922 | '@antfu/utils': 0.7.8 1923 | defu: 6.1.4 1924 | jiti: 1.21.0 1925 | 1926 | undici-types@5.26.5: {} 1927 | 1928 | unocss@0.55.7(postcss@8.4.38)(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2)): 1929 | dependencies: 1930 | '@unocss/astro': 0.55.7(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2)) 1931 | '@unocss/cli': 0.55.7(rollup@3.29.4) 1932 | '@unocss/core': 0.55.7 1933 | '@unocss/extractor-arbitrary-variants': 0.55.7 1934 | '@unocss/postcss': 0.55.7(postcss@8.4.38) 1935 | '@unocss/preset-attributify': 0.55.7 1936 | '@unocss/preset-icons': 0.55.7 1937 | '@unocss/preset-mini': 0.55.7 1938 | '@unocss/preset-tagify': 0.55.7 1939 | '@unocss/preset-typography': 0.55.7 1940 | '@unocss/preset-uno': 0.55.7 1941 | '@unocss/preset-web-fonts': 0.55.7 1942 | '@unocss/preset-wind': 0.55.7 1943 | '@unocss/reset': 0.55.7 1944 | '@unocss/transformer-attributify-jsx': 0.55.7 1945 | '@unocss/transformer-attributify-jsx-babel': 0.55.7 1946 | '@unocss/transformer-compile-class': 0.55.7 1947 | '@unocss/transformer-directives': 0.55.7 1948 | '@unocss/transformer-variant-group': 0.55.7 1949 | '@unocss/vite': 0.55.7(rollup@3.29.4)(vite@4.5.3(@types/node@18.19.33)(sass@1.77.2)) 1950 | optionalDependencies: 1951 | vite: 4.5.3(@types/node@18.19.33)(sass@1.77.2) 1952 | transitivePeerDependencies: 1953 | - postcss 1954 | - rollup 1955 | - supports-color 1956 | 1957 | unplugin-icons@0.16.6(@vue/compiler-sfc@3.4.27)(vue-template-compiler@2.7.16): 1958 | dependencies: 1959 | '@antfu/install-pkg': 0.1.1 1960 | '@antfu/utils': 0.7.8 1961 | '@iconify/utils': 2.1.23 1962 | debug: 4.3.4 1963 | kolorist: 1.8.0 1964 | local-pkg: 0.4.3 1965 | unplugin: 1.10.1 1966 | optionalDependencies: 1967 | '@vue/compiler-sfc': 3.4.27 1968 | vue-template-compiler: 2.7.16 1969 | transitivePeerDependencies: 1970 | - supports-color 1971 | 1972 | unplugin-vue-components@0.25.2(@babel/parser@7.24.5)(rollup@3.29.4)(vue@3.4.27(typescript@4.9.5)): 1973 | dependencies: 1974 | '@antfu/utils': 0.7.8 1975 | '@rollup/pluginutils': 5.1.0(rollup@3.29.4) 1976 | chokidar: 3.6.0 1977 | debug: 4.3.4 1978 | fast-glob: 3.3.2 1979 | local-pkg: 0.4.3 1980 | magic-string: 0.30.10 1981 | minimatch: 9.0.4 1982 | resolve: 1.22.8 1983 | unplugin: 1.10.1 1984 | vue: 3.4.27(typescript@4.9.5) 1985 | optionalDependencies: 1986 | '@babel/parser': 7.24.5 1987 | transitivePeerDependencies: 1988 | - rollup 1989 | - supports-color 1990 | 1991 | unplugin@1.10.1: 1992 | dependencies: 1993 | acorn: 8.11.3 1994 | chokidar: 3.6.0 1995 | webpack-sources: 3.2.3 1996 | webpack-virtual-modules: 0.6.1 1997 | 1998 | vite@4.5.3(@types/node@18.19.33)(sass@1.77.2): 1999 | dependencies: 2000 | esbuild: 0.18.20 2001 | postcss: 8.4.38 2002 | rollup: 3.29.4 2003 | optionalDependencies: 2004 | '@types/node': 18.19.33 2005 | fsevents: 2.3.3 2006 | sass: 1.77.2 2007 | 2008 | vue-demi@0.14.7(vue@3.4.27(typescript@4.9.5)): 2009 | dependencies: 2010 | vue: 3.4.27(typescript@4.9.5) 2011 | 2012 | vue-sonner@1.1.2: {} 2013 | 2014 | vue-template-compiler@2.7.16: 2015 | dependencies: 2016 | de-indent: 1.0.2 2017 | he: 1.2.0 2018 | 2019 | vue-tsc@1.8.27(typescript@4.9.5): 2020 | dependencies: 2021 | '@volar/typescript': 1.11.1 2022 | '@vue/language-core': 1.8.27(typescript@4.9.5) 2023 | semver: 7.6.2 2024 | typescript: 4.9.5 2025 | 2026 | vue@3.4.27(typescript@4.9.5): 2027 | dependencies: 2028 | '@vue/compiler-dom': 3.4.27 2029 | '@vue/compiler-sfc': 3.4.27 2030 | '@vue/runtime-dom': 3.4.27 2031 | '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@4.9.5)) 2032 | '@vue/shared': 3.4.27 2033 | optionalDependencies: 2034 | typescript: 4.9.5 2035 | 2036 | webpack-sources@3.2.3: {} 2037 | 2038 | webpack-virtual-modules@0.6.1: {} 2039 | 2040 | which@2.0.2: 2041 | dependencies: 2042 | isexe: 2.0.0 2043 | 2044 | yocto-queue@0.1.0: {} 2045 | -------------------------------------------------------------------------------- /public/logo.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /public/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/vue-color-wheel/ab6f39fd37a1184ad321cc271bc7d481134eed14/public/preview.jpg -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 212 | 213 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /src/assets/highlight.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:meta'; 2 | 3 | html { 4 | @include meta.load-css('highlight.js/styles/github'); 5 | } 6 | html.dark { 7 | @include meta.load-css('highlight.js/styles/github-dark'); 8 | } 9 | 10 | code.hljs { 11 | border-radius: 16px; 12 | } 13 | -------------------------------------------------------------------------------- /src/components/GradientAnimation.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 56 | 57 | 253 | -------------------------------------------------------------------------------- /src/components/Logo.vue: -------------------------------------------------------------------------------- 1 | 76 | -------------------------------------------------------------------------------- /src/composables/useDarkmode.ts: -------------------------------------------------------------------------------- 1 | import { useDark, useToggle } from '@vueuse/core' 2 | 3 | export const isDark = useDark() 4 | export const toggleDarkmode = useToggle(isDark) 5 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | import 'uno.css' 5 | import '@unocss/reset/tailwind-compat.css' 6 | import highlight from '~/plugins/highlight' 7 | 8 | const app = createApp(App) 9 | 10 | app.use(highlight) 11 | app.mount('#app') 12 | -------------------------------------------------------------------------------- /src/plugins/highlight.ts: -------------------------------------------------------------------------------- 1 | import { ref, h, computed, defineComponent, Plugin, watch } from 'vue' 2 | import hljs from 'highlight.js/lib/core' 3 | import javascript from 'highlight.js/lib/languages/javascript' 4 | import xml from 'highlight.js/lib/languages/xml' 5 | 6 | hljs.registerLanguage('javascript', javascript) 7 | hljs.registerLanguage('xml', xml) 8 | 9 | function escapeHtml(value: string): string { 10 | return value 11 | .replace(/&/g, '&') 12 | .replace(//g, '>') 14 | .replace(/"/g, '"') 15 | .replace(/'/g, ''') 16 | } 17 | 18 | const component = defineComponent({ 19 | props: { 20 | code: { 21 | type: String, 22 | required: true 23 | }, 24 | language: { 25 | type: String, 26 | default: '' 27 | }, 28 | autodetect: { 29 | type: Boolean, 30 | default: true 31 | }, 32 | ignoreIllegals: { 33 | type: Boolean, 34 | default: true 35 | } 36 | }, 37 | setup(props) { 38 | const language = ref(props.language) 39 | watch( 40 | () => props.language, 41 | (newLanguage) => { 42 | language.value = newLanguage 43 | } 44 | ) 45 | 46 | const autodetect = computed(() => props.autodetect || !language.value) 47 | const cannotDetectLanguage = computed( 48 | () => !autodetect.value && !hljs.getLanguage(language.value) 49 | ) 50 | 51 | const className = computed((): string => { 52 | if (cannotDetectLanguage.value) { 53 | return '' 54 | } else { 55 | return `hljs ${language.value}` 56 | } 57 | }) 58 | 59 | const highlightedCode = computed((): string => { 60 | // No idea what language to use, return raw code 61 | if (cannotDetectLanguage.value) { 62 | console.warn( 63 | `The language "${language.value}" you specified could not be found.` 64 | ) 65 | return escapeHtml(props.code) 66 | } 67 | 68 | if (autodetect.value) { 69 | const result = hljs.highlightAuto(props.code) 70 | language.value = result.language ?? '' 71 | return result.value 72 | } else { 73 | const result = hljs.highlight(props.code, { 74 | language: language.value, 75 | ignoreIllegals: props.ignoreIllegals 76 | }) 77 | return result.value 78 | } 79 | }) 80 | 81 | return { 82 | className, 83 | highlightedCode 84 | } 85 | }, 86 | render() { 87 | return h('pre', {}, [ 88 | h('code', { 89 | class: this.className, 90 | innerHTML: this.highlightedCode, 91 | tabindex: '0' 92 | }) 93 | ]) 94 | } 95 | }) 96 | 97 | const plugin: Plugin & { component: typeof component } = { 98 | install(app) { 99 | app.component('Highlight', component) 100 | }, 101 | component 102 | } 103 | 104 | export default plugin 105 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | const component: DefineComponent<{}, {}, any> 6 | export default component 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.dom.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "noEmit": false, 6 | "emitDeclarationOnly": true, 7 | "outDir": "lib", 8 | "moduleResolution": "Node", 9 | "baseUrl": "./", 10 | "types": ["web-bluetooth", "node"] 11 | }, 12 | "vueCompilerOptions": { 13 | "skipTemplateCodegen": true 14 | }, 15 | "include": [ 16 | "packages/**/*.ts", 17 | "packages/**/*.d.ts", 18 | "packages/**/*.tsx", 19 | "packages/**/*.vue" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "lib": ["ESNext", "DOM"], 14 | "skipLibCheck": true, 15 | "baseUrl": "./", 16 | "paths": { 17 | "@/*": ["packages/*"], 18 | "~/*": ["./src/*"] 19 | }, 20 | "allowJs": true 21 | }, 22 | "include": [ 23 | "src/**/*.ts", 24 | "src/**/*.d.ts", 25 | "src/**/*.tsx", 26 | "src/**/*.vue", 27 | "packages/**/*.ts", 28 | "packages/**/*.d.ts", 29 | "packages/**/*.tsx", 30 | "packages/**/*.vue" 31 | ], 32 | "references": [{ "path": "./tsconfig.node.json" }] 33 | } 34 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /unocss.config.ts: -------------------------------------------------------------------------------- 1 | import { 2 | defineConfig, 3 | presetUno, 4 | presetAttributify, 5 | presetWebFonts 6 | } from 'unocss' 7 | 8 | export default defineConfig({ 9 | presets: [ 10 | presetUno(), 11 | presetAttributify(), 12 | presetWebFonts({ 13 | fonts: { 14 | sans: 'Plus Jakarta Sans', 15 | serif: 'Belanosima', 16 | mono: 'Space Mono' 17 | } 18 | }) 19 | ], 20 | shortcuts: [ 21 | { 22 | 'flex-center': 'flex justify-center items-center', 23 | 'flex-between': 'flex justify-between items-center', 24 | 'text-primary': 'text-neutral-900 dark:text-neutral-50', 25 | 'text-neon': 26 | 'text-transparent bg-clip-text bg-gradient-to-r from-emerald-500 to-emerald-700 dark:to-emerald-300 ' 27 | } 28 | ] 29 | }) 30 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig, UserConfig } from 'vite' 2 | import { resolve } from 'path' 3 | import vue from '@vitejs/plugin-vue' 4 | import UnoCSS from 'unocss/vite' 5 | import Icons from 'unplugin-icons/vite' 6 | import IconsResolver from 'unplugin-icons/resolver' 7 | import Components from 'unplugin-vue-components/vite' 8 | import CleanCSS from 'clean-css' 9 | 10 | const cleanCssInstance = new CleanCSS({}) 11 | function minify(code: string) { 12 | return cleanCssInstance.minify(code).styles 13 | } 14 | 15 | let cssCodeStr = '' 16 | 17 | // https://vitejs.dev/config/ 18 | export default defineConfig(({ command, mode }) => { 19 | let userConfig: UserConfig = {} 20 | 21 | const commonPlugins = [ 22 | vue(), 23 | UnoCSS(), 24 | Components({ 25 | resolvers: [ 26 | IconsResolver({ 27 | prefix: '' 28 | }) 29 | ] 30 | }), 31 | Icons() 32 | ] 33 | 34 | if (mode === 'lib') { 35 | userConfig.build = { 36 | lib: { 37 | entry: resolve(__dirname, 'packages/index.ts'), 38 | name: 'VueColorWheel', 39 | fileName: 'vue-color-wheel' 40 | }, 41 | outDir: 'lib', 42 | emptyOutDir: true, 43 | cssCodeSplit: false, 44 | sourcemap: true, 45 | rollupOptions: { 46 | external: ['vue'], 47 | output: [ 48 | { 49 | format: 'cjs', 50 | entryFileNames: `vue-color-wheel.cjs` 51 | }, 52 | { 53 | format: 'es', 54 | entryFileNames: `vue-color-wheel.js`, 55 | preserveModules: false 56 | } 57 | ] 58 | } 59 | } 60 | userConfig.plugins = [ 61 | ...commonPlugins, 62 | { 63 | name: 'inline-css', 64 | transform(code, id) { 65 | const isCSS = (path: string) => /\.css$/.test(path) 66 | if (!isCSS(id)) return 67 | 68 | const cssCode = minify(code) 69 | cssCodeStr = cssCode 70 | return { 71 | code: '', 72 | map: { mappings: '' } 73 | } 74 | }, 75 | renderChunk(code, { isEntry }) { 76 | if (!isEntry) return 77 | 78 | return { 79 | code: `\ 80 | function __insertCSSVueSonner(code) { 81 | if (!code || typeof document == 'undefined') return 82 | let head = document.head || document.getElementsByTagName('head')[0] 83 | let style = document.createElement('style') 84 | style.type = 'text/css' 85 | head.appendChild(style) 86 | ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code)) 87 | }\n 88 | __insertCSSVueSonner(${JSON.stringify(cssCodeStr)}) 89 | \n ${code}`, 90 | map: { mappings: '' } 91 | } 92 | } 93 | } 94 | ] 95 | } 96 | 97 | return { 98 | resolve: { 99 | alias: { 100 | '@': resolve(__dirname, '/packages'), 101 | '~': resolve(__dirname, '/src') 102 | } 103 | }, 104 | plugins: [...commonPlugins], 105 | ...userConfig 106 | } 107 | }) 108 | --------------------------------------------------------------------------------