├── .gitignore ├── .npmrc ├── README.md ├── package.json ├── pnpm-lock.yaml ├── src ├── app.css ├── app.d.ts ├── app.html ├── lib │ └── gui │ │ ├── gui.svelte │ │ ├── index.ts │ │ └── store.ts └── routes │ ├── +layout.svelte │ └── +page.svelte ├── static └── favicon.png ├── svelte.config.js ├── tsconfig.json └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Svelte GUI 2 | 3 | Make a Svelte GUI library to generate the UI for you. 4 | 5 | ## Post 6 | 7 | ✍️ https://joyofcode.xyz/svelte-gui 8 | 9 | ## Remote Development 10 | 11 | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/joysofcode/svelte-gui) 12 | 13 | ## Local Development 14 | 15 | ### 🧑‍🤝‍🧑 Clone the project 16 | 17 | ```sh 18 | https://github.com/joysofcode/svelte-gui.git 19 | ``` 20 | 21 | ### 📦️ Install dependencies 22 | 23 | ```sh 24 | pnpm i 25 | ``` 26 | 27 | ### 💿️ Run the development server 28 | 29 | ```sh 30 | pnpm run dev 31 | ``` 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-gui", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" 11 | }, 12 | "devDependencies": { 13 | "@sveltejs/adapter-auto": "^2.0.0", 14 | "@sveltejs/kit": "^1.20.4", 15 | "svelte": "^4.0.5", 16 | "svelte-check": "^3.4.3", 17 | "tslib": "^2.4.1", 18 | "typescript": "^5.0.0", 19 | "vite": "^4.4.2" 20 | }, 21 | "type": "module", 22 | "dependencies": { 23 | "@fontsource/manrope": "^5.0.15", 24 | "open-props": "^1.6.7" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@fontsource/manrope': 9 | specifier: ^5.0.15 10 | version: 5.0.15 11 | open-props: 12 | specifier: ^1.6.7 13 | version: 1.6.7 14 | 15 | devDependencies: 16 | '@sveltejs/adapter-auto': 17 | specifier: ^2.0.0 18 | version: 2.1.0(@sveltejs/kit@1.25.2) 19 | '@sveltejs/kit': 20 | specifier: ^1.20.4 21 | version: 1.25.2(svelte@4.2.1)(vite@4.5.0) 22 | svelte: 23 | specifier: ^4.0.5 24 | version: 4.2.1 25 | svelte-check: 26 | specifier: ^3.4.3 27 | version: 3.5.2(svelte@4.2.1) 28 | tslib: 29 | specifier: ^2.4.1 30 | version: 2.6.2 31 | typescript: 32 | specifier: ^5.0.0 33 | version: 5.2.2 34 | vite: 35 | specifier: ^4.4.2 36 | version: 4.5.0 37 | 38 | packages: 39 | 40 | /@ampproject/remapping@2.2.1: 41 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 42 | engines: {node: '>=6.0.0'} 43 | dependencies: 44 | '@jridgewell/gen-mapping': 0.3.3 45 | '@jridgewell/trace-mapping': 0.3.20 46 | dev: true 47 | 48 | /@esbuild/android-arm64@0.18.20: 49 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 50 | engines: {node: '>=12'} 51 | cpu: [arm64] 52 | os: [android] 53 | requiresBuild: true 54 | dev: true 55 | optional: true 56 | 57 | /@esbuild/android-arm@0.18.20: 58 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 59 | engines: {node: '>=12'} 60 | cpu: [arm] 61 | os: [android] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@esbuild/android-x64@0.18.20: 67 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 68 | engines: {node: '>=12'} 69 | cpu: [x64] 70 | os: [android] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@esbuild/darwin-arm64@0.18.20: 76 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 77 | engines: {node: '>=12'} 78 | cpu: [arm64] 79 | os: [darwin] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/darwin-x64@0.18.20: 85 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 86 | engines: {node: '>=12'} 87 | cpu: [x64] 88 | os: [darwin] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/freebsd-arm64@0.18.20: 94 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 95 | engines: {node: '>=12'} 96 | cpu: [arm64] 97 | os: [freebsd] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/freebsd-x64@0.18.20: 103 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 104 | engines: {node: '>=12'} 105 | cpu: [x64] 106 | os: [freebsd] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/linux-arm64@0.18.20: 112 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 113 | engines: {node: '>=12'} 114 | cpu: [arm64] 115 | os: [linux] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/linux-arm@0.18.20: 121 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 122 | engines: {node: '>=12'} 123 | cpu: [arm] 124 | os: [linux] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/linux-ia32@0.18.20: 130 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 131 | engines: {node: '>=12'} 132 | cpu: [ia32] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-loong64@0.18.20: 139 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 140 | engines: {node: '>=12'} 141 | cpu: [loong64] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-mips64el@0.18.20: 148 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 149 | engines: {node: '>=12'} 150 | cpu: [mips64el] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-ppc64@0.18.20: 157 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 158 | engines: {node: '>=12'} 159 | cpu: [ppc64] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-riscv64@0.18.20: 166 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 167 | engines: {node: '>=12'} 168 | cpu: [riscv64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-s390x@0.18.20: 175 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 176 | engines: {node: '>=12'} 177 | cpu: [s390x] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-x64@0.18.20: 184 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 185 | engines: {node: '>=12'} 186 | cpu: [x64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/netbsd-x64@0.18.20: 193 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [netbsd] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/openbsd-x64@0.18.20: 202 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [openbsd] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/sunos-x64@0.18.20: 211 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [sunos] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/win32-arm64@0.18.20: 220 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 221 | engines: {node: '>=12'} 222 | cpu: [arm64] 223 | os: [win32] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/win32-ia32@0.18.20: 229 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 230 | engines: {node: '>=12'} 231 | cpu: [ia32] 232 | os: [win32] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/win32-x64@0.18.20: 238 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@fastify/busboy@2.0.0: 247 | resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} 248 | engines: {node: '>=14'} 249 | dev: true 250 | 251 | /@fontsource/manrope@5.0.15: 252 | resolution: {integrity: sha512-waAkBgK/6WP9x4Y3EJlcNkB2kwEdUVviPhwwHsXdALap2hdaQhyMoxO1WawwHO70CAvRqJAldla/f3HSMgAHPQ==} 253 | dev: false 254 | 255 | /@jridgewell/gen-mapping@0.3.3: 256 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 257 | engines: {node: '>=6.0.0'} 258 | dependencies: 259 | '@jridgewell/set-array': 1.1.2 260 | '@jridgewell/sourcemap-codec': 1.4.15 261 | '@jridgewell/trace-mapping': 0.3.20 262 | dev: true 263 | 264 | /@jridgewell/resolve-uri@3.1.1: 265 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 266 | engines: {node: '>=6.0.0'} 267 | dev: true 268 | 269 | /@jridgewell/set-array@1.1.2: 270 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 271 | engines: {node: '>=6.0.0'} 272 | dev: true 273 | 274 | /@jridgewell/sourcemap-codec@1.4.15: 275 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 276 | dev: true 277 | 278 | /@jridgewell/trace-mapping@0.3.20: 279 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 280 | dependencies: 281 | '@jridgewell/resolve-uri': 3.1.1 282 | '@jridgewell/sourcemap-codec': 1.4.15 283 | dev: true 284 | 285 | /@nodelib/fs.scandir@2.1.5: 286 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 287 | engines: {node: '>= 8'} 288 | dependencies: 289 | '@nodelib/fs.stat': 2.0.5 290 | run-parallel: 1.2.0 291 | dev: true 292 | 293 | /@nodelib/fs.stat@2.0.5: 294 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 295 | engines: {node: '>= 8'} 296 | dev: true 297 | 298 | /@nodelib/fs.walk@1.2.8: 299 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 300 | engines: {node: '>= 8'} 301 | dependencies: 302 | '@nodelib/fs.scandir': 2.1.5 303 | fastq: 1.15.0 304 | dev: true 305 | 306 | /@polka/url@1.0.0-next.23: 307 | resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} 308 | dev: true 309 | 310 | /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.25.2): 311 | resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==} 312 | peerDependencies: 313 | '@sveltejs/kit': ^1.0.0 314 | dependencies: 315 | '@sveltejs/kit': 1.25.2(svelte@4.2.1)(vite@4.5.0) 316 | import-meta-resolve: 3.0.0 317 | dev: true 318 | 319 | /@sveltejs/kit@1.25.2(svelte@4.2.1)(vite@4.5.0): 320 | resolution: {integrity: sha512-USuuSpdAPFDiLi58N2Pwd/TG9bcUSPAlzE5iaAXaLyCTWa3l36HDKH6nV5NqBybwfeux1ZwgtIeITLZJDJ6HDg==} 321 | engines: {node: ^16.14 || >=18} 322 | hasBin: true 323 | requiresBuild: true 324 | peerDependencies: 325 | svelte: ^3.54.0 || ^4.0.0-next.0 326 | vite: ^4.0.0 327 | dependencies: 328 | '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.1)(vite@4.5.0) 329 | '@types/cookie': 0.5.3 330 | cookie: 0.5.0 331 | devalue: 4.3.2 332 | esm-env: 1.0.0 333 | kleur: 4.1.5 334 | magic-string: 0.30.5 335 | mime: 3.0.0 336 | sade: 1.8.1 337 | set-cookie-parser: 2.6.0 338 | sirv: 2.0.3 339 | svelte: 4.2.1 340 | tiny-glob: 0.2.9 341 | undici: 5.25.4 342 | vite: 4.5.0 343 | transitivePeerDependencies: 344 | - supports-color 345 | dev: true 346 | 347 | /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.1)(vite@4.5.0): 348 | resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} 349 | engines: {node: ^14.18.0 || >= 16} 350 | peerDependencies: 351 | '@sveltejs/vite-plugin-svelte': ^2.2.0 352 | svelte: ^3.54.0 || ^4.0.0 353 | vite: ^4.0.0 354 | dependencies: 355 | '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.1)(vite@4.5.0) 356 | debug: 4.3.4 357 | svelte: 4.2.1 358 | vite: 4.5.0 359 | transitivePeerDependencies: 360 | - supports-color 361 | dev: true 362 | 363 | /@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.1)(vite@4.5.0): 364 | resolution: {integrity: sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==} 365 | engines: {node: ^14.18.0 || >= 16} 366 | peerDependencies: 367 | svelte: ^3.54.0 || ^4.0.0 368 | vite: ^4.0.0 369 | dependencies: 370 | '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.1)(vite@4.5.0) 371 | debug: 4.3.4 372 | deepmerge: 4.3.1 373 | kleur: 4.1.5 374 | magic-string: 0.30.5 375 | svelte: 4.2.1 376 | svelte-hmr: 0.15.3(svelte@4.2.1) 377 | vite: 4.5.0 378 | vitefu: 0.2.5(vite@4.5.0) 379 | transitivePeerDependencies: 380 | - supports-color 381 | dev: true 382 | 383 | /@types/cookie@0.5.3: 384 | resolution: {integrity: sha512-SLg07AS9z1Ab2LU+QxzU8RCmzsja80ywjf/t5oqw+4NSH20gIGlhLOrBDm1L3PBWzPa4+wkgFQVZAjE6Ioj2ug==} 385 | dev: true 386 | 387 | /@types/estree@1.0.3: 388 | resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} 389 | dev: true 390 | 391 | /@types/pug@2.0.8: 392 | resolution: {integrity: sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ==} 393 | dev: true 394 | 395 | /acorn@8.10.0: 396 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 397 | engines: {node: '>=0.4.0'} 398 | hasBin: true 399 | dev: true 400 | 401 | /anymatch@3.1.3: 402 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 403 | engines: {node: '>= 8'} 404 | dependencies: 405 | normalize-path: 3.0.0 406 | picomatch: 2.3.1 407 | dev: true 408 | 409 | /aria-query@5.3.0: 410 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 411 | dependencies: 412 | dequal: 2.0.3 413 | dev: true 414 | 415 | /axobject-query@3.2.1: 416 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 417 | dependencies: 418 | dequal: 2.0.3 419 | dev: true 420 | 421 | /balanced-match@1.0.2: 422 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 423 | dev: true 424 | 425 | /binary-extensions@2.2.0: 426 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 427 | engines: {node: '>=8'} 428 | dev: true 429 | 430 | /brace-expansion@1.1.11: 431 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 432 | dependencies: 433 | balanced-match: 1.0.2 434 | concat-map: 0.0.1 435 | dev: true 436 | 437 | /braces@3.0.2: 438 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 439 | engines: {node: '>=8'} 440 | dependencies: 441 | fill-range: 7.0.1 442 | dev: true 443 | 444 | /buffer-crc32@0.2.13: 445 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 446 | dev: true 447 | 448 | /callsites@3.1.0: 449 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 450 | engines: {node: '>=6'} 451 | dev: true 452 | 453 | /chokidar@3.5.3: 454 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 455 | engines: {node: '>= 8.10.0'} 456 | dependencies: 457 | anymatch: 3.1.3 458 | braces: 3.0.2 459 | glob-parent: 5.1.2 460 | is-binary-path: 2.1.0 461 | is-glob: 4.0.3 462 | normalize-path: 3.0.0 463 | readdirp: 3.6.0 464 | optionalDependencies: 465 | fsevents: 2.3.3 466 | dev: true 467 | 468 | /code-red@1.0.4: 469 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 470 | dependencies: 471 | '@jridgewell/sourcemap-codec': 1.4.15 472 | '@types/estree': 1.0.3 473 | acorn: 8.10.0 474 | estree-walker: 3.0.3 475 | periscopic: 3.1.0 476 | dev: true 477 | 478 | /concat-map@0.0.1: 479 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 480 | dev: true 481 | 482 | /cookie@0.5.0: 483 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 484 | engines: {node: '>= 0.6'} 485 | dev: true 486 | 487 | /css-tree@2.3.1: 488 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 489 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 490 | dependencies: 491 | mdn-data: 2.0.30 492 | source-map-js: 1.0.2 493 | dev: true 494 | 495 | /debug@4.3.4: 496 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 497 | engines: {node: '>=6.0'} 498 | peerDependencies: 499 | supports-color: '*' 500 | peerDependenciesMeta: 501 | supports-color: 502 | optional: true 503 | dependencies: 504 | ms: 2.1.2 505 | dev: true 506 | 507 | /deepmerge@4.3.1: 508 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 509 | engines: {node: '>=0.10.0'} 510 | dev: true 511 | 512 | /dequal@2.0.3: 513 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 514 | engines: {node: '>=6'} 515 | dev: true 516 | 517 | /detect-indent@6.1.0: 518 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 519 | engines: {node: '>=8'} 520 | dev: true 521 | 522 | /devalue@4.3.2: 523 | resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 524 | dev: true 525 | 526 | /es6-promise@3.3.1: 527 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 528 | dev: true 529 | 530 | /esbuild@0.18.20: 531 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 532 | engines: {node: '>=12'} 533 | hasBin: true 534 | requiresBuild: true 535 | optionalDependencies: 536 | '@esbuild/android-arm': 0.18.20 537 | '@esbuild/android-arm64': 0.18.20 538 | '@esbuild/android-x64': 0.18.20 539 | '@esbuild/darwin-arm64': 0.18.20 540 | '@esbuild/darwin-x64': 0.18.20 541 | '@esbuild/freebsd-arm64': 0.18.20 542 | '@esbuild/freebsd-x64': 0.18.20 543 | '@esbuild/linux-arm': 0.18.20 544 | '@esbuild/linux-arm64': 0.18.20 545 | '@esbuild/linux-ia32': 0.18.20 546 | '@esbuild/linux-loong64': 0.18.20 547 | '@esbuild/linux-mips64el': 0.18.20 548 | '@esbuild/linux-ppc64': 0.18.20 549 | '@esbuild/linux-riscv64': 0.18.20 550 | '@esbuild/linux-s390x': 0.18.20 551 | '@esbuild/linux-x64': 0.18.20 552 | '@esbuild/netbsd-x64': 0.18.20 553 | '@esbuild/openbsd-x64': 0.18.20 554 | '@esbuild/sunos-x64': 0.18.20 555 | '@esbuild/win32-arm64': 0.18.20 556 | '@esbuild/win32-ia32': 0.18.20 557 | '@esbuild/win32-x64': 0.18.20 558 | dev: true 559 | 560 | /esm-env@1.0.0: 561 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 562 | dev: true 563 | 564 | /estree-walker@3.0.3: 565 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 566 | dependencies: 567 | '@types/estree': 1.0.3 568 | dev: true 569 | 570 | /fast-glob@3.3.1: 571 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 572 | engines: {node: '>=8.6.0'} 573 | dependencies: 574 | '@nodelib/fs.stat': 2.0.5 575 | '@nodelib/fs.walk': 1.2.8 576 | glob-parent: 5.1.2 577 | merge2: 1.4.1 578 | micromatch: 4.0.5 579 | dev: true 580 | 581 | /fastq@1.15.0: 582 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 583 | dependencies: 584 | reusify: 1.0.4 585 | dev: true 586 | 587 | /fill-range@7.0.1: 588 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 589 | engines: {node: '>=8'} 590 | dependencies: 591 | to-regex-range: 5.0.1 592 | dev: true 593 | 594 | /fs.realpath@1.0.0: 595 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 596 | dev: true 597 | 598 | /fsevents@2.3.3: 599 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 600 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 601 | os: [darwin] 602 | requiresBuild: true 603 | dev: true 604 | optional: true 605 | 606 | /glob-parent@5.1.2: 607 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 608 | engines: {node: '>= 6'} 609 | dependencies: 610 | is-glob: 4.0.3 611 | dev: true 612 | 613 | /glob@7.2.3: 614 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 615 | dependencies: 616 | fs.realpath: 1.0.0 617 | inflight: 1.0.6 618 | inherits: 2.0.4 619 | minimatch: 3.1.2 620 | once: 1.4.0 621 | path-is-absolute: 1.0.1 622 | dev: true 623 | 624 | /globalyzer@0.1.0: 625 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 626 | dev: true 627 | 628 | /globrex@0.1.2: 629 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 630 | dev: true 631 | 632 | /graceful-fs@4.2.11: 633 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 634 | dev: true 635 | 636 | /import-fresh@3.3.0: 637 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 638 | engines: {node: '>=6'} 639 | dependencies: 640 | parent-module: 1.0.1 641 | resolve-from: 4.0.0 642 | dev: true 643 | 644 | /import-meta-resolve@3.0.0: 645 | resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} 646 | dev: true 647 | 648 | /inflight@1.0.6: 649 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 650 | dependencies: 651 | once: 1.4.0 652 | wrappy: 1.0.2 653 | dev: true 654 | 655 | /inherits@2.0.4: 656 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 657 | dev: true 658 | 659 | /is-binary-path@2.1.0: 660 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 661 | engines: {node: '>=8'} 662 | dependencies: 663 | binary-extensions: 2.2.0 664 | dev: true 665 | 666 | /is-extglob@2.1.1: 667 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 668 | engines: {node: '>=0.10.0'} 669 | dev: true 670 | 671 | /is-glob@4.0.3: 672 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 673 | engines: {node: '>=0.10.0'} 674 | dependencies: 675 | is-extglob: 2.1.1 676 | dev: true 677 | 678 | /is-number@7.0.0: 679 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 680 | engines: {node: '>=0.12.0'} 681 | dev: true 682 | 683 | /is-reference@3.0.2: 684 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 685 | dependencies: 686 | '@types/estree': 1.0.3 687 | dev: true 688 | 689 | /kleur@4.1.5: 690 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 691 | engines: {node: '>=6'} 692 | dev: true 693 | 694 | /locate-character@3.0.0: 695 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 696 | dev: true 697 | 698 | /magic-string@0.27.0: 699 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 700 | engines: {node: '>=12'} 701 | dependencies: 702 | '@jridgewell/sourcemap-codec': 1.4.15 703 | dev: true 704 | 705 | /magic-string@0.30.5: 706 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 707 | engines: {node: '>=12'} 708 | dependencies: 709 | '@jridgewell/sourcemap-codec': 1.4.15 710 | dev: true 711 | 712 | /mdn-data@2.0.30: 713 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 714 | dev: true 715 | 716 | /merge2@1.4.1: 717 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 718 | engines: {node: '>= 8'} 719 | dev: true 720 | 721 | /micromatch@4.0.5: 722 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 723 | engines: {node: '>=8.6'} 724 | dependencies: 725 | braces: 3.0.2 726 | picomatch: 2.3.1 727 | dev: true 728 | 729 | /mime@3.0.0: 730 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 731 | engines: {node: '>=10.0.0'} 732 | hasBin: true 733 | dev: true 734 | 735 | /min-indent@1.0.1: 736 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 737 | engines: {node: '>=4'} 738 | dev: true 739 | 740 | /minimatch@3.1.2: 741 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 742 | dependencies: 743 | brace-expansion: 1.1.11 744 | dev: true 745 | 746 | /minimist@1.2.8: 747 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 748 | dev: true 749 | 750 | /mkdirp@0.5.6: 751 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 752 | hasBin: true 753 | dependencies: 754 | minimist: 1.2.8 755 | dev: true 756 | 757 | /mri@1.2.0: 758 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 759 | engines: {node: '>=4'} 760 | dev: true 761 | 762 | /mrmime@1.0.1: 763 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 764 | engines: {node: '>=10'} 765 | dev: true 766 | 767 | /ms@2.1.2: 768 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 769 | dev: true 770 | 771 | /nanoid@3.3.6: 772 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 773 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 774 | hasBin: true 775 | dev: true 776 | 777 | /normalize-path@3.0.0: 778 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 779 | engines: {node: '>=0.10.0'} 780 | dev: true 781 | 782 | /once@1.4.0: 783 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 784 | dependencies: 785 | wrappy: 1.0.2 786 | dev: true 787 | 788 | /open-props@1.6.7: 789 | resolution: {integrity: sha512-69oZKteIkxn1wTZRc2WCKGWgsMxIFK3GmcucC82DuDgmeG1RD5qKSVzXDSyLB/8jGiCdD27IdtGqorg61+qx5w==} 790 | dev: false 791 | 792 | /parent-module@1.0.1: 793 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 794 | engines: {node: '>=6'} 795 | dependencies: 796 | callsites: 3.1.0 797 | dev: true 798 | 799 | /path-is-absolute@1.0.1: 800 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 801 | engines: {node: '>=0.10.0'} 802 | dev: true 803 | 804 | /periscopic@3.1.0: 805 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 806 | dependencies: 807 | '@types/estree': 1.0.3 808 | estree-walker: 3.0.3 809 | is-reference: 3.0.2 810 | dev: true 811 | 812 | /picocolors@1.0.0: 813 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 814 | dev: true 815 | 816 | /picomatch@2.3.1: 817 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 818 | engines: {node: '>=8.6'} 819 | dev: true 820 | 821 | /postcss@8.4.31: 822 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 823 | engines: {node: ^10 || ^12 || >=14} 824 | dependencies: 825 | nanoid: 3.3.6 826 | picocolors: 1.0.0 827 | source-map-js: 1.0.2 828 | dev: true 829 | 830 | /queue-microtask@1.2.3: 831 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 832 | dev: true 833 | 834 | /readdirp@3.6.0: 835 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 836 | engines: {node: '>=8.10.0'} 837 | dependencies: 838 | picomatch: 2.3.1 839 | dev: true 840 | 841 | /resolve-from@4.0.0: 842 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 843 | engines: {node: '>=4'} 844 | dev: true 845 | 846 | /reusify@1.0.4: 847 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 848 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 849 | dev: true 850 | 851 | /rimraf@2.7.1: 852 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 853 | hasBin: true 854 | dependencies: 855 | glob: 7.2.3 856 | dev: true 857 | 858 | /rollup@3.29.4: 859 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 860 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 861 | hasBin: true 862 | optionalDependencies: 863 | fsevents: 2.3.3 864 | dev: true 865 | 866 | /run-parallel@1.2.0: 867 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 868 | dependencies: 869 | queue-microtask: 1.2.3 870 | dev: true 871 | 872 | /sade@1.8.1: 873 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 874 | engines: {node: '>=6'} 875 | dependencies: 876 | mri: 1.2.0 877 | dev: true 878 | 879 | /sander@0.5.1: 880 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 881 | dependencies: 882 | es6-promise: 3.3.1 883 | graceful-fs: 4.2.11 884 | mkdirp: 0.5.6 885 | rimraf: 2.7.1 886 | dev: true 887 | 888 | /set-cookie-parser@2.6.0: 889 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 890 | dev: true 891 | 892 | /sirv@2.0.3: 893 | resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} 894 | engines: {node: '>= 10'} 895 | dependencies: 896 | '@polka/url': 1.0.0-next.23 897 | mrmime: 1.0.1 898 | totalist: 3.0.1 899 | dev: true 900 | 901 | /sorcery@0.11.0: 902 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 903 | hasBin: true 904 | dependencies: 905 | '@jridgewell/sourcemap-codec': 1.4.15 906 | buffer-crc32: 0.2.13 907 | minimist: 1.2.8 908 | sander: 0.5.1 909 | dev: true 910 | 911 | /source-map-js@1.0.2: 912 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 913 | engines: {node: '>=0.10.0'} 914 | dev: true 915 | 916 | /strip-indent@3.0.0: 917 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 918 | engines: {node: '>=8'} 919 | dependencies: 920 | min-indent: 1.0.1 921 | dev: true 922 | 923 | /svelte-check@3.5.2(svelte@4.2.1): 924 | resolution: {integrity: sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==} 925 | hasBin: true 926 | peerDependencies: 927 | svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 928 | dependencies: 929 | '@jridgewell/trace-mapping': 0.3.20 930 | chokidar: 3.5.3 931 | fast-glob: 3.3.1 932 | import-fresh: 3.3.0 933 | picocolors: 1.0.0 934 | sade: 1.8.1 935 | svelte: 4.2.1 936 | svelte-preprocess: 5.0.4(svelte@4.2.1)(typescript@5.2.2) 937 | typescript: 5.2.2 938 | transitivePeerDependencies: 939 | - '@babel/core' 940 | - coffeescript 941 | - less 942 | - postcss 943 | - postcss-load-config 944 | - pug 945 | - sass 946 | - stylus 947 | - sugarss 948 | dev: true 949 | 950 | /svelte-hmr@0.15.3(svelte@4.2.1): 951 | resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} 952 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 953 | peerDependencies: 954 | svelte: ^3.19.0 || ^4.0.0 955 | dependencies: 956 | svelte: 4.2.1 957 | dev: true 958 | 959 | /svelte-preprocess@5.0.4(svelte@4.2.1)(typescript@5.2.2): 960 | resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} 961 | engines: {node: '>= 14.10.0'} 962 | requiresBuild: true 963 | peerDependencies: 964 | '@babel/core': ^7.10.2 965 | coffeescript: ^2.5.1 966 | less: ^3.11.3 || ^4.0.0 967 | postcss: ^7 || ^8 968 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 969 | pug: ^3.0.0 970 | sass: ^1.26.8 971 | stylus: ^0.55.0 972 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 973 | svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 974 | typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 975 | peerDependenciesMeta: 976 | '@babel/core': 977 | optional: true 978 | coffeescript: 979 | optional: true 980 | less: 981 | optional: true 982 | postcss: 983 | optional: true 984 | postcss-load-config: 985 | optional: true 986 | pug: 987 | optional: true 988 | sass: 989 | optional: true 990 | stylus: 991 | optional: true 992 | sugarss: 993 | optional: true 994 | typescript: 995 | optional: true 996 | dependencies: 997 | '@types/pug': 2.0.8 998 | detect-indent: 6.1.0 999 | magic-string: 0.27.0 1000 | sorcery: 0.11.0 1001 | strip-indent: 3.0.0 1002 | svelte: 4.2.1 1003 | typescript: 5.2.2 1004 | dev: true 1005 | 1006 | /svelte@4.2.1: 1007 | resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==} 1008 | engines: {node: '>=16'} 1009 | dependencies: 1010 | '@ampproject/remapping': 2.2.1 1011 | '@jridgewell/sourcemap-codec': 1.4.15 1012 | '@jridgewell/trace-mapping': 0.3.20 1013 | acorn: 8.10.0 1014 | aria-query: 5.3.0 1015 | axobject-query: 3.2.1 1016 | code-red: 1.0.4 1017 | css-tree: 2.3.1 1018 | estree-walker: 3.0.3 1019 | is-reference: 3.0.2 1020 | locate-character: 3.0.0 1021 | magic-string: 0.30.5 1022 | periscopic: 3.1.0 1023 | dev: true 1024 | 1025 | /tiny-glob@0.2.9: 1026 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1027 | dependencies: 1028 | globalyzer: 0.1.0 1029 | globrex: 0.1.2 1030 | dev: true 1031 | 1032 | /to-regex-range@5.0.1: 1033 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1034 | engines: {node: '>=8.0'} 1035 | dependencies: 1036 | is-number: 7.0.0 1037 | dev: true 1038 | 1039 | /totalist@3.0.1: 1040 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1041 | engines: {node: '>=6'} 1042 | dev: true 1043 | 1044 | /tslib@2.6.2: 1045 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1046 | dev: true 1047 | 1048 | /typescript@5.2.2: 1049 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 1050 | engines: {node: '>=14.17'} 1051 | hasBin: true 1052 | dev: true 1053 | 1054 | /undici@5.25.4: 1055 | resolution: {integrity: sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==} 1056 | engines: {node: '>=14.0'} 1057 | dependencies: 1058 | '@fastify/busboy': 2.0.0 1059 | dev: true 1060 | 1061 | /vite@4.5.0: 1062 | resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} 1063 | engines: {node: ^14.18.0 || >=16.0.0} 1064 | hasBin: true 1065 | peerDependencies: 1066 | '@types/node': '>= 14' 1067 | less: '*' 1068 | lightningcss: ^1.21.0 1069 | sass: '*' 1070 | stylus: '*' 1071 | sugarss: '*' 1072 | terser: ^5.4.0 1073 | peerDependenciesMeta: 1074 | '@types/node': 1075 | optional: true 1076 | less: 1077 | optional: true 1078 | lightningcss: 1079 | optional: true 1080 | sass: 1081 | optional: true 1082 | stylus: 1083 | optional: true 1084 | sugarss: 1085 | optional: true 1086 | terser: 1087 | optional: true 1088 | dependencies: 1089 | esbuild: 0.18.20 1090 | postcss: 8.4.31 1091 | rollup: 3.29.4 1092 | optionalDependencies: 1093 | fsevents: 2.3.3 1094 | dev: true 1095 | 1096 | /vitefu@0.2.5(vite@4.5.0): 1097 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 1098 | peerDependencies: 1099 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 1100 | peerDependenciesMeta: 1101 | vite: 1102 | optional: true 1103 | dependencies: 1104 | vite: 4.5.0 1105 | dev: true 1106 | 1107 | /wrappy@1.0.2: 1108 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1109 | dev: true 1110 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | @import 'open-props/style'; 2 | @import 'open-props/normalize'; 3 | @import '@fontsource/manrope'; 4 | 5 | html, 6 | body { 7 | height: 100%; 8 | } 9 | 10 | body { 11 | display: grid; 12 | place-content: center; 13 | margin: 0; 14 | font-family: 'Manrope', sans-serif; 15 | color: hsl(220 10% 98%); 16 | background-color: hsl(220 10% 10%); 17 | } 18 | -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {}; 13 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %sveltekit.head% 7 | 8 | 9 | 10 | 11 |
%sveltekit.body%
12 | 13 | 14 | -------------------------------------------------------------------------------- /src/lib/gui/gui.svelte: -------------------------------------------------------------------------------- 1 | 47 | 48 | {#if isNotEmpty} 49 |
50 | {#each entries as [label, value]} 51 | {#if is.number(value)} 52 | 62 | {/if} 63 | 64 | {#if is.boolean(value)} 65 | 74 | {/if} 75 | 76 | {#if is.text(value)} 77 | 81 | {/if} 82 | 83 | {#if is.range(value)} 84 | 97 | {/if} 98 | 99 | {#if is.color(value)} 100 | 104 | {/if} 105 | {/each} 106 |
107 | {/if} 108 | 109 | 147 | -------------------------------------------------------------------------------- /src/lib/gui/index.ts: -------------------------------------------------------------------------------- 1 | import GUI from './gui.svelte' 2 | import { guiControls } from './store' 3 | 4 | export { GUI, guiControls } 5 | -------------------------------------------------------------------------------- /src/lib/gui/store.ts: -------------------------------------------------------------------------------- 1 | import { writable } from 'svelte/store' 2 | 3 | export function guiControls(values: any) { 4 | return writable(values) 5 | } 6 | -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | Svelte GUI 7 | 8 | 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joysofcode/svelte-gui/652558ffbcdc9ce6620ffcb444a45bde6bd0c3b9/static/favicon.png -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto'; 2 | import { vitePreprocess } from '@sveltejs/kit/vite'; 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors 7 | // for more information about preprocessors 8 | preprocess: vitePreprocess(), 9 | 10 | kit: { 11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. 12 | // If your environment is not supported or you settled on a specific environment, switch out the adapter. 13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters. 14 | adapter: adapter() 15 | } 16 | }; 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true 12 | } 13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias 14 | // 15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 16 | // from the referenced tsconfig.json - TypeScript does not merge them in 17 | } 18 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vite'; 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()] 6 | }); 7 | --------------------------------------------------------------------------------