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 "Bash(npx svelte-kit:*)", 12 "Bash(ls:*)", 13 "Bash(pnpm format:*)", 14 - "Bash(pnpm add:*)" 15 ] 16 } 17 }
··· 11 "Bash(npx svelte-kit:*)", 12 "Bash(ls:*)", 13 "Bash(pnpm format:*)", 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:*)" 26 ] 27 } 28 }
+1
package.json
··· 55 "@foxui/social": "^0.4.7", 56 "@foxui/time": "^0.4.7", 57 "@foxui/visual": "^0.4.7", 58 "@tailwindcss/typography": "^0.5.19", 59 "@tiptap/core": "^3.16.0", 60 "@tiptap/extension-document": "^3.16.0",
··· 55 "@foxui/social": "^0.4.7", 56 "@foxui/time": "^0.4.7", 57 "@foxui/visual": "^0.4.7", 58 + "@number-flow/svelte": "^0.3.10", 59 "@tailwindcss/typography": "^0.5.19", 60 "@tiptap/core": "^3.16.0", 61 "@tiptap/extension-document": "^3.16.0",
+143 -140
pnpm-lock.yaml
··· 56 '@foxui/visual': 57 specifier: ^0.4.7 58 version: 0.4.7(svelte@5.48.0)(tailwindcss@4.1.18) 59 '@tailwindcss/typography': 60 specifier: ^0.5.19 61 version: 0.5.19(tailwindcss@4.1.18) ··· 290 optional: true 291 292 '@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} 294 engines: {node: '>=16'} 295 cpu: [x64] 296 os: [darwin] 297 298 '@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} 300 engines: {node: '>=16'} 301 cpu: [arm64] 302 os: [darwin] 303 304 '@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} 306 engines: {node: '>=16'} 307 cpu: [x64] 308 os: [linux] 309 310 '@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} 312 engines: {node: '>=16'} 313 cpu: [arm64] 314 os: [linux] 315 316 '@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} 318 engines: {node: '>=16'} 319 cpu: [x64] 320 os: [win32] ··· 327 engines: {node: '>=12'} 328 329 '@emnapi/runtime@1.8.1': 330 - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==, tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz} 331 332 '@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} 334 engines: {node: '>=18'} 335 cpu: [ppc64] 336 os: [aix] 337 338 '@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} 340 engines: {node: '>=18'} 341 cpu: [ppc64] 342 os: [aix] 343 344 '@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} 346 engines: {node: '>=18'} 347 cpu: [arm64] 348 os: [android] 349 350 '@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} 352 engines: {node: '>=18'} 353 cpu: [arm64] 354 os: [android] 355 356 '@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} 358 engines: {node: '>=18'} 359 cpu: [arm] 360 os: [android] 361 362 '@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} 364 engines: {node: '>=18'} 365 cpu: [arm] 366 os: [android] 367 368 '@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} 370 engines: {node: '>=18'} 371 cpu: [x64] 372 os: [android] 373 374 '@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} 376 engines: {node: '>=18'} 377 cpu: [x64] 378 os: [android] 379 380 '@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} 382 engines: {node: '>=18'} 383 cpu: [arm64] 384 os: [darwin] 385 386 '@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} 388 engines: {node: '>=18'} 389 cpu: [arm64] 390 os: [darwin] 391 392 '@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} 394 engines: {node: '>=18'} 395 cpu: [x64] 396 os: [darwin] 397 398 '@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} 400 engines: {node: '>=18'} 401 cpu: [x64] 402 os: [darwin] 403 404 '@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} 406 engines: {node: '>=18'} 407 cpu: [arm64] 408 os: [freebsd] 409 410 '@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} 412 engines: {node: '>=18'} 413 cpu: [arm64] 414 os: [freebsd] 415 416 '@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} 418 engines: {node: '>=18'} 419 cpu: [x64] 420 os: [freebsd] 421 422 '@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} 424 engines: {node: '>=18'} 425 cpu: [x64] 426 os: [freebsd] 427 428 '@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} 430 engines: {node: '>=18'} 431 cpu: [arm64] 432 os: [linux] 433 434 '@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} 436 engines: {node: '>=18'} 437 cpu: [arm64] 438 os: [linux] 439 440 '@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} 442 engines: {node: '>=18'} 443 cpu: [arm] 444 os: [linux] 445 446 '@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} 448 engines: {node: '>=18'} 449 cpu: [arm] 450 os: [linux] 451 452 '@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} 454 engines: {node: '>=18'} 455 cpu: [ia32] 456 os: [linux] 457 458 '@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} 460 engines: {node: '>=18'} 461 cpu: [ia32] 462 os: [linux] 463 464 '@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} 466 engines: {node: '>=18'} 467 cpu: [loong64] 468 os: [linux] 469 470 '@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} 472 engines: {node: '>=18'} 473 cpu: [loong64] 474 os: [linux] 475 476 '@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} 478 engines: {node: '>=18'} 479 cpu: [mips64el] 480 os: [linux] 481 482 '@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} 484 engines: {node: '>=18'} 485 cpu: [mips64el] 486 os: [linux] 487 488 '@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} 490 engines: {node: '>=18'} 491 cpu: [ppc64] 492 os: [linux] 493 494 '@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} 496 engines: {node: '>=18'} 497 cpu: [ppc64] 498 os: [linux] 499 500 '@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} 502 engines: {node: '>=18'} 503 cpu: [riscv64] 504 os: [linux] 505 506 '@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} 508 engines: {node: '>=18'} 509 cpu: [riscv64] 510 os: [linux] 511 512 '@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} 514 engines: {node: '>=18'} 515 cpu: [s390x] 516 os: [linux] 517 518 '@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} 520 engines: {node: '>=18'} 521 cpu: [s390x] 522 os: [linux] 523 524 '@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} 526 engines: {node: '>=18'} 527 cpu: [x64] 528 os: [linux] 529 530 '@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} 532 engines: {node: '>=18'} 533 cpu: [x64] 534 os: [linux] 535 536 '@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} 538 engines: {node: '>=18'} 539 cpu: [arm64] 540 os: [netbsd] 541 542 '@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} 544 engines: {node: '>=18'} 545 cpu: [arm64] 546 os: [netbsd] 547 548 '@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} 550 engines: {node: '>=18'} 551 cpu: [x64] 552 os: [netbsd] 553 554 '@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} 556 engines: {node: '>=18'} 557 cpu: [x64] 558 os: [netbsd] 559 560 '@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} 562 engines: {node: '>=18'} 563 cpu: [arm64] 564 os: [openbsd] 565 566 '@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} 568 engines: {node: '>=18'} 569 cpu: [arm64] 570 os: [openbsd] 571 572 '@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} 574 engines: {node: '>=18'} 575 cpu: [x64] 576 os: [openbsd] 577 578 '@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} 580 engines: {node: '>=18'} 581 cpu: [x64] 582 os: [openbsd] 583 584 '@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} 586 engines: {node: '>=18'} 587 cpu: [arm64] 588 os: [openharmony] 589 590 '@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} 592 engines: {node: '>=18'} 593 cpu: [arm64] 594 os: [openharmony] 595 596 '@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} 598 engines: {node: '>=18'} 599 cpu: [x64] 600 os: [sunos] 601 602 '@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} 604 engines: {node: '>=18'} 605 cpu: [x64] 606 os: [sunos] 607 608 '@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} 610 engines: {node: '>=18'} 611 cpu: [arm64] 612 os: [win32] 613 614 '@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} 616 engines: {node: '>=18'} 617 cpu: [arm64] 618 os: [win32] 619 620 '@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} 622 engines: {node: '>=18'} 623 cpu: [ia32] 624 os: [win32] 625 626 '@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} 628 engines: {node: '>=18'} 629 cpu: [ia32] 630 os: [win32] 631 632 '@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} 634 engines: {node: '>=18'} 635 cpu: [x64] 636 os: [win32] 637 638 '@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} 640 engines: {node: '>=18'} 641 cpu: [x64] 642 os: [win32] ··· 757 engines: {node: '>=18'} 758 759 '@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} 761 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 762 cpu: [arm64] 763 os: [darwin] 764 765 '@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} 767 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 768 cpu: [x64] 769 os: [darwin] 770 771 '@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} 773 cpu: [arm64] 774 os: [darwin] 775 776 '@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} 778 cpu: [x64] 779 os: [darwin] 780 781 '@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} 783 cpu: [arm64] 784 os: [linux] 785 786 '@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} 788 cpu: [arm] 789 os: [linux] 790 791 '@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} 793 cpu: [ppc64] 794 os: [linux] 795 796 '@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} 798 cpu: [riscv64] 799 os: [linux] 800 801 '@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} 803 cpu: [s390x] 804 os: [linux] 805 806 '@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} 808 cpu: [x64] 809 os: [linux] 810 811 '@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} 813 cpu: [arm64] 814 os: [linux] 815 816 '@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} 818 cpu: [x64] 819 os: [linux] 820 821 '@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} 823 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 824 cpu: [arm64] 825 os: [linux] 826 827 '@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} 829 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 830 cpu: [arm] 831 os: [linux] 832 833 '@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} 835 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 836 cpu: [ppc64] 837 os: [linux] 838 839 '@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} 841 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 842 cpu: [riscv64] 843 os: [linux] 844 845 '@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} 847 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 848 cpu: [s390x] 849 os: [linux] 850 851 '@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} 853 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 854 cpu: [x64] 855 os: [linux] 856 857 '@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} 859 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 860 cpu: [arm64] 861 os: [linux] 862 863 '@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} 865 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 866 cpu: [x64] 867 os: [linux] 868 869 '@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} 871 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 872 cpu: [wasm32] 873 874 '@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} 876 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 877 cpu: [arm64] 878 os: [win32] 879 880 '@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} 882 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 883 cpu: [ia32] 884 os: [win32] 885 886 '@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} 888 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 889 cpu: [x64] 890 os: [win32] ··· 962 engines: {node: '>= 10'} 963 964 '@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} 966 cpu: [arm] 967 os: [android] 968 969 '@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} 971 cpu: [arm64] 972 os: [android] 973 974 '@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} 976 cpu: [arm64] 977 os: [darwin] 978 979 '@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} 981 cpu: [x64] 982 os: [darwin] 983 984 '@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} 986 cpu: [arm64] 987 os: [freebsd] 988 989 '@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} 991 cpu: [x64] 992 os: [freebsd] 993 994 '@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} 996 cpu: [arm] 997 os: [linux] 998 999 '@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} 1001 cpu: [arm] 1002 os: [linux] 1003 1004 '@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} 1006 cpu: [arm64] 1007 os: [linux] 1008 1009 '@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} 1011 cpu: [arm64] 1012 os: [linux] 1013 1014 '@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} 1016 cpu: [loong64] 1017 os: [linux] 1018 1019 '@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} 1021 cpu: [loong64] 1022 os: [linux] 1023 1024 '@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} 1026 cpu: [ppc64] 1027 os: [linux] 1028 1029 '@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} 1031 cpu: [ppc64] 1032 os: [linux] 1033 1034 '@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} 1036 cpu: [riscv64] 1037 os: [linux] 1038 1039 '@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} 1041 cpu: [riscv64] 1042 os: [linux] 1043 1044 '@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} 1046 cpu: [s390x] 1047 os: [linux] 1048 1049 '@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} 1051 cpu: [x64] 1052 os: [linux] 1053 1054 '@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} 1056 cpu: [x64] 1057 os: [linux] 1058 1059 '@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} 1061 cpu: [x64] 1062 os: [openbsd] 1063 1064 '@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} 1066 cpu: [arm64] 1067 os: [openharmony] 1068 1069 '@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} 1071 cpu: [arm64] 1072 os: [win32] 1073 1074 '@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} 1076 cpu: [ia32] 1077 os: [win32] 1078 1079 '@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} 1081 cpu: [x64] 1082 os: [win32] 1083 1084 '@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} 1086 cpu: [x64] 1087 os: [win32] 1088 ··· 1155 resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} 1156 1157 '@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} 1159 engines: {node: '>= 10'} 1160 cpu: [arm64] 1161 os: [android] 1162 1163 '@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} 1165 engines: {node: '>= 10'} 1166 cpu: [arm64] 1167 os: [darwin] 1168 1169 '@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} 1171 engines: {node: '>= 10'} 1172 cpu: [x64] 1173 os: [darwin] 1174 1175 '@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} 1177 engines: {node: '>= 10'} 1178 cpu: [x64] 1179 os: [freebsd] 1180 1181 '@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} 1183 engines: {node: '>= 10'} 1184 cpu: [arm] 1185 os: [linux] 1186 1187 '@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} 1189 engines: {node: '>= 10'} 1190 cpu: [arm64] 1191 os: [linux] 1192 1193 '@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} 1195 engines: {node: '>= 10'} 1196 cpu: [arm64] 1197 os: [linux] 1198 1199 '@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} 1201 engines: {node: '>= 10'} 1202 cpu: [x64] 1203 os: [linux] 1204 1205 '@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} 1207 engines: {node: '>= 10'} 1208 cpu: [x64] 1209 os: [linux] 1210 1211 '@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} 1213 engines: {node: '>=14.0.0'} 1214 cpu: [wasm32] 1215 bundledDependencies: ··· 1221 - tslib 1222 1223 '@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} 1225 engines: {node: '>= 10'} 1226 cpu: [arm64] 1227 os: [win32] 1228 1229 '@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} 1231 engines: {node: '>= 10'} 1232 cpu: [x64] 1233 os: [win32] ··· 1247 vite: ^5.2.0 || ^6 || ^7 1248 1249 '@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} 1251 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1252 cpu: [arm64] 1253 os: [darwin] 1254 1255 '@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} 1257 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1258 cpu: [x64] 1259 os: [darwin] 1260 1261 '@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} 1263 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1264 cpu: [arm64] 1265 os: [linux] 1266 1267 '@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} 1269 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1270 cpu: [arm64] 1271 os: [linux] 1272 1273 '@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} 1275 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1276 cpu: [x64] 1277 os: [linux] 1278 1279 '@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} 1281 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1282 cpu: [x64] 1283 os: [linux] 1284 1285 '@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} 1287 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1288 cpu: [arm64] 1289 os: [win32] 1290 1291 '@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} 1293 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1294 cpu: [x64] 1295 os: [win32] ··· 1915 resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1916 1917 fsevents@2.3.3: 1918 - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} 1919 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1920 os: [darwin] 1921 ··· 2051 engines: {node: '>= 0.8.0'} 2052 2053 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} 2055 engines: {node: '>= 12.0.0'} 2056 cpu: [arm64] 2057 os: [android] 2058 2059 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} 2061 engines: {node: '>= 12.0.0'} 2062 cpu: [arm64] 2063 os: [darwin] 2064 2065 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} 2067 engines: {node: '>= 12.0.0'} 2068 cpu: [x64] 2069 os: [darwin] 2070 2071 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} 2073 engines: {node: '>= 12.0.0'} 2074 cpu: [x64] 2075 os: [freebsd] 2076 2077 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} 2079 engines: {node: '>= 12.0.0'} 2080 cpu: [arm] 2081 os: [linux] 2082 2083 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} 2085 engines: {node: '>= 12.0.0'} 2086 cpu: [arm64] 2087 os: [linux] 2088 2089 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} 2091 engines: {node: '>= 12.0.0'} 2092 cpu: [arm64] 2093 os: [linux] 2094 2095 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} 2097 engines: {node: '>= 12.0.0'} 2098 cpu: [x64] 2099 os: [linux] 2100 2101 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} 2103 engines: {node: '>= 12.0.0'} 2104 cpu: [x64] 2105 os: [linux] 2106 2107 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} 2109 engines: {node: '>= 12.0.0'} 2110 cpu: [arm64] 2111 os: [win32] 2112 2113 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} 2115 engines: {node: '>= 12.0.0'} 2116 cpu: [x64] 2117 os: [win32] ··· 2295 hasBin: true 2296 2297 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} 2299 2300 picocolors@1.1.1: 2301 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
··· 56 '@foxui/visual': 57 specifier: ^0.4.7 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) 62 '@tailwindcss/typography': 63 specifier: ^0.5.19 64 version: 0.5.19(tailwindcss@4.1.18) ··· 293 optional: true 294 295 '@cloudflare/workerd-darwin-64@1.20260120.0': 296 + resolution: {integrity: sha512-JLHx3p5dpwz4wjVSis45YNReftttnI3ndhdMh5BUbbpdreN/g0jgxNt5Qp9tDFqEKl++N63qv+hxJiIIvSLR+Q==} 297 engines: {node: '>=16'} 298 cpu: [x64] 299 os: [darwin] 300 301 '@cloudflare/workerd-darwin-arm64@1.20260120.0': 302 + resolution: {integrity: sha512-1Md2tCRhZjwajsZNOiBeOVGiS3zbpLPzUDjHr4+XGTXWOA6FzzwScJwQZLa0Doc28Cp4Nr1n7xGL0Dwiz1XuOA==} 303 engines: {node: '>=16'} 304 cpu: [arm64] 305 os: [darwin] 306 307 '@cloudflare/workerd-linux-64@1.20260120.0': 308 + resolution: {integrity: sha512-O0mIfJfvU7F8N5siCoRDaVDuI12wkz2xlG4zK6/Ct7U9c9FiE0ViXNFWXFQm5PPj+qbkNRyhjUwhP+GCKTk5EQ==} 309 engines: {node: '>=16'} 310 cpu: [x64] 311 os: [linux] 312 313 '@cloudflare/workerd-linux-arm64@1.20260120.0': 314 + resolution: {integrity: sha512-aRHO/7bjxVpjZEmVVcpmhbzpN6ITbFCxuLLZSW0H9O0C0w40cDCClWSi19T87Ax/PQcYjFNT22pTewKsupkckA==} 315 engines: {node: '>=16'} 316 cpu: [arm64] 317 os: [linux] 318 319 '@cloudflare/workerd-windows-64@1.20260120.0': 320 + resolution: {integrity: sha512-ASZIz1E8sqZQqQCgcfY1PJbBpUDrxPt8NZ+lqNil0qxnO4qX38hbCsdDF2/TDAuq0Txh7nu8ztgTelfNDlb4EA==} 321 engines: {node: '>=16'} 322 cpu: [x64] 323 os: [win32] ··· 330 engines: {node: '>=12'} 331 332 '@emnapi/runtime@1.8.1': 333 + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} 334 335 '@esbuild/aix-ppc64@0.27.0': 336 + resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} 337 engines: {node: '>=18'} 338 cpu: [ppc64] 339 os: [aix] 340 341 '@esbuild/aix-ppc64@0.27.2': 342 + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} 343 engines: {node: '>=18'} 344 cpu: [ppc64] 345 os: [aix] 346 347 '@esbuild/android-arm64@0.27.0': 348 + resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} 349 engines: {node: '>=18'} 350 cpu: [arm64] 351 os: [android] 352 353 '@esbuild/android-arm64@0.27.2': 354 + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} 355 engines: {node: '>=18'} 356 cpu: [arm64] 357 os: [android] 358 359 '@esbuild/android-arm@0.27.0': 360 + resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} 361 engines: {node: '>=18'} 362 cpu: [arm] 363 os: [android] 364 365 '@esbuild/android-arm@0.27.2': 366 + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} 367 engines: {node: '>=18'} 368 cpu: [arm] 369 os: [android] 370 371 '@esbuild/android-x64@0.27.0': 372 + resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} 373 engines: {node: '>=18'} 374 cpu: [x64] 375 os: [android] 376 377 '@esbuild/android-x64@0.27.2': 378 + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} 379 engines: {node: '>=18'} 380 cpu: [x64] 381 os: [android] 382 383 '@esbuild/darwin-arm64@0.27.0': 384 + resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} 385 engines: {node: '>=18'} 386 cpu: [arm64] 387 os: [darwin] 388 389 '@esbuild/darwin-arm64@0.27.2': 390 + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} 391 engines: {node: '>=18'} 392 cpu: [arm64] 393 os: [darwin] 394 395 '@esbuild/darwin-x64@0.27.0': 396 + resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} 397 engines: {node: '>=18'} 398 cpu: [x64] 399 os: [darwin] 400 401 '@esbuild/darwin-x64@0.27.2': 402 + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} 403 engines: {node: '>=18'} 404 cpu: [x64] 405 os: [darwin] 406 407 '@esbuild/freebsd-arm64@0.27.0': 408 + resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} 409 engines: {node: '>=18'} 410 cpu: [arm64] 411 os: [freebsd] 412 413 '@esbuild/freebsd-arm64@0.27.2': 414 + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} 415 engines: {node: '>=18'} 416 cpu: [arm64] 417 os: [freebsd] 418 419 '@esbuild/freebsd-x64@0.27.0': 420 + resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} 421 engines: {node: '>=18'} 422 cpu: [x64] 423 os: [freebsd] 424 425 '@esbuild/freebsd-x64@0.27.2': 426 + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} 427 engines: {node: '>=18'} 428 cpu: [x64] 429 os: [freebsd] 430 431 '@esbuild/linux-arm64@0.27.0': 432 + resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} 433 engines: {node: '>=18'} 434 cpu: [arm64] 435 os: [linux] 436 437 '@esbuild/linux-arm64@0.27.2': 438 + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} 439 engines: {node: '>=18'} 440 cpu: [arm64] 441 os: [linux] 442 443 '@esbuild/linux-arm@0.27.0': 444 + resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} 445 engines: {node: '>=18'} 446 cpu: [arm] 447 os: [linux] 448 449 '@esbuild/linux-arm@0.27.2': 450 + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} 451 engines: {node: '>=18'} 452 cpu: [arm] 453 os: [linux] 454 455 '@esbuild/linux-ia32@0.27.0': 456 + resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} 457 engines: {node: '>=18'} 458 cpu: [ia32] 459 os: [linux] 460 461 '@esbuild/linux-ia32@0.27.2': 462 + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} 463 engines: {node: '>=18'} 464 cpu: [ia32] 465 os: [linux] 466 467 '@esbuild/linux-loong64@0.27.0': 468 + resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} 469 engines: {node: '>=18'} 470 cpu: [loong64] 471 os: [linux] 472 473 '@esbuild/linux-loong64@0.27.2': 474 + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} 475 engines: {node: '>=18'} 476 cpu: [loong64] 477 os: [linux] 478 479 '@esbuild/linux-mips64el@0.27.0': 480 + resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} 481 engines: {node: '>=18'} 482 cpu: [mips64el] 483 os: [linux] 484 485 '@esbuild/linux-mips64el@0.27.2': 486 + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} 487 engines: {node: '>=18'} 488 cpu: [mips64el] 489 os: [linux] 490 491 '@esbuild/linux-ppc64@0.27.0': 492 + resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} 493 engines: {node: '>=18'} 494 cpu: [ppc64] 495 os: [linux] 496 497 '@esbuild/linux-ppc64@0.27.2': 498 + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} 499 engines: {node: '>=18'} 500 cpu: [ppc64] 501 os: [linux] 502 503 '@esbuild/linux-riscv64@0.27.0': 504 + resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} 505 engines: {node: '>=18'} 506 cpu: [riscv64] 507 os: [linux] 508 509 '@esbuild/linux-riscv64@0.27.2': 510 + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} 511 engines: {node: '>=18'} 512 cpu: [riscv64] 513 os: [linux] 514 515 '@esbuild/linux-s390x@0.27.0': 516 + resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} 517 engines: {node: '>=18'} 518 cpu: [s390x] 519 os: [linux] 520 521 '@esbuild/linux-s390x@0.27.2': 522 + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} 523 engines: {node: '>=18'} 524 cpu: [s390x] 525 os: [linux] 526 527 '@esbuild/linux-x64@0.27.0': 528 + resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} 529 engines: {node: '>=18'} 530 cpu: [x64] 531 os: [linux] 532 533 '@esbuild/linux-x64@0.27.2': 534 + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} 535 engines: {node: '>=18'} 536 cpu: [x64] 537 os: [linux] 538 539 '@esbuild/netbsd-arm64@0.27.0': 540 + resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} 541 engines: {node: '>=18'} 542 cpu: [arm64] 543 os: [netbsd] 544 545 '@esbuild/netbsd-arm64@0.27.2': 546 + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} 547 engines: {node: '>=18'} 548 cpu: [arm64] 549 os: [netbsd] 550 551 '@esbuild/netbsd-x64@0.27.0': 552 + resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} 553 engines: {node: '>=18'} 554 cpu: [x64] 555 os: [netbsd] 556 557 '@esbuild/netbsd-x64@0.27.2': 558 + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} 559 engines: {node: '>=18'} 560 cpu: [x64] 561 os: [netbsd] 562 563 '@esbuild/openbsd-arm64@0.27.0': 564 + resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} 565 engines: {node: '>=18'} 566 cpu: [arm64] 567 os: [openbsd] 568 569 '@esbuild/openbsd-arm64@0.27.2': 570 + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} 571 engines: {node: '>=18'} 572 cpu: [arm64] 573 os: [openbsd] 574 575 '@esbuild/openbsd-x64@0.27.0': 576 + resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} 577 engines: {node: '>=18'} 578 cpu: [x64] 579 os: [openbsd] 580 581 '@esbuild/openbsd-x64@0.27.2': 582 + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} 583 engines: {node: '>=18'} 584 cpu: [x64] 585 os: [openbsd] 586 587 '@esbuild/openharmony-arm64@0.27.0': 588 + resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} 589 engines: {node: '>=18'} 590 cpu: [arm64] 591 os: [openharmony] 592 593 '@esbuild/openharmony-arm64@0.27.2': 594 + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} 595 engines: {node: '>=18'} 596 cpu: [arm64] 597 os: [openharmony] 598 599 '@esbuild/sunos-x64@0.27.0': 600 + resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} 601 engines: {node: '>=18'} 602 cpu: [x64] 603 os: [sunos] 604 605 '@esbuild/sunos-x64@0.27.2': 606 + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} 607 engines: {node: '>=18'} 608 cpu: [x64] 609 os: [sunos] 610 611 '@esbuild/win32-arm64@0.27.0': 612 + resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} 613 engines: {node: '>=18'} 614 cpu: [arm64] 615 os: [win32] 616 617 '@esbuild/win32-arm64@0.27.2': 618 + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} 619 engines: {node: '>=18'} 620 cpu: [arm64] 621 os: [win32] 622 623 '@esbuild/win32-ia32@0.27.0': 624 + resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} 625 engines: {node: '>=18'} 626 cpu: [ia32] 627 os: [win32] 628 629 '@esbuild/win32-ia32@0.27.2': 630 + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} 631 engines: {node: '>=18'} 632 cpu: [ia32] 633 os: [win32] 634 635 '@esbuild/win32-x64@0.27.0': 636 + resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} 637 engines: {node: '>=18'} 638 cpu: [x64] 639 os: [win32] 640 641 '@esbuild/win32-x64@0.27.2': 642 + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} 643 engines: {node: '>=18'} 644 cpu: [x64] 645 os: [win32] ··· 760 engines: {node: '>=18'} 761 762 '@img/sharp-darwin-arm64@0.34.5': 763 + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 764 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 765 cpu: [arm64] 766 os: [darwin] 767 768 '@img/sharp-darwin-x64@0.34.5': 769 + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 770 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 771 cpu: [x64] 772 os: [darwin] 773 774 '@img/sharp-libvips-darwin-arm64@1.2.4': 775 + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 776 cpu: [arm64] 777 os: [darwin] 778 779 '@img/sharp-libvips-darwin-x64@1.2.4': 780 + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 781 cpu: [x64] 782 os: [darwin] 783 784 '@img/sharp-libvips-linux-arm64@1.2.4': 785 + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 786 cpu: [arm64] 787 os: [linux] 788 789 '@img/sharp-libvips-linux-arm@1.2.4': 790 + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 791 cpu: [arm] 792 os: [linux] 793 794 '@img/sharp-libvips-linux-ppc64@1.2.4': 795 + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 796 cpu: [ppc64] 797 os: [linux] 798 799 '@img/sharp-libvips-linux-riscv64@1.2.4': 800 + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 801 cpu: [riscv64] 802 os: [linux] 803 804 '@img/sharp-libvips-linux-s390x@1.2.4': 805 + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 806 cpu: [s390x] 807 os: [linux] 808 809 '@img/sharp-libvips-linux-x64@1.2.4': 810 + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 811 cpu: [x64] 812 os: [linux] 813 814 '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 815 + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 816 cpu: [arm64] 817 os: [linux] 818 819 '@img/sharp-libvips-linuxmusl-x64@1.2.4': 820 + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 821 cpu: [x64] 822 os: [linux] 823 824 '@img/sharp-linux-arm64@0.34.5': 825 + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 826 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 827 cpu: [arm64] 828 os: [linux] 829 830 '@img/sharp-linux-arm@0.34.5': 831 + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 832 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 833 cpu: [arm] 834 os: [linux] 835 836 '@img/sharp-linux-ppc64@0.34.5': 837 + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 838 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 839 cpu: [ppc64] 840 os: [linux] 841 842 '@img/sharp-linux-riscv64@0.34.5': 843 + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 844 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 845 cpu: [riscv64] 846 os: [linux] 847 848 '@img/sharp-linux-s390x@0.34.5': 849 + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 850 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 851 cpu: [s390x] 852 os: [linux] 853 854 '@img/sharp-linux-x64@0.34.5': 855 + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 856 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 857 cpu: [x64] 858 os: [linux] 859 860 '@img/sharp-linuxmusl-arm64@0.34.5': 861 + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 862 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 863 cpu: [arm64] 864 os: [linux] 865 866 '@img/sharp-linuxmusl-x64@0.34.5': 867 + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 868 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 869 cpu: [x64] 870 os: [linux] 871 872 '@img/sharp-wasm32@0.34.5': 873 + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 874 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 875 cpu: [wasm32] 876 877 '@img/sharp-win32-arm64@0.34.5': 878 + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 879 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 880 cpu: [arm64] 881 os: [win32] 882 883 '@img/sharp-win32-ia32@0.34.5': 884 + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 885 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 886 cpu: [ia32] 887 os: [win32] 888 889 '@img/sharp-win32-x64@0.34.5': 890 + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 891 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 892 cpu: [x64] 893 os: [win32] ··· 965 engines: {node: '>= 10'} 966 967 '@rollup/rollup-android-arm-eabi@4.56.0': 968 + resolution: {integrity: sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==} 969 cpu: [arm] 970 os: [android] 971 972 '@rollup/rollup-android-arm64@4.56.0': 973 + resolution: {integrity: sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==} 974 cpu: [arm64] 975 os: [android] 976 977 '@rollup/rollup-darwin-arm64@4.56.0': 978 + resolution: {integrity: sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==} 979 cpu: [arm64] 980 os: [darwin] 981 982 '@rollup/rollup-darwin-x64@4.56.0': 983 + resolution: {integrity: sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==} 984 cpu: [x64] 985 os: [darwin] 986 987 '@rollup/rollup-freebsd-arm64@4.56.0': 988 + resolution: {integrity: sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==} 989 cpu: [arm64] 990 os: [freebsd] 991 992 '@rollup/rollup-freebsd-x64@4.56.0': 993 + resolution: {integrity: sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==} 994 cpu: [x64] 995 os: [freebsd] 996 997 '@rollup/rollup-linux-arm-gnueabihf@4.56.0': 998 + resolution: {integrity: sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==} 999 cpu: [arm] 1000 os: [linux] 1001 1002 '@rollup/rollup-linux-arm-musleabihf@4.56.0': 1003 + resolution: {integrity: sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==} 1004 cpu: [arm] 1005 os: [linux] 1006 1007 '@rollup/rollup-linux-arm64-gnu@4.56.0': 1008 + resolution: {integrity: sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==} 1009 cpu: [arm64] 1010 os: [linux] 1011 1012 '@rollup/rollup-linux-arm64-musl@4.56.0': 1013 + resolution: {integrity: sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==} 1014 cpu: [arm64] 1015 os: [linux] 1016 1017 '@rollup/rollup-linux-loong64-gnu@4.56.0': 1018 + resolution: {integrity: sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==} 1019 cpu: [loong64] 1020 os: [linux] 1021 1022 '@rollup/rollup-linux-loong64-musl@4.56.0': 1023 + resolution: {integrity: sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==} 1024 cpu: [loong64] 1025 os: [linux] 1026 1027 '@rollup/rollup-linux-ppc64-gnu@4.56.0': 1028 + resolution: {integrity: sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==} 1029 cpu: [ppc64] 1030 os: [linux] 1031 1032 '@rollup/rollup-linux-ppc64-musl@4.56.0': 1033 + resolution: {integrity: sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==} 1034 cpu: [ppc64] 1035 os: [linux] 1036 1037 '@rollup/rollup-linux-riscv64-gnu@4.56.0': 1038 + resolution: {integrity: sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==} 1039 cpu: [riscv64] 1040 os: [linux] 1041 1042 '@rollup/rollup-linux-riscv64-musl@4.56.0': 1043 + resolution: {integrity: sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==} 1044 cpu: [riscv64] 1045 os: [linux] 1046 1047 '@rollup/rollup-linux-s390x-gnu@4.56.0': 1048 + resolution: {integrity: sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==} 1049 cpu: [s390x] 1050 os: [linux] 1051 1052 '@rollup/rollup-linux-x64-gnu@4.56.0': 1053 + resolution: {integrity: sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==} 1054 cpu: [x64] 1055 os: [linux] 1056 1057 '@rollup/rollup-linux-x64-musl@4.56.0': 1058 + resolution: {integrity: sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==} 1059 cpu: [x64] 1060 os: [linux] 1061 1062 '@rollup/rollup-openbsd-x64@4.56.0': 1063 + resolution: {integrity: sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==} 1064 cpu: [x64] 1065 os: [openbsd] 1066 1067 '@rollup/rollup-openharmony-arm64@4.56.0': 1068 + resolution: {integrity: sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==} 1069 cpu: [arm64] 1070 os: [openharmony] 1071 1072 '@rollup/rollup-win32-arm64-msvc@4.56.0': 1073 + resolution: {integrity: sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==} 1074 cpu: [arm64] 1075 os: [win32] 1076 1077 '@rollup/rollup-win32-ia32-msvc@4.56.0': 1078 + resolution: {integrity: sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==} 1079 cpu: [ia32] 1080 os: [win32] 1081 1082 '@rollup/rollup-win32-x64-gnu@4.56.0': 1083 + resolution: {integrity: sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==} 1084 cpu: [x64] 1085 os: [win32] 1086 1087 '@rollup/rollup-win32-x64-msvc@4.56.0': 1088 + resolution: {integrity: sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==} 1089 cpu: [x64] 1090 os: [win32] 1091 ··· 1158 resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} 1159 1160 '@tailwindcss/oxide-android-arm64@4.1.18': 1161 + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} 1162 engines: {node: '>= 10'} 1163 cpu: [arm64] 1164 os: [android] 1165 1166 '@tailwindcss/oxide-darwin-arm64@4.1.18': 1167 + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} 1168 engines: {node: '>= 10'} 1169 cpu: [arm64] 1170 os: [darwin] 1171 1172 '@tailwindcss/oxide-darwin-x64@4.1.18': 1173 + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} 1174 engines: {node: '>= 10'} 1175 cpu: [x64] 1176 os: [darwin] 1177 1178 '@tailwindcss/oxide-freebsd-x64@4.1.18': 1179 + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} 1180 engines: {node: '>= 10'} 1181 cpu: [x64] 1182 os: [freebsd] 1183 1184 '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': 1185 + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} 1186 engines: {node: '>= 10'} 1187 cpu: [arm] 1188 os: [linux] 1189 1190 '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': 1191 + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} 1192 engines: {node: '>= 10'} 1193 cpu: [arm64] 1194 os: [linux] 1195 1196 '@tailwindcss/oxide-linux-arm64-musl@4.1.18': 1197 + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} 1198 engines: {node: '>= 10'} 1199 cpu: [arm64] 1200 os: [linux] 1201 1202 '@tailwindcss/oxide-linux-x64-gnu@4.1.18': 1203 + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} 1204 engines: {node: '>= 10'} 1205 cpu: [x64] 1206 os: [linux] 1207 1208 '@tailwindcss/oxide-linux-x64-musl@4.1.18': 1209 + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} 1210 engines: {node: '>= 10'} 1211 cpu: [x64] 1212 os: [linux] 1213 1214 '@tailwindcss/oxide-wasm32-wasi@4.1.18': 1215 + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} 1216 engines: {node: '>=14.0.0'} 1217 cpu: [wasm32] 1218 bundledDependencies: ··· 1224 - tslib 1225 1226 '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': 1227 + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} 1228 engines: {node: '>= 10'} 1229 cpu: [arm64] 1230 os: [win32] 1231 1232 '@tailwindcss/oxide-win32-x64-msvc@4.1.18': 1233 + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} 1234 engines: {node: '>= 10'} 1235 cpu: [x64] 1236 os: [win32] ··· 1250 vite: ^5.2.0 || ^6 || ^7 1251 1252 '@takumi-rs/core-darwin-arm64@0.55.4': 1253 + resolution: {integrity: sha512-LH/X/ul19DActLGcBpXnxH3OBEq8qOgPD56hNHAJMbnCRxAO6TDaIh2U7WqPVliSkFk3jZfikbD21SIEpZrp8A==} 1254 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1255 cpu: [arm64] 1256 os: [darwin] 1257 1258 '@takumi-rs/core-darwin-x64@0.55.4': 1259 + resolution: {integrity: sha512-UW7ovR/D1Qp8n8bJOo6JLqZZUDFWWtGRXEZZUZhzUeMSzJ4k3C6ef/DEc75bUTGeBKqCeypMPcvtkQAjcVwwhw==} 1260 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1261 cpu: [x64] 1262 os: [darwin] 1263 1264 '@takumi-rs/core-linux-arm64-gnu@0.55.4': 1265 + resolution: {integrity: sha512-y1d5yuPapKlmt77TpE+XrtULj7LZ51leBqWSg6qMNKxhpvRqmjI/SYjHmk5YvshnrTkdKmRQiXJiiN5EzOhbmA==} 1266 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1267 cpu: [arm64] 1268 os: [linux] 1269 1270 '@takumi-rs/core-linux-arm64-musl@0.55.4': 1271 + resolution: {integrity: sha512-VRbQqbMeoPlrMmaqPwn30Sw82LYya+o4ru9dqV/7BKExozWj/pX9ahexlJdHsZ6wqmsr+ZxexZivK1mPum9ang==} 1272 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1273 cpu: [arm64] 1274 os: [linux] 1275 1276 '@takumi-rs/core-linux-x64-gnu@0.55.4': 1277 + resolution: {integrity: sha512-ecCUtNgOe6mCWKf+SE7cbJXWd6D6TQoCnKZAJAGrJkJLAdy/gBhCFhOyPz8M7q/4uWHUATentqi35KAp+jxBiQ==} 1278 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1279 cpu: [x64] 1280 os: [linux] 1281 1282 '@takumi-rs/core-linux-x64-musl@0.55.4': 1283 + resolution: {integrity: sha512-YBM2zPrGE/1sfHoFZvOsCvCuK9PfaxzePN/GnnlaAvpvgeRHiAU4PJkLGDpjMFfsWUAEdjly/b0HSAjVQ7NL6Q==} 1284 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1285 cpu: [x64] 1286 os: [linux] 1287 1288 '@takumi-rs/core-win32-arm64-msvc@0.55.4': 1289 + resolution: {integrity: sha512-VcgLCWnmyWuhwLv0Tpob8Hv5IFPreFVykoHruPGwXDVVoUcCo+lQ8oCO5EYTB8B/tBAXl2S0xUL0nMDbyLzMxQ==} 1290 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1291 cpu: [arm64] 1292 os: [win32] 1293 1294 '@takumi-rs/core-win32-x64-msvc@0.55.4': 1295 + resolution: {integrity: sha512-ta9g1gUybS2V4mHaccJHcMeBb+w1P6pgZuqHzLoQzBIEK9a/KncHPfnR48cz4sGfg4atorfSa6UBffa2FqijyQ==} 1296 engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} 1297 cpu: [x64] 1298 os: [win32] ··· 1918 resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1919 1920 fsevents@2.3.3: 1921 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1922 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1923 os: [darwin] 1924 ··· 2054 engines: {node: '>= 0.8.0'} 2055 2056 lightningcss-android-arm64@1.30.2: 2057 + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} 2058 engines: {node: '>= 12.0.0'} 2059 cpu: [arm64] 2060 os: [android] 2061 2062 lightningcss-darwin-arm64@1.30.2: 2063 + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} 2064 engines: {node: '>= 12.0.0'} 2065 cpu: [arm64] 2066 os: [darwin] 2067 2068 lightningcss-darwin-x64@1.30.2: 2069 + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} 2070 engines: {node: '>= 12.0.0'} 2071 cpu: [x64] 2072 os: [darwin] 2073 2074 lightningcss-freebsd-x64@1.30.2: 2075 + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} 2076 engines: {node: '>= 12.0.0'} 2077 cpu: [x64] 2078 os: [freebsd] 2079 2080 lightningcss-linux-arm-gnueabihf@1.30.2: 2081 + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} 2082 engines: {node: '>= 12.0.0'} 2083 cpu: [arm] 2084 os: [linux] 2085 2086 lightningcss-linux-arm64-gnu@1.30.2: 2087 + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} 2088 engines: {node: '>= 12.0.0'} 2089 cpu: [arm64] 2090 os: [linux] 2091 2092 lightningcss-linux-arm64-musl@1.30.2: 2093 + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} 2094 engines: {node: '>= 12.0.0'} 2095 cpu: [arm64] 2096 os: [linux] 2097 2098 lightningcss-linux-x64-gnu@1.30.2: 2099 + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} 2100 engines: {node: '>= 12.0.0'} 2101 cpu: [x64] 2102 os: [linux] 2103 2104 lightningcss-linux-x64-musl@1.30.2: 2105 + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} 2106 engines: {node: '>= 12.0.0'} 2107 cpu: [x64] 2108 os: [linux] 2109 2110 lightningcss-win32-arm64-msvc@1.30.2: 2111 + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} 2112 engines: {node: '>= 12.0.0'} 2113 cpu: [arm64] 2114 os: [win32] 2115 2116 lightningcss-win32-x64-msvc@1.30.2: 2117 + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} 2118 engines: {node: '>= 12.0.0'} 2119 cpu: [x64] 2120 os: [win32] ··· 2298 hasBin: true 2299 2300 perfect-freehand@1.2.2: 2301 + resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} 2302 2303 picocolors@1.1.1: 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 import { EventCardDefinition } from './EventCard'; 29 import { VCardCardDefinition } from './VCardCard'; 30 import { DrawCardDefinition } from './DrawCard'; 31 32 export const AllCardDefinitions = [ 33 ImageCardDefinition, ··· 58 StatusphereCardDefinition, 59 EventCardDefinition, 60 VCardCardDefinition, 61 - DrawCardDefinition 62 ] as const; 63 64 export const CardDefinitionsByType = AllCardDefinitions.reduce(
··· 28 import { EventCardDefinition } from './EventCard'; 29 import { VCardCardDefinition } from './VCardCard'; 30 import { DrawCardDefinition } from './DrawCard'; 31 + import { TimerCardDefinition } from './TimerCard'; 32 33 export const AllCardDefinitions = [ 34 ImageCardDefinition, ··· 59 StatusphereCardDefinition, 60 EventCardDefinition, 61 VCardCardDefinition, 62 + DrawCardDefinition, 63 + TimerCardDefinition 64 ] as const; 65 66 export const CardDefinitionsByType = AllCardDefinitions.reduce(