├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public └── vite.svg ├── src ├── App.vue ├── assets │ └── vue.svg ├── components │ └── Vue3LoadingShimmer.vue ├── lib │ └── main.ts ├── main.ts ├── style.css └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.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 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue3-loading-shimmer 2 | 3 | --- 4 | 5 | A customizable Vue 3 component for creating loading shimmer effects. 6 | 7 | ## Documentation 8 | 9 | --- 10 | 11 | ![](https://res.cloudinary.com/abeydev/image/upload/v1702859764/npm-packages/xtosiujpnki95cevsflg.gif) 12 | 13 | ### Features 14 | 15 | - Customizable background color 16 | - Customizable shimmer color 17 | - Customizable time duration 18 | - Customizable direction 19 | 20 | 23 | 24 | ### Installation and usage 25 | 26 | --- 27 | 28 | ``` 29 | npm install vue3-loading-shimmer --save 30 | ``` 31 | 32 | You can use register it globally like this: 33 | 34 | ```javascript 35 | import { createApp } from "vue"; 36 | import App from "./App.vue"; 37 | import vue3LoadingShimmer from "vue3-loading-shimmer"; 38 | 39 | const app = createApp(App); 40 | 41 | app.component("vue3-loading-shimmer", vue3LoadingShimmer); 42 | ``` 43 | 44 | then use it this in your component: 45 | `` 46 | 47 | Alternatively, you can use it directly: 48 | 49 | ```vue 50 | 51 | 52 | 58 | 59 | 62 | 63 | 71 | ``` 72 | 73 | ### Browser with CDN 74 | 75 | ```html 76 | 77 | 78 | ``` 79 | 80 | ```javascript 81 | const { createApp } = Vue; 82 | const App = { 83 | //Component code... 84 | }; 85 | const app = createApp(App); 86 | app.component("Shimmer", Vue3LoadingShimmer); 87 | app.mount("#app"); 88 | ``` 89 | 90 | ## Available Props 91 | 92 | | Prop | Description | Type | Default | Required | 93 | | ------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------- | -------- | 94 | | bgColor | Background color of the wrapper | String | "#d3d3d3" | false | 95 | | shimmerColor | Color of the shimmer effect (**MUST BE IN HEX-FORMAT**) e.g: "#RRGGBB" or "#RGB" | String | "#ffffff" | false | 96 | | duration | Duration of the shimmer animation in milliseconds | Number | 1400 | false | 97 | | direction | Direction of the shimmer effect | "left-to-right" , "right-to-left", "top-to-bottom", "bottom-to-top" | "left-to-right" | false | 98 | 99 | Customize the component by leveraging these props to meet your specific needs. 100 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Vue + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-loading-shimmer", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "type": "module", 6 | "main": "./dist/vue3-loading-shimmer.umd.cjs", 7 | "module": "dist/vue3-loading-shimmer.js", 8 | "unpkg": "dist/vue3-loading-shimmer.iife.js", 9 | "types": "./dist/vue3-loading-shimmer.d.ts", 10 | "exports": { 11 | ".": { 12 | "import": "./dist/vue3-loading-shimmer.js", 13 | "require": "./dist/vue3-loading-shimmer.umd.cjs" 14 | } 15 | }, 16 | "files": [ 17 | "dist" 18 | ], 19 | "description": "A customizable Vue 3 component for creating loading shimmer effects", 20 | "keywords": [ 21 | "vue-loading", 22 | "vue3-shimmer", 23 | "vue-shimmer", 24 | "loading effect", 25 | "vue3-loading" 26 | ], 27 | "repository": { 28 | "type": "git", 29 | "url": "https://github.com/abiodunolunu/vue3-loading-shimmer" 30 | }, 31 | "homepage": "https://vue3-loading-shimmer.netlify.app", 32 | "author": { 33 | "name": "Abiodun Olunu", 34 | "url": "https://github.com/abiodunolunu", 35 | "email": "abiodunolunu@gmail.com" 36 | }, 37 | "bugs": { 38 | "email": "abiodunolunu@gmail.com" 39 | }, 40 | "scripts": { 41 | "dev": "vite", 42 | "build": "vue-tsc && vite build", 43 | "preview": "vite preview" 44 | }, 45 | "dependencies": { 46 | "vue": "^3.3.11" 47 | }, 48 | "devDependencies": { 49 | "@vitejs/plugin-vue": "^4.5.2", 50 | "sass": "^1.69.5", 51 | "typescript": "^5.2.2", 52 | "vite": "^5.0.8", 53 | "vite-plugin-css-injected-by-js": "^3.3.0", 54 | "vite-plugin-dts": "^3.6.4", 55 | "vue-tsc": "^1.8.25" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | vue: 9 | specifier: ^3.3.11 10 | version: 3.3.12(typescript@5.3.3) 11 | 12 | devDependencies: 13 | '@vitejs/plugin-vue': 14 | specifier: ^4.5.2 15 | version: 4.5.2(vite@5.0.10)(vue@3.3.12) 16 | sass: 17 | specifier: ^1.69.5 18 | version: 1.69.5 19 | typescript: 20 | specifier: ^5.2.2 21 | version: 5.3.3 22 | vite: 23 | specifier: ^5.0.8 24 | version: 5.0.10(sass@1.69.5) 25 | vite-plugin-css-injected-by-js: 26 | specifier: ^3.3.0 27 | version: 3.3.0(vite@5.0.10) 28 | vite-plugin-dts: 29 | specifier: ^3.6.4 30 | version: 3.6.4(typescript@5.3.3)(vite@5.0.10) 31 | vue-tsc: 32 | specifier: ^1.8.25 33 | version: 1.8.25(typescript@5.3.3) 34 | 35 | packages: 36 | 37 | /@babel/helper-string-parser@7.23.4: 38 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 39 | engines: {node: '>=6.9.0'} 40 | 41 | /@babel/helper-validator-identifier@7.22.20: 42 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 43 | engines: {node: '>=6.9.0'} 44 | 45 | /@babel/parser@7.23.6: 46 | resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} 47 | engines: {node: '>=6.0.0'} 48 | hasBin: true 49 | dependencies: 50 | '@babel/types': 7.23.6 51 | 52 | /@babel/types@7.23.6: 53 | resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} 54 | engines: {node: '>=6.9.0'} 55 | dependencies: 56 | '@babel/helper-string-parser': 7.23.4 57 | '@babel/helper-validator-identifier': 7.22.20 58 | to-fast-properties: 2.0.0 59 | 60 | /@esbuild/android-arm64@0.19.9: 61 | resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} 62 | engines: {node: '>=12'} 63 | cpu: [arm64] 64 | os: [android] 65 | requiresBuild: true 66 | dev: true 67 | optional: true 68 | 69 | /@esbuild/android-arm@0.19.9: 70 | resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==} 71 | engines: {node: '>=12'} 72 | cpu: [arm] 73 | os: [android] 74 | requiresBuild: true 75 | dev: true 76 | optional: true 77 | 78 | /@esbuild/android-x64@0.19.9: 79 | resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==} 80 | engines: {node: '>=12'} 81 | cpu: [x64] 82 | os: [android] 83 | requiresBuild: true 84 | dev: true 85 | optional: true 86 | 87 | /@esbuild/darwin-arm64@0.19.9: 88 | resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} 89 | engines: {node: '>=12'} 90 | cpu: [arm64] 91 | os: [darwin] 92 | requiresBuild: true 93 | dev: true 94 | optional: true 95 | 96 | /@esbuild/darwin-x64@0.19.9: 97 | resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==} 98 | engines: {node: '>=12'} 99 | cpu: [x64] 100 | os: [darwin] 101 | requiresBuild: true 102 | dev: true 103 | optional: true 104 | 105 | /@esbuild/freebsd-arm64@0.19.9: 106 | resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} 107 | engines: {node: '>=12'} 108 | cpu: [arm64] 109 | os: [freebsd] 110 | requiresBuild: true 111 | dev: true 112 | optional: true 113 | 114 | /@esbuild/freebsd-x64@0.19.9: 115 | resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==} 116 | engines: {node: '>=12'} 117 | cpu: [x64] 118 | os: [freebsd] 119 | requiresBuild: true 120 | dev: true 121 | optional: true 122 | 123 | /@esbuild/linux-arm64@0.19.9: 124 | resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} 125 | engines: {node: '>=12'} 126 | cpu: [arm64] 127 | os: [linux] 128 | requiresBuild: true 129 | dev: true 130 | optional: true 131 | 132 | /@esbuild/linux-arm@0.19.9: 133 | resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==} 134 | engines: {node: '>=12'} 135 | cpu: [arm] 136 | os: [linux] 137 | requiresBuild: true 138 | dev: true 139 | optional: true 140 | 141 | /@esbuild/linux-ia32@0.19.9: 142 | resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==} 143 | engines: {node: '>=12'} 144 | cpu: [ia32] 145 | os: [linux] 146 | requiresBuild: true 147 | dev: true 148 | optional: true 149 | 150 | /@esbuild/linux-loong64@0.19.9: 151 | resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==} 152 | engines: {node: '>=12'} 153 | cpu: [loong64] 154 | os: [linux] 155 | requiresBuild: true 156 | dev: true 157 | optional: true 158 | 159 | /@esbuild/linux-mips64el@0.19.9: 160 | resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==} 161 | engines: {node: '>=12'} 162 | cpu: [mips64el] 163 | os: [linux] 164 | requiresBuild: true 165 | dev: true 166 | optional: true 167 | 168 | /@esbuild/linux-ppc64@0.19.9: 169 | resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==} 170 | engines: {node: '>=12'} 171 | cpu: [ppc64] 172 | os: [linux] 173 | requiresBuild: true 174 | dev: true 175 | optional: true 176 | 177 | /@esbuild/linux-riscv64@0.19.9: 178 | resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==} 179 | engines: {node: '>=12'} 180 | cpu: [riscv64] 181 | os: [linux] 182 | requiresBuild: true 183 | dev: true 184 | optional: true 185 | 186 | /@esbuild/linux-s390x@0.19.9: 187 | resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==} 188 | engines: {node: '>=12'} 189 | cpu: [s390x] 190 | os: [linux] 191 | requiresBuild: true 192 | dev: true 193 | optional: true 194 | 195 | /@esbuild/linux-x64@0.19.9: 196 | resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==} 197 | engines: {node: '>=12'} 198 | cpu: [x64] 199 | os: [linux] 200 | requiresBuild: true 201 | dev: true 202 | optional: true 203 | 204 | /@esbuild/netbsd-x64@0.19.9: 205 | resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} 206 | engines: {node: '>=12'} 207 | cpu: [x64] 208 | os: [netbsd] 209 | requiresBuild: true 210 | dev: true 211 | optional: true 212 | 213 | /@esbuild/openbsd-x64@0.19.9: 214 | resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} 215 | engines: {node: '>=12'} 216 | cpu: [x64] 217 | os: [openbsd] 218 | requiresBuild: true 219 | dev: true 220 | optional: true 221 | 222 | /@esbuild/sunos-x64@0.19.9: 223 | resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} 224 | engines: {node: '>=12'} 225 | cpu: [x64] 226 | os: [sunos] 227 | requiresBuild: true 228 | dev: true 229 | optional: true 230 | 231 | /@esbuild/win32-arm64@0.19.9: 232 | resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} 233 | engines: {node: '>=12'} 234 | cpu: [arm64] 235 | os: [win32] 236 | requiresBuild: true 237 | dev: true 238 | optional: true 239 | 240 | /@esbuild/win32-ia32@0.19.9: 241 | resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==} 242 | engines: {node: '>=12'} 243 | cpu: [ia32] 244 | os: [win32] 245 | requiresBuild: true 246 | dev: true 247 | optional: true 248 | 249 | /@esbuild/win32-x64@0.19.9: 250 | resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==} 251 | engines: {node: '>=12'} 252 | cpu: [x64] 253 | os: [win32] 254 | requiresBuild: true 255 | dev: true 256 | optional: true 257 | 258 | /@jridgewell/sourcemap-codec@1.4.15: 259 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 260 | 261 | /@microsoft/api-extractor-model@7.28.3: 262 | resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} 263 | dependencies: 264 | '@microsoft/tsdoc': 0.14.2 265 | '@microsoft/tsdoc-config': 0.16.2 266 | '@rushstack/node-core-library': 3.62.0 267 | transitivePeerDependencies: 268 | - '@types/node' 269 | dev: true 270 | 271 | /@microsoft/api-extractor@7.38.5: 272 | resolution: {integrity: sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==} 273 | hasBin: true 274 | dependencies: 275 | '@microsoft/api-extractor-model': 7.28.3 276 | '@microsoft/tsdoc': 0.14.2 277 | '@microsoft/tsdoc-config': 0.16.2 278 | '@rushstack/node-core-library': 3.62.0 279 | '@rushstack/rig-package': 0.5.1 280 | '@rushstack/ts-command-line': 4.17.1 281 | colors: 1.2.5 282 | lodash: 4.17.21 283 | resolve: 1.22.8 284 | semver: 7.5.4 285 | source-map: 0.6.1 286 | typescript: 5.0.4 287 | transitivePeerDependencies: 288 | - '@types/node' 289 | dev: true 290 | 291 | /@microsoft/tsdoc-config@0.16.2: 292 | resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} 293 | dependencies: 294 | '@microsoft/tsdoc': 0.14.2 295 | ajv: 6.12.6 296 | jju: 1.4.0 297 | resolve: 1.19.0 298 | dev: true 299 | 300 | /@microsoft/tsdoc@0.14.2: 301 | resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} 302 | dev: true 303 | 304 | /@rollup/pluginutils@5.1.0: 305 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 306 | engines: {node: '>=14.0.0'} 307 | peerDependencies: 308 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 309 | peerDependenciesMeta: 310 | rollup: 311 | optional: true 312 | dependencies: 313 | '@types/estree': 1.0.5 314 | estree-walker: 2.0.2 315 | picomatch: 2.3.1 316 | dev: true 317 | 318 | /@rollup/rollup-android-arm-eabi@4.9.1: 319 | resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} 320 | cpu: [arm] 321 | os: [android] 322 | requiresBuild: true 323 | dev: true 324 | optional: true 325 | 326 | /@rollup/rollup-android-arm64@4.9.1: 327 | resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} 328 | cpu: [arm64] 329 | os: [android] 330 | requiresBuild: true 331 | dev: true 332 | optional: true 333 | 334 | /@rollup/rollup-darwin-arm64@4.9.1: 335 | resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} 336 | cpu: [arm64] 337 | os: [darwin] 338 | requiresBuild: true 339 | dev: true 340 | optional: true 341 | 342 | /@rollup/rollup-darwin-x64@4.9.1: 343 | resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} 344 | cpu: [x64] 345 | os: [darwin] 346 | requiresBuild: true 347 | dev: true 348 | optional: true 349 | 350 | /@rollup/rollup-linux-arm-gnueabihf@4.9.1: 351 | resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} 352 | cpu: [arm] 353 | os: [linux] 354 | requiresBuild: true 355 | dev: true 356 | optional: true 357 | 358 | /@rollup/rollup-linux-arm64-gnu@4.9.1: 359 | resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} 360 | cpu: [arm64] 361 | os: [linux] 362 | requiresBuild: true 363 | dev: true 364 | optional: true 365 | 366 | /@rollup/rollup-linux-arm64-musl@4.9.1: 367 | resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} 368 | cpu: [arm64] 369 | os: [linux] 370 | requiresBuild: true 371 | dev: true 372 | optional: true 373 | 374 | /@rollup/rollup-linux-riscv64-gnu@4.9.1: 375 | resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} 376 | cpu: [riscv64] 377 | os: [linux] 378 | requiresBuild: true 379 | dev: true 380 | optional: true 381 | 382 | /@rollup/rollup-linux-x64-gnu@4.9.1: 383 | resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} 384 | cpu: [x64] 385 | os: [linux] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@rollup/rollup-linux-x64-musl@4.9.1: 391 | resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} 392 | cpu: [x64] 393 | os: [linux] 394 | requiresBuild: true 395 | dev: true 396 | optional: true 397 | 398 | /@rollup/rollup-win32-arm64-msvc@4.9.1: 399 | resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} 400 | cpu: [arm64] 401 | os: [win32] 402 | requiresBuild: true 403 | dev: true 404 | optional: true 405 | 406 | /@rollup/rollup-win32-ia32-msvc@4.9.1: 407 | resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} 408 | cpu: [ia32] 409 | os: [win32] 410 | requiresBuild: true 411 | dev: true 412 | optional: true 413 | 414 | /@rollup/rollup-win32-x64-msvc@4.9.1: 415 | resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} 416 | cpu: [x64] 417 | os: [win32] 418 | requiresBuild: true 419 | dev: true 420 | optional: true 421 | 422 | /@rushstack/node-core-library@3.62.0: 423 | resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} 424 | peerDependencies: 425 | '@types/node': '*' 426 | peerDependenciesMeta: 427 | '@types/node': 428 | optional: true 429 | dependencies: 430 | colors: 1.2.5 431 | fs-extra: 7.0.1 432 | import-lazy: 4.0.0 433 | jju: 1.4.0 434 | resolve: 1.22.8 435 | semver: 7.5.4 436 | z-schema: 5.0.5 437 | dev: true 438 | 439 | /@rushstack/rig-package@0.5.1: 440 | resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} 441 | dependencies: 442 | resolve: 1.22.8 443 | strip-json-comments: 3.1.1 444 | dev: true 445 | 446 | /@rushstack/ts-command-line@4.17.1: 447 | resolution: {integrity: sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==} 448 | dependencies: 449 | '@types/argparse': 1.0.38 450 | argparse: 1.0.10 451 | colors: 1.2.5 452 | string-argv: 0.3.2 453 | dev: true 454 | 455 | /@types/argparse@1.0.38: 456 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 457 | dev: true 458 | 459 | /@types/estree@1.0.5: 460 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 461 | dev: true 462 | 463 | /@vitejs/plugin-vue@4.5.2(vite@5.0.10)(vue@3.3.12): 464 | resolution: {integrity: sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==} 465 | engines: {node: ^14.18.0 || >=16.0.0} 466 | peerDependencies: 467 | vite: ^4.0.0 || ^5.0.0 468 | vue: ^3.2.25 469 | dependencies: 470 | vite: 5.0.10(sass@1.69.5) 471 | vue: 3.3.12(typescript@5.3.3) 472 | dev: true 473 | 474 | /@volar/language-core@1.11.1: 475 | resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} 476 | dependencies: 477 | '@volar/source-map': 1.11.1 478 | dev: true 479 | 480 | /@volar/source-map@1.11.1: 481 | resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} 482 | dependencies: 483 | muggle-string: 0.3.1 484 | dev: true 485 | 486 | /@volar/typescript@1.11.1: 487 | resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} 488 | dependencies: 489 | '@volar/language-core': 1.11.1 490 | path-browserify: 1.0.1 491 | dev: true 492 | 493 | /@vue/compiler-core@3.3.12: 494 | resolution: {integrity: sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==} 495 | dependencies: 496 | '@babel/parser': 7.23.6 497 | '@vue/shared': 3.3.12 498 | estree-walker: 2.0.2 499 | source-map-js: 1.0.2 500 | 501 | /@vue/compiler-dom@3.3.12: 502 | resolution: {integrity: sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==} 503 | dependencies: 504 | '@vue/compiler-core': 3.3.12 505 | '@vue/shared': 3.3.12 506 | 507 | /@vue/compiler-sfc@3.3.12: 508 | resolution: {integrity: sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==} 509 | dependencies: 510 | '@babel/parser': 7.23.6 511 | '@vue/compiler-core': 3.3.12 512 | '@vue/compiler-dom': 3.3.12 513 | '@vue/compiler-ssr': 3.3.12 514 | '@vue/reactivity-transform': 3.3.12 515 | '@vue/shared': 3.3.12 516 | estree-walker: 2.0.2 517 | magic-string: 0.30.5 518 | postcss: 8.4.32 519 | source-map-js: 1.0.2 520 | 521 | /@vue/compiler-ssr@3.3.12: 522 | resolution: {integrity: sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==} 523 | dependencies: 524 | '@vue/compiler-dom': 3.3.12 525 | '@vue/shared': 3.3.12 526 | 527 | /@vue/language-core@1.8.25(typescript@5.3.3): 528 | resolution: {integrity: sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==} 529 | peerDependencies: 530 | typescript: '*' 531 | peerDependenciesMeta: 532 | typescript: 533 | optional: true 534 | dependencies: 535 | '@volar/language-core': 1.11.1 536 | '@volar/source-map': 1.11.1 537 | '@vue/compiler-dom': 3.3.12 538 | '@vue/shared': 3.3.12 539 | computeds: 0.0.1 540 | minimatch: 9.0.3 541 | muggle-string: 0.3.1 542 | path-browserify: 1.0.1 543 | typescript: 5.3.3 544 | vue-template-compiler: 2.7.15 545 | dev: true 546 | 547 | /@vue/reactivity-transform@3.3.12: 548 | resolution: {integrity: sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==} 549 | dependencies: 550 | '@babel/parser': 7.23.6 551 | '@vue/compiler-core': 3.3.12 552 | '@vue/shared': 3.3.12 553 | estree-walker: 2.0.2 554 | magic-string: 0.30.5 555 | 556 | /@vue/reactivity@3.3.12: 557 | resolution: {integrity: sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==} 558 | dependencies: 559 | '@vue/shared': 3.3.12 560 | 561 | /@vue/runtime-core@3.3.12: 562 | resolution: {integrity: sha512-5iL4w7MZrSGKEZU2wFAYhDZdZmgn+s//73EfgDXW1M+ZUOl36md7tlWp1QFK/ladiq4FvQ82shVjo0KiPDPr0A==} 563 | dependencies: 564 | '@vue/reactivity': 3.3.12 565 | '@vue/shared': 3.3.12 566 | 567 | /@vue/runtime-dom@3.3.12: 568 | resolution: {integrity: sha512-8mMzqiIdl+IYa/OXwKwk6/4ebLq7cYV1pUcwCSwBK2KerUa6cwGosen5xrCL9f8o2DJ9TfPFwbPEvH7OXzUpoA==} 569 | dependencies: 570 | '@vue/runtime-core': 3.3.12 571 | '@vue/shared': 3.3.12 572 | csstype: 3.1.3 573 | 574 | /@vue/server-renderer@3.3.12(vue@3.3.12): 575 | resolution: {integrity: sha512-OZ0IEK5TU5GXb5J8/wSplyxvGGdIcwEmS8EIO302Vz8K6fGSgSJTU54X0Sb6PaefzZdiN3vHsLXO8XIeF8crQQ==} 576 | peerDependencies: 577 | vue: 3.3.12 578 | dependencies: 579 | '@vue/compiler-ssr': 3.3.12 580 | '@vue/shared': 3.3.12 581 | vue: 3.3.12(typescript@5.3.3) 582 | 583 | /@vue/shared@3.3.12: 584 | resolution: {integrity: sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==} 585 | 586 | /ajv@6.12.6: 587 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 588 | dependencies: 589 | fast-deep-equal: 3.1.3 590 | fast-json-stable-stringify: 2.1.0 591 | json-schema-traverse: 0.4.1 592 | uri-js: 4.4.1 593 | dev: true 594 | 595 | /anymatch@3.1.3: 596 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 597 | engines: {node: '>= 8'} 598 | dependencies: 599 | normalize-path: 3.0.0 600 | picomatch: 2.3.1 601 | dev: true 602 | 603 | /argparse@1.0.10: 604 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 605 | dependencies: 606 | sprintf-js: 1.0.3 607 | dev: true 608 | 609 | /balanced-match@1.0.2: 610 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 611 | dev: true 612 | 613 | /binary-extensions@2.2.0: 614 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 615 | engines: {node: '>=8'} 616 | dev: true 617 | 618 | /brace-expansion@2.0.1: 619 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 620 | dependencies: 621 | balanced-match: 1.0.2 622 | dev: true 623 | 624 | /braces@3.0.2: 625 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 626 | engines: {node: '>=8'} 627 | dependencies: 628 | fill-range: 7.0.1 629 | dev: true 630 | 631 | /chokidar@3.5.3: 632 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 633 | engines: {node: '>= 8.10.0'} 634 | dependencies: 635 | anymatch: 3.1.3 636 | braces: 3.0.2 637 | glob-parent: 5.1.2 638 | is-binary-path: 2.1.0 639 | is-glob: 4.0.3 640 | normalize-path: 3.0.0 641 | readdirp: 3.6.0 642 | optionalDependencies: 643 | fsevents: 2.3.3 644 | dev: true 645 | 646 | /colors@1.2.5: 647 | resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} 648 | engines: {node: '>=0.1.90'} 649 | dev: true 650 | 651 | /commander@9.5.0: 652 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 653 | engines: {node: ^12.20.0 || >=14} 654 | requiresBuild: true 655 | dev: true 656 | optional: true 657 | 658 | /computeds@0.0.1: 659 | resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} 660 | dev: true 661 | 662 | /csstype@3.1.3: 663 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 664 | 665 | /de-indent@1.0.2: 666 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 667 | dev: true 668 | 669 | /debug@4.3.4: 670 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 671 | engines: {node: '>=6.0'} 672 | peerDependencies: 673 | supports-color: '*' 674 | peerDependenciesMeta: 675 | supports-color: 676 | optional: true 677 | dependencies: 678 | ms: 2.1.2 679 | dev: true 680 | 681 | /esbuild@0.19.9: 682 | resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} 683 | engines: {node: '>=12'} 684 | hasBin: true 685 | requiresBuild: true 686 | optionalDependencies: 687 | '@esbuild/android-arm': 0.19.9 688 | '@esbuild/android-arm64': 0.19.9 689 | '@esbuild/android-x64': 0.19.9 690 | '@esbuild/darwin-arm64': 0.19.9 691 | '@esbuild/darwin-x64': 0.19.9 692 | '@esbuild/freebsd-arm64': 0.19.9 693 | '@esbuild/freebsd-x64': 0.19.9 694 | '@esbuild/linux-arm': 0.19.9 695 | '@esbuild/linux-arm64': 0.19.9 696 | '@esbuild/linux-ia32': 0.19.9 697 | '@esbuild/linux-loong64': 0.19.9 698 | '@esbuild/linux-mips64el': 0.19.9 699 | '@esbuild/linux-ppc64': 0.19.9 700 | '@esbuild/linux-riscv64': 0.19.9 701 | '@esbuild/linux-s390x': 0.19.9 702 | '@esbuild/linux-x64': 0.19.9 703 | '@esbuild/netbsd-x64': 0.19.9 704 | '@esbuild/openbsd-x64': 0.19.9 705 | '@esbuild/sunos-x64': 0.19.9 706 | '@esbuild/win32-arm64': 0.19.9 707 | '@esbuild/win32-ia32': 0.19.9 708 | '@esbuild/win32-x64': 0.19.9 709 | dev: true 710 | 711 | /estree-walker@2.0.2: 712 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 713 | 714 | /fast-deep-equal@3.1.3: 715 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 716 | dev: true 717 | 718 | /fast-json-stable-stringify@2.1.0: 719 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 720 | dev: true 721 | 722 | /fill-range@7.0.1: 723 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 724 | engines: {node: '>=8'} 725 | dependencies: 726 | to-regex-range: 5.0.1 727 | dev: true 728 | 729 | /fs-extra@7.0.1: 730 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 731 | engines: {node: '>=6 <7 || >=8'} 732 | dependencies: 733 | graceful-fs: 4.2.11 734 | jsonfile: 4.0.0 735 | universalify: 0.1.2 736 | dev: true 737 | 738 | /fsevents@2.3.3: 739 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 740 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 741 | os: [darwin] 742 | requiresBuild: true 743 | dev: true 744 | optional: true 745 | 746 | /function-bind@1.1.2: 747 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 748 | dev: true 749 | 750 | /glob-parent@5.1.2: 751 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 752 | engines: {node: '>= 6'} 753 | dependencies: 754 | is-glob: 4.0.3 755 | dev: true 756 | 757 | /graceful-fs@4.2.11: 758 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 759 | dev: true 760 | 761 | /hasown@2.0.0: 762 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 763 | engines: {node: '>= 0.4'} 764 | dependencies: 765 | function-bind: 1.1.2 766 | dev: true 767 | 768 | /he@1.2.0: 769 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 770 | hasBin: true 771 | dev: true 772 | 773 | /immutable@4.3.4: 774 | resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} 775 | dev: true 776 | 777 | /import-lazy@4.0.0: 778 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 779 | engines: {node: '>=8'} 780 | dev: true 781 | 782 | /is-binary-path@2.1.0: 783 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 784 | engines: {node: '>=8'} 785 | dependencies: 786 | binary-extensions: 2.2.0 787 | dev: true 788 | 789 | /is-core-module@2.13.1: 790 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 791 | dependencies: 792 | hasown: 2.0.0 793 | dev: true 794 | 795 | /is-extglob@2.1.1: 796 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 797 | engines: {node: '>=0.10.0'} 798 | dev: true 799 | 800 | /is-glob@4.0.3: 801 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 802 | engines: {node: '>=0.10.0'} 803 | dependencies: 804 | is-extglob: 2.1.1 805 | dev: true 806 | 807 | /is-number@7.0.0: 808 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 809 | engines: {node: '>=0.12.0'} 810 | dev: true 811 | 812 | /jju@1.4.0: 813 | resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} 814 | dev: true 815 | 816 | /json-schema-traverse@0.4.1: 817 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 818 | dev: true 819 | 820 | /jsonfile@4.0.0: 821 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 822 | optionalDependencies: 823 | graceful-fs: 4.2.11 824 | dev: true 825 | 826 | /kolorist@1.8.0: 827 | resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 828 | dev: true 829 | 830 | /lodash.get@4.4.2: 831 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} 832 | dev: true 833 | 834 | /lodash.isequal@4.5.0: 835 | resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} 836 | dev: true 837 | 838 | /lodash@4.17.21: 839 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 840 | dev: true 841 | 842 | /lru-cache@6.0.0: 843 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 844 | engines: {node: '>=10'} 845 | dependencies: 846 | yallist: 4.0.0 847 | dev: true 848 | 849 | /magic-string@0.30.5: 850 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 851 | engines: {node: '>=12'} 852 | dependencies: 853 | '@jridgewell/sourcemap-codec': 1.4.15 854 | 855 | /minimatch@9.0.3: 856 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 857 | engines: {node: '>=16 || 14 >=14.17'} 858 | dependencies: 859 | brace-expansion: 2.0.1 860 | dev: true 861 | 862 | /ms@2.1.2: 863 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 864 | dev: true 865 | 866 | /muggle-string@0.3.1: 867 | resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} 868 | dev: true 869 | 870 | /nanoid@3.3.7: 871 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 872 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 873 | hasBin: true 874 | 875 | /normalize-path@3.0.0: 876 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 877 | engines: {node: '>=0.10.0'} 878 | dev: true 879 | 880 | /path-browserify@1.0.1: 881 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 882 | dev: true 883 | 884 | /path-parse@1.0.7: 885 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 886 | dev: true 887 | 888 | /picocolors@1.0.0: 889 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 890 | 891 | /picomatch@2.3.1: 892 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 893 | engines: {node: '>=8.6'} 894 | dev: true 895 | 896 | /postcss@8.4.32: 897 | resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} 898 | engines: {node: ^10 || ^12 || >=14} 899 | dependencies: 900 | nanoid: 3.3.7 901 | picocolors: 1.0.0 902 | source-map-js: 1.0.2 903 | 904 | /punycode@2.3.1: 905 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 906 | engines: {node: '>=6'} 907 | dev: true 908 | 909 | /readdirp@3.6.0: 910 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 911 | engines: {node: '>=8.10.0'} 912 | dependencies: 913 | picomatch: 2.3.1 914 | dev: true 915 | 916 | /resolve@1.19.0: 917 | resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} 918 | dependencies: 919 | is-core-module: 2.13.1 920 | path-parse: 1.0.7 921 | dev: true 922 | 923 | /resolve@1.22.8: 924 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 925 | hasBin: true 926 | dependencies: 927 | is-core-module: 2.13.1 928 | path-parse: 1.0.7 929 | supports-preserve-symlinks-flag: 1.0.0 930 | dev: true 931 | 932 | /rollup@4.9.1: 933 | resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} 934 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 935 | hasBin: true 936 | optionalDependencies: 937 | '@rollup/rollup-android-arm-eabi': 4.9.1 938 | '@rollup/rollup-android-arm64': 4.9.1 939 | '@rollup/rollup-darwin-arm64': 4.9.1 940 | '@rollup/rollup-darwin-x64': 4.9.1 941 | '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 942 | '@rollup/rollup-linux-arm64-gnu': 4.9.1 943 | '@rollup/rollup-linux-arm64-musl': 4.9.1 944 | '@rollup/rollup-linux-riscv64-gnu': 4.9.1 945 | '@rollup/rollup-linux-x64-gnu': 4.9.1 946 | '@rollup/rollup-linux-x64-musl': 4.9.1 947 | '@rollup/rollup-win32-arm64-msvc': 4.9.1 948 | '@rollup/rollup-win32-ia32-msvc': 4.9.1 949 | '@rollup/rollup-win32-x64-msvc': 4.9.1 950 | fsevents: 2.3.3 951 | dev: true 952 | 953 | /sass@1.69.5: 954 | resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} 955 | engines: {node: '>=14.0.0'} 956 | hasBin: true 957 | dependencies: 958 | chokidar: 3.5.3 959 | immutable: 4.3.4 960 | source-map-js: 1.0.2 961 | dev: true 962 | 963 | /semver@7.5.4: 964 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 965 | engines: {node: '>=10'} 966 | hasBin: true 967 | dependencies: 968 | lru-cache: 6.0.0 969 | dev: true 970 | 971 | /source-map-js@1.0.2: 972 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 973 | engines: {node: '>=0.10.0'} 974 | 975 | /source-map@0.6.1: 976 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 977 | engines: {node: '>=0.10.0'} 978 | dev: true 979 | 980 | /sprintf-js@1.0.3: 981 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 982 | dev: true 983 | 984 | /string-argv@0.3.2: 985 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 986 | engines: {node: '>=0.6.19'} 987 | dev: true 988 | 989 | /strip-json-comments@3.1.1: 990 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 991 | engines: {node: '>=8'} 992 | dev: true 993 | 994 | /supports-preserve-symlinks-flag@1.0.0: 995 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 996 | engines: {node: '>= 0.4'} 997 | dev: true 998 | 999 | /to-fast-properties@2.0.0: 1000 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1001 | engines: {node: '>=4'} 1002 | 1003 | /to-regex-range@5.0.1: 1004 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1005 | engines: {node: '>=8.0'} 1006 | dependencies: 1007 | is-number: 7.0.0 1008 | dev: true 1009 | 1010 | /typescript@5.0.4: 1011 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} 1012 | engines: {node: '>=12.20'} 1013 | hasBin: true 1014 | dev: true 1015 | 1016 | /typescript@5.3.3: 1017 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} 1018 | engines: {node: '>=14.17'} 1019 | hasBin: true 1020 | 1021 | /universalify@0.1.2: 1022 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 1023 | engines: {node: '>= 4.0.0'} 1024 | dev: true 1025 | 1026 | /uri-js@4.4.1: 1027 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1028 | dependencies: 1029 | punycode: 2.3.1 1030 | dev: true 1031 | 1032 | /validator@13.11.0: 1033 | resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} 1034 | engines: {node: '>= 0.10'} 1035 | dev: true 1036 | 1037 | /vite-plugin-css-injected-by-js@3.3.0(vite@5.0.10): 1038 | resolution: {integrity: sha512-xG+jyHNCmUqi/TXp6q88wTJGeAOrNLSyUUTp4qEQ9QZLGcHWQQsCsSSKa59rPMQr8sOzfzmWDd8enGqfH/dBew==} 1039 | peerDependencies: 1040 | vite: '>2.0.0-0' 1041 | dependencies: 1042 | vite: 5.0.10(sass@1.69.5) 1043 | dev: true 1044 | 1045 | /vite-plugin-dts@3.6.4(typescript@5.3.3)(vite@5.0.10): 1046 | resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==} 1047 | engines: {node: ^14.18.0 || >=16.0.0} 1048 | peerDependencies: 1049 | typescript: '*' 1050 | vite: '*' 1051 | peerDependenciesMeta: 1052 | vite: 1053 | optional: true 1054 | dependencies: 1055 | '@microsoft/api-extractor': 7.38.5 1056 | '@rollup/pluginutils': 5.1.0 1057 | '@vue/language-core': 1.8.25(typescript@5.3.3) 1058 | debug: 4.3.4 1059 | kolorist: 1.8.0 1060 | typescript: 5.3.3 1061 | vite: 5.0.10(sass@1.69.5) 1062 | vue-tsc: 1.8.25(typescript@5.3.3) 1063 | transitivePeerDependencies: 1064 | - '@types/node' 1065 | - rollup 1066 | - supports-color 1067 | dev: true 1068 | 1069 | /vite@5.0.10(sass@1.69.5): 1070 | resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} 1071 | engines: {node: ^18.0.0 || >=20.0.0} 1072 | hasBin: true 1073 | peerDependencies: 1074 | '@types/node': ^18.0.0 || >=20.0.0 1075 | less: '*' 1076 | lightningcss: ^1.21.0 1077 | sass: '*' 1078 | stylus: '*' 1079 | sugarss: '*' 1080 | terser: ^5.4.0 1081 | peerDependenciesMeta: 1082 | '@types/node': 1083 | optional: true 1084 | less: 1085 | optional: true 1086 | lightningcss: 1087 | optional: true 1088 | sass: 1089 | optional: true 1090 | stylus: 1091 | optional: true 1092 | sugarss: 1093 | optional: true 1094 | terser: 1095 | optional: true 1096 | dependencies: 1097 | esbuild: 0.19.9 1098 | postcss: 8.4.32 1099 | rollup: 4.9.1 1100 | sass: 1.69.5 1101 | optionalDependencies: 1102 | fsevents: 2.3.3 1103 | dev: true 1104 | 1105 | /vue-template-compiler@2.7.15: 1106 | resolution: {integrity: sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==} 1107 | dependencies: 1108 | de-indent: 1.0.2 1109 | he: 1.2.0 1110 | dev: true 1111 | 1112 | /vue-tsc@1.8.25(typescript@5.3.3): 1113 | resolution: {integrity: sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==} 1114 | hasBin: true 1115 | peerDependencies: 1116 | typescript: '*' 1117 | dependencies: 1118 | '@volar/typescript': 1.11.1 1119 | '@vue/language-core': 1.8.25(typescript@5.3.3) 1120 | semver: 7.5.4 1121 | typescript: 5.3.3 1122 | dev: true 1123 | 1124 | /vue@3.3.12(typescript@5.3.3): 1125 | resolution: {integrity: sha512-jYNv2QmET2OTHsFzfWHMnqgCfqL4zfo97QwofdET+GBRCHhSCHuMTTvNIgeSn0/xF3JRT5OGah6MDwUFN7MPlg==} 1126 | peerDependencies: 1127 | typescript: '*' 1128 | peerDependenciesMeta: 1129 | typescript: 1130 | optional: true 1131 | dependencies: 1132 | '@vue/compiler-dom': 3.3.12 1133 | '@vue/compiler-sfc': 3.3.12 1134 | '@vue/runtime-dom': 3.3.12 1135 | '@vue/server-renderer': 3.3.12(vue@3.3.12) 1136 | '@vue/shared': 3.3.12 1137 | typescript: 5.3.3 1138 | 1139 | /yallist@4.0.0: 1140 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1141 | dev: true 1142 | 1143 | /z-schema@5.0.5: 1144 | resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} 1145 | engines: {node: '>=8.0.0'} 1146 | hasBin: true 1147 | dependencies: 1148 | lodash.get: 4.4.2 1149 | lodash.isequal: 4.5.0 1150 | validator: 13.11.0 1151 | optionalDependencies: 1152 | commander: 9.5.0 1153 | dev: true 1154 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 36 | 37 | 98 | -------------------------------------------------------------------------------- /src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Vue3LoadingShimmer.vue: -------------------------------------------------------------------------------- 1 | 56 | 57 | 68 | 69 | 147 | -------------------------------------------------------------------------------- /src/lib/main.ts: -------------------------------------------------------------------------------- 1 | import Vue3LoadingShimmer from "../components/Vue3LoadingShimmer.vue"; 2 | 3 | export default Vue3LoadingShimmer; 4 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | import "./style.css"; 4 | 5 | const app = createApp(App); 6 | 7 | app.mount("#app"); 8 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color: rgba(0, 0, 0, 0.87); 7 | background-color: #eeeeee; 8 | 9 | font-synthesis: none; 10 | text-rendering: optimizeLegibility; 11 | -webkit-font-smoothing: antialiased; 12 | -moz-osx-font-smoothing: grayscale; 13 | } 14 | 15 | * { 16 | padding: 0; 17 | margin: 0; 18 | box-sizing: border-box; 19 | } 20 | 21 | button { 22 | border-radius: 8px; 23 | border: 1px solid transparent; 24 | padding: 0.6em 1.2em; 25 | font-size: 1em; 26 | font-weight: 500; 27 | font-family: inherit; 28 | background-color: #1a1a1a; 29 | cursor: pointer; 30 | transition: border-color 0.25s; 31 | color: white; 32 | } 33 | button:hover { 34 | border-color: #646cff; 35 | } 36 | button:focus, 37 | button:focus-visible { 38 | outline: 4px auto -webkit-focus-ring-color; 39 | } 40 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": [ 7 | "ES2020", 8 | "DOM", 9 | "DOM.Iterable" 10 | ], 11 | "skipLibCheck": true, 12 | /* Bundler mode */ 13 | "moduleResolution": "bundler", 14 | "allowImportingTsExtensions": true, 15 | "resolveJsonModule": true, 16 | "isolatedModules": true, 17 | "noEmit": true, 18 | "jsx": "preserve", 19 | /* Linting */ 20 | "strict": true, 21 | "noUnusedLocals": true, 22 | "noUnusedParameters": true, 23 | "noFallthroughCasesInSwitch": true 24 | }, 25 | "include": [ 26 | "src/**/*.ts", 27 | "src/**/*.tsx", 28 | "src/**/*.vue" 29 | ], 30 | "references": [ 31 | { 32 | "path": "./tsconfig.node.json" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import vue from "@vitejs/plugin-vue"; 2 | import { resolve } from "path"; 3 | import { defineConfig } from "vite"; 4 | import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js"; 5 | import dts from "vite-plugin-dts"; 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [ 10 | vue(), 11 | dts({ 12 | insertTypesEntry: true, 13 | rollupTypes: true, 14 | }), 15 | cssInjectedByJsPlugin(), 16 | ], 17 | 18 | build: { 19 | lib: { 20 | entry: resolve(__dirname, "src/lib/main.ts"), 21 | name: "Vue3LoadingShimmer", 22 | fileName: "vue3-loading-shimmer", 23 | formats: ["es", "umd", "iife", "cjs"], 24 | }, 25 | rollupOptions: { 26 | external: ["vue"], 27 | output: { 28 | globals: { 29 | vue: "Vue", 30 | }, 31 | }, 32 | }, 33 | }, 34 | }); 35 | --------------------------------------------------------------------------------