├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── iframe.html ├── index.html ├── package.json ├── pnpm-lock.yaml ├── postcss.config.cjs ├── src ├── codemirror │ └── hover-extension.ts ├── components │ ├── App.vue │ ├── AppHeader.vue │ ├── BaseDialog.vue │ ├── BoxHeader.vue │ ├── DataEditor.vue │ ├── HelpDialog.vue │ ├── Preview.vue │ ├── TemplateEditor.vue │ └── UrlDialog.vue ├── css │ ├── md.css │ ├── prism.css │ └── tailwind.css ├── iframe.ts ├── lib │ ├── config.ts │ ├── copy.ts │ ├── examples.ts │ ├── highlight.ts │ ├── html-tag.ts │ ├── use-copy.ts │ ├── use-worker.ts │ ├── useCodeMirror.ts │ ├── utils.ts │ └── worker.ts └── main.ts ├── tailwind.config.cjs ├── tsconfig.json └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | .env 4 | .env.* 5 | !.env.example 6 | dist 7 | *.log -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | *.log -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "pluginSearchDirs": ["."] 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 EGOIST (Kevin) 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 | # Banner Designer 2 | 3 | https://banner.browserku.com 4 | 5 | ## License 6 | 7 | MIT 8 | -------------------------------------------------------------------------------- /iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | {{#expect prod }} 2 | 3 | 4 | 5 | 6 | 7 | Banner Designer by Browserku 8 | 9 | 10 |
11 | 12 | {{#if prod}} 13 | 19 | {{/if}} 20 | 21 | 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browserku-banner", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "@browserku/uno": "^0.0.5", 12 | "@codemirror/commands": "^6.1.0", 13 | "@codemirror/lang-html": "^6.1.0", 14 | "@codemirror/lang-javascript": "^6.0.2", 15 | "@codemirror/view": "^6.2.0", 16 | "@headlessui/vue": "^1.6.7", 17 | "@types/dedent": "^0.7.0", 18 | "@types/node": "^18.7.13", 19 | "@types/prettier": "^2.7.0", 20 | "@types/prismjs": "^1.26.0", 21 | "@types/splitpanes": "^2.2.1", 22 | "@vitejs/plugin-vue": "^3.0.3", 23 | "autoprefixer": "^10.4.8", 24 | "codemirror": "^6.0.1", 25 | "dom-to-image-retina": "^1.0.2", 26 | "fflate": "^0.7.3", 27 | "floating-vue": "2.0.0-beta.19", 28 | "prettier": "^2.7.1", 29 | "prismjs": "^1.29.0", 30 | "redent": "^4.0.0", 31 | "splitpanes": "^3.1.1", 32 | "strip-css-comments": "^5.0.0", 33 | "tailwindcss": "^3.1.8", 34 | "tempura": "^0.4.0", 35 | "typed-worker": "^1.0.2", 36 | "typescript": "^4.7.4", 37 | "vite": "^3.0.9", 38 | "vue": "^3.2.37" 39 | }, 40 | "type": "module", 41 | "dependencies": { 42 | "petite-vue": "^0.4.1" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@browserku/uno': ^0.0.5 5 | '@codemirror/commands': ^6.1.0 6 | '@codemirror/lang-html': ^6.1.0 7 | '@codemirror/lang-javascript': ^6.0.2 8 | '@codemirror/view': ^6.2.0 9 | '@headlessui/vue': ^1.6.7 10 | '@types/dedent': ^0.7.0 11 | '@types/node': ^18.7.13 12 | '@types/prettier': ^2.7.0 13 | '@types/prismjs': ^1.26.0 14 | '@types/splitpanes': ^2.2.1 15 | '@vitejs/plugin-vue': ^3.0.3 16 | autoprefixer: ^10.4.8 17 | codemirror: ^6.0.1 18 | dom-to-image-retina: ^1.0.2 19 | fflate: ^0.7.3 20 | floating-vue: 2.0.0-beta.19 21 | petite-vue: ^0.4.1 22 | prettier: ^2.7.1 23 | prismjs: ^1.29.0 24 | redent: ^4.0.0 25 | splitpanes: ^3.1.1 26 | strip-css-comments: ^5.0.0 27 | tailwindcss: ^3.1.8 28 | tempura: ^0.4.0 29 | typed-worker: ^1.0.2 30 | typescript: ^4.7.4 31 | vite: ^3.0.9 32 | vue: ^3.2.37 33 | 34 | dependencies: 35 | petite-vue: 0.4.1 36 | 37 | devDependencies: 38 | '@browserku/uno': 0.0.5 39 | '@codemirror/commands': 6.1.0 40 | '@codemirror/lang-html': 6.1.0 41 | '@codemirror/lang-javascript': 6.0.2 42 | '@codemirror/view': 6.2.0 43 | '@headlessui/vue': 1.6.7_vue@3.2.37 44 | '@types/dedent': 0.7.0 45 | '@types/node': 18.7.13 46 | '@types/prettier': 2.7.0 47 | '@types/prismjs': 1.26.0 48 | '@types/splitpanes': 2.2.1 49 | '@vitejs/plugin-vue': 3.0.3_vite@3.0.9+vue@3.2.37 50 | autoprefixer: 10.4.8 51 | codemirror: 6.0.1 52 | dom-to-image-retina: 1.0.2 53 | fflate: 0.7.3 54 | floating-vue: 2.0.0-beta.19_vue@3.2.37 55 | prettier: 2.7.1 56 | prismjs: 1.29.0 57 | redent: 4.0.0 58 | splitpanes: 3.1.1 59 | strip-css-comments: 5.0.0 60 | tailwindcss: 3.1.8 61 | tempura: 0.4.0 62 | typed-worker: 1.0.2 63 | typescript: 4.7.4 64 | vite: 3.0.9 65 | vue: 3.2.37 66 | 67 | packages: 68 | 69 | /@babel/helper-string-parser/7.18.10: 70 | resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} 71 | engines: {node: '>=6.9.0'} 72 | dev: true 73 | 74 | /@babel/helper-validator-identifier/7.18.6: 75 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 76 | engines: {node: '>=6.9.0'} 77 | dev: true 78 | 79 | /@babel/parser/7.18.13: 80 | resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==} 81 | engines: {node: '>=6.0.0'} 82 | hasBin: true 83 | dependencies: 84 | '@babel/types': 7.18.13 85 | dev: true 86 | 87 | /@babel/types/7.18.13: 88 | resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==} 89 | engines: {node: '>=6.9.0'} 90 | dependencies: 91 | '@babel/helper-string-parser': 7.18.10 92 | '@babel/helper-validator-identifier': 7.18.6 93 | to-fast-properties: 2.0.0 94 | dev: true 95 | 96 | /@browserku/uno/0.0.5: 97 | resolution: {integrity: sha512-iVZgkDKKReW9Vj6s8xBYXcGsPpgCCt+U35QfzpfvkqC/WStlMRYvdva2wRMulHGhzb7IWnmfU8rnAHVDOLIYwQ==} 98 | dependencies: 99 | '@unocss/core': 0.45.12 100 | '@unocss/preset-attributify': 0.45.12 101 | '@unocss/preset-uno': 0.45.12 102 | dev: true 103 | 104 | /@codemirror/autocomplete/6.1.0: 105 | resolution: {integrity: sha512-wtO4O5WDyXhhCd4q4utDIDZxnQfmJ++3dGBCG9LMtI79+92OcA1DVk/n7BEupKmjIr8AzvptDz7YQ9ud6OkU+A==} 106 | dependencies: 107 | '@codemirror/language': 6.2.1 108 | '@codemirror/state': 6.1.1 109 | '@codemirror/view': 6.2.0 110 | '@lezer/common': 1.0.0 111 | dev: true 112 | 113 | /@codemirror/commands/6.1.0: 114 | resolution: {integrity: sha512-qCj2YqmbBjj0P1iumnlL5lBqZvJPzT+t2UvgjcaXErp5ZvMqFRVgQyrEfdXX6SX5UcvcHKBjXqno+MkUp0aYvQ==} 115 | dependencies: 116 | '@codemirror/language': 6.2.1 117 | '@codemirror/state': 6.1.1 118 | '@codemirror/view': 6.2.0 119 | '@lezer/common': 1.0.0 120 | dev: true 121 | 122 | /@codemirror/lang-css/6.0.0: 123 | resolution: {integrity: sha512-jBqc+BTuwhNOTlrimFghLlSrN6iFuE44HULKWoR4qKYObhOIl9Lci1iYj6zMIte1XTQmZguNvjXMyr43LUKwSw==} 124 | dependencies: 125 | '@codemirror/autocomplete': 6.1.0 126 | '@codemirror/language': 6.2.1 127 | '@codemirror/state': 6.1.1 128 | '@lezer/css': 1.0.0 129 | dev: true 130 | 131 | /@codemirror/lang-html/6.1.0: 132 | resolution: {integrity: sha512-gA7NmJxqvnhwza05CvR7W/39Ap9r/4Vs9uiC0IeFYo1hSlJzc/8N6Evviz6vTW1x8SpHcRYyqKOf6rpl6LfWtg==} 133 | dependencies: 134 | '@codemirror/autocomplete': 6.1.0 135 | '@codemirror/lang-css': 6.0.0 136 | '@codemirror/lang-javascript': 6.0.2 137 | '@codemirror/language': 6.2.1 138 | '@codemirror/state': 6.1.1 139 | '@lezer/common': 1.0.0 140 | '@lezer/html': 1.0.1 141 | dev: true 142 | 143 | /@codemirror/lang-javascript/6.0.2: 144 | resolution: {integrity: sha512-BZRJ9u/zl16hLkSpDAWm73mrfIR7HJrr0lvnhoSOCQVea5BglguWI/slxexhvUb0CB5cXgKWuo2bM+N9EhIaZw==} 145 | dependencies: 146 | '@codemirror/autocomplete': 6.1.0 147 | '@codemirror/language': 6.2.1 148 | '@codemirror/lint': 6.0.0 149 | '@codemirror/state': 6.1.1 150 | '@codemirror/view': 6.2.0 151 | '@lezer/common': 1.0.0 152 | '@lezer/javascript': 1.0.2 153 | dev: true 154 | 155 | /@codemirror/language/6.2.1: 156 | resolution: {integrity: sha512-MC3svxuvIj0MRpFlGHxLS6vPyIdbTr2KKPEW46kCoCXw2ktb4NTkpkPBI/lSP/FoNXLCBJ0mrnUi1OoZxtpW1Q==} 157 | dependencies: 158 | '@codemirror/state': 6.1.1 159 | '@codemirror/view': 6.2.0 160 | '@lezer/common': 1.0.0 161 | '@lezer/highlight': 1.0.0 162 | '@lezer/lr': 1.2.3 163 | style-mod: 4.0.0 164 | dev: true 165 | 166 | /@codemirror/lint/6.0.0: 167 | resolution: {integrity: sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==} 168 | dependencies: 169 | '@codemirror/state': 6.1.1 170 | '@codemirror/view': 6.2.0 171 | crelt: 1.0.5 172 | dev: true 173 | 174 | /@codemirror/search/6.1.0: 175 | resolution: {integrity: sha512-ye6m0jFHSgQ4qnfWVwArvm7XrCMNppMYnL5f4M0WdBScslnckomf5eVacYCw8P0UBWeq72lCSXA0/eo1piZxLA==} 176 | dependencies: 177 | '@codemirror/state': 6.1.1 178 | '@codemirror/view': 6.2.0 179 | crelt: 1.0.5 180 | dev: true 181 | 182 | /@codemirror/state/6.1.1: 183 | resolution: {integrity: sha512-2s+aXsxmAwnR3Rd+JDHPG/1lw0YsA9PEwl7Re88gHJHGfxyfEzKBmsN4rr53RyPIR4lzbbhJX0DCq0WlqlBIRw==} 184 | dev: true 185 | 186 | /@codemirror/view/6.2.0: 187 | resolution: {integrity: sha512-3emW1symh+GoteFMBPsltjmF790U/trouLILATh3JodbF/z98HvcQh2g3+H6dfNIHx16uNonsAF4mNzVr1TJNA==} 188 | dependencies: 189 | '@codemirror/state': 6.1.1 190 | style-mod: 4.0.0 191 | w3c-keyname: 2.2.6 192 | dev: true 193 | 194 | /@esbuild/linux-loong64/0.14.54: 195 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 196 | engines: {node: '>=12'} 197 | cpu: [loong64] 198 | os: [linux] 199 | requiresBuild: true 200 | dev: true 201 | optional: true 202 | 203 | /@floating-ui/core/0.3.1: 204 | resolution: {integrity: sha512-ensKY7Ub59u16qsVIFEo2hwTCqZ/r9oZZFh51ivcLGHfUwTn8l1Xzng8RJUe91H/UP8PeqeBronAGx0qmzwk2g==} 205 | dev: true 206 | 207 | /@floating-ui/dom/0.1.10: 208 | resolution: {integrity: sha512-4kAVoogvQm2N0XE0G6APQJuCNuErjOfPW8Ux7DFxh8+AfugWflwVJ5LDlHOwrwut7z/30NUvdtHzQ3zSip4EzQ==} 209 | dependencies: 210 | '@floating-ui/core': 0.3.1 211 | dev: true 212 | 213 | /@headlessui/vue/1.6.7_vue@3.2.37: 214 | resolution: {integrity: sha512-5sTCBpkUoFE7zhANn/6Z+pf3PUA7MD6BBaTsJcQybq9E4fnNiMM9agOJI9meXbtcawE6Dm8EeB5A8HAJEnZCbQ==} 215 | engines: {node: '>=10'} 216 | peerDependencies: 217 | vue: ^3.2.0 218 | dependencies: 219 | vue: 3.2.37 220 | dev: true 221 | 222 | /@lezer/common/1.0.0: 223 | resolution: {integrity: sha512-ohydQe+Hb+w4oMDvXzs8uuJd2NoA3D8YDcLiuDsLqH+yflDTPEpgCsWI3/6rH5C3BAedtH1/R51dxENldQceEA==} 224 | dev: true 225 | 226 | /@lezer/css/1.0.0: 227 | resolution: {integrity: sha512-616VqgDKumHmYIuxs3tnX1irEQmoDHgF/TlP4O5ICWwyHwLMErq+8iKVuzTkOdBqvYAVmObqThcDEAaaMJjAdg==} 228 | dependencies: 229 | '@lezer/highlight': 1.0.0 230 | '@lezer/lr': 1.2.3 231 | dev: true 232 | 233 | /@lezer/highlight/1.0.0: 234 | resolution: {integrity: sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA==} 235 | dependencies: 236 | '@lezer/common': 1.0.0 237 | dev: true 238 | 239 | /@lezer/html/1.0.1: 240 | resolution: {integrity: sha512-sC00zEt3GBh3vVO6QaGX4YZCl41S9dHWN/WGBsDixy9G+sqOC7gsa4cxA/fmRVAiBvhqYkJk+5Ul4oul92CPVw==} 241 | dependencies: 242 | '@lezer/common': 1.0.0 243 | '@lezer/highlight': 1.0.0 244 | '@lezer/lr': 1.2.3 245 | dev: true 246 | 247 | /@lezer/javascript/1.0.2: 248 | resolution: {integrity: sha512-IjOVeIRhM8IuafWNnk+UzRz7p4/JSOKBNINLYLsdSGuJS9Ju7vFdc82AlTt0jgtV5D8eBZf4g0vK4d3ttBNz7A==} 249 | dependencies: 250 | '@lezer/highlight': 1.0.0 251 | '@lezer/lr': 1.2.3 252 | dev: true 253 | 254 | /@lezer/lr/1.2.3: 255 | resolution: {integrity: sha512-qpB7rBzH8f6Mzjv2AVZRahcm+2Cf7nbIH++uXbvVOL1yIRvVWQ3HAM/saeBLCyz/togB7LGo76qdJYL1uKQlqA==} 256 | dependencies: 257 | '@lezer/common': 1.0.0 258 | dev: true 259 | 260 | /@nodelib/fs.scandir/2.1.5: 261 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 262 | engines: {node: '>= 8'} 263 | dependencies: 264 | '@nodelib/fs.stat': 2.0.5 265 | run-parallel: 1.2.0 266 | dev: true 267 | 268 | /@nodelib/fs.stat/2.0.5: 269 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 270 | engines: {node: '>= 8'} 271 | dev: true 272 | 273 | /@nodelib/fs.walk/1.2.8: 274 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 275 | engines: {node: '>= 8'} 276 | dependencies: 277 | '@nodelib/fs.scandir': 2.1.5 278 | fastq: 1.13.0 279 | dev: true 280 | 281 | /@types/dedent/0.7.0: 282 | resolution: {integrity: sha512-EGlKlgMhnLt/cM4DbUSafFdrkeJoC9Mvnj0PUCU7tFmTjMjNRT957kXCx0wYm3JuEq4o4ZsS5vG+NlkM2DMd2A==} 283 | dev: true 284 | 285 | /@types/node/18.7.13: 286 | resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==} 287 | dev: true 288 | 289 | /@types/prettier/2.7.0: 290 | resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==} 291 | dev: true 292 | 293 | /@types/prismjs/1.26.0: 294 | resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==} 295 | dev: true 296 | 297 | /@types/splitpanes/2.2.1: 298 | resolution: {integrity: sha512-H5BgO6UdJRzz5ddRzuGvLBiPSPEuuHXb5ET+7avLLrEx1uc7f5Ut5oLMDQsfvGtHBBAFczt1QNYuDf27wHbvDQ==} 299 | dependencies: 300 | vue: 2.7.10 301 | dev: true 302 | 303 | /@unocss/core/0.45.12: 304 | resolution: {integrity: sha512-21ri/IF/r82lYJTSZ8kBwesSPysaMopMbPy6AtHgCQIHQPsdx6lOzg9Wq5rh+5IjXywXSmuRMuHiYSPjI0yxdw==} 305 | dev: true 306 | 307 | /@unocss/preset-attributify/0.45.12: 308 | resolution: {integrity: sha512-Ypo0Y+2upQkjuNw6KCwzWgvQKbLyrKlLiFxSLdJ9DtHyWFSMHe6Ue9mI73pyqKSYngb5UHTSmdfs0+FbWGPmlQ==} 309 | dependencies: 310 | '@unocss/core': 0.45.12 311 | dev: true 312 | 313 | /@unocss/preset-mini/0.45.12: 314 | resolution: {integrity: sha512-2t+ia6CRnzYJQ9WSGpJgc6GOYY4BXU55TI7YdZMhNLB4+2fHt699W/EzEb8pAo+dHRcJob71Wu5RrGpF6F+HvA==} 315 | dependencies: 316 | '@unocss/core': 0.45.12 317 | dev: true 318 | 319 | /@unocss/preset-uno/0.45.12: 320 | resolution: {integrity: sha512-NkOHtzl/k81++I9y3rZV6SecHkp0bcF6bKTwNO4fDOStfarvg8NFgRR03K25Dc+2Jm/KTgT0OvOUplCTht6Xiw==} 321 | dependencies: 322 | '@unocss/core': 0.45.12 323 | '@unocss/preset-mini': 0.45.12 324 | '@unocss/preset-wind': 0.45.12 325 | dev: true 326 | 327 | /@unocss/preset-wind/0.45.12: 328 | resolution: {integrity: sha512-xZ8GNKEr4xWdbffBVgSxsWI86IMU/akvuDXMDBeA3C+yrkQFrohMn077ztF9PypXP6/CzTLtSc2x5HyHdFNQyA==} 329 | dependencies: 330 | '@unocss/core': 0.45.12 331 | '@unocss/preset-mini': 0.45.12 332 | dev: true 333 | 334 | /@vitejs/plugin-vue/3.0.3_vite@3.0.9+vue@3.2.37: 335 | resolution: {integrity: sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==} 336 | engines: {node: ^14.18.0 || >=16.0.0} 337 | peerDependencies: 338 | vite: ^3.0.0 339 | vue: ^3.2.25 340 | dependencies: 341 | vite: 3.0.9 342 | vue: 3.2.37 343 | dev: true 344 | 345 | /@vue/compiler-core/3.2.37: 346 | resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} 347 | dependencies: 348 | '@babel/parser': 7.18.13 349 | '@vue/shared': 3.2.37 350 | estree-walker: 2.0.2 351 | source-map: 0.6.1 352 | dev: true 353 | 354 | /@vue/compiler-dom/3.2.37: 355 | resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} 356 | dependencies: 357 | '@vue/compiler-core': 3.2.37 358 | '@vue/shared': 3.2.37 359 | dev: true 360 | 361 | /@vue/compiler-sfc/2.7.10: 362 | resolution: {integrity: sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==} 363 | dependencies: 364 | '@babel/parser': 7.18.13 365 | postcss: 8.4.16 366 | source-map: 0.6.1 367 | dev: true 368 | 369 | /@vue/compiler-sfc/3.2.37: 370 | resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} 371 | dependencies: 372 | '@babel/parser': 7.18.13 373 | '@vue/compiler-core': 3.2.37 374 | '@vue/compiler-dom': 3.2.37 375 | '@vue/compiler-ssr': 3.2.37 376 | '@vue/reactivity-transform': 3.2.37 377 | '@vue/shared': 3.2.37 378 | estree-walker: 2.0.2 379 | magic-string: 0.25.9 380 | postcss: 8.4.16 381 | source-map: 0.6.1 382 | dev: true 383 | 384 | /@vue/compiler-ssr/3.2.37: 385 | resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} 386 | dependencies: 387 | '@vue/compiler-dom': 3.2.37 388 | '@vue/shared': 3.2.37 389 | dev: true 390 | 391 | /@vue/reactivity-transform/3.2.37: 392 | resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} 393 | dependencies: 394 | '@babel/parser': 7.18.13 395 | '@vue/compiler-core': 3.2.37 396 | '@vue/shared': 3.2.37 397 | estree-walker: 2.0.2 398 | magic-string: 0.25.9 399 | dev: true 400 | 401 | /@vue/reactivity/3.2.37: 402 | resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} 403 | dependencies: 404 | '@vue/shared': 3.2.37 405 | dev: true 406 | 407 | /@vue/runtime-core/3.2.37: 408 | resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} 409 | dependencies: 410 | '@vue/reactivity': 3.2.37 411 | '@vue/shared': 3.2.37 412 | dev: true 413 | 414 | /@vue/runtime-dom/3.2.37: 415 | resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} 416 | dependencies: 417 | '@vue/runtime-core': 3.2.37 418 | '@vue/shared': 3.2.37 419 | csstype: 2.6.20 420 | dev: true 421 | 422 | /@vue/server-renderer/3.2.37_vue@3.2.37: 423 | resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} 424 | peerDependencies: 425 | vue: 3.2.37 426 | dependencies: 427 | '@vue/compiler-ssr': 3.2.37 428 | '@vue/shared': 3.2.37 429 | vue: 3.2.37 430 | dev: true 431 | 432 | /@vue/shared/3.2.37: 433 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 434 | dev: true 435 | 436 | /acorn-node/1.8.2: 437 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} 438 | dependencies: 439 | acorn: 7.4.1 440 | acorn-walk: 7.2.0 441 | xtend: 4.0.2 442 | dev: true 443 | 444 | /acorn-walk/7.2.0: 445 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 446 | engines: {node: '>=0.4.0'} 447 | dev: true 448 | 449 | /acorn/7.4.1: 450 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 451 | engines: {node: '>=0.4.0'} 452 | hasBin: true 453 | dev: true 454 | 455 | /anymatch/3.1.2: 456 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 457 | engines: {node: '>= 8'} 458 | dependencies: 459 | normalize-path: 3.0.0 460 | picomatch: 2.3.1 461 | dev: true 462 | 463 | /arg/5.0.2: 464 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 465 | dev: true 466 | 467 | /autoprefixer/10.4.8: 468 | resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==} 469 | engines: {node: ^10 || ^12 || >=14} 470 | hasBin: true 471 | peerDependencies: 472 | postcss: ^8.1.0 473 | dependencies: 474 | browserslist: 4.21.3 475 | caniuse-lite: 1.0.30001382 476 | fraction.js: 4.2.0 477 | normalize-range: 0.1.2 478 | picocolors: 1.0.0 479 | postcss-value-parser: 4.2.0 480 | dev: true 481 | 482 | /binary-extensions/2.2.0: 483 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 484 | engines: {node: '>=8'} 485 | dev: true 486 | 487 | /braces/3.0.2: 488 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 489 | engines: {node: '>=8'} 490 | dependencies: 491 | fill-range: 7.0.1 492 | dev: true 493 | 494 | /browserslist/4.21.3: 495 | resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} 496 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 497 | hasBin: true 498 | dependencies: 499 | caniuse-lite: 1.0.30001382 500 | electron-to-chromium: 1.4.228 501 | node-releases: 2.0.6 502 | update-browserslist-db: 1.0.5_browserslist@4.21.3 503 | dev: true 504 | 505 | /camelcase-css/2.0.1: 506 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 507 | engines: {node: '>= 6'} 508 | dev: true 509 | 510 | /caniuse-lite/1.0.30001382: 511 | resolution: {integrity: sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg==} 512 | dev: true 513 | 514 | /chokidar/3.5.3: 515 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 516 | engines: {node: '>= 8.10.0'} 517 | dependencies: 518 | anymatch: 3.1.2 519 | braces: 3.0.2 520 | glob-parent: 5.1.2 521 | is-binary-path: 2.1.0 522 | is-glob: 4.0.3 523 | normalize-path: 3.0.0 524 | readdirp: 3.6.0 525 | optionalDependencies: 526 | fsevents: 2.3.2 527 | dev: true 528 | 529 | /codemirror/6.0.1: 530 | resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} 531 | dependencies: 532 | '@codemirror/autocomplete': 6.1.0 533 | '@codemirror/commands': 6.1.0 534 | '@codemirror/language': 6.2.1 535 | '@codemirror/lint': 6.0.0 536 | '@codemirror/search': 6.1.0 537 | '@codemirror/state': 6.1.1 538 | '@codemirror/view': 6.2.0 539 | dev: true 540 | 541 | /color-name/1.1.4: 542 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 543 | dev: true 544 | 545 | /crelt/1.0.5: 546 | resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} 547 | dev: true 548 | 549 | /cssesc/3.0.0: 550 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 551 | engines: {node: '>=4'} 552 | hasBin: true 553 | dev: true 554 | 555 | /csstype/2.6.20: 556 | resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} 557 | dev: true 558 | 559 | /csstype/3.1.0: 560 | resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} 561 | dev: true 562 | 563 | /defined/1.0.0: 564 | resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} 565 | dev: true 566 | 567 | /detective/5.2.1: 568 | resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} 569 | engines: {node: '>=0.8.0'} 570 | hasBin: true 571 | dependencies: 572 | acorn-node: 1.8.2 573 | defined: 1.0.0 574 | minimist: 1.2.6 575 | dev: true 576 | 577 | /didyoumean/1.2.2: 578 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 579 | dev: true 580 | 581 | /dlv/1.1.3: 582 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 583 | dev: true 584 | 585 | /dom-to-image-retina/1.0.2: 586 | resolution: {integrity: sha512-dVeLvEQLEPme/xYMLiBWS4EA5J98JllcXAaUISwgZXXyyuYbHPHpkYVvNNZLpvaH7EgES7J5s+dQEegpYdzZbQ==} 587 | dev: true 588 | 589 | /electron-to-chromium/1.4.228: 590 | resolution: {integrity: sha512-XfDHCvou7CsDMlFwb0WZ1tWmW48e7Sn7VBRyPfZsZZila9esRsJl1trO+OqDNV97GggFSt0ISbWslKXfQkG//g==} 591 | dev: true 592 | 593 | /esbuild-android-64/0.14.54: 594 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 595 | engines: {node: '>=12'} 596 | cpu: [x64] 597 | os: [android] 598 | requiresBuild: true 599 | dev: true 600 | optional: true 601 | 602 | /esbuild-android-arm64/0.14.54: 603 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 604 | engines: {node: '>=12'} 605 | cpu: [arm64] 606 | os: [android] 607 | requiresBuild: true 608 | dev: true 609 | optional: true 610 | 611 | /esbuild-darwin-64/0.14.54: 612 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 613 | engines: {node: '>=12'} 614 | cpu: [x64] 615 | os: [darwin] 616 | requiresBuild: true 617 | dev: true 618 | optional: true 619 | 620 | /esbuild-darwin-arm64/0.14.54: 621 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 622 | engines: {node: '>=12'} 623 | cpu: [arm64] 624 | os: [darwin] 625 | requiresBuild: true 626 | dev: true 627 | optional: true 628 | 629 | /esbuild-freebsd-64/0.14.54: 630 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 631 | engines: {node: '>=12'} 632 | cpu: [x64] 633 | os: [freebsd] 634 | requiresBuild: true 635 | dev: true 636 | optional: true 637 | 638 | /esbuild-freebsd-arm64/0.14.54: 639 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 640 | engines: {node: '>=12'} 641 | cpu: [arm64] 642 | os: [freebsd] 643 | requiresBuild: true 644 | dev: true 645 | optional: true 646 | 647 | /esbuild-linux-32/0.14.54: 648 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 649 | engines: {node: '>=12'} 650 | cpu: [ia32] 651 | os: [linux] 652 | requiresBuild: true 653 | dev: true 654 | optional: true 655 | 656 | /esbuild-linux-64/0.14.54: 657 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 658 | engines: {node: '>=12'} 659 | cpu: [x64] 660 | os: [linux] 661 | requiresBuild: true 662 | dev: true 663 | optional: true 664 | 665 | /esbuild-linux-arm/0.14.54: 666 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 667 | engines: {node: '>=12'} 668 | cpu: [arm] 669 | os: [linux] 670 | requiresBuild: true 671 | dev: true 672 | optional: true 673 | 674 | /esbuild-linux-arm64/0.14.54: 675 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 676 | engines: {node: '>=12'} 677 | cpu: [arm64] 678 | os: [linux] 679 | requiresBuild: true 680 | dev: true 681 | optional: true 682 | 683 | /esbuild-linux-mips64le/0.14.54: 684 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 685 | engines: {node: '>=12'} 686 | cpu: [mips64el] 687 | os: [linux] 688 | requiresBuild: true 689 | dev: true 690 | optional: true 691 | 692 | /esbuild-linux-ppc64le/0.14.54: 693 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 694 | engines: {node: '>=12'} 695 | cpu: [ppc64] 696 | os: [linux] 697 | requiresBuild: true 698 | dev: true 699 | optional: true 700 | 701 | /esbuild-linux-riscv64/0.14.54: 702 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 703 | engines: {node: '>=12'} 704 | cpu: [riscv64] 705 | os: [linux] 706 | requiresBuild: true 707 | dev: true 708 | optional: true 709 | 710 | /esbuild-linux-s390x/0.14.54: 711 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 712 | engines: {node: '>=12'} 713 | cpu: [s390x] 714 | os: [linux] 715 | requiresBuild: true 716 | dev: true 717 | optional: true 718 | 719 | /esbuild-netbsd-64/0.14.54: 720 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 721 | engines: {node: '>=12'} 722 | cpu: [x64] 723 | os: [netbsd] 724 | requiresBuild: true 725 | dev: true 726 | optional: true 727 | 728 | /esbuild-openbsd-64/0.14.54: 729 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 730 | engines: {node: '>=12'} 731 | cpu: [x64] 732 | os: [openbsd] 733 | requiresBuild: true 734 | dev: true 735 | optional: true 736 | 737 | /esbuild-sunos-64/0.14.54: 738 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 739 | engines: {node: '>=12'} 740 | cpu: [x64] 741 | os: [sunos] 742 | requiresBuild: true 743 | dev: true 744 | optional: true 745 | 746 | /esbuild-windows-32/0.14.54: 747 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 748 | engines: {node: '>=12'} 749 | cpu: [ia32] 750 | os: [win32] 751 | requiresBuild: true 752 | dev: true 753 | optional: true 754 | 755 | /esbuild-windows-64/0.14.54: 756 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 757 | engines: {node: '>=12'} 758 | cpu: [x64] 759 | os: [win32] 760 | requiresBuild: true 761 | dev: true 762 | optional: true 763 | 764 | /esbuild-windows-arm64/0.14.54: 765 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 766 | engines: {node: '>=12'} 767 | cpu: [arm64] 768 | os: [win32] 769 | requiresBuild: true 770 | dev: true 771 | optional: true 772 | 773 | /esbuild/0.14.54: 774 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 775 | engines: {node: '>=12'} 776 | hasBin: true 777 | requiresBuild: true 778 | optionalDependencies: 779 | '@esbuild/linux-loong64': 0.14.54 780 | esbuild-android-64: 0.14.54 781 | esbuild-android-arm64: 0.14.54 782 | esbuild-darwin-64: 0.14.54 783 | esbuild-darwin-arm64: 0.14.54 784 | esbuild-freebsd-64: 0.14.54 785 | esbuild-freebsd-arm64: 0.14.54 786 | esbuild-linux-32: 0.14.54 787 | esbuild-linux-64: 0.14.54 788 | esbuild-linux-arm: 0.14.54 789 | esbuild-linux-arm64: 0.14.54 790 | esbuild-linux-mips64le: 0.14.54 791 | esbuild-linux-ppc64le: 0.14.54 792 | esbuild-linux-riscv64: 0.14.54 793 | esbuild-linux-s390x: 0.14.54 794 | esbuild-netbsd-64: 0.14.54 795 | esbuild-openbsd-64: 0.14.54 796 | esbuild-sunos-64: 0.14.54 797 | esbuild-windows-32: 0.14.54 798 | esbuild-windows-64: 0.14.54 799 | esbuild-windows-arm64: 0.14.54 800 | dev: true 801 | 802 | /escalade/3.1.1: 803 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 804 | engines: {node: '>=6'} 805 | dev: true 806 | 807 | /estree-walker/2.0.2: 808 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 809 | dev: true 810 | 811 | /fast-glob/3.2.11: 812 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 813 | engines: {node: '>=8.6.0'} 814 | dependencies: 815 | '@nodelib/fs.stat': 2.0.5 816 | '@nodelib/fs.walk': 1.2.8 817 | glob-parent: 5.1.2 818 | merge2: 1.4.1 819 | micromatch: 4.0.5 820 | dev: true 821 | 822 | /fastq/1.13.0: 823 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 824 | dependencies: 825 | reusify: 1.0.4 826 | dev: true 827 | 828 | /fflate/0.7.3: 829 | resolution: {integrity: sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==} 830 | dev: true 831 | 832 | /fill-range/7.0.1: 833 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 834 | engines: {node: '>=8'} 835 | dependencies: 836 | to-regex-range: 5.0.1 837 | dev: true 838 | 839 | /floating-vue/2.0.0-beta.19_vue@3.2.37: 840 | resolution: {integrity: sha512-kWP0/JZM6Cwg959SUnVURDXFFKstGZIXDZJ5Ey77HNOvQete0rJnLntklCJzvLnwla8S3WiApH/EjupxS5ICBg==} 841 | peerDependencies: 842 | vue: ^3.2.0 843 | dependencies: 844 | '@floating-ui/dom': 0.1.10 845 | vue: 3.2.37 846 | vue-resize: 2.0.0-alpha.1_vue@3.2.37 847 | dev: true 848 | 849 | /fraction.js/4.2.0: 850 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 851 | dev: true 852 | 853 | /fsevents/2.3.2: 854 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 855 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 856 | os: [darwin] 857 | requiresBuild: true 858 | dev: true 859 | optional: true 860 | 861 | /function-bind/1.1.1: 862 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 863 | dev: true 864 | 865 | /glob-parent/5.1.2: 866 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 867 | engines: {node: '>= 6'} 868 | dependencies: 869 | is-glob: 4.0.3 870 | dev: true 871 | 872 | /glob-parent/6.0.2: 873 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 874 | engines: {node: '>=10.13.0'} 875 | dependencies: 876 | is-glob: 4.0.3 877 | dev: true 878 | 879 | /has/1.0.3: 880 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 881 | engines: {node: '>= 0.4.0'} 882 | dependencies: 883 | function-bind: 1.1.1 884 | dev: true 885 | 886 | /indent-string/5.0.0: 887 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} 888 | engines: {node: '>=12'} 889 | dev: true 890 | 891 | /is-binary-path/2.1.0: 892 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 893 | engines: {node: '>=8'} 894 | dependencies: 895 | binary-extensions: 2.2.0 896 | dev: true 897 | 898 | /is-core-module/2.10.0: 899 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 900 | dependencies: 901 | has: 1.0.3 902 | dev: true 903 | 904 | /is-extglob/2.1.1: 905 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 906 | engines: {node: '>=0.10.0'} 907 | dev: true 908 | 909 | /is-glob/4.0.3: 910 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 911 | engines: {node: '>=0.10.0'} 912 | dependencies: 913 | is-extglob: 2.1.1 914 | dev: true 915 | 916 | /is-number/7.0.0: 917 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 918 | engines: {node: '>=0.12.0'} 919 | dev: true 920 | 921 | /is-regexp/3.1.0: 922 | resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} 923 | engines: {node: '>=12'} 924 | dev: true 925 | 926 | /lilconfig/2.0.6: 927 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 928 | engines: {node: '>=10'} 929 | dev: true 930 | 931 | /magic-string/0.25.9: 932 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 933 | dependencies: 934 | sourcemap-codec: 1.4.8 935 | dev: true 936 | 937 | /merge2/1.4.1: 938 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 939 | engines: {node: '>= 8'} 940 | dev: true 941 | 942 | /micromatch/4.0.5: 943 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 944 | engines: {node: '>=8.6'} 945 | dependencies: 946 | braces: 3.0.2 947 | picomatch: 2.3.1 948 | dev: true 949 | 950 | /min-indent/1.0.1: 951 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 952 | engines: {node: '>=4'} 953 | dev: true 954 | 955 | /minimist/1.2.6: 956 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} 957 | dev: true 958 | 959 | /mitt/3.0.0: 960 | resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} 961 | dev: true 962 | 963 | /nanoid/3.3.4: 964 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 965 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 966 | hasBin: true 967 | dev: true 968 | 969 | /node-releases/2.0.6: 970 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 971 | dev: true 972 | 973 | /normalize-path/3.0.0: 974 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 975 | engines: {node: '>=0.10.0'} 976 | dev: true 977 | 978 | /normalize-range/0.1.2: 979 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 980 | engines: {node: '>=0.10.0'} 981 | dev: true 982 | 983 | /object-hash/3.0.0: 984 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 985 | engines: {node: '>= 6'} 986 | dev: true 987 | 988 | /path-parse/1.0.7: 989 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 990 | dev: true 991 | 992 | /petite-vue/0.4.1: 993 | resolution: {integrity: sha512-/gtYKQe9r1OV4IEwn2RsPXAHgFTe1nVq4QhldAP6/l8DSe9I754K6Oe1+Ff6dbnT5P8X2XP7PTUZkGRz5uFnFQ==} 994 | dev: false 995 | 996 | /picocolors/1.0.0: 997 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 998 | dev: true 999 | 1000 | /picomatch/2.3.1: 1001 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1002 | engines: {node: '>=8.6'} 1003 | dev: true 1004 | 1005 | /pify/2.3.0: 1006 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1007 | engines: {node: '>=0.10.0'} 1008 | dev: true 1009 | 1010 | /postcss-import/14.1.0_postcss@8.4.16: 1011 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 1012 | engines: {node: '>=10.0.0'} 1013 | peerDependencies: 1014 | postcss: ^8.0.0 1015 | dependencies: 1016 | postcss: 8.4.16 1017 | postcss-value-parser: 4.2.0 1018 | read-cache: 1.0.0 1019 | resolve: 1.22.1 1020 | dev: true 1021 | 1022 | /postcss-js/4.0.0_postcss@8.4.16: 1023 | resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} 1024 | engines: {node: ^12 || ^14 || >= 16} 1025 | peerDependencies: 1026 | postcss: ^8.3.3 1027 | dependencies: 1028 | camelcase-css: 2.0.1 1029 | postcss: 8.4.16 1030 | dev: true 1031 | 1032 | /postcss-load-config/3.1.4_postcss@8.4.16: 1033 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1034 | engines: {node: '>= 10'} 1035 | peerDependencies: 1036 | postcss: '>=8.0.9' 1037 | ts-node: '>=9.0.0' 1038 | peerDependenciesMeta: 1039 | postcss: 1040 | optional: true 1041 | ts-node: 1042 | optional: true 1043 | dependencies: 1044 | lilconfig: 2.0.6 1045 | postcss: 8.4.16 1046 | yaml: 1.10.2 1047 | dev: true 1048 | 1049 | /postcss-nested/5.0.6_postcss@8.4.16: 1050 | resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} 1051 | engines: {node: '>=12.0'} 1052 | peerDependencies: 1053 | postcss: ^8.2.14 1054 | dependencies: 1055 | postcss: 8.4.16 1056 | postcss-selector-parser: 6.0.10 1057 | dev: true 1058 | 1059 | /postcss-selector-parser/6.0.10: 1060 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 1061 | engines: {node: '>=4'} 1062 | dependencies: 1063 | cssesc: 3.0.0 1064 | util-deprecate: 1.0.2 1065 | dev: true 1066 | 1067 | /postcss-value-parser/4.2.0: 1068 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1069 | dev: true 1070 | 1071 | /postcss/8.4.16: 1072 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 1073 | engines: {node: ^10 || ^12 || >=14} 1074 | dependencies: 1075 | nanoid: 3.3.4 1076 | picocolors: 1.0.0 1077 | source-map-js: 1.0.2 1078 | dev: true 1079 | 1080 | /prettier/2.7.1: 1081 | resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} 1082 | engines: {node: '>=10.13.0'} 1083 | hasBin: true 1084 | dev: true 1085 | 1086 | /prismjs/1.29.0: 1087 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 1088 | engines: {node: '>=6'} 1089 | dev: true 1090 | 1091 | /queue-microtask/1.2.3: 1092 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1093 | dev: true 1094 | 1095 | /quick-lru/5.1.1: 1096 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1097 | engines: {node: '>=10'} 1098 | dev: true 1099 | 1100 | /read-cache/1.0.0: 1101 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1102 | dependencies: 1103 | pify: 2.3.0 1104 | dev: true 1105 | 1106 | /readdirp/3.6.0: 1107 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1108 | engines: {node: '>=8.10.0'} 1109 | dependencies: 1110 | picomatch: 2.3.1 1111 | dev: true 1112 | 1113 | /redent/4.0.0: 1114 | resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} 1115 | engines: {node: '>=12'} 1116 | dependencies: 1117 | indent-string: 5.0.0 1118 | strip-indent: 4.0.0 1119 | dev: true 1120 | 1121 | /resolve/1.22.1: 1122 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1123 | hasBin: true 1124 | dependencies: 1125 | is-core-module: 2.10.0 1126 | path-parse: 1.0.7 1127 | supports-preserve-symlinks-flag: 1.0.0 1128 | dev: true 1129 | 1130 | /reusify/1.0.4: 1131 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1132 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1133 | dev: true 1134 | 1135 | /rollup/2.77.3: 1136 | resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} 1137 | engines: {node: '>=10.0.0'} 1138 | hasBin: true 1139 | optionalDependencies: 1140 | fsevents: 2.3.2 1141 | dev: true 1142 | 1143 | /run-parallel/1.2.0: 1144 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1145 | dependencies: 1146 | queue-microtask: 1.2.3 1147 | dev: true 1148 | 1149 | /source-map-js/1.0.2: 1150 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1151 | engines: {node: '>=0.10.0'} 1152 | dev: true 1153 | 1154 | /source-map/0.6.1: 1155 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1156 | engines: {node: '>=0.10.0'} 1157 | dev: true 1158 | 1159 | /sourcemap-codec/1.4.8: 1160 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1161 | dev: true 1162 | 1163 | /splitpanes/3.1.1: 1164 | resolution: {integrity: sha512-VUkxDJfIGSvTM/fm/+OSrx8ha9URwE/9B8FPvfzoBuAxVELIHBWpsfnJXIXv77zVwuex//QQL4kTU9SDBPeHjA==} 1165 | dev: true 1166 | 1167 | /strip-css-comments/5.0.0: 1168 | resolution: {integrity: sha512-943vUh0ZxvxO6eK+TzY2F4nVN7a+ZdRK4KIdwHaGMvMrXTrAsJBRudOR3Zi0bLTuVSbF0CQXis4uw04uCabWkg==} 1169 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1170 | dependencies: 1171 | is-regexp: 3.1.0 1172 | dev: true 1173 | 1174 | /strip-indent/4.0.0: 1175 | resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} 1176 | engines: {node: '>=12'} 1177 | dependencies: 1178 | min-indent: 1.0.1 1179 | dev: true 1180 | 1181 | /style-mod/4.0.0: 1182 | resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} 1183 | dev: true 1184 | 1185 | /supports-preserve-symlinks-flag/1.0.0: 1186 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1187 | engines: {node: '>= 0.4'} 1188 | dev: true 1189 | 1190 | /tailwindcss/3.1.8: 1191 | resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==} 1192 | engines: {node: '>=12.13.0'} 1193 | hasBin: true 1194 | dependencies: 1195 | arg: 5.0.2 1196 | chokidar: 3.5.3 1197 | color-name: 1.1.4 1198 | detective: 5.2.1 1199 | didyoumean: 1.2.2 1200 | dlv: 1.1.3 1201 | fast-glob: 3.2.11 1202 | glob-parent: 6.0.2 1203 | is-glob: 4.0.3 1204 | lilconfig: 2.0.6 1205 | normalize-path: 3.0.0 1206 | object-hash: 3.0.0 1207 | picocolors: 1.0.0 1208 | postcss: 8.4.16 1209 | postcss-import: 14.1.0_postcss@8.4.16 1210 | postcss-js: 4.0.0_postcss@8.4.16 1211 | postcss-load-config: 3.1.4_postcss@8.4.16 1212 | postcss-nested: 5.0.6_postcss@8.4.16 1213 | postcss-selector-parser: 6.0.10 1214 | postcss-value-parser: 4.2.0 1215 | quick-lru: 5.1.1 1216 | resolve: 1.22.1 1217 | transitivePeerDependencies: 1218 | - ts-node 1219 | dev: true 1220 | 1221 | /tempura/0.4.0: 1222 | resolution: {integrity: sha512-ghCAK7t3Yuy40NUA/pmS1aDY8M5MfZT4+S465S8YvwwDdgk3jLm/5BGwtMG/rMICDYY8T7Owe1qm91ArBOKd6w==} 1223 | engines: {node: '>=10'} 1224 | dev: true 1225 | 1226 | /to-fast-properties/2.0.0: 1227 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1228 | engines: {node: '>=4'} 1229 | dev: true 1230 | 1231 | /to-regex-range/5.0.1: 1232 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1233 | engines: {node: '>=8.0'} 1234 | dependencies: 1235 | is-number: 7.0.0 1236 | dev: true 1237 | 1238 | /typed-worker/1.0.2: 1239 | resolution: {integrity: sha512-2XLho4WBv4jeE07le4x0fNYmX9ty9UzC2d9zuEh/VUoV6lF6NXmJylOu2xL/mt1Oo3wSpvz41aECF4W4H1d24A==} 1240 | dependencies: 1241 | mitt: 3.0.0 1242 | dev: true 1243 | 1244 | /typescript/4.7.4: 1245 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 1246 | engines: {node: '>=4.2.0'} 1247 | hasBin: true 1248 | dev: true 1249 | 1250 | /update-browserslist-db/1.0.5_browserslist@4.21.3: 1251 | resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} 1252 | hasBin: true 1253 | peerDependencies: 1254 | browserslist: '>= 4.21.0' 1255 | dependencies: 1256 | browserslist: 4.21.3 1257 | escalade: 3.1.1 1258 | picocolors: 1.0.0 1259 | dev: true 1260 | 1261 | /util-deprecate/1.0.2: 1262 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1263 | dev: true 1264 | 1265 | /vite/3.0.9: 1266 | resolution: {integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==} 1267 | engines: {node: ^14.18.0 || >=16.0.0} 1268 | hasBin: true 1269 | peerDependencies: 1270 | less: '*' 1271 | sass: '*' 1272 | stylus: '*' 1273 | terser: ^5.4.0 1274 | peerDependenciesMeta: 1275 | less: 1276 | optional: true 1277 | sass: 1278 | optional: true 1279 | stylus: 1280 | optional: true 1281 | terser: 1282 | optional: true 1283 | dependencies: 1284 | esbuild: 0.14.54 1285 | postcss: 8.4.16 1286 | resolve: 1.22.1 1287 | rollup: 2.77.3 1288 | optionalDependencies: 1289 | fsevents: 2.3.2 1290 | dev: true 1291 | 1292 | /vue-resize/2.0.0-alpha.1_vue@3.2.37: 1293 | resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} 1294 | peerDependencies: 1295 | vue: ^3.0.0 1296 | dependencies: 1297 | vue: 3.2.37 1298 | dev: true 1299 | 1300 | /vue/2.7.10: 1301 | resolution: {integrity: sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==} 1302 | dependencies: 1303 | '@vue/compiler-sfc': 2.7.10 1304 | csstype: 3.1.0 1305 | dev: true 1306 | 1307 | /vue/3.2.37: 1308 | resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} 1309 | dependencies: 1310 | '@vue/compiler-dom': 3.2.37 1311 | '@vue/compiler-sfc': 3.2.37 1312 | '@vue/runtime-dom': 3.2.37 1313 | '@vue/server-renderer': 3.2.37_vue@3.2.37 1314 | '@vue/shared': 3.2.37 1315 | dev: true 1316 | 1317 | /w3c-keyname/2.2.6: 1318 | resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} 1319 | dev: true 1320 | 1321 | /xtend/4.0.2: 1322 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1323 | engines: {node: '>=0.4'} 1324 | dev: true 1325 | 1326 | /yaml/1.10.2: 1327 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1328 | engines: {node: '>= 6'} 1329 | dev: true 1330 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /src/codemirror/hover-extension.ts: -------------------------------------------------------------------------------- 1 | import { hoverTooltip } from '@codemirror/view'; 2 | 3 | const RE = /[a-z0-9\-\[\]\/\:]/; 4 | 5 | export const hoverExtension = (getTooltip: (word: string) => string | Promise) => 6 | hoverTooltip(async (view, pos, side) => { 7 | let { from, to, text } = view.state.doc.lineAt(pos); 8 | let start = pos, 9 | end = pos; 10 | while (start > from && RE.test(text[start - from - 1])) start--; 11 | while (end < to && RE.test(text[end - from])) end++; 12 | if ((start == pos && side < 0) || (end == pos && side > 0)) return null; 13 | const word = text.slice(start - from, end - from); 14 | const tooltip = await getTooltip(word); 15 | if (!tooltip) return null; 16 | return { 17 | pos: start, 18 | end, 19 | above: true, 20 | create(_view) { 21 | const dom = document.createElement('div'); 22 | dom.innerHTML = tooltip; 23 | return { dom }; 24 | } 25 | }; 26 | }); 27 | -------------------------------------------------------------------------------- /src/components/App.vue: -------------------------------------------------------------------------------- 1 | 70 | 71 | 106 | 107 | 112 | -------------------------------------------------------------------------------- /src/components/AppHeader.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 59 | -------------------------------------------------------------------------------- /src/components/BaseDialog.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 58 | -------------------------------------------------------------------------------- /src/components/BoxHeader.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 46 | -------------------------------------------------------------------------------- /src/components/DataEditor.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 44 | -------------------------------------------------------------------------------- /src/components/HelpDialog.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 47 | -------------------------------------------------------------------------------- /src/components/Preview.vue: -------------------------------------------------------------------------------- 1 | 117 | 118 |