your personal website on atproto - mirror blento.app

Merge pull request #50 from unbedenklich/new-card-feature

timer card

authored by Florian and committed by GitHub 22f95c2f d31626ee

+549 -142
+12 -1
.claude/settings.local.json
··· 11 11 "Bash(npx svelte-kit:*)", 12 12 "Bash(ls:*)", 13 13 "Bash(pnpm format:*)", 14 - "Bash(pnpm add:*)" 14 + "Bash(pnpm add:*)", 15 + "WebSearch", 16 + "WebFetch(domain:github.com)", 17 + "WebFetch(domain:flipclockjs.com)", 18 + "WebFetch(domain:codepen.io)", 19 + "WebFetch(domain:flo-bit.dev)", 20 + "Bash(pnpm install)", 21 + "Bash(pnpm install:*)", 22 + "Bash(pnpm config:*)", 23 + "Bash(lsof:*)", 24 + "Bash(pnpm dev)", 25 + "Bash(pnpm exec svelte-kit:*)" 15 26 ] 16 27 } 17 28 }
+1
package.json
··· 55 55 "@foxui/social": "^0.4.7", 56 56 "@foxui/time": "^0.4.7", 57 57 "@foxui/visual": "^0.4.7", 58 + "@number-flow/svelte": "^0.3.10", 58 59 "@tailwindcss/typography": "^0.5.19", 59 60 "@tiptap/core": "^3.16.0", 60 61 "@tiptap/extension-document": "^3.16.0",
+143 -140
pnpm-lock.yaml
··· 56 56 '@foxui/visual': 57 57 specifier: ^0.4.7 58 58 version: 0.4.7(svelte@5.48.0)(tailwindcss@4.1.18) 59 + '@number-flow/svelte': 60 + specifier: ^0.3.10 61 + version: 0.3.10(svelte@5.48.0) 59 62 '@tailwindcss/typography': 60 63 specifier: ^0.5.19 61 64 version: 0.5.19(tailwindcss@4.1.18) ··· 290 293 optional: true 291 294 292 295 '@cloudflare/workerd-darwin-64@1.20260120.0': 293 - resolution: {integrity: sha512-JLHx3p5dpwz4wjVSis45YNReftttnI3ndhdMh5BUbbpdreN/g0jgxNt5Qp9tDFqEKl++N63qv+hxJiIIvSLR+Q==, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260120.0.tgz} 296 + resolution: {integrity: sha512-JLHx3p5dpwz4wjVSis45YNReftttnI3ndhdMh5BUbbpdreN/g0jgxNt5Qp9tDFqEKl++N63qv+hxJiIIvSLR+Q==} 294 297 engines: {node: '>=16'} 295 298 cpu: [x64] 296 299 os: [darwin] 297 300 298 301 '@cloudflare/workerd-darwin-arm64@1.20260120.0': 299 - resolution: {integrity: sha512-1Md2tCRhZjwajsZNOiBeOVGiS3zbpLPzUDjHr4+XGTXWOA6FzzwScJwQZLa0Doc28Cp4Nr1n7xGL0Dwiz1XuOA==, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260120.0.tgz} 302 + resolution: {integrity: sha512-1Md2tCRhZjwajsZNOiBeOVGiS3zbpLPzUDjHr4+XGTXWOA6FzzwScJwQZLa0Doc28Cp4Nr1n7xGL0Dwiz1XuOA==} 300 303 engines: {node: '>=16'} 301 304 cpu: [arm64] 302 305 os: [darwin] 303 306 304 307 '@cloudflare/workerd-linux-64@1.20260120.0': 305 - resolution: {integrity: sha512-O0mIfJfvU7F8N5siCoRDaVDuI12wkz2xlG4zK6/Ct7U9c9FiE0ViXNFWXFQm5PPj+qbkNRyhjUwhP+GCKTk5EQ==, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260120.0.tgz} 308 + resolution: {integrity: sha512-O0mIfJfvU7F8N5siCoRDaVDuI12wkz2xlG4zK6/Ct7U9c9FiE0ViXNFWXFQm5PPj+qbkNRyhjUwhP+GCKTk5EQ==} 306 309 engines: {node: '>=16'} 307 310 cpu: [x64] 308 311 os: [linux] 309 312 310 313 '@cloudflare/workerd-linux-arm64@1.20260120.0': 311 - resolution: {integrity: sha512-aRHO/7bjxVpjZEmVVcpmhbzpN6ITbFCxuLLZSW0H9O0C0w40cDCClWSi19T87Ax/PQcYjFNT22pTewKsupkckA==, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260120.0.tgz} 314 + resolution: {integrity: sha512-aRHO/7bjxVpjZEmVVcpmhbzpN6ITbFCxuLLZSW0H9O0C0w40cDCClWSi19T87Ax/PQcYjFNT22pTewKsupkckA==} 312 315 engines: {node: '>=16'} 313 316 cpu: [arm64] 314 317 os: [linux] 315 318 316 319 '@cloudflare/workerd-windows-64@1.20260120.0': 317 - resolution: {integrity: sha512-ASZIz1E8sqZQqQCgcfY1PJbBpUDrxPt8NZ+lqNil0qxnO4qX38hbCsdDF2/TDAuq0Txh7nu8ztgTelfNDlb4EA==, tarball: https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260120.0.tgz} 320 + resolution: {integrity: sha512-ASZIz1E8sqZQqQCgcfY1PJbBpUDrxPt8NZ+lqNil0qxnO4qX38hbCsdDF2/TDAuq0Txh7nu8ztgTelfNDlb4EA==} 318 321 engines: {node: '>=16'} 319 322 cpu: [x64] 320 323 os: [win32] ··· 327 330 engines: {node: '>=12'} 328 331 329 332 '@emnapi/runtime@1.8.1': 330 - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==, tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz} 333 + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} 331 334 332 335 '@esbuild/aix-ppc64@0.27.0': 333 - resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz} 336 + resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} 334 337 engines: {node: '>=18'} 335 338 cpu: [ppc64] 336 339 os: [aix] 337 340 338 341 '@esbuild/aix-ppc64@0.27.2': 339 - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz} 342 + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} 340 343 engines: {node: '>=18'} 341 344 cpu: [ppc64] 342 345 os: [aix] 343 346 344 347 '@esbuild/android-arm64@0.27.0': 345 - resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz} 348 + resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} 346 349 engines: {node: '>=18'} 347 350 cpu: [arm64] 348 351 os: [android] 349 352 350 353 '@esbuild/android-arm64@0.27.2': 351 - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz} 354 + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} 352 355 engines: {node: '>=18'} 353 356 cpu: [arm64] 354 357 os: [android] 355 358 356 359 '@esbuild/android-arm@0.27.0': 357 - resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz} 360 + resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} 358 361 engines: {node: '>=18'} 359 362 cpu: [arm] 360 363 os: [android] 361 364 362 365 '@esbuild/android-arm@0.27.2': 363 - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz} 366 + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} 364 367 engines: {node: '>=18'} 365 368 cpu: [arm] 366 369 os: [android] 367 370 368 371 '@esbuild/android-x64@0.27.0': 369 - resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz} 372 + resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} 370 373 engines: {node: '>=18'} 371 374 cpu: [x64] 372 375 os: [android] 373 376 374 377 '@esbuild/android-x64@0.27.2': 375 - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz} 378 + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} 376 379 engines: {node: '>=18'} 377 380 cpu: [x64] 378 381 os: [android] 379 382 380 383 '@esbuild/darwin-arm64@0.27.0': 381 - resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz} 384 + resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} 382 385 engines: {node: '>=18'} 383 386 cpu: [arm64] 384 387 os: [darwin] 385 388 386 389 '@esbuild/darwin-arm64@0.27.2': 387 - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz} 390 + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} 388 391 engines: {node: '>=18'} 389 392 cpu: [arm64] 390 393 os: [darwin] 391 394 392 395 '@esbuild/darwin-x64@0.27.0': 393 - resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz} 396 + resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} 394 397 engines: {node: '>=18'} 395 398 cpu: [x64] 396 399 os: [darwin] 397 400 398 401 '@esbuild/darwin-x64@0.27.2': 399 - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz} 402 + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} 400 403 engines: {node: '>=18'} 401 404 cpu: [x64] 402 405 os: [darwin] 403 406 404 407 '@esbuild/freebsd-arm64@0.27.0': 405 - resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz} 408 + resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} 406 409 engines: {node: '>=18'} 407 410 cpu: [arm64] 408 411 os: [freebsd] 409 412 410 413 '@esbuild/freebsd-arm64@0.27.2': 411 - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz} 414 + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} 412 415 engines: {node: '>=18'} 413 416 cpu: [arm64] 414 417 os: [freebsd] 415 418 416 419 '@esbuild/freebsd-x64@0.27.0': 417 - resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz} 420 + resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} 418 421 engines: {node: '>=18'} 419 422 cpu: [x64] 420 423 os: [freebsd] 421 424 422 425 '@esbuild/freebsd-x64@0.27.2': 423 - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz} 426 + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} 424 427 engines: {node: '>=18'} 425 428 cpu: [x64] 426 429 os: [freebsd] 427 430 428 431 '@esbuild/linux-arm64@0.27.0': 429 - resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz} 432 + resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} 430 433 engines: {node: '>=18'} 431 434 cpu: [arm64] 432 435 os: [linux] 433 436 434 437 '@esbuild/linux-arm64@0.27.2': 435 - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz} 438 + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} 436 439 engines: {node: '>=18'} 437 440 cpu: [arm64] 438 441 os: [linux] 439 442 440 443 '@esbuild/linux-arm@0.27.0': 441 - resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz} 444 + resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} 442 445 engines: {node: '>=18'} 443 446 cpu: [arm] 444 447 os: [linux] 445 448 446 449 '@esbuild/linux-arm@0.27.2': 447 - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz} 450 + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} 448 451 engines: {node: '>=18'} 449 452 cpu: [arm] 450 453 os: [linux] 451 454 452 455 '@esbuild/linux-ia32@0.27.0': 453 - resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz} 456 + resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} 454 457 engines: {node: '>=18'} 455 458 cpu: [ia32] 456 459 os: [linux] 457 460 458 461 '@esbuild/linux-ia32@0.27.2': 459 - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz} 462 + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} 460 463 engines: {node: '>=18'} 461 464 cpu: [ia32] 462 465 os: [linux] 463 466 464 467 '@esbuild/linux-loong64@0.27.0': 465 - resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz} 468 + resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} 466 469 engines: {node: '>=18'} 467 470 cpu: [loong64] 468 471 os: [linux] 469 472 470 473 '@esbuild/linux-loong64@0.27.2': 471 - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz} 474 + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} 472 475 engines: {node: '>=18'} 473 476 cpu: [loong64] 474 477 os: [linux] 475 478 476 479 '@esbuild/linux-mips64el@0.27.0': 477 - resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz} 480 + resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} 478 481 engines: {node: '>=18'} 479 482 cpu: [mips64el] 480 483 os: [linux] 481 484 482 485 '@esbuild/linux-mips64el@0.27.2': 483 - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz} 486 + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} 484 487 engines: {node: '>=18'} 485 488 cpu: [mips64el] 486 489 os: [linux] 487 490 488 491 '@esbuild/linux-ppc64@0.27.0': 489 - resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz} 492 + resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} 490 493 engines: {node: '>=18'} 491 494 cpu: [ppc64] 492 495 os: [linux] 493 496 494 497 '@esbuild/linux-ppc64@0.27.2': 495 - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz} 498 + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} 496 499 engines: {node: '>=18'} 497 500 cpu: [ppc64] 498 501 os: [linux] 499 502 500 503 '@esbuild/linux-riscv64@0.27.0': 501 - resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz} 504 + resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} 502 505 engines: {node: '>=18'} 503 506 cpu: [riscv64] 504 507 os: [linux] 505 508 506 509 '@esbuild/linux-riscv64@0.27.2': 507 - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz} 510 + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} 508 511 engines: {node: '>=18'} 509 512 cpu: [riscv64] 510 513 os: [linux] 511 514 512 515 '@esbuild/linux-s390x@0.27.0': 513 - resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz} 516 + resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} 514 517 engines: {node: '>=18'} 515 518 cpu: [s390x] 516 519 os: [linux] 517 520 518 521 '@esbuild/linux-s390x@0.27.2': 519 - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz} 522 + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} 520 523 engines: {node: '>=18'} 521 524 cpu: [s390x] 522 525 os: [linux] 523 526 524 527 '@esbuild/linux-x64@0.27.0': 525 - resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz} 528 + resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} 526 529 engines: {node: '>=18'} 527 530 cpu: [x64] 528 531 os: [linux] 529 532 530 533 '@esbuild/linux-x64@0.27.2': 531 - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz} 534 + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} 532 535 engines: {node: '>=18'} 533 536 cpu: [x64] 534 537 os: [linux] 535 538 536 539 '@esbuild/netbsd-arm64@0.27.0': 537 - resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz} 540 + resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} 538 541 engines: {node: '>=18'} 539 542 cpu: [arm64] 540 543 os: [netbsd] 541 544 542 545 '@esbuild/netbsd-arm64@0.27.2': 543 - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz} 546 + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} 544 547 engines: {node: '>=18'} 545 548 cpu: [arm64] 546 549 os: [netbsd] 547 550 548 551 '@esbuild/netbsd-x64@0.27.0': 549 - resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz} 552 + resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} 550 553 engines: {node: '>=18'} 551 554 cpu: [x64] 552 555 os: [netbsd] 553 556 554 557 '@esbuild/netbsd-x64@0.27.2': 555 - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz} 558 + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} 556 559 engines: {node: '>=18'} 557 560 cpu: [x64] 558 561 os: [netbsd] 559 562 560 563 '@esbuild/openbsd-arm64@0.27.0': 561 - resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz} 564 + resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} 562 565 engines: {node: '>=18'} 563 566 cpu: [arm64] 564 567 os: [openbsd] 565 568 566 569 '@esbuild/openbsd-arm64@0.27.2': 567 - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz} 570 + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} 568 571 engines: {node: '>=18'} 569 572 cpu: [arm64] 570 573 os: [openbsd] 571 574 572 575 '@esbuild/openbsd-x64@0.27.0': 573 - resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz} 576 + resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} 574 577 engines: {node: '>=18'} 575 578 cpu: [x64] 576 579 os: [openbsd] 577 580 578 581 '@esbuild/openbsd-x64@0.27.2': 579 - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz} 582 + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} 580 583 engines: {node: '>=18'} 581 584 cpu: [x64] 582 585 os: [openbsd] 583 586 584 587 '@esbuild/openharmony-arm64@0.27.0': 585 - resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==, tarball: https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz} 588 + resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} 586 589 engines: {node: '>=18'} 587 590 cpu: [arm64] 588 591 os: [openharmony] 589 592 590 593 '@esbuild/openharmony-arm64@0.27.2': 591 - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==, tarball: https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz} 594 + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} 592 595 engines: {node: '>=18'} 593 596 cpu: [arm64] 594 597 os: [openharmony] 595 598 596 599 '@esbuild/sunos-x64@0.27.0': 597 - resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz} 600 + resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} 598 601 engines: {node: '>=18'} 599 602 cpu: [x64] 600 603 os: [sunos] 601 604 602 605 '@esbuild/sunos-x64@0.27.2': 603 - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz} 606 + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} 604 607 engines: {node: '>=18'} 605 608 cpu: [x64] 606 609 os: [sunos] 607 610 608 611 '@esbuild/win32-arm64@0.27.0': 609 - resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz} 612 + resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} 610 613 engines: {node: '>=18'} 611 614 cpu: [arm64] 612 615 os: [win32] 613 616 614 617 '@esbuild/win32-arm64@0.27.2': 615 - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz} 618 + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} 616 619 engines: {node: '>=18'} 617 620 cpu: [arm64] 618 621 os: [win32] 619 622 620 623 '@esbuild/win32-ia32@0.27.0': 621 - resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz} 624 + resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} 622 625 engines: {node: '>=18'} 623 626 cpu: [ia32] 624 627 os: [win32] 625 628 626 629 '@esbuild/win32-ia32@0.27.2': 627 - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz} 630 + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} 628 631 engines: {node: '>=18'} 629 632 cpu: [ia32] 630 633 os: [win32] 631 634 632 635 '@esbuild/win32-x64@0.27.0': 633 - resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz} 636 + resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} 634 637 engines: {node: '>=18'} 635 638 cpu: [x64] 636 639 os: [win32] 637 640 638 641 '@esbuild/win32-x64@0.27.2': 639 - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz} 642 + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} 640 643 engines: {node: '>=18'} 641 644 cpu: [x64] 642 645 os: [win32] ··· 757 760 engines: {node: '>=18'} 758 761 759 762 '@img/sharp-darwin-arm64@0.34.5': 760 - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==, tarball: https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz} 763 + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 761 764 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 762 765 cpu: [arm64] 763 766 os: [darwin] 764 767 765 768 '@img/sharp-darwin-x64@0.34.5': 766 - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==, tarball: https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz} 769 + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 767 770 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 768 771 cpu: [x64] 769 772 os: [darwin] 770 773 771 774 '@img/sharp-libvips-darwin-arm64@1.2.4': 772 - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==, tarball: https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz} 775 + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 773 776 cpu: [arm64] 774 777 os: [darwin] 775 778 776 779 '@img/sharp-libvips-darwin-x64@1.2.4': 777 - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==, tarball: https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz} 780 + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 778 781 cpu: [x64] 779 782 os: [darwin] 780 783 781 784 '@img/sharp-libvips-linux-arm64@1.2.4': 782 - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz} 785 + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 783 786 cpu: [arm64] 784 787 os: [linux] 785 788 786 789 '@img/sharp-libvips-linux-arm@1.2.4': 787 - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz} 790 + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 788 791 cpu: [arm] 789 792 os: [linux] 790 793 791 794 '@img/sharp-libvips-linux-ppc64@1.2.4': 792 - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz} 795 + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 793 796 cpu: [ppc64] 794 797 os: [linux] 795 798 796 799 '@img/sharp-libvips-linux-riscv64@1.2.4': 797 - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz} 800 + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 798 801 cpu: [riscv64] 799 802 os: [linux] 800 803 801 804 '@img/sharp-libvips-linux-s390x@1.2.4': 802 - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz} 805 + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 803 806 cpu: [s390x] 804 807 os: [linux] 805 808 806 809 '@img/sharp-libvips-linux-x64@1.2.4': 807 - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz} 810 + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 808 811 cpu: [x64] 809 812 os: [linux] 810 813 811 814 '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 812 - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz} 815 + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 813 816 cpu: [arm64] 814 817 os: [linux] 815 818 816 819 '@img/sharp-libvips-linuxmusl-x64@1.2.4': 817 - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==, tarball: https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz} 820 + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 818 821 cpu: [x64] 819 822 os: [linux] 820 823 821 824 '@img/sharp-linux-arm64@0.34.5': 822 - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==, tarball: https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz} 825 + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 823 826 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 824 827 cpu: [arm64] 825 828 os: [linux] 826 829 827 830 '@img/sharp-linux-arm@0.34.5': 828 - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==, tarball: https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz} 831 + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 829 832 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 830 833 cpu: [arm] 831 834 os: [linux] 832 835 833 836 '@img/sharp-linux-ppc64@0.34.5': 834 - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==, tarball: https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz} 837 + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 835 838 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 836 839 cpu: [ppc64] 837 840 os: [linux] 838 841 839 842 '@img/sharp-linux-riscv64@0.34.5': 840 - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==, tarball: https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz} 843 + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 841 844 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 842 845 cpu: [riscv64] 843 846 os: [linux] 844 847 845 848 '@img/sharp-linux-s390x@0.34.5': 846 - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==, tarball: https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz} 849 + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 847 850 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 848 851 cpu: [s390x] 849 852 os: [linux] 850 853 851 854 '@img/sharp-linux-x64@0.34.5': 852 - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==, tarball: https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz} 855 + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 853 856 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 854 857 cpu: [x64] 855 858 os: [linux] 856 859 857 860 '@img/sharp-linuxmusl-arm64@0.34.5': 858 - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==, tarball: https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz} 861 + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 859 862 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 860 863 cpu: [arm64] 861 864 os: [linux] 862 865 863 866 '@img/sharp-linuxmusl-x64@0.34.5': 864 - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==, tarball: https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz} 867 + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 865 868 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 866 869 cpu: [x64] 867 870 os: [linux] 868 871 869 872 '@img/sharp-wasm32@0.34.5': 870 - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==, tarball: https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz} 873 + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 871 874 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 872 875 cpu: [wasm32] 873 876 874 877 '@img/sharp-win32-arm64@0.34.5': 875 - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==, tarball: https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz} 878 + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 876 879 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 877 880 cpu: [arm64] 878 881 os: [win32] 879 882 880 883 '@img/sharp-win32-ia32@0.34.5': 881 - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==, tarball: https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz} 884 + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 882 885 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 883 886 cpu: [ia32] 884 887 os: [win32] 885 888 886 889 '@img/sharp-win32-x64@0.34.5': 887 - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==, tarball: https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz} 890 + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 888 891 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 889 892 cpu: [x64] 890 893 os: [win32] ··· 962 965 engines: {node: '>= 10'} 963 966 964 967 '@rollup/rollup-android-arm-eabi@4.56.0': 965 - resolution: {integrity: sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.56.0.tgz} 968 + resolution: {integrity: sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==} 966 969 cpu: [arm] 967 970 os: [android] 968 971 969 972 '@rollup/rollup-android-arm64@4.56.0': 970 - resolution: {integrity: sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.56.0.tgz} 973 + resolution: {integrity: sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==} 971 974 cpu: [arm64] 972 975 os: [android] 973 976 974 977 '@rollup/rollup-darwin-arm64@4.56.0': 975 - resolution: {integrity: sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.56.0.tgz} 978 + resolution: {integrity: sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==} 976 979 cpu: [arm64] 977 980 os: [darwin] 978 981 979 982 '@rollup/rollup-darwin-x64@4.56.0': 980 - resolution: {integrity: sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.56.0.tgz} 983 + resolution: {integrity: sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==} 981 984 cpu: [x64] 982 985 os: [darwin] 983 986 984 987 '@rollup/rollup-freebsd-arm64@4.56.0': 985 - resolution: {integrity: sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.56.0.tgz} 988 + resolution: {integrity: sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==} 986 989 cpu: [arm64] 987 990 os: [freebsd] 988 991 989 992 '@rollup/rollup-freebsd-x64@4.56.0': 990 - resolution: {integrity: sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.56.0.tgz} 993 + resolution: {integrity: sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==} 991 994 cpu: [x64] 992 995 os: [freebsd] 993 996 994 997 '@rollup/rollup-linux-arm-gnueabihf@4.56.0': 995 - resolution: {integrity: sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.56.0.tgz} 998 + resolution: {integrity: sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==} 996 999 cpu: [arm] 997 1000 os: [linux] 998 1001 999 1002 '@rollup/rollup-linux-arm-musleabihf@4.56.0': 1000 - resolution: {integrity: sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.56.0.tgz} 1003 + resolution: {integrity: sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==} 1001 1004 cpu: [arm] 1002 1005 os: [linux] 1003 1006 1004 1007 '@rollup/rollup-linux-arm64-gnu@4.56.0': 1005 - resolution: {integrity: sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.56.0.tgz} 1008 + resolution: {integrity: sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==} 1006 1009 cpu: [arm64] 1007 1010 os: [linux] 1008 1011 1009 1012 '@rollup/rollup-linux-arm64-musl@4.56.0': 1010 - resolution: {integrity: sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.56.0.tgz} 1013 + resolution: {integrity: sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==} 1011 1014 cpu: [arm64] 1012 1015 os: [linux] 1013 1016 1014 1017 '@rollup/rollup-linux-loong64-gnu@4.56.0': 1015 - resolution: {integrity: sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.56.0.tgz} 1018 + resolution: {integrity: sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==} 1016 1019 cpu: [loong64] 1017 1020 os: [linux] 1018 1021 1019 1022 '@rollup/rollup-linux-loong64-musl@4.56.0': 1020 - resolution: {integrity: sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.56.0.tgz} 1023 + resolution: {integrity: sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==} 1021 1024 cpu: [loong64] 1022 1025 os: [linux] 1023 1026 1024 1027 '@rollup/rollup-linux-ppc64-gnu@4.56.0': 1025 - resolution: {integrity: sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.56.0.tgz} 1028 + resolution: {integrity: sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==} 1026 1029 cpu: [ppc64] 1027 1030 os: [linux] 1028 1031 1029 1032 '@rollup/rollup-linux-ppc64-musl@4.56.0': 1030 - resolution: {integrity: sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.56.0.tgz} 1033 + resolution: {integrity: sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==} 1031 1034 cpu: [ppc64] 1032 1035 os: [linux] 1033 1036 1034 1037 '@rollup/rollup-linux-riscv64-gnu@4.56.0': 1035 - resolution: {integrity: sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.56.0.tgz} 1038 + resolution: {integrity: sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==} 1036 1039 cpu: [riscv64] 1037 1040 os: [linux] 1038 1041 1039 1042 '@rollup/rollup-linux-riscv64-musl@4.56.0': 1040 - resolution: {integrity: sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.56.0.tgz} 1043 + resolution: {integrity: sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==} 1041 1044 cpu: [riscv64] 1042 1045 os: [linux] 1043 1046 1044 1047 '@rollup/rollup-linux-s390x-gnu@4.56.0': 1045 - resolution: {integrity: sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.56.0.tgz} 1048 + resolution: {integrity: sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==} 1046 1049 cpu: [s390x] 1047 1050 os: [linux] 1048 1051 1049 1052 '@rollup/rollup-linux-x64-gnu@4.56.0': 1050 - resolution: {integrity: sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.56.0.tgz} 1053 + resolution: {integrity: sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==} 1051 1054 cpu: [x64] 1052 1055 os: [linux] 1053 1056 1054 1057 '@rollup/rollup-linux-x64-musl@4.56.0': 1055 - resolution: {integrity: sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.56.0.tgz} 1058 + resolution: {integrity: sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==} 1056 1059 cpu: [x64] 1057 1060 os: [linux] 1058 1061 1059 1062 '@rollup/rollup-openbsd-x64@4.56.0': 1060 - resolution: {integrity: sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==, tarball: https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.56.0.tgz} 1063 + resolution: {integrity: sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==} 1061 1064 cpu: [x64] 1062 1065 os: [openbsd] 1063 1066 1064 1067 '@rollup/rollup-openharmony-arm64@4.56.0': 1065 - resolution: {integrity: sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==, tarball: https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.56.0.tgz} 1068 + resolution: {integrity: sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==} 1066 1069 cpu: [arm64] 1067 1070 os: [openharmony] 1068 1071 1069 1072 '@rollup/rollup-win32-arm64-msvc@4.56.0': 1070 - resolution: {integrity: sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.56.0.tgz} 1073 + resolution: {integrity: sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==} 1071 1074 cpu: [arm64] 1072 1075 os: [win32] 1073 1076 1074 1077 '@rollup/rollup-win32-ia32-msvc@4.56.0': 1075 - resolution: {integrity: sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.56.0.tgz} 1078 + resolution: {integrity: sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==} 1076 1079 cpu: [ia32] 1077 1080 os: [win32] 1078 1081 1079 1082 '@rollup/rollup-win32-x64-gnu@4.56.0': 1080 - resolution: {integrity: sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.56.0.tgz} 1083 + resolution: {integrity: sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==} 1081 1084 cpu: [x64] 1082 1085 os: [win32] 1083 1086 1084 1087 '@rollup/rollup-win32-x64-msvc@4.56.0': 1085 - resolution: {integrity: sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.56.0.tgz} 1088 + resolution: {integrity: sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==} 1086 1089 cpu: [x64] 1087 1090 os: [win32] 1088 1091 ··· 1155 1158 resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} 1156 1159 1157 1160 '@tailwindcss/oxide-android-arm64@4.1.18': 1158 - resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz} 1161 + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} 1159 1162 engines: {node: '>= 10'} 1160 1163 cpu: [arm64] 1161 1164 os: [android] 1162 1165 1163 1166 '@tailwindcss/oxide-darwin-arm64@4.1.18': 1164 - resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz} 1167 + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} 1165 1168 engines: {node: '>= 10'} 1166 1169 cpu: [arm64] 1167 1170 os: [darwin] 1168 1171 1169 1172 '@tailwindcss/oxide-darwin-x64@4.1.18': 1170 - resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz} 1173 + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} 1171 1174 engines: {node: '>= 10'} 1172 1175 cpu: [x64] 1173 1176 os: [darwin] 1174 1177 1175 1178 '@tailwindcss/oxide-freebsd-x64@4.1.18': 1176 - resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz} 1179 + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} 1177 1180 engines: {node: '>= 10'} 1178 1181 cpu: [x64] 1179 1182 os: [freebsd] 1180 1183 1181 1184 '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': 1182 - resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz} 1185 + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} 1183 1186 engines: {node: '>= 10'} 1184 1187 cpu: [arm] 1185 1188 os: [linux] 1186 1189 1187 1190 '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': 1188 - resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz} 1191 + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} 1189 1192 engines: {node: '>= 10'} 1190 1193 cpu: [arm64] 1191 1194 os: [linux] 1192 1195 1193 1196 '@tailwindcss/oxide-linux-arm64-musl@4.1.18': 1194 - resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz} 1197 + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} 1195 1198 engines: {node: '>= 10'} 1196 1199 cpu: [arm64] 1197 1200 os: [linux] 1198 1201 1199 1202 '@tailwindcss/oxide-linux-x64-gnu@4.1.18': 1200 - resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz} 1203 + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} 1201 1204 engines: {node: '>= 10'} 1202 1205 cpu: [x64] 1203 1206 os: [linux] 1204 1207 1205 1208 '@tailwindcss/oxide-linux-x64-musl@4.1.18': 1206 - resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz} 1209 + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} 1207 1210 engines: {node: '>= 10'} 1208 1211 cpu: [x64] 1209 1212 os: [linux] 1210 1213 1211 1214 '@tailwindcss/oxide-wasm32-wasi@4.1.18': 1212 - resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz} 1215 + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} 1213 1216 engines: {node: '>=14.0.0'} 1214 1217 cpu: [wasm32] 1215 1218 bundledDependencies: ··· 1221 1224 - tslib 1222 1225 1223 1226 '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': 1224 - resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz} 1227 + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} 1225 1228 engines: {node: '>= 10'} 1226 1229 cpu: [arm64] 1227 1230 os: [win32] 1228 1231 1229 1232 '@tailwindcss/oxide-win32-x64-msvc@4.1.18': 1230 - resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==, tarball: https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz} 1233 + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} 1231 1234 engines: {node: '>= 10'} 1232 1235 cpu: [x64] 1233 1236 os: [win32] ··· 1247 1250 vite: ^5.2.0 || ^6 || ^7 1248 1251 1249 1252 '@takumi-rs/core-darwin-arm64@0.55.4': 1250 - resolution: {integrity: sha512-LH/X/ul19DActLGcBpXnxH3OBEq8qOgPD56hNHAJMbnCRxAO6TDaIh2U7WqPVliSkFk3jZfikbD21SIEpZrp8A==, tarball: https://registry.npmjs.org/@takumi-rs/core-darwin-arm64/-/core-darwin-arm64-0.55.4.tgz} 1253 + resolution: {integrity: sha512-LH/X/ul19DActLGcBpXnxH3OBEq8qOgPD56hNHAJMbnCRxAO6TDaIh2U7WqPVliSkFk3jZfikbD21SIEpZrp8A==} 1251 1254 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1252 1255 cpu: [arm64] 1253 1256 os: [darwin] 1254 1257 1255 1258 '@takumi-rs/core-darwin-x64@0.55.4': 1256 - resolution: {integrity: sha512-UW7ovR/D1Qp8n8bJOo6JLqZZUDFWWtGRXEZZUZhzUeMSzJ4k3C6ef/DEc75bUTGeBKqCeypMPcvtkQAjcVwwhw==, tarball: https://registry.npmjs.org/@takumi-rs/core-darwin-x64/-/core-darwin-x64-0.55.4.tgz} 1259 + resolution: {integrity: sha512-UW7ovR/D1Qp8n8bJOo6JLqZZUDFWWtGRXEZZUZhzUeMSzJ4k3C6ef/DEc75bUTGeBKqCeypMPcvtkQAjcVwwhw==} 1257 1260 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1258 1261 cpu: [x64] 1259 1262 os: [darwin] 1260 1263 1261 1264 '@takumi-rs/core-linux-arm64-gnu@0.55.4': 1262 - resolution: {integrity: sha512-y1d5yuPapKlmt77TpE+XrtULj7LZ51leBqWSg6qMNKxhpvRqmjI/SYjHmk5YvshnrTkdKmRQiXJiiN5EzOhbmA==, tarball: https://registry.npmjs.org/@takumi-rs/core-linux-arm64-gnu/-/core-linux-arm64-gnu-0.55.4.tgz} 1265 + resolution: {integrity: sha512-y1d5yuPapKlmt77TpE+XrtULj7LZ51leBqWSg6qMNKxhpvRqmjI/SYjHmk5YvshnrTkdKmRQiXJiiN5EzOhbmA==} 1263 1266 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1264 1267 cpu: [arm64] 1265 1268 os: [linux] 1266 1269 1267 1270 '@takumi-rs/core-linux-arm64-musl@0.55.4': 1268 - resolution: {integrity: sha512-VRbQqbMeoPlrMmaqPwn30Sw82LYya+o4ru9dqV/7BKExozWj/pX9ahexlJdHsZ6wqmsr+ZxexZivK1mPum9ang==, tarball: https://registry.npmjs.org/@takumi-rs/core-linux-arm64-musl/-/core-linux-arm64-musl-0.55.4.tgz} 1271 + resolution: {integrity: sha512-VRbQqbMeoPlrMmaqPwn30Sw82LYya+o4ru9dqV/7BKExozWj/pX9ahexlJdHsZ6wqmsr+ZxexZivK1mPum9ang==} 1269 1272 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1270 1273 cpu: [arm64] 1271 1274 os: [linux] 1272 1275 1273 1276 '@takumi-rs/core-linux-x64-gnu@0.55.4': 1274 - resolution: {integrity: sha512-ecCUtNgOe6mCWKf+SE7cbJXWd6D6TQoCnKZAJAGrJkJLAdy/gBhCFhOyPz8M7q/4uWHUATentqi35KAp+jxBiQ==, tarball: https://registry.npmjs.org/@takumi-rs/core-linux-x64-gnu/-/core-linux-x64-gnu-0.55.4.tgz} 1277 + resolution: {integrity: sha512-ecCUtNgOe6mCWKf+SE7cbJXWd6D6TQoCnKZAJAGrJkJLAdy/gBhCFhOyPz8M7q/4uWHUATentqi35KAp+jxBiQ==} 1275 1278 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1276 1279 cpu: [x64] 1277 1280 os: [linux] 1278 1281 1279 1282 '@takumi-rs/core-linux-x64-musl@0.55.4': 1280 - resolution: {integrity: sha512-YBM2zPrGE/1sfHoFZvOsCvCuK9PfaxzePN/GnnlaAvpvgeRHiAU4PJkLGDpjMFfsWUAEdjly/b0HSAjVQ7NL6Q==, tarball: https://registry.npmjs.org/@takumi-rs/core-linux-x64-musl/-/core-linux-x64-musl-0.55.4.tgz} 1283 + resolution: {integrity: sha512-YBM2zPrGE/1sfHoFZvOsCvCuK9PfaxzePN/GnnlaAvpvgeRHiAU4PJkLGDpjMFfsWUAEdjly/b0HSAjVQ7NL6Q==} 1281 1284 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1282 1285 cpu: [x64] 1283 1286 os: [linux] 1284 1287 1285 1288 '@takumi-rs/core-win32-arm64-msvc@0.55.4': 1286 - resolution: {integrity: sha512-VcgLCWnmyWuhwLv0Tpob8Hv5IFPreFVykoHruPGwXDVVoUcCo+lQ8oCO5EYTB8B/tBAXl2S0xUL0nMDbyLzMxQ==, tarball: https://registry.npmjs.org/@takumi-rs/core-win32-arm64-msvc/-/core-win32-arm64-msvc-0.55.4.tgz} 1289 + resolution: {integrity: sha512-VcgLCWnmyWuhwLv0Tpob8Hv5IFPreFVykoHruPGwXDVVoUcCo+lQ8oCO5EYTB8B/tBAXl2S0xUL0nMDbyLzMxQ==} 1287 1290 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1288 1291 cpu: [arm64] 1289 1292 os: [win32] 1290 1293 1291 1294 '@takumi-rs/core-win32-x64-msvc@0.55.4': 1292 - resolution: {integrity: sha512-ta9g1gUybS2V4mHaccJHcMeBb+w1P6pgZuqHzLoQzBIEK9a/KncHPfnR48cz4sGfg4atorfSa6UBffa2FqijyQ==, tarball: https://registry.npmjs.org/@takumi-rs/core-win32-x64-msvc/-/core-win32-x64-msvc-0.55.4.tgz} 1295 + resolution: {integrity: sha512-ta9g1gUybS2V4mHaccJHcMeBb+w1P6pgZuqHzLoQzBIEK9a/KncHPfnR48cz4sGfg4atorfSa6UBffa2FqijyQ==} 1293 1296 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1294 1297 cpu: [x64] 1295 1298 os: [win32] ··· 1915 1918 resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1916 1919 1917 1920 fsevents@2.3.3: 1918 - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} 1921 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1919 1922 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1920 1923 os: [darwin] 1921 1924 ··· 2051 2054 engines: {node: '>= 0.8.0'} 2052 2055 2053 2056 lightningcss-android-arm64@1.30.2: 2054 - resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==, tarball: https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz} 2057 + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} 2055 2058 engines: {node: '>= 12.0.0'} 2056 2059 cpu: [arm64] 2057 2060 os: [android] 2058 2061 2059 2062 lightningcss-darwin-arm64@1.30.2: 2060 - resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==, tarball: https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz} 2063 + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} 2061 2064 engines: {node: '>= 12.0.0'} 2062 2065 cpu: [arm64] 2063 2066 os: [darwin] 2064 2067 2065 2068 lightningcss-darwin-x64@1.30.2: 2066 - resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==, tarball: https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz} 2069 + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} 2067 2070 engines: {node: '>= 12.0.0'} 2068 2071 cpu: [x64] 2069 2072 os: [darwin] 2070 2073 2071 2074 lightningcss-freebsd-x64@1.30.2: 2072 - resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==, tarball: https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz} 2075 + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} 2073 2076 engines: {node: '>= 12.0.0'} 2074 2077 cpu: [x64] 2075 2078 os: [freebsd] 2076 2079 2077 2080 lightningcss-linux-arm-gnueabihf@1.30.2: 2078 - resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==, tarball: https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz} 2081 + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} 2079 2082 engines: {node: '>= 12.0.0'} 2080 2083 cpu: [arm] 2081 2084 os: [linux] 2082 2085 2083 2086 lightningcss-linux-arm64-gnu@1.30.2: 2084 - resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz} 2087 + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} 2085 2088 engines: {node: '>= 12.0.0'} 2086 2089 cpu: [arm64] 2087 2090 os: [linux] 2088 2091 2089 2092 lightningcss-linux-arm64-musl@1.30.2: 2090 - resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz} 2093 + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} 2091 2094 engines: {node: '>= 12.0.0'} 2092 2095 cpu: [arm64] 2093 2096 os: [linux] 2094 2097 2095 2098 lightningcss-linux-x64-gnu@1.30.2: 2096 - resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz} 2099 + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} 2097 2100 engines: {node: '>= 12.0.0'} 2098 2101 cpu: [x64] 2099 2102 os: [linux] 2100 2103 2101 2104 lightningcss-linux-x64-musl@1.30.2: 2102 - resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz} 2105 + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} 2103 2106 engines: {node: '>= 12.0.0'} 2104 2107 cpu: [x64] 2105 2108 os: [linux] 2106 2109 2107 2110 lightningcss-win32-arm64-msvc@1.30.2: 2108 - resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==, tarball: https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz} 2111 + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} 2109 2112 engines: {node: '>= 12.0.0'} 2110 2113 cpu: [arm64] 2111 2114 os: [win32] 2112 2115 2113 2116 lightningcss-win32-x64-msvc@1.30.2: 2114 - resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==, tarball: https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz} 2117 + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} 2115 2118 engines: {node: '>= 12.0.0'} 2116 2119 cpu: [x64] 2117 2120 os: [win32] ··· 2295 2298 hasBin: true 2296 2299 2297 2300 perfect-freehand@1.2.2: 2298 - resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==, tarball: https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.2.tgz} 2301 + resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} 2299 2302 2300 2303 picocolors@1.1.1: 2301 2304 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+203
src/lib/cards/TimerCard/TimerCard.svelte
··· 1 + <script lang="ts"> 2 + import { Button } from '@foxui/core'; 3 + import { Timer, TimerState } from '@foxui/time'; 4 + import NumberFlow, { NumberFlowGroup } from '@number-flow/svelte'; 5 + import type { ContentComponentProps } from '../types'; 6 + import type { TimerCardData } from './index'; 7 + import { onMount } from 'svelte'; 8 + 9 + let { item, isEditing }: ContentComponentProps = $props(); 10 + 11 + let cardData = $derived(item.cardData as TimerCardData); 12 + 13 + // For timer mode 14 + let timer = $state(new TimerState(cardData.duration ?? 1000 * 60 * 5)); 15 + 16 + // For clock and event modes - current time 17 + let now = $state(new Date()); 18 + 19 + onMount(() => { 20 + const interval = setInterval(() => { 21 + now = new Date(); 22 + }, 1000); 23 + return () => clearInterval(interval); 24 + }); 25 + 26 + // Clock mode: get time parts for timezone 27 + let clockParts = $derived.by(() => { 28 + if (cardData.mode !== 'clock') return null; 29 + try { 30 + return new Intl.DateTimeFormat('en-US', { 31 + timeZone: cardData.timezone || 'UTC', 32 + hour: '2-digit', 33 + minute: '2-digit', 34 + second: '2-digit', 35 + hour12: false 36 + }).formatToParts(now); 37 + } catch { 38 + return null; 39 + } 40 + }); 41 + 42 + let clockHours = $derived( 43 + clockParts ? parseInt(clockParts.find((p) => p.type === 'hour')?.value || '0') : 0 44 + ); 45 + let clockMinutes = $derived( 46 + clockParts ? parseInt(clockParts.find((p) => p.type === 'minute')?.value || '0') : 0 47 + ); 48 + let clockSeconds = $derived( 49 + clockParts ? parseInt(clockParts.find((p) => p.type === 'second')?.value || '0') : 0 50 + ); 51 + 52 + // Event mode: countdown to target date 53 + let eventDiff = $derived.by(() => { 54 + if (cardData.mode !== 'event' || !cardData.targetDate) return null; 55 + const target = new Date(cardData.targetDate); 56 + return Math.max(0, target.getTime() - now.getTime()); 57 + }); 58 + 59 + let eventDays = $derived(eventDiff !== null ? Math.floor(eventDiff / (1000 * 60 * 60 * 24)) : 0); 60 + let eventHours = $derived( 61 + eventDiff !== null ? Math.floor((eventDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)) : 0 62 + ); 63 + let eventMinutes = $derived( 64 + eventDiff !== null ? Math.floor((eventDiff % (1000 * 60 * 60)) / (1000 * 60)) : 0 65 + ); 66 + let eventSeconds = $derived( 67 + eventDiff !== null ? Math.floor((eventDiff % (1000 * 60)) / 1000) : 0 68 + ); 69 + 70 + let isEventComplete = $derived(cardData.mode === 'event' && eventDiff === 0); 71 + 72 + // Get timezone display name 73 + let timezoneDisplay = $derived.by(() => { 74 + if (!cardData.timezone) return ''; 75 + try { 76 + const formatter = new Intl.DateTimeFormat('en-US', { 77 + timeZone: cardData.timezone, 78 + timeZoneName: 'short' 79 + }); 80 + const parts = formatter.formatToParts(now); 81 + return parts.find((p) => p.type === 'timeZoneName')?.value || cardData.timezone; 82 + } catch { 83 + return cardData.timezone; 84 + } 85 + }); 86 + </script> 87 + 88 + <div class="flex h-full w-full flex-col items-center justify-center p-4"> 89 + <!-- Label --> 90 + {#if cardData.label} 91 + <div 92 + class="text-base-600 dark:text-base-400 accent:text-base-700 mb-1 text-center text-sm font-medium" 93 + > 94 + {cardData.label} 95 + </div> 96 + {/if} 97 + 98 + <!-- Clock Mode --> 99 + {#if cardData.mode === 'clock'} 100 + <NumberFlowGroup> 101 + <div 102 + class="text-base-900 dark:text-base-100 accent:text-base-900 flex items-center text-4xl font-bold" 103 + style="font-variant-numeric: tabular-nums;" 104 + > 105 + <NumberFlow value={clockHours} format={{ minimumIntegerDigits: 2 }} /> 106 + <span class="text-base-400 dark:text-base-500 mx-0.5">:</span> 107 + <NumberFlow 108 + value={clockMinutes} 109 + format={{ minimumIntegerDigits: 2 }} 110 + digits={{ 1: { max: 5 } }} 111 + /> 112 + <span class="text-base-400 dark:text-base-500 mx-0.5">:</span> 113 + <NumberFlow 114 + value={clockSeconds} 115 + format={{ minimumIntegerDigits: 2 }} 116 + digits={{ 1: { max: 5 } }} 117 + /> 118 + </div> 119 + </NumberFlowGroup> 120 + {#if timezoneDisplay} 121 + <div class="text-base-500 dark:text-base-400 accent:text-base-600 mt-1 text-xs"> 122 + {timezoneDisplay} 123 + </div> 124 + {/if} 125 + 126 + <!-- Timer Mode --> 127 + {:else if cardData.mode === 'timer'} 128 + <Timer 129 + bind:timer 130 + showHours 131 + showMinutes 132 + showSeconds 133 + class="text-base-900 dark:text-base-100 accent:text-base-900 text-4xl" 134 + /> 135 + {#if isEditing} 136 + <div class="mt-3 flex gap-2"> 137 + {#if timer.isStopped} 138 + <Button size="sm" onclick={() => timer.start()}>Start</Button> 139 + {:else if timer.isRunning} 140 + <Button size="sm" variant="secondary" onclick={() => timer.pause()}>Pause</Button> 141 + {:else if timer.isPaused} 142 + <Button size="sm" onclick={() => timer.resume()}>Resume</Button> 143 + {/if} 144 + {#if !timer.isStopped} 145 + <Button size="sm" variant="ghost" onclick={() => timer.reset()}>Reset</Button> 146 + {/if} 147 + </div> 148 + {/if} 149 + 150 + <!-- Event Countdown Mode --> 151 + {:else if cardData.mode === 'event'} 152 + {#if eventDiff !== null && !isEventComplete} 153 + <NumberFlowGroup> 154 + <div 155 + class="text-base-900 dark:text-base-100 accent:text-base-900 flex items-baseline gap-3 text-center" 156 + style="font-variant-numeric: tabular-nums;" 157 + > 158 + {#if eventDays > 0} 159 + <div class="flex flex-col items-center"> 160 + <NumberFlow value={eventDays} trend={-1} class="text-4xl font-bold" /> 161 + <span class="text-base-500 dark:text-base-400 text-xs">days</span> 162 + </div> 163 + {/if} 164 + <div class="flex flex-col items-center"> 165 + <NumberFlow 166 + value={eventHours} 167 + trend={-1} 168 + format={{ minimumIntegerDigits: 2 }} 169 + class="text-4xl font-bold" 170 + /> 171 + <span class="text-base-500 dark:text-base-400 text-xs">hrs</span> 172 + </div> 173 + <div class="flex flex-col items-center"> 174 + <NumberFlow 175 + value={eventMinutes} 176 + trend={-1} 177 + format={{ minimumIntegerDigits: 2 }} 178 + digits={{ 1: { max: 5 } }} 179 + class="text-4xl font-bold" 180 + /> 181 + <span class="text-base-500 dark:text-base-400 text-xs">min</span> 182 + </div> 183 + <div class="flex flex-col items-center"> 184 + <NumberFlow 185 + value={eventSeconds} 186 + trend={-1} 187 + format={{ minimumIntegerDigits: 2 }} 188 + digits={{ 1: { max: 5 } }} 189 + class="text-4xl font-bold" 190 + /> 191 + <span class="text-base-500 dark:text-base-400 text-xs">sec</span> 192 + </div> 193 + </div> 194 + </NumberFlowGroup> 195 + {:else if isEventComplete} 196 + <div class="text-accent-600 dark:text-accent-400 accent:text-accent-900 text-2xl font-bold"> 197 + Event Started! 198 + </div> 199 + {:else} 200 + <div class="text-base-500 text-sm">Set a target date in settings</div> 201 + {/if} 202 + {/if} 203 + </div>
+150
src/lib/cards/TimerCard/TimerCardSettings.svelte
··· 1 + <script lang="ts"> 2 + import type { Item } from '$lib/types'; 3 + import { Input, Label } from '@foxui/core'; 4 + import type { TimerCardData, TimerMode } from './index'; 5 + 6 + let { item }: { item: Item; onclose: () => void } = $props(); 7 + 8 + let cardData = $derived(item.cardData as TimerCardData); 9 + 10 + const modeOptions = [ 11 + { value: 'clock', label: 'Clock', desc: 'Show current time' }, 12 + { value: 'timer', label: 'Timer', desc: 'Countdown timer' }, 13 + { value: 'event', label: 'Event', desc: 'Countdown to date' } 14 + ]; 15 + 16 + const timezoneOptions = [ 17 + { value: 'UTC', label: 'UTC' }, 18 + { value: 'America/New_York', label: 'New York' }, 19 + { value: 'America/Chicago', label: 'Chicago' }, 20 + { value: 'America/Denver', label: 'Denver' }, 21 + { value: 'America/Los_Angeles', label: 'Los Angeles' }, 22 + { value: 'Europe/London', label: 'London' }, 23 + { value: 'Europe/Paris', label: 'Paris' }, 24 + { value: 'Europe/Berlin', label: 'Berlin' }, 25 + { value: 'Asia/Tokyo', label: 'Tokyo' }, 26 + { value: 'Asia/Shanghai', label: 'Shanghai' }, 27 + { value: 'Asia/Dubai', label: 'Dubai' }, 28 + { value: 'Asia/Kolkata', label: 'Mumbai' }, 29 + { value: 'Australia/Sydney', label: 'Sydney' } 30 + ]; 31 + 32 + const durationOptions = [ 33 + { value: 1000 * 60, label: '1 minute' }, 34 + { value: 1000 * 60 * 5, label: '5 minutes' }, 35 + { value: 1000 * 60 * 10, label: '10 minutes' }, 36 + { value: 1000 * 60 * 15, label: '15 minutes' }, 37 + { value: 1000 * 60 * 30, label: '30 minutes' }, 38 + { value: 1000 * 60 * 60, label: '1 hour' } 39 + ]; 40 + 41 + // Parse target date for inputs 42 + let targetDateValue = $derived.by(() => { 43 + if (!cardData.targetDate) return ''; 44 + return new Date(cardData.targetDate).toISOString().split('T')[0]; 45 + }); 46 + 47 + let targetTimeValue = $derived.by(() => { 48 + if (!cardData.targetDate) return '12:00'; 49 + return new Date(cardData.targetDate).toTimeString().slice(0, 5); 50 + }); 51 + 52 + function updateTargetDate(dateStr: string, timeStr: string) { 53 + if (!dateStr) return; 54 + item.cardData.targetDate = new Date(`${dateStr}T${timeStr}`).toISOString(); 55 + } 56 + </script> 57 + 58 + <div class="flex flex-col gap-4"> 59 + <!-- Mode Selection --> 60 + <div class="flex flex-col gap-2"> 61 + <Label>Mode</Label> 62 + <div class="grid grid-cols-3 gap-2"> 63 + {#each modeOptions as opt (opt.value)} 64 + <button 65 + type="button" 66 + onclick={() => (item.cardData.mode = opt.value as TimerMode)} 67 + class={[ 68 + 'rounded-xl border px-3 py-2 text-left transition-colors', 69 + cardData.mode === opt.value 70 + ? 'border-accent-500 bg-accent-500/10 text-accent-700 dark:text-accent-300' 71 + : 'border-base-300 dark:border-base-700 hover:bg-base-100 dark:hover:bg-base-800' 72 + ]} 73 + > 74 + <div class="text-sm font-medium">{opt.label}</div> 75 + <div class="text-base-500 text-xs">{opt.desc}</div> 76 + </button> 77 + {/each} 78 + </div> 79 + </div> 80 + 81 + <!-- Label --> 82 + <div class="flex flex-col gap-2"> 83 + <Label for="label">Label (optional)</Label> 84 + <Input 85 + id="label" 86 + value={cardData.label || ''} 87 + oninput={(e) => (item.cardData.label = e.currentTarget.value || undefined)} 88 + placeholder={cardData.mode === 'clock' 89 + ? 'e.g. Tokyo Time' 90 + : cardData.mode === 'event' 91 + ? 'e.g. New Year' 92 + : 'e.g. Focus Time'} 93 + /> 94 + </div> 95 + 96 + <!-- Clock Settings --> 97 + {#if cardData.mode === 'clock'} 98 + <div class="flex flex-col gap-2"> 99 + <Label for="timezone">Timezone</Label> 100 + <select 101 + id="timezone" 102 + value={cardData.timezone || 'UTC'} 103 + onchange={(e) => (item.cardData.timezone = e.currentTarget.value)} 104 + class="bg-base-100 dark:bg-base-800 border-base-300 dark:border-base-700 text-base-900 dark:text-base-100 rounded-xl border px-3 py-2" 105 + > 106 + {#each timezoneOptions as tz (tz.value)} 107 + <option value={tz.value}>{tz.label}</option> 108 + {/each} 109 + </select> 110 + </div> 111 + {/if} 112 + 113 + <!-- Timer Settings --> 114 + {#if cardData.mode === 'timer'} 115 + <div class="flex flex-col gap-2"> 116 + <Label for="duration">Duration</Label> 117 + <select 118 + id="duration" 119 + value={cardData.duration || 1000 * 60 * 5} 120 + onchange={(e) => (item.cardData.duration = parseInt(e.currentTarget.value))} 121 + class="bg-base-100 dark:bg-base-800 border-base-300 dark:border-base-700 text-base-900 dark:text-base-100 rounded-xl border px-3 py-2" 122 + > 123 + {#each durationOptions as dur (dur.value)} 124 + <option value={dur.value}>{dur.label}</option> 125 + {/each} 126 + </select> 127 + </div> 128 + {/if} 129 + 130 + <!-- Event Settings --> 131 + {#if cardData.mode === 'event'} 132 + <div class="flex flex-col gap-2"> 133 + <Label>Target Date & Time</Label> 134 + <div class="flex gap-2"> 135 + <Input 136 + type="date" 137 + value={targetDateValue} 138 + onchange={(e) => updateTargetDate(e.currentTarget.value, targetTimeValue)} 139 + class="flex-1" 140 + /> 141 + <Input 142 + type="time" 143 + value={targetTimeValue} 144 + onchange={(e) => updateTargetDate(targetDateValue, e.currentTarget.value)} 145 + class="w-28" 146 + /> 147 + </div> 148 + </div> 149 + {/if} 150 + </div>
+37
src/lib/cards/TimerCard/index.ts
··· 1 + import type { CardDefinition } from '../types'; 2 + import TimerCard from './TimerCard.svelte'; 3 + import TimerCardSettings from './TimerCardSettings.svelte'; 4 + 5 + export type TimerMode = 'clock' | 'timer' | 'event'; 6 + 7 + export type TimerCardData = { 8 + mode: TimerMode; 9 + label?: string; 10 + // For clock mode 11 + timezone?: string; 12 + // For event mode: target date as ISO string 13 + targetDate?: string; 14 + // For timer mode: duration in ms 15 + duration?: number; 16 + }; 17 + 18 + export const TimerCardDefinition = { 19 + type: 'timer', 20 + contentComponent: TimerCard, 21 + settingsComponent: TimerCardSettings, 22 + sidebarButtonText: 'Timer', 23 + 24 + createNew: (card) => { 25 + card.w = 4; 26 + card.h = 2; 27 + card.mobileW = 8; 28 + card.mobileH = 3; 29 + card.cardData = { 30 + mode: 'clock', 31 + timezone: Intl.DateTimeFormat().resolvedOptions().timeZone 32 + } as TimerCardData; 33 + }, 34 + 35 + allowSetColor: true, 36 + name: 'Timer Card' 37 + } as CardDefinition & { type: 'timer' };
+3 -1
src/lib/cards/index.ts
··· 28 28 import { EventCardDefinition } from './EventCard'; 29 29 import { VCardCardDefinition } from './VCardCard'; 30 30 import { DrawCardDefinition } from './DrawCard'; 31 + import { TimerCardDefinition } from './TimerCard'; 31 32 32 33 export const AllCardDefinitions = [ 33 34 ImageCardDefinition, ··· 58 59 StatusphereCardDefinition, 59 60 EventCardDefinition, 60 61 VCardCardDefinition, 61 - DrawCardDefinition 62 + DrawCardDefinition, 63 + TimerCardDefinition 62 64 ] as const; 63 65 64 66 export const CardDefinitionsByType = AllCardDefinitions.reduce(