feat: LHD birthday (#717)

* chore: add tsparticles/react

* fix: imports and lint issues

* fix: imports and format

* feat: refactor settings and add LHD birthday celebration

* chore: lint and format
This commit is contained in:
Diego Perez
2026-01-07 10:36:45 -06:00
committed by GitHub
parent 68e3fe45fa
commit 2d18553f98
9 changed files with 913 additions and 529 deletions

306
pnpm-lock.yaml generated
View File

@@ -49,6 +49,15 @@ importers:
'@tanstack/react-query':
specifier: ^5.69.0
version: 5.69.0(react@18.3.1)
'@tsparticles/engine':
specifier: ^3.9.1
version: 3.9.1
'@tsparticles/react':
specifier: ^3.0.0
version: 3.0.0(@tsparticles/engine@3.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@tsparticles/slim':
specifier: ^3.9.1
version: 3.9.1
'@unocss/vite':
specifier: ^0.63.6
version: 0.63.6(patch_hash=9e2d2732a6e057a2ca90fba199730f252d8b4db8631b2c6ee0854fce7771bc95)(rollup@4.52.4)(typescript@5.7.3)(vite@5.4.20(@types/node@22.13.5)(sass@1.85.1)(terser@5.44.0))
@@ -2075,6 +2084,121 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@tsparticles/basic@3.9.1':
resolution: {integrity: sha512-ijr2dHMx0IQHqhKW3qA8tfwrR2XYbbWYdaJMQuBo2CkwBVIhZ76U+H20Y492j/NXpd1FUnt2aC0l4CEVGVGdeQ==}
'@tsparticles/engine@3.9.1':
resolution: {integrity: sha512-DpdgAhWMZ3Eh2gyxik8FXS6BKZ8vyea+Eu5BC4epsahqTGY9V3JGGJcXC6lRJx6cPMAx1A0FaQAojPF3v6rkmQ==}
'@tsparticles/interaction-external-attract@3.9.1':
resolution: {integrity: sha512-5AJGmhzM9o4AVFV24WH5vSqMBzOXEOzIdGLIr+QJf4fRh9ZK62snsusv/ozKgs2KteRYQx+L7c5V3TqcDy2upg==}
'@tsparticles/interaction-external-bounce@3.9.1':
resolution: {integrity: sha512-bv05+h70UIHOTWeTsTI1AeAmX6R3s8nnY74Ea6p6AbQjERzPYIa0XY19nq/hA7+Nrg+EissP5zgoYYeSphr85A==}
'@tsparticles/interaction-external-bubble@3.9.1':
resolution: {integrity: sha512-tbd8ox/1GPl+zr+KyHQVV1bW88GE7OM6i4zql801YIlCDrl9wgTDdDFGIy9X7/cwTvTrCePhrfvdkUamXIribQ==}
'@tsparticles/interaction-external-connect@3.9.1':
resolution: {integrity: sha512-sq8YfUNsIORjXHzzW7/AJQtfi/qDqLnYG2qOSE1WOsog39MD30RzmiOloejOkfNeUdcGUcfsDgpUuL3UhzFUOA==}
'@tsparticles/interaction-external-grab@3.9.1':
resolution: {integrity: sha512-QwXza+sMMWDaMiFxd8y2tJwUK6c+nNw554+/9+tEZeTTk2fCbB0IJ7p/TH6ZGWDL0vo2muK54Njv2fEey191ow==}
'@tsparticles/interaction-external-pause@3.9.1':
resolution: {integrity: sha512-Gzv4/FeNir0U/tVM9zQCqV1k+IAgaFjDU3T30M1AeAsNGh/rCITV2wnT7TOGFkbcla27m4Yxa+Fuab8+8pzm+g==}
'@tsparticles/interaction-external-push@3.9.1':
resolution: {integrity: sha512-GvnWF9Qy4YkZdx+WJL2iy9IcgLvzOIu3K7aLYJFsQPaxT8d9TF8WlpoMlWKnJID6H5q4JqQuMRKRyWH8aAKyQw==}
'@tsparticles/interaction-external-remove@3.9.1':
resolution: {integrity: sha512-yPThm4UDWejDOWW5Qc8KnnS2EfSo5VFcJUQDWc1+Wcj17xe7vdSoiwwOORM0PmNBzdDpSKQrte/gUnoqaUMwOA==}
'@tsparticles/interaction-external-repulse@3.9.1':
resolution: {integrity: sha512-/LBppXkrMdvLHlEKWC7IykFhzrz+9nebT2fwSSFXK4plEBxDlIwnkDxd3FbVOAbnBvx4+L8+fbrEx+RvC8diAw==}
'@tsparticles/interaction-external-slow@3.9.1':
resolution: {integrity: sha512-1ZYIR/udBwA9MdSCfgADsbDXKSFS0FMWuPWz7bm79g3sUxcYkihn+/hDhc6GXvNNR46V1ocJjrj0u6pAynS1KQ==}
'@tsparticles/interaction-particles-attract@3.9.1':
resolution: {integrity: sha512-CYYYowJuGwRLUixQcSU/48PTKM8fCUYThe0hXwQ+yRMLAn053VHzL7NNZzKqEIeEyt5oJoy9KcvubjKWbzMBLQ==}
'@tsparticles/interaction-particles-collisions@3.9.1':
resolution: {integrity: sha512-ggGyjW/3v1yxvYW1IF1EMT15M6w31y5zfNNUPkqd/IXRNPYvm0Z0ayhp+FKmz70M5p0UxxPIQHTvAv9Jqnuj8w==}
'@tsparticles/interaction-particles-links@3.9.1':
resolution: {integrity: sha512-MsLbMjy1vY5M5/hu/oa5OSRZAUz49H3+9EBMTIOThiX+a+vpl3sxc9AqNd9gMsPbM4WJlub8T6VBZdyvzez1Vg==}
'@tsparticles/move-base@3.9.1':
resolution: {integrity: sha512-X4huBS27d8srpxwOxliWPUt+NtCwY+8q/cx1DvQxyqmTA8VFCGpcHNwtqiN+9JicgzOvSuaORVqUgwlsc7h4pQ==}
'@tsparticles/move-parallax@3.9.1':
resolution: {integrity: sha512-whlOR0bVeyh6J/hvxf/QM3DqvNnITMiAQ0kro6saqSDItAVqg4pYxBfEsSOKq7EhjxNvfhhqR+pFMhp06zoCVA==}
'@tsparticles/plugin-easing-quad@3.9.1':
resolution: {integrity: sha512-C2UJOca5MTDXKUTBXj30Kiqr5UyID+xrY/LxicVWWZPczQW2bBxbIbfq9ULvzGDwBTxE2rdvIB8YFKmDYO45qw==}
'@tsparticles/plugin-hex-color@3.9.1':
resolution: {integrity: sha512-vZgZ12AjUicJvk7AX4K2eAmKEQX/D1VEjEPFhyjbgI7A65eX72M465vVKIgNA6QArLZ1DLs7Z787LOE6GOBWsg==}
'@tsparticles/plugin-hsl-color@3.9.1':
resolution: {integrity: sha512-jJd1iGgRwX6eeNjc1zUXiJivaqC5UE+SC2A3/NtHwwoQrkfxGWmRHOsVyLnOBRcCPgBp/FpdDe6DIDjCMO715w==}
'@tsparticles/plugin-rgb-color@3.9.1':
resolution: {integrity: sha512-SBxk7f1KBfXeTnnklbE2Hx4jBgh6I6HOtxb+Os1gTp0oaghZOkWcCD2dP4QbUu7fVNCMOcApPoMNC8RTFcy9wQ==}
'@tsparticles/react@3.0.0':
resolution: {integrity: sha512-hjGEtTT1cwv6BcjL+GcVgH++KYs52bIuQGW3PWv7z3tMa8g0bd6RI/vWSLj7p//NZ3uTjEIeilYIUPBh7Jfq/Q==}
peerDependencies:
'@tsparticles/engine': ^3.0.2
react: '>=16.8.0'
react-dom: '>=16.8.0'
'@tsparticles/shape-circle@3.9.1':
resolution: {integrity: sha512-DqZFLjbuhVn99WJ+A9ajz9YON72RtCcvubzq6qfjFmtwAK7frvQeb6iDTp6Ze9FUipluxVZWVRG4vWTxi2B+/g==}
'@tsparticles/shape-emoji@3.9.1':
resolution: {integrity: sha512-ifvY63usuT+hipgVHb8gelBHSeF6ryPnMxAAEC1RGHhhXfpSRWMtE6ybr+pSsYU52M3G9+TF84v91pSwNrb9ZQ==}
'@tsparticles/shape-image@3.9.1':
resolution: {integrity: sha512-fCA5eme8VF3oX8yNVUA0l2SLDKuiZObkijb0z3Ky0qj1HUEVlAuEMhhNDNB9E2iELTrWEix9z7BFMePp2CC7AA==}
'@tsparticles/shape-line@3.9.1':
resolution: {integrity: sha512-wT8NSp0N9HURyV05f371cHKcNTNqr0/cwUu6WhBzbshkYGy1KZUP9CpRIh5FCrBpTev34mEQfOXDycgfG0KiLQ==}
'@tsparticles/shape-polygon@3.9.1':
resolution: {integrity: sha512-dA77PgZdoLwxnliH6XQM/zF0r4jhT01pw5y7XTeTqws++hg4rTLV9255k6R6eUqKq0FPSW1/WBsBIl7q/MmrqQ==}
'@tsparticles/shape-square@3.9.1':
resolution: {integrity: sha512-DKGkDnRyZrAm7T2ipqNezJahSWs6xd9O5LQLe5vjrYm1qGwrFxJiQaAdlb00UNrexz1/SA7bEoIg4XKaFa7qhQ==}
'@tsparticles/shape-star@3.9.1':
resolution: {integrity: sha512-kdMJpi8cdeb6vGrZVSxTG0JIjCwIenggqk0EYeKAwtOGZFBgL7eHhF2F6uu1oq8cJAbXPujEoabnLsz6mW8XaA==}
'@tsparticles/slim@3.9.1':
resolution: {integrity: sha512-CL5cDmADU7sDjRli0So+hY61VMbdroqbArmR9Av+c1Fisa5ytr6QD7Jv62iwU2S6rvgicEe9OyRmSy5GIefwZw==}
'@tsparticles/updater-color@3.9.1':
resolution: {integrity: sha512-XGWdscrgEMA8L5E7exsE0f8/2zHKIqnTrZymcyuFBw2DCB6BIV+5z6qaNStpxrhq3DbIxxhqqcybqeOo7+Alpg==}
'@tsparticles/updater-life@3.9.1':
resolution: {integrity: sha512-Oi8aF2RIwMMsjssUkCB6t3PRpENHjdZf6cX92WNfAuqXtQphr3OMAkYFJFWkvyPFK22AVy3p/cFt6KE5zXxwAA==}
'@tsparticles/updater-opacity@3.9.1':
resolution: {integrity: sha512-w778LQuRZJ+IoWzeRdrGykPYSSaTeWfBvLZ2XwYEkh/Ss961InOxZKIpcS6i5Kp/Zfw0fS1ZAuqeHwuj///Osw==}
'@tsparticles/updater-out-modes@3.9.1':
resolution: {integrity: sha512-cKQEkAwbru+hhKF+GTsfbOvuBbx2DSB25CxOdhtW2wRvDBoCnngNdLw91rs+0Cex4tgEeibkebrIKFDDE6kELg==}
'@tsparticles/updater-rotate@3.9.1':
resolution: {integrity: sha512-9BfKaGfp28JN82MF2qs6Ae/lJr9EColMfMTHqSKljblwbpVDHte4umuwKl3VjbRt87WD9MGtla66NTUYl+WxuQ==}
'@tsparticles/updater-size@3.9.1':
resolution: {integrity: sha512-3NSVs0O2ApNKZXfd+y/zNhTXSFeG1Pw4peI8e6z/q5+XLbmue9oiEwoPy/tQLaark3oNj3JU7Q903ZijPyXSzw==}
'@tsparticles/updater-stroke-color@3.9.1':
resolution: {integrity: sha512-3x14+C2is9pZYTg9T2TiA/aM1YMq4wLdYaZDcHm3qO30DZu5oeQq0rm/6w+QOGKYY1Z3Htg9rlSUZkhTHn7eDA==}
'@types/aria-query@5.0.4':
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
@@ -8820,6 +8944,188 @@ snapshots:
'@trysound/sax@0.2.0': {}
'@tsparticles/basic@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/move-base': 3.9.1
'@tsparticles/plugin-hex-color': 3.9.1
'@tsparticles/plugin-hsl-color': 3.9.1
'@tsparticles/plugin-rgb-color': 3.9.1
'@tsparticles/shape-circle': 3.9.1
'@tsparticles/updater-color': 3.9.1
'@tsparticles/updater-opacity': 3.9.1
'@tsparticles/updater-out-modes': 3.9.1
'@tsparticles/updater-size': 3.9.1
'@tsparticles/engine@3.9.1': {}
'@tsparticles/interaction-external-attract@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-bounce@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-bubble@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-connect@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-grab@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-pause@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-push@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-remove@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-repulse@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-slow@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-particles-attract@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-particles-collisions@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-particles-links@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/move-base@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/move-parallax@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/plugin-easing-quad@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/plugin-hex-color@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/plugin-hsl-color@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/plugin-rgb-color@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/react@3.0.0(@tsparticles/engine@3.9.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@tsparticles/engine': 3.9.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@tsparticles/shape-circle@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-emoji@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-image@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-line@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-polygon@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-square@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/shape-star@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/slim@3.9.1':
dependencies:
'@tsparticles/basic': 3.9.1
'@tsparticles/engine': 3.9.1
'@tsparticles/interaction-external-attract': 3.9.1
'@tsparticles/interaction-external-bounce': 3.9.1
'@tsparticles/interaction-external-bubble': 3.9.1
'@tsparticles/interaction-external-connect': 3.9.1
'@tsparticles/interaction-external-grab': 3.9.1
'@tsparticles/interaction-external-pause': 3.9.1
'@tsparticles/interaction-external-push': 3.9.1
'@tsparticles/interaction-external-remove': 3.9.1
'@tsparticles/interaction-external-repulse': 3.9.1
'@tsparticles/interaction-external-slow': 3.9.1
'@tsparticles/interaction-particles-attract': 3.9.1
'@tsparticles/interaction-particles-collisions': 3.9.1
'@tsparticles/interaction-particles-links': 3.9.1
'@tsparticles/move-parallax': 3.9.1
'@tsparticles/plugin-easing-quad': 3.9.1
'@tsparticles/shape-emoji': 3.9.1
'@tsparticles/shape-image': 3.9.1
'@tsparticles/shape-line': 3.9.1
'@tsparticles/shape-polygon': 3.9.1
'@tsparticles/shape-square': 3.9.1
'@tsparticles/shape-star': 3.9.1
'@tsparticles/updater-life': 3.9.1
'@tsparticles/updater-rotate': 3.9.1
'@tsparticles/updater-stroke-color': 3.9.1
'@tsparticles/updater-color@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-life@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-opacity@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-out-modes@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-rotate@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-size@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@tsparticles/updater-stroke-color@3.9.1':
dependencies:
'@tsparticles/engine': 3.9.1
'@types/aria-query@5.0.4': {}
'@types/babel__core@7.20.5':