From 15d37d0e80094c64e0719d20131a0c39af42ffaf Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:48:21 +0800 Subject: [PATCH 1/9] Removed local font and fixed favicon --- src/layouts/Layout.astro | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 53940ce..793e274 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -8,7 +8,7 @@ const websiteDescription = 'This is just a template.' - + @@ -22,17 +22,10 @@ const websiteDescription = 'This is just a template.' From ad146ca15811d60fb379c56c251e04968f120f01 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:52:27 +0800 Subject: [PATCH 2/9] Moved file --- quadlet.container | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 quadlet.container diff --git a/quadlet.container b/quadlet.container new file mode 100644 index 0000000..ef4590e --- /dev/null +++ b/quadlet.container @@ -0,0 +1,13 @@ +[Unit] +Description=FWT + +[Container] +ContainerName=fwt +Image=localhost/fwt +PublishPort=8080:8080 + +[Service] +Restart=always + +[Install] +WantedBy=multi-user.target default.target \ No newline at end of file From e36565b04295a61b7c231e1c5d54f7574d1eade2 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:52:39 +0800 Subject: [PATCH 3/9] Added playwright --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 16d54bb..cb8cc80 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,9 @@ pnpm-debug.log* # jetbrains setting folder .idea/ + +# Playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ From 1af1261220b7635fcb30295af92731f581f2d69b Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:53:11 +0800 Subject: [PATCH 4/9] Updated dependencies and added playwright --- package.json | 15 +- pnpm-lock.yaml | 547 +++++++++++++++++++++++++++++++++++++------------ 2 files changed, 429 insertions(+), 133 deletions(-) diff --git a/package.json b/package.json index b23a09a..aa71341 100644 --- a/package.json +++ b/package.json @@ -6,17 +6,20 @@ "dev": "astro dev", "build": "astro build", "preview": "astro preview", - "astro": "astro" + "astro": "astro", + "test": "vitest" }, "dependencies": { "@astrojs/solid-js": "^5.1.0", "@itsmatteomanf/astro-robots-txt": "^0.2.0", - "astro": "^5.12.4", - "astro-compressor": "^1.1.0", + "astro": "^5.13.3", + "astro-compressor": "^1.1.2", "lightningcss": "^1.30.1", - "solid-js": "^1.9.7" + "solid-js": "^1.9.9" }, "devDependencies": { - "sass-embedded": "^1.89.2" + "@playwright/test": "^1.55.0", + "@types/node": "^24.3.0", + "sass-embedded": "^1.91.0" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c1c2c7..377abc7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,26 +10,32 @@ importers: dependencies: '@astrojs/solid-js': specifier: ^5.1.0 - version: 5.1.0(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)(solid-js@1.9.7) + version: 5.1.0(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(solid-js@1.9.9) '@itsmatteomanf/astro-robots-txt': specifier: ^0.2.0 - version: 0.2.0(astro@5.12.4(@types/node@22.15.29)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.89.2)(typescript@5.8.3)) + version: 0.2.0(astro@5.13.3(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.91.0)(sass@1.91.0)(typescript@5.8.3)) astro: - specifier: ^5.12.4 - version: 5.12.4(@types/node@22.15.29)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.89.2)(typescript@5.8.3) + specifier: ^5.13.3 + version: 5.13.3(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.91.0)(sass@1.91.0)(typescript@5.8.3) astro-compressor: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^1.1.2 + version: 1.1.2 lightningcss: specifier: ^1.30.1 version: 1.30.1 solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: ^1.9.9 + version: 1.9.9 devDependencies: + '@playwright/test': + specifier: ^1.55.0 + version: 1.55.0 + '@types/node': + specifier: ^24.3.0 + version: 24.3.0 sass-embedded: - specifier: ^1.89.2 - version: 1.89.2 + specifier: ^1.91.0 + version: 1.91.0 packages: @@ -40,11 +46,11 @@ packages: '@astrojs/compiler@2.12.2': resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} - '@astrojs/internal-helpers@0.6.1': - resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==} + '@astrojs/internal-helpers@0.7.2': + resolution: {integrity: sha512-KCkCqR3Goym79soqEtbtLzJfqhTWMyVaizUi35FLzgGSzBotSw8DB1qwsu7U96ihOJgYhDk2nVPz+3LnXPeX6g==} - '@astrojs/markdown-remark@6.3.3': - resolution: {integrity: sha512-DDRtD1sPvAuA7ms2btc9A7/7DApKqgLMNrE6kh5tmkfy8utD0Z738gqd3p5aViYYdUtHIyEJ1X4mCMxfCfu15w==} + '@astrojs/markdown-remark@6.3.6': + resolution: {integrity: sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug==} '@astrojs/prism@3.3.0': resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} @@ -431,6 +437,93 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@playwright/test@1.55.0': + resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} + engines: {node: '>=18'} + hasBin: true + '@rollup/pluginutils@5.1.4': resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} @@ -597,8 +690,8 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@22.15.29': - resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -640,12 +733,12 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - astro-compressor@1.1.0: - resolution: {integrity: sha512-qzyiZSrt+8+JDdMluO51sZH0tH0z5qkrQgYYayFNUPvz9RB8FMfwhuPkRViK+42NDXjOwB1i7VAcIp4owOV9gw==} - engines: {node: '>=22.15'} + astro-compressor@1.1.2: + resolution: {integrity: sha512-BsX6ypOkRff2g7e5vA47Vlpq9MfVxAo4pXzfkJvXTSzzrSYvf8m3e0lbyGK6eReSzWcAPXymOTIoooqDX1BTlA==} + engines: {node: '>=22.15.0 <23.0.0 || >=23.8.0'} - astro@5.12.4: - resolution: {integrity: sha512-ns+/KpfWToKvVf2DJTj4EIa4U59/XVBXeeq6VZUr5DXe6OZJFs8NfJi+W20nRm5nduIeBZGRzaoxPFq9lm4WEg==} + astro@5.13.3: + resolution: {integrity: sha512-V0mUOUK70UZ7xqXp5Noqse/SREU0P756KgFufBEluq5LkmBejzC2GENMUA2Na+PFwUjemElJtRlpKyrnKpFhSQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -679,6 +772,10 @@ packages: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + brotli@1.3.3: resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} @@ -806,6 +903,11 @@ packages: destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -886,6 +988,10 @@ packages: picomatch: optional: true + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -896,6 +1002,11 @@ packages: fontkit@2.0.4: resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -982,15 +1093,27 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -1240,6 +1363,10 @@ packages: micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -1259,6 +1386,9 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch-native@1.6.6: resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} @@ -1328,6 +1458,16 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + playwright-core@1.55.0: + resolution: {integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.55.0: + resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==} + engines: {node: '>=18'} + hasBin: true + postcss@8.5.4: resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} engines: {node: ^10 || ^12 || >=14} @@ -1413,107 +1553,120 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - sass-embedded-android-arm64@1.89.2: - resolution: {integrity: sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==} + sass-embedded-all-unknown@1.91.0: + resolution: {integrity: sha512-AXC1oPqDfLnLtcoxM+XwSnbhcQs0TxAiA5JDEstl6+tt6fhFLKxdyl1Hla39SFtxvMfB2QDUYE3Dmx49O59vYg==} + cpu: ['!arm', '!arm64', '!riscv64', '!x64'] + + sass-embedded-android-arm64@1.91.0: + resolution: {integrity: sha512-I8Eeg2CeVcZIhXcQLNEY6ZBRF0m7jc818/fypwMwvIdbxGWBekTzc3aKHTLhdBpFzGnDIyR4s7oB0/OjIpzD1A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - sass-embedded-android-arm@1.89.2: - resolution: {integrity: sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==} + sass-embedded-android-arm@1.91.0: + resolution: {integrity: sha512-DSh1V8TlLIcpklAbn4NINEFs3yD2OzVTbawEXK93IH990upoGNFVNRTstFQ/gcvlbWph3Y3FjAJvo37zUO485A==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] - sass-embedded-android-riscv64@1.89.2: - resolution: {integrity: sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==} + sass-embedded-android-riscv64@1.91.0: + resolution: {integrity: sha512-qmsl1a7IIJL0fCOwzmRB+6nxeJK5m9/W8LReXUrdgyJNH5RyxChDg+wwQPVATFffOuztmWMnlJ5CV2sCLZrXcQ==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] - sass-embedded-android-x64@1.89.2: - resolution: {integrity: sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==} + sass-embedded-android-x64@1.91.0: + resolution: {integrity: sha512-/wN0HBLATOVSeN3Tzg0yxxNTo1IQvOxxxwFv7Ki/1/UCg2AqZPxTpNoZj/mn8tUPtiVogMGbC8qclYMq1aRZsQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] - sass-embedded-darwin-arm64@1.89.2: - resolution: {integrity: sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==} + sass-embedded-darwin-arm64@1.91.0: + resolution: {integrity: sha512-gQ6ScInxAN+BDUXy426BSYLRawkmGYlHpQ9i6iOxorr64dtIb3l6eb9YaBV8lPlroUnugylmwN2B3FU9BuPfhA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - sass-embedded-darwin-x64@1.89.2: - resolution: {integrity: sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==} + sass-embedded-darwin-x64@1.91.0: + resolution: {integrity: sha512-DSvFMtECL2blYVTFMO5fLeNr5bX437Lrz8R47fdo5438TRyOkSgwKTkECkfh3YbnrL86yJIN2QQlmBMF17Z/iw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - sass-embedded-linux-arm64@1.89.2: - resolution: {integrity: sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==} + sass-embedded-linux-arm64@1.91.0: + resolution: {integrity: sha512-OnKCabD7f420ZEC/6YI9WhCVGMZF+ybZ5NbAB9SsG1xlxrKbWQ1s7CIl0w/6RDALtJ+Fjn8+mrxsxqakoAkeuA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-arm@1.89.2: - resolution: {integrity: sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==} + sass-embedded-linux-arm@1.91.0: + resolution: {integrity: sha512-ppAZLp3eZ9oTjYdQDf4nM7EehDpkxq5H1hE8FOrx8LpY7pxn6QF+SRpAbRjdfFChRw0K7vh+IiCnQEMp7uLNAg==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-musl-arm64@1.89.2: - resolution: {integrity: sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==} + sass-embedded-linux-musl-arm64@1.91.0: + resolution: {integrity: sha512-VfbPpID1C5TT7rukob6CKgefx/TsLE+XZieMNd00hvfJ8XhqPr5DGvSMCNpXlwaedzTirbJu357m+n2PJI9TFQ==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-musl-arm@1.89.2: - resolution: {integrity: sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==} + sass-embedded-linux-musl-arm@1.91.0: + resolution: {integrity: sha512-znEsNC2FurPF9+XwQQ6e/fVoic3e5D3/kMB41t/bE8byJVRdaPhkdsszt3pZUE56nNGYoCuieSXUkk7VvyPHsw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-musl-riscv64@1.89.2: - resolution: {integrity: sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==} + sass-embedded-linux-musl-riscv64@1.91.0: + resolution: {integrity: sha512-ZfLGldKEEeZjuljKks835LTq7jDRI3gXsKKXXgZGzN6Yymd4UpBOGWiDQlWsWTvw5UwDU2xfFh0wSXbLGHTjVA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-musl-x64@1.89.2: - resolution: {integrity: sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==} + sass-embedded-linux-musl-x64@1.91.0: + resolution: {integrity: sha512-4kSiSGPKFMbLvTRbP/ibyiKheOA3fwsJKWU0SOuekSPmybMdrhNkTm0REp6+nehZRE60kC3lXmEV4a7w8Jrwyg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-linux-riscv64@1.89.2: - resolution: {integrity: sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==} + sass-embedded-linux-riscv64@1.91.0: + resolution: {integrity: sha512-Y3Fj94SYYvMX9yo49T78yBgBWXtG3EyYUT5K05XyCYkcdl1mVXJSrEmqmRfe4vQGUCaSe/6s7MmsA9Q+mQez7Q==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-x64@1.89.2: - resolution: {integrity: sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==} + sass-embedded-linux-x64@1.91.0: + resolution: {integrity: sha512-XwIUaE7pQP/ezS5te80hlyheYiUlo0FolQ0HBtxohpavM+DVX2fjwFm5LOUJHrLAqP+TLBtChfFeLj1Ie4Aenw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-win32-arm64@1.89.2: - resolution: {integrity: sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==} + sass-embedded-unknown-all@1.91.0: + resolution: {integrity: sha512-Bj6v7ScQp/HtO91QBy6ood9AArSIN7/RNcT4E7P9QoY3o+e6621Vd28lV81vdepPrt6u6PgJoVKmLNODqB6Q+A==} + os: ['!android', '!darwin', '!linux', '!win32'] + + sass-embedded-win32-arm64@1.91.0: + resolution: {integrity: sha512-yDCwTiPRex03i1yo7LwiAl1YQ21UyfOxPobD7UjI8AE8ZcB0mQ28VVX66lsZ+qm91jfLslNFOFCD4v79xCG9hA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - sass-embedded-win32-x64@1.89.2: - resolution: {integrity: sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==} + sass-embedded-win32-x64@1.91.0: + resolution: {integrity: sha512-wiuMz/cx4vsk6rYCnNyoGE5pd73aDJ/zF3qJDose3ZLT1/vV943doJE5pICnS/v5DrUqzV6a1CNq4fN+xeSgFQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - sass-embedded@1.89.2: - resolution: {integrity: sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==} + sass-embedded@1.91.0: + resolution: {integrity: sha512-VTckYcH1AglrZ3VpPETilTo3Ef472XKwP13lrNfbOHSR6Eo5p27XTkIi+6lrCbuhBFFGAmy+4BRoLaeFUgn+eg==} engines: {node: '>=16.0.0'} hasBin: true + sass@1.91.0: + resolution: {integrity: sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==} + engines: {node: '>=14.0.0'} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -1550,8 +1703,8 @@ packages: resolution: {integrity: sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==} engines: {node: '>= 18'} - solid-js@1.9.7: - resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==} + solid-js@1.9.9: + resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -1606,6 +1759,10 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -1646,8 +1803,8 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} unicode-properties@1.4.1: resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} @@ -1768,12 +1925,12 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-plugin-solid@2.11.6: - resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==} + vite-plugin-solid@2.11.8: + resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==} peerDependencies: '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: '@testing-library/jest-dom': optional: true @@ -1895,11 +2052,11 @@ snapshots: '@astrojs/compiler@2.12.2': {} - '@astrojs/internal-helpers@0.6.1': {} + '@astrojs/internal-helpers@0.7.2': {} - '@astrojs/markdown-remark@6.3.3': + '@astrojs/markdown-remark@6.3.6': dependencies: - '@astrojs/internal-helpers': 0.6.1 + '@astrojs/internal-helpers': 0.7.2 '@astrojs/prism': 3.3.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 @@ -1927,11 +2084,11 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/solid-js@5.1.0(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)(solid-js@1.9.7)': + '@astrojs/solid-js@5.1.0(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)(solid-js@1.9.9)': dependencies: - solid-js: 1.9.7 - vite: 6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2) - vite-plugin-solid: 2.11.6(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)) + solid-js: 1.9.9 + vite: 6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0) + vite-plugin-solid: 2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -2233,9 +2390,9 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@itsmatteomanf/astro-robots-txt@0.2.0(astro@5.12.4(@types/node@22.15.29)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.89.2)(typescript@5.8.3))': + '@itsmatteomanf/astro-robots-txt@0.2.0(astro@5.13.3(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.91.0)(sass@1.91.0)(typescript@5.8.3))': dependencies: - astro: 5.12.4(@types/node@22.15.29)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.89.2)(typescript@5.8.3) + astro: 5.13.3(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.91.0)(sass@1.91.0)(typescript@5.8.3) zod: 3.25.49 '@jridgewell/gen-mapping@0.3.8': @@ -2257,6 +2414,71 @@ snapshots: '@oslojs/encoding@1.1.0': {} + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@playwright/test@1.55.0': + dependencies: + playwright: 1.55.0 + '@rollup/pluginutils@5.1.4(rollup@4.41.1)': dependencies: '@types/estree': 1.0.7 @@ -2391,7 +2613,7 @@ snapshots: '@types/fontkit@2.0.8': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.3.0 '@types/hast@3.0.4': dependencies: @@ -2407,9 +2629,9 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.15.29': + '@types/node@24.3.0': dependencies: - undici-types: 6.21.0 + undici-types: 7.10.0 '@types/unist@3.0.3': {} @@ -2438,13 +2660,13 @@ snapshots: array-iterate@2.0.1: {} - astro-compressor@1.1.0: {} + astro-compressor@1.1.2: {} - astro@5.12.4(@types/node@22.15.29)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.89.2)(typescript@5.8.3): + astro@5.13.3(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.41.1)(sass-embedded@1.91.0)(sass@1.91.0)(typescript@5.8.3): dependencies: '@astrojs/compiler': 2.12.2 - '@astrojs/internal-helpers': 0.6.1 - '@astrojs/markdown-remark': 6.3.3 + '@astrojs/internal-helpers': 0.7.2 + '@astrojs/markdown-remark': 6.3.6 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 2.4.0 '@oslojs/encoding': 1.1.0 @@ -2496,8 +2718,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.16.0 vfile: 6.0.3 - vite: 6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)) + vite: 6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -2577,6 +2799,11 @@ snapshots: widest-line: 5.0.0 wrap-ansi: 9.0.0 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + optional: true + brotli@1.3.3: dependencies: base64-js: 1.5.1 @@ -2681,6 +2908,9 @@ snapshots: destr@2.0.5: {} + detect-libc@1.0.3: + optional: true + detect-libc@2.0.4: {} deterministic-object-hash@2.0.2: @@ -2759,6 +2989,11 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + optional: true + flattie@1.1.1: {} fontace@0.3.0: @@ -2778,6 +3013,9 @@ snapshots: unicode-properties: 1.4.1 unicode-trie: 2.0.0 + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -2909,12 +3147,23 @@ snapshots: is-docker@3.0.0: {} + is-extglob@2.1.1: + optional: true + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + optional: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 + is-number@7.0.0: + optional: true + is-plain-obj@4.1.0: {} is-what@4.1.16: {} @@ -3319,6 +3568,12 @@ snapshots: transitivePeerDependencies: - supports-color + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + optional: true + mrmime@2.0.1: {} ms@2.1.3: {} @@ -3331,6 +3586,9 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-addon-api@7.1.1: + optional: true + node-fetch-native@1.6.6: {} node-fetch@2.7.0: @@ -3393,6 +3651,14 @@ snapshots: picomatch@4.0.2: {} + playwright-core@1.55.0: {} + + playwright@1.55.0: + dependencies: + playwright-core: 1.55.0 + optionalDependencies: + fsevents: 2.3.2 + postcss@8.5.4: dependencies: nanoid: 3.3.11 @@ -3547,55 +3813,65 @@ snapshots: dependencies: tslib: 2.8.1 - sass-embedded-android-arm64@1.89.2: + sass-embedded-all-unknown@1.91.0: + dependencies: + sass: 1.91.0 optional: true - sass-embedded-android-arm@1.89.2: + sass-embedded-android-arm64@1.91.0: optional: true - sass-embedded-android-riscv64@1.89.2: + sass-embedded-android-arm@1.91.0: optional: true - sass-embedded-android-x64@1.89.2: + sass-embedded-android-riscv64@1.91.0: optional: true - sass-embedded-darwin-arm64@1.89.2: + sass-embedded-android-x64@1.91.0: optional: true - sass-embedded-darwin-x64@1.89.2: + sass-embedded-darwin-arm64@1.91.0: optional: true - sass-embedded-linux-arm64@1.89.2: + sass-embedded-darwin-x64@1.91.0: optional: true - sass-embedded-linux-arm@1.89.2: + sass-embedded-linux-arm64@1.91.0: optional: true - sass-embedded-linux-musl-arm64@1.89.2: + sass-embedded-linux-arm@1.91.0: optional: true - sass-embedded-linux-musl-arm@1.89.2: + sass-embedded-linux-musl-arm64@1.91.0: optional: true - sass-embedded-linux-musl-riscv64@1.89.2: + sass-embedded-linux-musl-arm@1.91.0: optional: true - sass-embedded-linux-musl-x64@1.89.2: + sass-embedded-linux-musl-riscv64@1.91.0: optional: true - sass-embedded-linux-riscv64@1.89.2: + sass-embedded-linux-musl-x64@1.91.0: optional: true - sass-embedded-linux-x64@1.89.2: + sass-embedded-linux-riscv64@1.91.0: optional: true - sass-embedded-win32-arm64@1.89.2: + sass-embedded-linux-x64@1.91.0: optional: true - sass-embedded-win32-x64@1.89.2: + sass-embedded-unknown-all@1.91.0: + dependencies: + sass: 1.91.0 optional: true - sass-embedded@1.89.2: + sass-embedded-win32-arm64@1.91.0: + optional: true + + sass-embedded-win32-x64@1.91.0: + optional: true + + sass-embedded@1.91.0: dependencies: '@bufbuild/protobuf': 2.5.1 buffer-builder: 0.2.0 @@ -3606,22 +3882,33 @@ snapshots: sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-android-arm: 1.89.2 - sass-embedded-android-arm64: 1.89.2 - sass-embedded-android-riscv64: 1.89.2 - sass-embedded-android-x64: 1.89.2 - sass-embedded-darwin-arm64: 1.89.2 - sass-embedded-darwin-x64: 1.89.2 - sass-embedded-linux-arm: 1.89.2 - sass-embedded-linux-arm64: 1.89.2 - sass-embedded-linux-musl-arm: 1.89.2 - sass-embedded-linux-musl-arm64: 1.89.2 - sass-embedded-linux-musl-riscv64: 1.89.2 - sass-embedded-linux-musl-x64: 1.89.2 - sass-embedded-linux-riscv64: 1.89.2 - sass-embedded-linux-x64: 1.89.2 - sass-embedded-win32-arm64: 1.89.2 - sass-embedded-win32-x64: 1.89.2 + sass-embedded-all-unknown: 1.91.0 + sass-embedded-android-arm: 1.91.0 + sass-embedded-android-arm64: 1.91.0 + sass-embedded-android-riscv64: 1.91.0 + sass-embedded-android-x64: 1.91.0 + sass-embedded-darwin-arm64: 1.91.0 + sass-embedded-darwin-x64: 1.91.0 + sass-embedded-linux-arm: 1.91.0 + sass-embedded-linux-arm64: 1.91.0 + sass-embedded-linux-musl-arm: 1.91.0 + sass-embedded-linux-musl-arm64: 1.91.0 + sass-embedded-linux-musl-riscv64: 1.91.0 + sass-embedded-linux-musl-x64: 1.91.0 + sass-embedded-linux-riscv64: 1.91.0 + sass-embedded-linux-x64: 1.91.0 + sass-embedded-unknown-all: 1.91.0 + sass-embedded-win32-arm64: 1.91.0 + sass-embedded-win32-x64: 1.91.0 + + sass@1.91.0: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.2 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + optional: true semver@6.3.1: {} @@ -3680,18 +3967,18 @@ snapshots: smol-toml@1.4.1: {} - solid-js@1.9.7: + solid-js@1.9.9: dependencies: csstype: 3.1.3 seroval: 1.3.2 seroval-plugins: 1.3.2(seroval@1.3.2) - solid-refresh@0.6.3(solid-js@1.9.7): + solid-refresh@0.6.3(solid-js@1.9.9): dependencies: '@babel/generator': 7.27.3 '@babel/helper-module-imports': 7.27.1 '@babel/types': 7.27.3 - solid-js: 1.9.7 + solid-js: 1.9.9 transitivePeerDependencies: - supports-color @@ -3743,6 +4030,11 @@ snapshots: fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + optional: true + tr46@0.0.3: {} trim-lines@3.0.1: {} @@ -3765,7 +4057,7 @@ snapshots: uncrypto@0.1.3: {} - undici-types@6.21.0: {} + undici-types@7.10.0: {} unicode-properties@1.4.1: dependencies: @@ -3870,20 +4162,20 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-plugin-solid@2.11.6(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)): + vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)): dependencies: '@babel/core': 7.27.4 '@types/babel__core': 7.20.5 babel-preset-solid: 1.9.6(@babel/core@7.27.4) merge-anything: 5.1.7 - solid-js: 1.9.7 - solid-refresh: 0.6.3(solid-js@1.9.7) - vite: 6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)) + solid-js: 1.9.9 + solid-refresh: 0.6.3(solid-js@1.9.9) + vite: 6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)) transitivePeerDependencies: - supports-color - vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2): + vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0): dependencies: esbuild: 0.25.5 fdir: 6.4.5(picomatch@4.0.2) @@ -3892,14 +4184,15 @@ snapshots: rollup: 4.41.1 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.3.0 fsevents: 2.3.3 lightningcss: 1.30.1 - sass-embedded: 1.89.2 + sass: 1.91.0 + sass-embedded: 1.91.0 - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2)): + vitefu@1.0.6(vite@6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.29)(lightningcss@1.30.1)(sass-embedded@1.89.2) + vite: 6.3.5(@types/node@24.3.0)(lightningcss@1.30.1)(sass-embedded@1.91.0)(sass@1.91.0) web-namespaces@2.0.1: {} From d6e83e22a6ae698a7e1175958a9f3b8d6ed71ac2 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:53:22 +0800 Subject: [PATCH 5/9] Added playwright config --- playwright.config.ts | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 playwright.config.ts diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..6e11caf --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,51 @@ +import { defineConfig, devices } from '@playwright/test' + +export default defineConfig({ + testDir: './src/pages/tests', + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: 'html', + use: { + trace: 'off', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + // { + // name: 'webkit', + // use: { ...devices['Desktop Safari'] }, + // }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], +}) From 65652d9b7280e3dfe05c7566ac79374382400249 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:53:29 +0800 Subject: [PATCH 6/9] Updated logo --- public/logo.png | Bin 7244 -> 5187 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/logo.png b/public/logo.png index b86efd06cff47789610ce3a5fdb161d66fe1248d..593b692edc3c642480cb4f6ab1ed682f1ad484e7 100644 GIT binary patch literal 5187 zcmchbXH-+$w#O4h5fv#Ss0gAUNR=WWHHavL>LE0VfOH`cFa$ygP0RsAdQ}8OAs7%s zC?Yk2^Z*f&8j6SzdT$|wT+X}ij(6UBpWcUe_ZV}pvG$l_%>P_#?zz_Z#XK<4<2ZHc z6aWC=0PE|T9gQ7-8P|!UH=_eFel)Q9>VVBp9zE!j&e2D6b|3wRz5u{6>R$%@T6OUB z=;KA?J!>Sy+ZBm&K)3)4G zece=f#JHTjMx5&{M`dN@jnwo(k~yr(Xgk8DBtAoY;Y0sL=J9q=6I*;npGRTFMT+F8 zWc&c1C)*9|m;~>Q2l@u=HJ-}sS>sELUy+LKxQ~nVA;=Z_;sKkYXpU1!p zt014ZYqWyAuA@a|9L^+S0G6dik_qjPenO$wad~+a{TlvAeKRK~E32vY(6Hb-_GcEw z-9uIuX`6J@0!MkU8gh;^EHU3F;7K$97|t`y-Be@&8_aAUD87!v;p*zv0tGJk>k`c4 z;%pnG!BL!`&6kW08`hKItxUYF6E=FO zq9@v=KzcpII-8HB4u{|t$~L*Qf$AImmVsQPnokm9W(5>0_i9egJAeY7n1 zT`&O`_T0Z6+>}Kl9D>fL=T=$viR}h0v=UbBC^}X%IWZsjHJ_~~h znIoC$M)$8_h~!=ZMX!$YYMMfBH9vxWVBl7`qqU7I%#n2c`j~JnsqYW4TG*jI(@|V4 zTy;d^eR_J15ZD8z2m$+FiENO&_kMaB1C-N1&%PAh-X$_V1#0n1o;efT6s4|{7Xbuc zy0W^MlHc3glQpAFIQZR}VW%KcY+&bgFB~AL7kfrM%{lU`$^7%LA|kH&Ylrk%7Dp`l z!HB0%#=_FbcwG;DQqJ24fCLzdKzjmwh)-mu7T}$a$+#dM9baC`v3K-mev~uO0@W_IFh%tG!`8-@fJD#WzaY)|8`GE6BC-=L1(8 z><>3|8Ykj4Otbela|>vAAt%;yoe?{&%;0JrDAY8;+`?s7=1ER5wPFNmV^F{X?0?=X zsAca)6-1dMT3Z)Oic@Oqt^_aXfoxPkpqQ5JMG=wjU%nhNuospqb8<|>g7y_Aei<1b zk4#2x&25qm4XgA`!cz$k#|}b&R=$hvQBo2V#Kyeg8$J^pFf0xAlbW+ES(r=I$k`9_ zJ*!(_T&8ibhH4a{p?i9;Pw?jn>!tYBT;{<5-l+Y<$ZneSL3&=^on&RN{bqhXp36~Z z8Hc-KznUH5D={zZvF^PWt%n7xESFT_+1XjjG6#z(oq1O)UU%9arBL|Lzxb59Zn}n>LYab%dzAi;|*RE^t0&>Zr@Nn4K3B0XS1B2k$=!X zyadQYtUujoEc1xQVKQBj@Z?@9Jsnft~)S;%#_lojFbq~cEE8Fo2xQ*YF zCdfl7nba!rv9uJy*B{b2I9LTM*x6ybg8mhgwz(;<6}mFk6#0E`kG8p5KYhOku{h|B zexK>TMLTz_$2`r8yF!6mSoWnh-zSsH$-lS#{l@*QW==%6L#(PjEE+#F4#z4EejKUU z#1(e)rYkmNnokuvwM-{PZ%svc*ROB&!|R&`QRo$4S0k0(xTc?PaaET!J+QrVm$k!h zquu2pH#s=4(Pw4KGVKiFu4dDm1b*n4#WZa%w%#X zvTs8|PO~S@qadxIu*G#tLsG3@FI#l`^ya{j;lRKwnd~ek#)r_-x#oZ^A3K%UDv3q; zY3|Q)h6-C)yo!5f!X8DZo4!e0Sg?T(m877xa><>Pq^hOUiI$`T2Okr)M}Cwg-L5U^{O}iU6dPFg*9f#WuXI zt{R>O_msIMzuu>pymeH)`$Md3!1AS?Fmn%ntBP~CQ`k?8Ke=kQ(3pq}LLi)VyPU6a zSD4tJ&8X~&{z8ShKSlICKPs@H;TwMbS{og^jpF>uKeu;QMqTdb)I5?PVZD`DE?-d* zakJ>4NkOZ%X!+P|z!R*H)nFTlMK`SuJyZg~wQ%bn#``0G#D(xr2u~mZLbkRL-+cYb>kH75L#6_=(gT3j3u_$AE7r*Hj8S`YaClwCr znlU2%X@n&beMGF31x|5r8rD3z#vP+?VKLjhx>Y`bRO7Yj(C=RKs~)!X$goRjrxq8d zsHtBG*@^-o59wK%a>beN`kI=Wg|~yo-D@*V+8w9L1W0fTB&uxIRU+(9T2mzPpdb~r zD9GCJ;zP)=7~KCo#9iQ3p{M}an?vw+_xLMdLfxR9E$gI+Oj82z_6aa#t`?Oz^T(U8c=No4HA-t1LI zAU^r0TnT&`msYpq5b9`}gQm@Vx4iUBLi)9MS50S8O|PO4Op>%{+c5fuwJ^{!Unt-w z%wAD(s(*;4KKbL@Vp{zKZ9BiH7}~Jkt6nfW>qRlR=&*pLPA*R}n@^jGIX(N`_S3iU z1W!Ujd^&1Dax&$`PhssRIUfuj`YNFo|3r?K*hD|P2eBO=w(dqi@YM|sh3!ksfVHO9 z;IIu+Q0(G6%E0!p6ZU#cg@Eb%zK954YX0I7Ia|@qn;aUoGFWq!U`^8#7S_HHVg4vQ z-^^EVIE92cx~!PV^2cIyW)_nMzLhye*_PI1F89QiU@AYY46nDGgCqNtWRy>^O``jG zW8H|yc7p^2pwLY{X4m>mU6U|SC;aW)ITE_D?S9Fg#K!}dj~a9xbYm5)+B3-m)-&x` z0WtIS>sww)x3O6vGNtUF9&Wd{#S2mzpa!C|Lcl$ANeMhY(}{q&x*XRhh$L$N{C>TrjMBEmwjQvgU>r>K z4zeBikvSUG^?9fL2cMeSDPjT^n-GSkn&3)H>w-63srG&W0h5hxxk|B(v9w)WiJ!Rk zMls$fiiJz~fvSHF3_Pg40py8!8UNZQT7V9yw^K}Wv9eOSKtEFEej2+wMe%2(v~bca}hhSHZJ7j{@A4QJI_S3122S zM%%NzMC-S66_u27aWO`1MlOLGnwq(L&o}8hOD5Y33s|gy8u0rG{SZd2AM{hVazO!) z;Y_EqwAgVLwzKtX&-fnH_`1>H()ZWj0Gc$EB~?Kf7uk)Sg9v18rg~`MXf0{|Ma;v& z#cee~;qmd^2`L&{Q`5vBm*!MLSN0qxe5Kh$DXEQ8=!GEg{8qDnP@TmwuxMM`oTFj* z+i1h*^CeEfk5wChUD-dsy;FI3`Qp>}nQ+)uOcc~&um>|jz1m(F%@T2R^zf>M1g%bB z>bQqeXA^eJJIV>Yp z|52U)%A@Ni@VKX}kw;g&nVX2ml;Yqj&KJ~oC!Qe^w9|)pEvHVl^c>5c4Qmn*Y7F?p zK(y3OGenK}deK#CpzAuFL>#owlx-Ye|SJFVjfisWpOA7^C>q?Ar8G-_X_;-Ro}-F2sdy_2D39qKNtLQ(qBf z>+w*CHS0+r%lUpRnKi24O+PF0bvnK8^^8zV%QS=09uMwx7M6qJOP$N>Cv!FRM7iYD zNi%yVx@TQgc1UuVd*RwM*|kN#70DJ;dXs#LjU?xMpS_ltnxK2vdG6kwIg_})E}~}_ zczu%6RpY;hT`XO0mSQ85jKm6@6?kppA$Vc!bp3U7;GmYPK*Xc^+YDV@nXYvme%U38 zTYO9QVu(L|X)BAkvbXmo{FeOFUo9|vCnl$lhLaMXqy?ZomqwM&eLMZo@(hda5|fLB ziWOoP<(Vo=?Ue2ngek*;gRR%hjG@zrZpu5>tjLI}iUyn5aJ zJO5R!jr5dH7&GRanY6OP_aQev`QcUf{b2Rrn1;1Y3{fQM!^;rG8~A^cpn1n*04|92 zee|7rLkbl$k7p(dpn*NPW!r=WY))!bPZ;}B= QcnJUi-!suI)p`8vA3}Sp#{d8T literal 7244 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 a8vY+SuQAA8sa|UU0000 Date: Tue, 26 Aug 2025 11:53:36 +0800 Subject: [PATCH 7/9] Moved file --- quadlet/quadlet.container | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 quadlet/quadlet.container diff --git a/quadlet/quadlet.container b/quadlet/quadlet.container deleted file mode 100644 index ef4590e..0000000 --- a/quadlet/quadlet.container +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=FWT - -[Container] -ContainerName=fwt -Image=localhost/fwt -PublishPort=8080:8080 - -[Service] -Restart=always - -[Install] -WantedBy=multi-user.target default.target \ No newline at end of file From 1320d58c4a60826dc7ebffa4222b6cefc255ccce Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:53:58 +0800 Subject: [PATCH 8/9] Added test file --- src/pages/tests/index.spec.ts | 20 ++++++++++++++++++++ src/pages/tests/next.spec.ts | 0 2 files changed, 20 insertions(+) create mode 100644 src/pages/tests/index.spec.ts create mode 100644 src/pages/tests/next.spec.ts diff --git a/src/pages/tests/index.spec.ts b/src/pages/tests/index.spec.ts new file mode 100644 index 0000000..27fa49a --- /dev/null +++ b/src/pages/tests/index.spec.ts @@ -0,0 +1,20 @@ +import { test, expect } from '@playwright/test' + +test('page loaded correctly', async ({ page }) => { + await page.goto('http://localhost:4321') + + await expect(page).toHaveTitle('Home') + + const descriptionMeta = await page.getAttribute('meta[name="name"]', 'content') + expect(descriptionMeta).toBe('Template') + + const keywordsMeta = await page.getAttribute('meta[name="description"]', 'content') + expect(keywordsMeta).toBe('This is just a template.') +}) + +test('header title is visible and contains correct text', async ({ page }) => { + await page.goto('http://localhost:4321') + + const headerTitle = await page.textContent('h1') + expect(headerTitle).toBe('Main Page') +}) diff --git a/src/pages/tests/next.spec.ts b/src/pages/tests/next.spec.ts new file mode 100644 index 0000000..e69de29 From 3cc94b18a6028b6fa67352626f644d4a7fc3e763 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Tue, 26 Aug 2025 11:54:05 +0800 Subject: [PATCH 9/9] Moved files --- src/builtin-components/Background/Background.test.ts | 0 src/builtin-components/Button/Button.test.ts | 0 src/builtin-components/Button/Button.tsx | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 src/builtin-components/Background/Background.test.ts create mode 100644 src/builtin-components/Button/Button.test.ts diff --git a/src/builtin-components/Background/Background.test.ts b/src/builtin-components/Background/Background.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/builtin-components/Button/Button.test.ts b/src/builtin-components/Button/Button.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/builtin-components/Button/Button.tsx b/src/builtin-components/Button/Button.tsx index 89887d2..33adc78 100644 --- a/src/builtin-components/Button/Button.tsx +++ b/src/builtin-components/Button/Button.tsx @@ -8,7 +8,8 @@ interface Props { } export default (props: Props) => { - return <> + return + <> @@ -18,6 +19,5 @@ export default (props: Props) => { - } \ No newline at end of file