├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── postcss.config.cjs ├── src ├── actions │ ├── click-outside.ts │ ├── focus-outside.ts │ └── index.ts ├── app.html ├── components │ ├── Icon.svelte │ ├── List │ │ ├── ListOptions.svelte │ │ ├── ListView.svelte │ │ ├── ListViewHeader.svelte │ │ └── ThemeSelector.svelte │ ├── NewListButton.svelte │ ├── SideNav.svelte │ ├── Task │ │ ├── NewTask.svelte │ │ ├── TaskItem.svelte │ │ └── TasksList.svelte │ └── Wallpaper.svelte ├── css │ ├── global.scss │ └── themes.scss ├── data │ └── themes.ts ├── fade.ts ├── global.d.ts ├── helpers │ ├── array.ts │ ├── rand-int.ts │ └── wait-for.ts ├── routes │ ├── +layout.svelte │ ├── +page.svelte │ ├── +page.ts │ └── [listID] │ │ └── +page.svelte ├── stores │ ├── lists.store.ts │ └── tasks.store.ts └── types │ └── index.type.ts ├── static ├── favicon.png └── wallpapers │ ├── 1-o.jpg │ ├── 1-thumb.jpg │ ├── 1.jpg │ ├── 1.webp │ ├── 10-thumb.jpg │ ├── 10.jpg │ ├── 11-thumb.jpg │ ├── 11.jpg │ ├── 12-thumb.jpg │ ├── 12.jpg │ ├── 13-thumb.jpg │ ├── 13.jpg │ ├── 14-thumb.jpg │ ├── 14.jpg │ ├── 15-thumb.jpg │ ├── 15.jpg │ ├── 2-o.jpg │ ├── 2-thumb.jpg │ ├── 2.jpg │ ├── 3-thumb.jpg │ ├── 3.jpg │ ├── 4-thumb.jpg │ ├── 4.jpg │ ├── 5-thumb.jpg │ ├── 5.jpg │ ├── 6-thumb.jpg │ ├── 6.jpg │ ├── 7-thumb.jpg │ ├── 7.jpg │ ├── 8-thumb.jpg │ ├── 8.jpg │ ├── 9-thumb.jpg │ └── 9.jpg ├── svelte.config.js ├── tsconfig.json └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": false, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100 6 | } 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Puru Vijay 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 | # create-svelte 2 | 3 | Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte); 4 | 5 | ## Creating a project 6 | 7 | If you're seeing this, you've probably already done this step. Congrats! 8 | 9 | ```bash 10 | # create a new project in the current directory 11 | npm init svelte@next 12 | 13 | # create a new project in my-app 14 | npm init svelte@next my-app 15 | ``` 16 | 17 | > Note: the `@next` is temporary 18 | 19 | ## Developing 20 | 21 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 22 | 23 | ```bash 24 | npm run dev 25 | 26 | # or start the server and open the app in a new browser tab 27 | npm run dev -- --open 28 | ``` 29 | 30 | ## Building 31 | 32 | Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then: 33 | 34 | ```bash 35 | npm run build 36 | ``` 37 | 38 | > You can preview the built app with `npm run preview`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production. 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ms-todo-svelte", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "@sveltejs/adapter-static": "^1.0.0-next.41", 12 | "@sveltejs/kit": "^1.0.0-next.460", 13 | "autoprefixer": "^10.4.8", 14 | "postcss": "^8.4.16", 15 | "sass": "^1.54.8", 16 | "svelte": "^3.49.0", 17 | "svelte-preprocess": "^4.10.7", 18 | "typescript": "^4.8.2", 19 | "vite": "3.1.0-beta.1" 20 | }, 21 | "dependencies": { 22 | "@mdi/js": "^7.0.96", 23 | "date-fns": "^2.29.2", 24 | "nanoid": "^4.0.0", 25 | "svelte-local-storage-store": "^0.3.1" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@mdi/js': ^7.0.96 5 | '@sveltejs/adapter-static': ^1.0.0-next.41 6 | '@sveltejs/kit': ^1.0.0-next.460 7 | autoprefixer: ^10.4.8 8 | date-fns: ^2.29.2 9 | nanoid: ^4.0.0 10 | postcss: ^8.4.16 11 | sass: ^1.54.8 12 | svelte: ^3.49.0 13 | svelte-local-storage-store: ^0.3.1 14 | svelte-preprocess: ^4.10.7 15 | typescript: ^4.8.2 16 | vite: 3.1.0-beta.1 17 | 18 | dependencies: 19 | '@mdi/js': 7.0.96 20 | date-fns: 2.29.2 21 | nanoid: 4.0.0 22 | svelte-local-storage-store: 0.3.1_svelte@3.49.0 23 | 24 | devDependencies: 25 | '@sveltejs/adapter-static': 1.0.0-next.41 26 | '@sveltejs/kit': 1.0.0-next.460_fhgkwirxvgjw2igda6zmhiisma 27 | autoprefixer: 10.4.8_postcss@8.4.16 28 | postcss: 8.4.16 29 | sass: 1.54.8 30 | svelte: 3.49.0 31 | svelte-preprocess: 4.10.7_pxxiereockejw5abpwoddd4ivy 32 | typescript: 4.8.2 33 | vite: 3.1.0-beta.1_sass@1.54.8 34 | 35 | packages: 36 | 37 | /@esbuild/linux-loong64/0.14.54: 38 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 39 | engines: {node: '>=12'} 40 | cpu: [loong64] 41 | os: [linux] 42 | requiresBuild: true 43 | dev: true 44 | optional: true 45 | 46 | /@mdi/js/7.0.96: 47 | resolution: {integrity: sha512-lNqhkV3cpPfYb/Avh+vXLFukUTbHbyHoFo4Jdc7Oc9UvURGVhamFIpgOVvEf2bNA78zvjXTZeVWExUTR+DLBfQ==} 48 | dev: false 49 | 50 | /@polka/url/1.0.0-next.21: 51 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 52 | dev: true 53 | 54 | /@rollup/pluginutils/4.2.1: 55 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 56 | engines: {node: '>= 8.0.0'} 57 | dependencies: 58 | estree-walker: 2.0.2 59 | picomatch: 2.3.1 60 | dev: true 61 | 62 | /@sveltejs/adapter-static/1.0.0-next.41: 63 | resolution: {integrity: sha512-Bw6MfEuzuqjKZuVCG7ZHXiOIy/LDoRVR278eeAf4kcwl1B8+YEvChqdCvG2N5Ur+rxUIHstPgeX39HezS8d+mw==} 64 | dev: true 65 | 66 | /@sveltejs/kit/1.0.0-next.460_fhgkwirxvgjw2igda6zmhiisma: 67 | resolution: {integrity: sha512-bwDkwzEN72+1K5FXqBQGrYOwyA6V5sSSec/A6qXMTfh4uycFTiIQh/e2ki3pxfG0SwijrUo43FEbdKLyBiuDgQ==} 68 | engines: {node: '>=16.14'} 69 | hasBin: true 70 | requiresBuild: true 71 | peerDependencies: 72 | svelte: ^3.44.0 73 | vite: ^3.1.0-beta.1 74 | dependencies: 75 | '@sveltejs/vite-plugin-svelte': 1.0.3_fhgkwirxvgjw2igda6zmhiisma 76 | cookie: 0.5.0 77 | devalue: 3.1.2 78 | kleur: 4.1.5 79 | magic-string: 0.26.3 80 | mime: 3.0.0 81 | node-fetch: 3.2.10 82 | sade: 1.8.1 83 | set-cookie-parser: 2.5.1 84 | sirv: 2.0.2 85 | svelte: 3.49.0 86 | tiny-glob: 0.2.9 87 | undici: 5.10.0 88 | vite: 3.1.0-beta.1_sass@1.54.8 89 | transitivePeerDependencies: 90 | - diff-match-patch 91 | - supports-color 92 | dev: true 93 | 94 | /@sveltejs/vite-plugin-svelte/1.0.3_fhgkwirxvgjw2igda6zmhiisma: 95 | resolution: {integrity: sha512-0Qu51m2W9RBlxWPp8i31KJpnqmjWMOne8vAzgmOX6ZM9uX+/RAv6BNhEMcNoP5MsyLjyW1ZTCiJoaZZ5EeqpFg==} 96 | engines: {node: ^14.18.0 || >= 16} 97 | peerDependencies: 98 | diff-match-patch: ^1.0.5 99 | svelte: ^3.44.0 100 | vite: ^3.0.0 101 | peerDependenciesMeta: 102 | diff-match-patch: 103 | optional: true 104 | dependencies: 105 | '@rollup/pluginutils': 4.2.1 106 | debug: 4.3.4 107 | deepmerge: 4.2.2 108 | kleur: 4.1.5 109 | magic-string: 0.26.3 110 | svelte: 3.49.0 111 | svelte-hmr: 0.14.12_svelte@3.49.0 112 | vite: 3.1.0-beta.1_sass@1.54.8 113 | transitivePeerDependencies: 114 | - supports-color 115 | dev: true 116 | 117 | /@types/node/18.7.14: 118 | resolution: {integrity: sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==} 119 | dev: true 120 | 121 | /@types/pug/2.0.6: 122 | resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} 123 | dev: true 124 | 125 | /@types/sass/1.43.1: 126 | resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} 127 | dependencies: 128 | '@types/node': 18.7.14 129 | dev: true 130 | 131 | /anymatch/3.1.2: 132 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 133 | engines: {node: '>= 8'} 134 | dependencies: 135 | normalize-path: 3.0.0 136 | picomatch: 2.3.1 137 | dev: true 138 | 139 | /autoprefixer/10.4.8_postcss@8.4.16: 140 | resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==} 141 | engines: {node: ^10 || ^12 || >=14} 142 | hasBin: true 143 | peerDependencies: 144 | postcss: ^8.1.0 145 | dependencies: 146 | browserslist: 4.21.3 147 | caniuse-lite: 1.0.30001387 148 | fraction.js: 4.2.0 149 | normalize-range: 0.1.2 150 | picocolors: 1.0.0 151 | postcss: 8.4.16 152 | postcss-value-parser: 4.2.0 153 | dev: true 154 | 155 | /balanced-match/1.0.2: 156 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 157 | dev: true 158 | 159 | /binary-extensions/2.2.0: 160 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 161 | engines: {node: '>=8'} 162 | dev: true 163 | 164 | /brace-expansion/1.1.11: 165 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 166 | dependencies: 167 | balanced-match: 1.0.2 168 | concat-map: 0.0.1 169 | dev: true 170 | 171 | /braces/3.0.2: 172 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 173 | engines: {node: '>=8'} 174 | dependencies: 175 | fill-range: 7.0.1 176 | dev: true 177 | 178 | /browserslist/4.21.3: 179 | resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} 180 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 181 | hasBin: true 182 | dependencies: 183 | caniuse-lite: 1.0.30001387 184 | electron-to-chromium: 1.4.239 185 | node-releases: 2.0.6 186 | update-browserslist-db: 1.0.5_browserslist@4.21.3 187 | dev: true 188 | 189 | /buffer-crc32/0.2.13: 190 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 191 | dev: true 192 | 193 | /caniuse-lite/1.0.30001387: 194 | resolution: {integrity: sha512-fKDH0F1KOJvR+mWSOvhj8lVRr/Q/mc5u5nabU2vi1/sgvlSqEsE8dOq0Hy/BqVbDkCYQPRRHB1WRjW6PGB/7PA==} 195 | dev: true 196 | 197 | /chokidar/3.5.3: 198 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 199 | engines: {node: '>= 8.10.0'} 200 | dependencies: 201 | anymatch: 3.1.2 202 | braces: 3.0.2 203 | glob-parent: 5.1.2 204 | is-binary-path: 2.1.0 205 | is-glob: 4.0.3 206 | normalize-path: 3.0.0 207 | readdirp: 3.6.0 208 | optionalDependencies: 209 | fsevents: 2.3.2 210 | dev: true 211 | 212 | /concat-map/0.0.1: 213 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 214 | dev: true 215 | 216 | /cookie/0.5.0: 217 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 218 | engines: {node: '>= 0.6'} 219 | dev: true 220 | 221 | /data-uri-to-buffer/4.0.0: 222 | resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} 223 | engines: {node: '>= 12'} 224 | dev: true 225 | 226 | /date-fns/2.29.2: 227 | resolution: {integrity: sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==} 228 | engines: {node: '>=0.11'} 229 | dev: false 230 | 231 | /debug/4.3.4: 232 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 233 | engines: {node: '>=6.0'} 234 | peerDependencies: 235 | supports-color: '*' 236 | peerDependenciesMeta: 237 | supports-color: 238 | optional: true 239 | dependencies: 240 | ms: 2.1.2 241 | dev: true 242 | 243 | /deepmerge/4.2.2: 244 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 245 | engines: {node: '>=0.10.0'} 246 | dev: true 247 | 248 | /detect-indent/6.1.0: 249 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 250 | engines: {node: '>=8'} 251 | dev: true 252 | 253 | /devalue/3.1.2: 254 | resolution: {integrity: sha512-wUXbMGPAsBx79UF14nsWSsJlC7RcwPlf2w3bGheODWxKx57e9n68ceoijbqCJCEbjyo0S79nqfPwQgyijwLaqw==} 255 | dev: true 256 | 257 | /electron-to-chromium/1.4.239: 258 | resolution: {integrity: sha512-XbhfzxPIFzMjJm17T7yUGZEyYh5XuUjrA/FQ7JUy2bEd4qQ7MvFTaKpZ6zXZog1cfVttESo2Lx0ctnf7eQOaAQ==} 259 | dev: true 260 | 261 | /es6-promise/3.3.1: 262 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 263 | dev: true 264 | 265 | /esbuild-android-64/0.14.54: 266 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 267 | engines: {node: '>=12'} 268 | cpu: [x64] 269 | os: [android] 270 | requiresBuild: true 271 | dev: true 272 | optional: true 273 | 274 | /esbuild-android-arm64/0.14.54: 275 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 276 | engines: {node: '>=12'} 277 | cpu: [arm64] 278 | os: [android] 279 | requiresBuild: true 280 | dev: true 281 | optional: true 282 | 283 | /esbuild-darwin-64/0.14.54: 284 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 285 | engines: {node: '>=12'} 286 | cpu: [x64] 287 | os: [darwin] 288 | requiresBuild: true 289 | dev: true 290 | optional: true 291 | 292 | /esbuild-darwin-arm64/0.14.54: 293 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 294 | engines: {node: '>=12'} 295 | cpu: [arm64] 296 | os: [darwin] 297 | requiresBuild: true 298 | dev: true 299 | optional: true 300 | 301 | /esbuild-freebsd-64/0.14.54: 302 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 303 | engines: {node: '>=12'} 304 | cpu: [x64] 305 | os: [freebsd] 306 | requiresBuild: true 307 | dev: true 308 | optional: true 309 | 310 | /esbuild-freebsd-arm64/0.14.54: 311 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 312 | engines: {node: '>=12'} 313 | cpu: [arm64] 314 | os: [freebsd] 315 | requiresBuild: true 316 | dev: true 317 | optional: true 318 | 319 | /esbuild-linux-32/0.14.54: 320 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 321 | engines: {node: '>=12'} 322 | cpu: [ia32] 323 | os: [linux] 324 | requiresBuild: true 325 | dev: true 326 | optional: true 327 | 328 | /esbuild-linux-64/0.14.54: 329 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 330 | engines: {node: '>=12'} 331 | cpu: [x64] 332 | os: [linux] 333 | requiresBuild: true 334 | dev: true 335 | optional: true 336 | 337 | /esbuild-linux-arm/0.14.54: 338 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 339 | engines: {node: '>=12'} 340 | cpu: [arm] 341 | os: [linux] 342 | requiresBuild: true 343 | dev: true 344 | optional: true 345 | 346 | /esbuild-linux-arm64/0.14.54: 347 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 348 | engines: {node: '>=12'} 349 | cpu: [arm64] 350 | os: [linux] 351 | requiresBuild: true 352 | dev: true 353 | optional: true 354 | 355 | /esbuild-linux-mips64le/0.14.54: 356 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 357 | engines: {node: '>=12'} 358 | cpu: [mips64el] 359 | os: [linux] 360 | requiresBuild: true 361 | dev: true 362 | optional: true 363 | 364 | /esbuild-linux-ppc64le/0.14.54: 365 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 366 | engines: {node: '>=12'} 367 | cpu: [ppc64] 368 | os: [linux] 369 | requiresBuild: true 370 | dev: true 371 | optional: true 372 | 373 | /esbuild-linux-riscv64/0.14.54: 374 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 375 | engines: {node: '>=12'} 376 | cpu: [riscv64] 377 | os: [linux] 378 | requiresBuild: true 379 | dev: true 380 | optional: true 381 | 382 | /esbuild-linux-s390x/0.14.54: 383 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 384 | engines: {node: '>=12'} 385 | cpu: [s390x] 386 | os: [linux] 387 | requiresBuild: true 388 | dev: true 389 | optional: true 390 | 391 | /esbuild-netbsd-64/0.14.54: 392 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 393 | engines: {node: '>=12'} 394 | cpu: [x64] 395 | os: [netbsd] 396 | requiresBuild: true 397 | dev: true 398 | optional: true 399 | 400 | /esbuild-openbsd-64/0.14.54: 401 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 402 | engines: {node: '>=12'} 403 | cpu: [x64] 404 | os: [openbsd] 405 | requiresBuild: true 406 | dev: true 407 | optional: true 408 | 409 | /esbuild-sunos-64/0.14.54: 410 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 411 | engines: {node: '>=12'} 412 | cpu: [x64] 413 | os: [sunos] 414 | requiresBuild: true 415 | dev: true 416 | optional: true 417 | 418 | /esbuild-windows-32/0.14.54: 419 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 420 | engines: {node: '>=12'} 421 | cpu: [ia32] 422 | os: [win32] 423 | requiresBuild: true 424 | dev: true 425 | optional: true 426 | 427 | /esbuild-windows-64/0.14.54: 428 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 429 | engines: {node: '>=12'} 430 | cpu: [x64] 431 | os: [win32] 432 | requiresBuild: true 433 | dev: true 434 | optional: true 435 | 436 | /esbuild-windows-arm64/0.14.54: 437 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 438 | engines: {node: '>=12'} 439 | cpu: [arm64] 440 | os: [win32] 441 | requiresBuild: true 442 | dev: true 443 | optional: true 444 | 445 | /esbuild/0.14.54: 446 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 447 | engines: {node: '>=12'} 448 | hasBin: true 449 | requiresBuild: true 450 | optionalDependencies: 451 | '@esbuild/linux-loong64': 0.14.54 452 | esbuild-android-64: 0.14.54 453 | esbuild-android-arm64: 0.14.54 454 | esbuild-darwin-64: 0.14.54 455 | esbuild-darwin-arm64: 0.14.54 456 | esbuild-freebsd-64: 0.14.54 457 | esbuild-freebsd-arm64: 0.14.54 458 | esbuild-linux-32: 0.14.54 459 | esbuild-linux-64: 0.14.54 460 | esbuild-linux-arm: 0.14.54 461 | esbuild-linux-arm64: 0.14.54 462 | esbuild-linux-mips64le: 0.14.54 463 | esbuild-linux-ppc64le: 0.14.54 464 | esbuild-linux-riscv64: 0.14.54 465 | esbuild-linux-s390x: 0.14.54 466 | esbuild-netbsd-64: 0.14.54 467 | esbuild-openbsd-64: 0.14.54 468 | esbuild-sunos-64: 0.14.54 469 | esbuild-windows-32: 0.14.54 470 | esbuild-windows-64: 0.14.54 471 | esbuild-windows-arm64: 0.14.54 472 | dev: true 473 | 474 | /escalade/3.1.1: 475 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 476 | engines: {node: '>=6'} 477 | dev: true 478 | 479 | /estree-walker/2.0.2: 480 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 481 | dev: true 482 | 483 | /fetch-blob/3.2.0: 484 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} 485 | engines: {node: ^12.20 || >= 14.13} 486 | dependencies: 487 | node-domexception: 1.0.0 488 | web-streams-polyfill: 3.2.1 489 | dev: true 490 | 491 | /fill-range/7.0.1: 492 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 493 | engines: {node: '>=8'} 494 | dependencies: 495 | to-regex-range: 5.0.1 496 | dev: true 497 | 498 | /formdata-polyfill/4.0.10: 499 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} 500 | engines: {node: '>=12.20.0'} 501 | dependencies: 502 | fetch-blob: 3.2.0 503 | dev: true 504 | 505 | /fraction.js/4.2.0: 506 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 507 | dev: true 508 | 509 | /fs.realpath/1.0.0: 510 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 511 | dev: true 512 | 513 | /fsevents/2.3.2: 514 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 515 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 516 | os: [darwin] 517 | requiresBuild: true 518 | dev: true 519 | optional: true 520 | 521 | /function-bind/1.1.1: 522 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 523 | dev: true 524 | 525 | /glob-parent/5.1.2: 526 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 527 | engines: {node: '>= 6'} 528 | dependencies: 529 | is-glob: 4.0.3 530 | dev: true 531 | 532 | /glob/7.2.3: 533 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 534 | dependencies: 535 | fs.realpath: 1.0.0 536 | inflight: 1.0.6 537 | inherits: 2.0.4 538 | minimatch: 3.1.2 539 | once: 1.4.0 540 | path-is-absolute: 1.0.1 541 | dev: true 542 | 543 | /globalyzer/0.1.0: 544 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 545 | dev: true 546 | 547 | /globrex/0.1.2: 548 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 549 | dev: true 550 | 551 | /graceful-fs/4.2.10: 552 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 553 | dev: true 554 | 555 | /has/1.0.3: 556 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 557 | engines: {node: '>= 0.4.0'} 558 | dependencies: 559 | function-bind: 1.1.1 560 | dev: true 561 | 562 | /immutable/4.1.0: 563 | resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} 564 | dev: true 565 | 566 | /inflight/1.0.6: 567 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 568 | dependencies: 569 | once: 1.4.0 570 | wrappy: 1.0.2 571 | dev: true 572 | 573 | /inherits/2.0.4: 574 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 575 | dev: true 576 | 577 | /is-binary-path/2.1.0: 578 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 579 | engines: {node: '>=8'} 580 | dependencies: 581 | binary-extensions: 2.2.0 582 | dev: true 583 | 584 | /is-core-module/2.10.0: 585 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 586 | dependencies: 587 | has: 1.0.3 588 | dev: true 589 | 590 | /is-extglob/2.1.1: 591 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 592 | engines: {node: '>=0.10.0'} 593 | dev: true 594 | 595 | /is-glob/4.0.3: 596 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 597 | engines: {node: '>=0.10.0'} 598 | dependencies: 599 | is-extglob: 2.1.1 600 | dev: true 601 | 602 | /is-number/7.0.0: 603 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 604 | engines: {node: '>=0.12.0'} 605 | dev: true 606 | 607 | /kleur/4.1.5: 608 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 609 | engines: {node: '>=6'} 610 | dev: true 611 | 612 | /magic-string/0.25.9: 613 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 614 | dependencies: 615 | sourcemap-codec: 1.4.8 616 | dev: true 617 | 618 | /magic-string/0.26.3: 619 | resolution: {integrity: sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==} 620 | engines: {node: '>=12'} 621 | dependencies: 622 | sourcemap-codec: 1.4.8 623 | dev: true 624 | 625 | /mime/3.0.0: 626 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 627 | engines: {node: '>=10.0.0'} 628 | hasBin: true 629 | dev: true 630 | 631 | /min-indent/1.0.1: 632 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 633 | engines: {node: '>=4'} 634 | dev: true 635 | 636 | /minimatch/3.1.2: 637 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 638 | dependencies: 639 | brace-expansion: 1.1.11 640 | dev: true 641 | 642 | /minimist/1.2.6: 643 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} 644 | dev: true 645 | 646 | /mkdirp/0.5.6: 647 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 648 | hasBin: true 649 | dependencies: 650 | minimist: 1.2.6 651 | dev: true 652 | 653 | /mri/1.2.0: 654 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 655 | engines: {node: '>=4'} 656 | dev: true 657 | 658 | /mrmime/1.0.1: 659 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 660 | engines: {node: '>=10'} 661 | dev: true 662 | 663 | /ms/2.1.2: 664 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 665 | dev: true 666 | 667 | /nanoid/3.3.4: 668 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 669 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 670 | hasBin: true 671 | dev: true 672 | 673 | /nanoid/4.0.0: 674 | resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==} 675 | engines: {node: ^14 || ^16 || >=18} 676 | hasBin: true 677 | dev: false 678 | 679 | /node-domexception/1.0.0: 680 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 681 | engines: {node: '>=10.5.0'} 682 | dev: true 683 | 684 | /node-fetch/3.2.10: 685 | resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} 686 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 687 | dependencies: 688 | data-uri-to-buffer: 4.0.0 689 | fetch-blob: 3.2.0 690 | formdata-polyfill: 4.0.10 691 | dev: true 692 | 693 | /node-releases/2.0.6: 694 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 695 | dev: true 696 | 697 | /normalize-path/3.0.0: 698 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 699 | engines: {node: '>=0.10.0'} 700 | dev: true 701 | 702 | /normalize-range/0.1.2: 703 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 704 | engines: {node: '>=0.10.0'} 705 | dev: true 706 | 707 | /once/1.4.0: 708 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 709 | dependencies: 710 | wrappy: 1.0.2 711 | dev: true 712 | 713 | /path-is-absolute/1.0.1: 714 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 715 | engines: {node: '>=0.10.0'} 716 | dev: true 717 | 718 | /path-parse/1.0.7: 719 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 720 | dev: true 721 | 722 | /picocolors/1.0.0: 723 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 724 | dev: true 725 | 726 | /picomatch/2.3.1: 727 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 728 | engines: {node: '>=8.6'} 729 | dev: true 730 | 731 | /postcss-value-parser/4.2.0: 732 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 733 | dev: true 734 | 735 | /postcss/8.4.16: 736 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 737 | engines: {node: ^10 || ^12 || >=14} 738 | dependencies: 739 | nanoid: 3.3.4 740 | picocolors: 1.0.0 741 | source-map-js: 1.0.2 742 | dev: true 743 | 744 | /readdirp/3.6.0: 745 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 746 | engines: {node: '>=8.10.0'} 747 | dependencies: 748 | picomatch: 2.3.1 749 | dev: true 750 | 751 | /resolve/1.22.1: 752 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 753 | hasBin: true 754 | dependencies: 755 | is-core-module: 2.10.0 756 | path-parse: 1.0.7 757 | supports-preserve-symlinks-flag: 1.0.0 758 | dev: true 759 | 760 | /rimraf/2.7.1: 761 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 762 | hasBin: true 763 | dependencies: 764 | glob: 7.2.3 765 | dev: true 766 | 767 | /rollup/2.78.1: 768 | resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} 769 | engines: {node: '>=10.0.0'} 770 | hasBin: true 771 | optionalDependencies: 772 | fsevents: 2.3.2 773 | dev: true 774 | 775 | /sade/1.8.1: 776 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 777 | engines: {node: '>=6'} 778 | dependencies: 779 | mri: 1.2.0 780 | dev: true 781 | 782 | /sander/0.5.1: 783 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 784 | dependencies: 785 | es6-promise: 3.3.1 786 | graceful-fs: 4.2.10 787 | mkdirp: 0.5.6 788 | rimraf: 2.7.1 789 | dev: true 790 | 791 | /sass/1.54.8: 792 | resolution: {integrity: sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==} 793 | engines: {node: '>=12.0.0'} 794 | hasBin: true 795 | dependencies: 796 | chokidar: 3.5.3 797 | immutable: 4.1.0 798 | source-map-js: 1.0.2 799 | dev: true 800 | 801 | /set-cookie-parser/2.5.1: 802 | resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} 803 | dev: true 804 | 805 | /sirv/2.0.2: 806 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} 807 | engines: {node: '>= 10'} 808 | dependencies: 809 | '@polka/url': 1.0.0-next.21 810 | mrmime: 1.0.1 811 | totalist: 3.0.0 812 | dev: true 813 | 814 | /sorcery/0.10.0: 815 | resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} 816 | hasBin: true 817 | dependencies: 818 | buffer-crc32: 0.2.13 819 | minimist: 1.2.6 820 | sander: 0.5.1 821 | sourcemap-codec: 1.4.8 822 | dev: true 823 | 824 | /source-map-js/1.0.2: 825 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 826 | engines: {node: '>=0.10.0'} 827 | dev: true 828 | 829 | /sourcemap-codec/1.4.8: 830 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 831 | dev: true 832 | 833 | /strip-indent/3.0.0: 834 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 835 | engines: {node: '>=8'} 836 | dependencies: 837 | min-indent: 1.0.1 838 | dev: true 839 | 840 | /supports-preserve-symlinks-flag/1.0.0: 841 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 842 | engines: {node: '>= 0.4'} 843 | dev: true 844 | 845 | /svelte-hmr/0.14.12_svelte@3.49.0: 846 | resolution: {integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==} 847 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 848 | peerDependencies: 849 | svelte: '>=3.19.0' 850 | dependencies: 851 | svelte: 3.49.0 852 | dev: true 853 | 854 | /svelte-local-storage-store/0.3.1_svelte@3.49.0: 855 | resolution: {integrity: sha512-pG+jjBY8oZWQ1XRnVkLIuPPbPqBWVtj0IINQBjkZSpJ+OqMs285efd+oiGdk4vBDnqomw81SForn+KH1j3HguA==} 856 | engines: {node: '>=0.14'} 857 | peerDependencies: 858 | svelte: ^3.48.0 859 | dependencies: 860 | svelte: 3.49.0 861 | dev: false 862 | 863 | /svelte-preprocess/4.10.7_pxxiereockejw5abpwoddd4ivy: 864 | resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} 865 | engines: {node: '>= 9.11.2'} 866 | requiresBuild: true 867 | peerDependencies: 868 | '@babel/core': ^7.10.2 869 | coffeescript: ^2.5.1 870 | less: ^3.11.3 || ^4.0.0 871 | node-sass: '*' 872 | postcss: ^7 || ^8 873 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 874 | pug: ^3.0.0 875 | sass: ^1.26.8 876 | stylus: ^0.55.0 877 | sugarss: ^2.0.0 878 | svelte: ^3.23.0 879 | typescript: ^3.9.5 || ^4.0.0 880 | peerDependenciesMeta: 881 | '@babel/core': 882 | optional: true 883 | coffeescript: 884 | optional: true 885 | less: 886 | optional: true 887 | node-sass: 888 | optional: true 889 | postcss: 890 | optional: true 891 | postcss-load-config: 892 | optional: true 893 | pug: 894 | optional: true 895 | sass: 896 | optional: true 897 | stylus: 898 | optional: true 899 | sugarss: 900 | optional: true 901 | typescript: 902 | optional: true 903 | dependencies: 904 | '@types/pug': 2.0.6 905 | '@types/sass': 1.43.1 906 | detect-indent: 6.1.0 907 | magic-string: 0.25.9 908 | postcss: 8.4.16 909 | sass: 1.54.8 910 | sorcery: 0.10.0 911 | strip-indent: 3.0.0 912 | svelte: 3.49.0 913 | typescript: 4.8.2 914 | dev: true 915 | 916 | /svelte/3.49.0: 917 | resolution: {integrity: sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==} 918 | engines: {node: '>= 8'} 919 | 920 | /tiny-glob/0.2.9: 921 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 922 | dependencies: 923 | globalyzer: 0.1.0 924 | globrex: 0.1.2 925 | dev: true 926 | 927 | /to-regex-range/5.0.1: 928 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 929 | engines: {node: '>=8.0'} 930 | dependencies: 931 | is-number: 7.0.0 932 | dev: true 933 | 934 | /totalist/3.0.0: 935 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} 936 | engines: {node: '>=6'} 937 | dev: true 938 | 939 | /typescript/4.8.2: 940 | resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} 941 | engines: {node: '>=4.2.0'} 942 | hasBin: true 943 | dev: true 944 | 945 | /undici/5.10.0: 946 | resolution: {integrity: sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g==} 947 | engines: {node: '>=12.18'} 948 | dev: true 949 | 950 | /update-browserslist-db/1.0.5_browserslist@4.21.3: 951 | resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} 952 | hasBin: true 953 | peerDependencies: 954 | browserslist: '>= 4.21.0' 955 | dependencies: 956 | browserslist: 4.21.3 957 | escalade: 3.1.1 958 | picocolors: 1.0.0 959 | dev: true 960 | 961 | /vite/3.1.0-beta.1_sass@1.54.8: 962 | resolution: {integrity: sha512-JGEnWSC0hfarcduTCQr6wnRjPLbT62iLCK59HBJXYt9oyWSUMtrvcnDqzvLFC+lHV6KGFQkmWlZucyIQmgUnLA==} 963 | engines: {node: ^14.18.0 || >=16.0.0} 964 | hasBin: true 965 | peerDependencies: 966 | less: '*' 967 | sass: '*' 968 | stylus: '*' 969 | terser: ^5.4.0 970 | peerDependenciesMeta: 971 | less: 972 | optional: true 973 | sass: 974 | optional: true 975 | stylus: 976 | optional: true 977 | terser: 978 | optional: true 979 | dependencies: 980 | esbuild: 0.14.54 981 | postcss: 8.4.16 982 | resolve: 1.22.1 983 | rollup: 2.78.1 984 | sass: 1.54.8 985 | optionalDependencies: 986 | fsevents: 2.3.2 987 | dev: true 988 | 989 | /web-streams-polyfill/3.2.1: 990 | resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} 991 | engines: {node: '>= 8'} 992 | dev: true 993 | 994 | /wrappy/1.0.2: 995 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 996 | dev: true 997 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [require('autoprefixer')] 3 | }; 4 | -------------------------------------------------------------------------------- /src/actions/click-outside.ts: -------------------------------------------------------------------------------- 1 | /** Dispatch event on click outside of node */ 2 | export function clickOutside(node: HTMLElement, callback: () => void) { 3 | const handleClick = (e: MouseEvent) => { 4 | if (node && !node.contains(e.target as HTMLElement) && !e.defaultPrevented) { 5 | callback(); 6 | } 7 | }; 8 | 9 | document.addEventListener('click', handleClick, true); 10 | 11 | return { 12 | destroy() { 13 | document.removeEventListener('click', handleClick, true); 14 | } 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /src/actions/focus-outside.ts: -------------------------------------------------------------------------------- 1 | export function focusOutside(node: HTMLElement, callback: () => void) { 2 | function handleFocus(e: FocusEvent) { 3 | const target = e.target as HTMLElement; 4 | 5 | if (!node?.contains(target)) callback(); 6 | } 7 | 8 | document.addEventListener('focus', handleFocus, true); 9 | 10 | return { 11 | destroy() { 12 | document.removeEventListener('focus', handleFocus, true); 13 | } 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /src/actions/index.ts: -------------------------------------------------------------------------------- 1 | export { clickOutside } from './click-outside'; 2 | export { focusOutside } from './focus-outside'; 3 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/components/Icon.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/components/List/ListOptions.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 | 9 |
10 | 11 | 24 | -------------------------------------------------------------------------------- /src/components/List/ListView.svelte: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | {list.title} - Beautiful Todo 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 |
23 | 24 | 29 | -------------------------------------------------------------------------------- /src/components/List/ListViewHeader.svelte: -------------------------------------------------------------------------------- 1 | 21 | 22 |
23 |
24 | 29 |
30 | 31 |
32 | 35 | 36 | {#if listOptionsMenuVisible} 37 | 40 | {/if} 41 |
42 |
43 | 44 | 129 | -------------------------------------------------------------------------------- /src/components/List/ThemeSelector.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 | {#each Object.entries(themes) as [themeName, { image }]} 10 |
13 | 14 | 40 | -------------------------------------------------------------------------------- /src/components/NewListButton.svelte: -------------------------------------------------------------------------------- 1 | 45 | 46 | 63 | 64 | 120 | -------------------------------------------------------------------------------- /src/components/SideNav.svelte: -------------------------------------------------------------------------------- 1 | 9 | 10 |
11 | 40 |
41 | 42 | 126 | -------------------------------------------------------------------------------- /src/components/Task/NewTask.svelte: -------------------------------------------------------------------------------- 1 | 47 | 48 |
49 |
50 | 51 | 52 | 53 | 54 | 60 | 61 |
62 | 69 | 70 | 73 |
74 |
75 |
76 | 77 | 181 | -------------------------------------------------------------------------------- /src/components/Task/TaskItem.svelte: -------------------------------------------------------------------------------- 1 | 39 | 40 |
41 | 44 | 45 | 46 | {title} 47 |
48 | 49 | {#if showListName} 50 | {$lists[listIDs.find((id) => !['my-day', 'important'].includes(id))].title} 51 | 52 | {#if showDate} 53 |  •  54 | {/if} 55 | {/if} 56 | 57 | 58 | {#if showDate} 59 | {format(new Date(dateDue), 'd MMM, yyyy')} 60 | {/if} 61 |
62 |
63 | 64 | 67 |
68 | 69 | 133 | -------------------------------------------------------------------------------- /src/components/Task/TasksList.svelte: -------------------------------------------------------------------------------- 1 | 27 | 28 |
29 | {#each sortedList as [taskID, { completed }], i} 30 | {#if completed && !sortedList[i - 1]?.[1].completed} 31 | 42 | {/if} 43 | 44 | {#if !(completed && completedCollapsed)} 45 | 46 | {/if} 47 | {/each} 48 |
49 | 50 | 79 | -------------------------------------------------------------------------------- /src/components/Wallpaper.svelte: -------------------------------------------------------------------------------- 1 | 35 | 36 | 37 | {#each Array.from({ length: 15 }, (_, i) => i + 1) as num} 38 | 39 | {/each} 40 | 41 | 42 |