Compare commits

...

6 commits

1599 changed files with 19298 additions and 395 deletions

View file

@ -24,11 +24,11 @@
"@sentry/core": "^10.50.0", "@sentry/core": "^10.50.0",
"@types/bun": "^1.3.13", "@types/bun": "^1.3.13",
"@types/node": "^25.6.0", "@types/node": "^25.6.0",
"@typescript/native-preview": "7.0.0-dev.20260423.1", "@typescript/native-preview": "7.0.0-dev.20260427.1",
"@vitejs/plugin-legacy": "^8.0.1", "@vitejs/plugin-legacy": "^8.0.1",
"better-typescript-lib": "^2.12.0", "better-typescript-lib": "^2.12.0",
"browserslist": "^4.28.2", "browserslist": "^4.28.2",
"caniuse-lite": "^1.0.30001790", "caniuse-lite": "^1.0.30001791",
"eslint": "^10.2.1", "eslint": "^10.2.1",
"eslint-plugin-functional": "^9.0.4", "eslint-plugin-functional": "^9.0.4",
"eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-jsx-a11y": "^6.10.2",
@ -37,11 +37,11 @@
"fdir": "^6.5.0", "fdir": "^6.5.0",
"globals": "^17.5.0", "globals": "^17.5.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"knip": "^6.6.2", "knip": "^6.7.0",
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"lightningcss-cli": "^1.32.0", "lightningcss-cli": "^1.32.0",
"oxlint": "^1.61.0", "oxlint": "^1.61.0",
"oxlint-tsgolint": "^0.21.1", "oxlint-tsgolint": "^0.22.0",
"playwright": "^1.59.1", "playwright": "^1.59.1",
"prettier": "^3.8.3", "prettier": "^3.8.3",
"prettier-plugin-pkg": "^0.22.1", "prettier-plugin-pkg": "^0.22.1",
@ -447,55 +447,55 @@
"@oxc-resolver/binding-win32-x64-msvc": ["@oxc-resolver/binding-win32-x64-msvc@11.19.1", "", { "os": "win32", "cpu": "x64" }, "sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw=="], "@oxc-resolver/binding-win32-x64-msvc": ["@oxc-resolver/binding-win32-x64-msvc@11.19.1", "", { "os": "win32", "cpu": "x64" }, "sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw=="],
"@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.21.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-7TLjyWe4wG9saJc992VWmaHq2hwKfOEEVTjheReXJXaDhavMZI4X9a6nKhbEng4IVkYtzjD2jw16vw2WFXLYLw=="], "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.22.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-/exgXceakHbQrzaHTtKOe7MuDATaWMCCWpsCDQCZKeYhLGXzComipTrCYnHzAXrdnNBb5r5K+RRf5A6ormrhMA=="],
"@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.21.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-7wf9Wf75nTzA7zpL9myhFe2RKvfuqGUOADNvUooCjEWvh7hmPz3lSEqTMh5Z/VQhzsG04mM9ACyghxhRzq7zFw=="], "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.22.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-xFGdIahlmUbK+/MpZ5y08D0ewMGLDbd2Vki5wxVFYg50lSrtgPAtdDl+kqKZLNaFu0zpMar8n9wv1le05sL/jw=="],
"@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.21.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-IPuQN/Vd0Rjklg/cCGBbQyUuRBp2f6LQXpZYwk5ivOR6V/+CgiYsv8pn/PVY7gjeyoNvPQrXB7xMjHUO2YZbdw=="], "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.22.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-53RvC9f77eUo+V1dfQNwGVnsIfPJFMibRR0ee128EUpYNDOZe/ojmCfuXJeU7cY91V7r7fZSm42KPJocXUX8og=="],
"@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.21.1", "", { "os": "linux", "cpu": "x64" }, "sha512-d1niGuTbh2qiv7dR7tqkbOcM5cIR63of0lMBFdEQavL1KrJV8zuRdwdi68K7MNGdgoR+J5A9ajpGGvsHwp1bPg=="], "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.22.0", "", { "os": "linux", "cpu": "x64" }, "sha512-evZcJAZ9hjNyuN69RnXwbt+U2pAOcYt+yvqukgugiCkRm4iBZ0R0CvpY1tgfG2XcGUhEPh8dljO+nPZTEVGpCQ=="],
"@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.21.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-ICu9y2JLnFPvFqstnWPPNqBM8LK8BWw2OTeaR0UgEMm4hOSbrZAKv1/hwZYyiLqnCNjBL87AGSQIgTHCYlsipw=="], "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.22.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-7jTO+k1mr5BxRAI2fxc1NRcE3MAbHNZ0Vef9SD1yAR6d1E6qEv5D/D7yuHpQpw6AO3qoecSVo2Jzr+JirN61+w=="],
"@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.21.1", "", { "os": "win32", "cpu": "x64" }, "sha512-cTEFCFjCj6iXfrSHcvajSPNqhEA4TxSzU3gFxbdGSAUTNXGToU99IbdhWAPSbhcucoym0XE4Zl7E41NiSkNTug=="], "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.22.0", "", { "os": "win32", "cpu": "x64" }, "sha512-7lbl9XFcqO+scsynxMzTQdl0XUe6sBUCyY/oGWvCB+JmV4U+70vzSyZJdTEzzxtkZiNnUVFFh9RJLmoiQSne+w=="],
"@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.61.0", "", { "os": "android", "cpu": "arm" }, "sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ=="], "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.62.0", "", { "os": "android", "cpu": "arm" }, "sha512-pKsthNECyvJh8lPTICz6VcwVy2jOqdhhsp1rlxCkhgZR47aKvXPmaRWQDv+zlXpRae4qm1MaaTnutkaOk5aofg=="],
"@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.61.0", "", { "os": "android", "cpu": "arm64" }, "sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA=="], "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.62.0", "", { "os": "android", "cpu": "arm64" }, "sha512-b1AUNViByvgmR2xJDubvLIr+dSuu3uraG7bsAoKo+xrpspPvu6RIn6Fhr2JUhobfep3jwUTy18Huco6GkwdvGQ=="],
"@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.61.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A=="], "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.62.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-iG+Tvf70UJ6otfwFYIHk36Sjq9cpPP5YLxkoggANNRtzgi3Tj3g8q6Ybqi6AtkU3+yg9QwF7bDCkCS6bbL4PCg=="],
"@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.61.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ=="], "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.62.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-oOWI6YPPr5AJUx+yIDlxmuUbQjS5gZX3OH3QisawYvsZgLiQVvZtR0rPBcJTxLWqt2ClrWg0DlSrlUiG5SQNHg=="],
"@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.61.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ=="], "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.62.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dLP33T7VLCmLVv4cvjkVX+rmkcwNk2UfxmsZPNur/7BQHoQR60zJ7XLiRvNUawlzn0u8ngCa3itjEG73MAMa/w=="],
"@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.61.0", "", { "os": "linux", "cpu": "arm" }, "sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q=="], "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.62.0", "", { "os": "linux", "cpu": "arm" }, "sha512-fl//LWNks6qo9chNY60UDYyIwtp7a5cEx4Y/rHPjaarhuwqx6jtbzEpD5V5AqmdL4a6Y5D8zeXg5HF2Cr0QmSQ=="],
"@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.61.0", "", { "os": "linux", "cpu": "arm" }, "sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg=="], "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.62.0", "", { "os": "linux", "cpu": "arm" }, "sha512-i5vkAuxvueTODV3J2dL61/TXewDHhMFKvtD156cIsk7GsdfiAu7zW7kY0NJXhKeFHeiMZIh7eFNjkPYH6J47HQ=="],
"@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.61.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w=="], "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.62.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-QwN19LLuIGuOjEflSeJkZmOTfBdBMlTmW8xbMf8TZhjd//cxVNYQPq75q7oKZBJc6hRx3gY7sX0Egc8cEIFZYg=="],
"@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.61.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg=="], "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.62.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-8eCy3FCDuWUM5hWujAv6heMvfZPbcCOU3SdQUAkixZLu5bSzOkNfirJiLGoQFO943xceOKkiQRMQNzH++jM3WA=="],
"@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.61.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ=="], "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.62.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NjQ7K7tpTPDe9J+yq8p/s/J0E7lRCkK2uDBDqvT4XIT6f4Z0tlnr59OBg/WcrmVHER1AbrcfyxhGTXgcG8ytWg=="],
"@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.61.0", "", { "os": "linux", "cpu": "none" }, "sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw=="], "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.62.0", "", { "os": "linux", "cpu": "none" }, "sha512-oKZed9gmSwze29dEt3/Wnsv6l/Ygw/FUst+8Kfpv2SGeS/glEoTGZAMQw37SVyzFV76UTHJN2snGgxK2t2+8ow=="],
"@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.61.0", "", { "os": "linux", "cpu": "none" }, "sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA=="], "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.62.0", "", { "os": "linux", "cpu": "none" }, "sha512-gBjBxQ+9lGpAYq+ELqw0w8QXsBnkZclFc7GRX2r0LnEVn3ZTEqeIKpKcGjucmp76Q53bvJD0i4qBWBhcfhSfGA=="],
"@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.61.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA=="], "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.62.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-Ew2Kxs9EQ9/mbAIJ2hvocMC0wsOu6YKzStI2eFBDt+Td5O8seVC/oxgRIHqCcl5sf5ratA1nozQBAuv7tphkHg=="],
"@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.61.0", "", { "os": "linux", "cpu": "x64" }, "sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA=="], "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.62.0", "", { "os": "linux", "cpu": "x64" }, "sha512-5z25jcAA0gfKyVwz71A0VXgaPlocPoTAxhlv/hgoK6tlCrfoNuw7haWbDHvGMfjXhdic4EqVXGRv5XsTqFnbRQ=="],
"@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.61.0", "", { "os": "linux", "cpu": "x64" }, "sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ=="], "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.62.0", "", { "os": "linux", "cpu": "x64" }, "sha512-IWpHmMB6ZDllPvqWDkG6AmXrN7JF5e/c4g/0PuURsmlK+vHoYZPB70rr4u1bn3I4LsKCSpqqfveyx6UCOC8wdg=="],
"@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.61.0", "", { "os": "none", "cpu": "arm64" }, "sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ=="], "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.62.0", "", { "os": "none", "cpu": "arm64" }, "sha512-fjlSxxrD5pA594vkyikCS9MnPRjQawW6/BLgyTYkO+73wwPlYjkcZ7LSd974l0Q2zkHQmu4DPvJFLYA7o8xrxQ=="],
"@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.61.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w=="], "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.62.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-EiFXr8loNS0Ul3Gu80+9nr1T8jRmnKocqmHHg16tj5ZqTgUXyb97l2rrspVHdDluyFn9JfR4PoJFdNzw4paHww=="],
"@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.61.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA=="], "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.62.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-IgOFvL73li1bFgab+hThXYA0N2Xms2kV2MvZN95cebV+fmrZ9AVui1JSxfeeqRLo3CpPxKZlzhyq4G0cnaAvIw=="],
"@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.61.0", "", { "os": "win32", "cpu": "x64" }, "sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw=="], "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.62.0", "", { "os": "win32", "cpu": "x64" }, "sha512-6hMpyDWQ2zGA1OXFKBrdYMUveUCO8UJhkO6JdwZPd78xIdHZNhjx+pib+4fC2Cljuhjyl0QwA2F3df/bs4Bp6A=="],
"@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="], "@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="],
@ -659,21 +659,21 @@
"@typescript/lib-webworker": ["@better-typescript-lib/webworker@2.12.0", "", { "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-YktWJCUYdrRORhd4NgnPZCEzElDglPZzVnfkxGNmEhPpFE1W6ThKDQqkvMZapf3T+0xGeDqJx9V4xhFNnv56Xw=="], "@typescript/lib-webworker": ["@better-typescript-lib/webworker@2.12.0", "", { "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-YktWJCUYdrRORhd4NgnPZCEzElDglPZzVnfkxGNmEhPpFE1W6ThKDQqkvMZapf3T+0xGeDqJx9V4xhFNnv56Xw=="],
"@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260423.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260423.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260423.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260423.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260423.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260423.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260423.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260423.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-9WD7TJJlGvt9PQqJI/+44dVP4oqGQFIkYrpXt7nlQ0WgNIErN52x/XhxmJ4nWft06qejgPiUbPo4aYRNOmIHXg=="], "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260427.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260427.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260427.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260427.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260427.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260427.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260427.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260427.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-g6L7hed1Y2OGwAzZ+vXoGSvtJUdWUtTqtsn/16+UjYbu3+6pol0cggdWj26SFxI41R+jLfnT2+JGtoXRBdH+RQ=="],
"@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260423.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-wbLr6o5fROaCYt6cOpFhbe92FJAOdhAHwm/s8I/IyN5HbL1ULgel/wHaZiR+ws+27rgruNUiCENzTUg9vSz2bA=="], "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260427.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-8zxaaEgIpHSadCoCAvUsp0C6WDH0dUXix7Mm7IBjh+EhSxI2clhXwPZTqgtDqbowXHeE82BG5mBbQx+CXDwGOQ=="],
"@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260423.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-13MpNT+4MgkgrfiW2u03rnER5aB3yz9fA0bWEYh6IH3rIqA2AR3Dntp3QXW4sQrZf0SriXqHe2R7X3HCT5xmqA=="], "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260427.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-6MjekGfajPtny/bBoBYJ+8dTOlgw6nhSSgJ3Us4R/4L8R90ll803Krz+iz907r1SnYeK5eWubDMV/p1ryLNXkQ=="],
"@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260423.1", "", { "os": "linux", "cpu": "arm" }, "sha512-CxUA15qbPQRvz2nanBpiv1h4tgXTCJJwqOtgKMSdIuPkow8dyYW3ba5oLoH/jZhS4792XislX659hlFrfiU6CQ=="], "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260427.1", "", { "os": "linux", "cpu": "arm" }, "sha512-3bhv/NxU9FHIN3MSmoplIAkIHF62mlF9l5XooAFawwj8yscvPZih/m5fkYIiP5qGri3828XwGyT1Cksaft6FWQ=="],
"@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260423.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-ICIkJDTqmn0R4Vs811+Ht2RYTk1OCrAhHCu0JthmhR216T1Tqgi5DWRoCprp3RL1qU6fLnxxrIpEbNlNN7XFYA=="], "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260427.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-a1yG/vrLaN3dORvaMuNqXz5jcTaTEPBfhmq77vzqRn8As7EdqxtizPosfxB9K1s7PEB8NeGQKqHEQroPUCsPFg=="],
"@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260423.1", "", { "os": "linux", "cpu": "x64" }, "sha512-cWLFS4R8dOU1YuUJ/2VLeGMVIjgI3GGb/f9rRY5MbWHq5l3NNZh8y1QwAOrTh3+g3q6+znArfxVnD2hZHUz8Mw=="], "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260427.1", "", { "os": "linux", "cpu": "x64" }, "sha512-lqaA9oF9ZSw1jn87+Ncxo0Sf0d65eVXMjAD0z44ne7QKFRgWd+QpvK4AXAG4lxnFR+XdndWlVm6O1/tdvcG7xQ=="],
"@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260423.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-OWaGUI4+dHqYZv+k6sITx9Y27FNy3XzNFk4OrOiYtBkIO/xrb9TPMP4A5XI4n5zwRLIv3xne9g039xgRbaeyoQ=="], "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260427.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-ZGXRDC0WPVK/Ky2fZRhy2EcNmdHg22biVYWcWgOUK5tCbJd/KJs3VXk758gn0UbFHEQAR5d7dsvDucCCjZkWpA=="],
"@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260423.1", "", { "os": "win32", "cpu": "x64" }, "sha512-5MQjO/qdLwXpjW7Dy/1lNv7Vtpvo6bhCkbjan4PoRN5/eeyqEqDWxdf8AGE4btLmHqyIjEHRuYf7kp2tlAr6lQ=="], "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260427.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Ut4Hncq1IuSeNIfcPs1s719j8H3ZA+ogsJ53W3s/Wy1UF5BIhu5Hkspdc7TzGgJgYqGJKo/+pr4vsRnbBPdWgQ=="],
"@vitejs/plugin-legacy": ["@vitejs/plugin-legacy@8.0.1", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/preset-env": "^7.29.2", "babel-plugin-polyfill-corejs3": "^0.14.2", "babel-plugin-polyfill-regenerator": "^0.6.8", "browserslist": "^4.28.1", "browserslist-to-esbuild": "^2.1.1", "core-js": "^3.49.0", "magic-string": "^0.30.21", "regenerator-runtime": "^0.14.1", "systemjs": "^6.15.1" }, "peerDependencies": { "terser": "^5.16.0", "vite": "^8.0.0" } }, "sha512-8zeDeuNPqXd49rIVgFgluQYB8vQICHR7l+W2I3CxYK4gTjTorajVr0wLvSjALIwEwLRxBn68EgNVyGP4j6hP7w=="], "@vitejs/plugin-legacy": ["@vitejs/plugin-legacy@8.0.1", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/preset-env": "^7.29.2", "babel-plugin-polyfill-corejs3": "^0.14.2", "babel-plugin-polyfill-regenerator": "^0.6.8", "browserslist": "^4.28.1", "browserslist-to-esbuild": "^2.1.1", "core-js": "^3.49.0", "magic-string": "^0.30.21", "regenerator-runtime": "^0.14.1", "systemjs": "^6.15.1" }, "peerDependencies": { "terser": "^5.16.0", "vite": "^8.0.0" } }, "sha512-8zeDeuNPqXd49rIVgFgluQYB8vQICHR7l+W2I3CxYK4gTjTorajVr0wLvSjALIwEwLRxBn68EgNVyGP4j6hP7w=="],
@ -729,7 +729,7 @@
"balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="],
"baseline-browser-mapping": ["baseline-browser-mapping@2.10.21", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-Q+rUQ7Uz8AHM7DEaNdwvfFCTq7a43lNTzuS94eiWqwyxfV/wJv+oUivef51T91mmRY4d4A1u9rcSvkeufCVXlA=="], "baseline-browser-mapping": ["baseline-browser-mapping@2.10.23", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-xwVXGqevyKPsiuQdLj+dZMVjidjJV508TBqexND5HrF89cGdCYCJFB3qhcxRHSeMctdCfbR1jrxBajhDy7o29g=="],
"better-typescript-lib": ["better-typescript-lib@2.12.0", "", { "dependencies": { "@typescript/lib-decorators": "npm:@better-typescript-lib/decorators@2.12.0", "@typescript/lib-dom": "npm:@better-typescript-lib/dom@2.12.0", "@typescript/lib-es2015": "npm:@better-typescript-lib/es2015@2.12.0", "@typescript/lib-es2016": "npm:@better-typescript-lib/es2016@2.12.0", "@typescript/lib-es2017": "npm:@better-typescript-lib/es2017@2.12.0", "@typescript/lib-es2018": "npm:@better-typescript-lib/es2018@2.12.0", "@typescript/lib-es2019": "npm:@better-typescript-lib/es2019@2.12.0", "@typescript/lib-es2020": "npm:@better-typescript-lib/es2020@2.12.0", "@typescript/lib-es2021": "npm:@better-typescript-lib/es2021@2.12.0", "@typescript/lib-es2022": "npm:@better-typescript-lib/es2022@2.12.0", "@typescript/lib-es2023": "npm:@better-typescript-lib/es2023@2.12.0", "@typescript/lib-es2024": "npm:@better-typescript-lib/es2024@2.12.0", "@typescript/lib-es5": "npm:@better-typescript-lib/es5@2.12.0", "@typescript/lib-es6": "npm:@better-typescript-lib/es6@2.12.0", "@typescript/lib-esnext": "npm:@better-typescript-lib/esnext@2.12.0", "@typescript/lib-scripthost": "npm:@better-typescript-lib/scripthost@2.12.0", "@typescript/lib-webworker": "npm:@better-typescript-lib/webworker@2.12.0" }, "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-f7eO5Xs6Cczfx5eDRuDw/JYCrsdiC6gXdleB2KFZ5ZYgU/RRoev9swjt/eD0xo9PRDqNDwyjKx0n27CDHRZwvQ=="], "better-typescript-lib": ["better-typescript-lib@2.12.0", "", { "dependencies": { "@typescript/lib-decorators": "npm:@better-typescript-lib/decorators@2.12.0", "@typescript/lib-dom": "npm:@better-typescript-lib/dom@2.12.0", "@typescript/lib-es2015": "npm:@better-typescript-lib/es2015@2.12.0", "@typescript/lib-es2016": "npm:@better-typescript-lib/es2016@2.12.0", "@typescript/lib-es2017": "npm:@better-typescript-lib/es2017@2.12.0", "@typescript/lib-es2018": "npm:@better-typescript-lib/es2018@2.12.0", "@typescript/lib-es2019": "npm:@better-typescript-lib/es2019@2.12.0", "@typescript/lib-es2020": "npm:@better-typescript-lib/es2020@2.12.0", "@typescript/lib-es2021": "npm:@better-typescript-lib/es2021@2.12.0", "@typescript/lib-es2022": "npm:@better-typescript-lib/es2022@2.12.0", "@typescript/lib-es2023": "npm:@better-typescript-lib/es2023@2.12.0", "@typescript/lib-es2024": "npm:@better-typescript-lib/es2024@2.12.0", "@typescript/lib-es5": "npm:@better-typescript-lib/es5@2.12.0", "@typescript/lib-es6": "npm:@better-typescript-lib/es6@2.12.0", "@typescript/lib-esnext": "npm:@better-typescript-lib/esnext@2.12.0", "@typescript/lib-scripthost": "npm:@better-typescript-lib/scripthost@2.12.0", "@typescript/lib-webworker": "npm:@better-typescript-lib/webworker@2.12.0" }, "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-f7eO5Xs6Cczfx5eDRuDw/JYCrsdiC6gXdleB2KFZ5ZYgU/RRoev9swjt/eD0xo9PRDqNDwyjKx0n27CDHRZwvQ=="],
@ -761,7 +761,7 @@
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
"caniuse-lite": ["caniuse-lite@1.0.30001790", "", {}, "sha512-bOoxfJPyYo+ds6W0YfptaCWbFnJYjh2Y1Eow5lRv+vI2u8ganPZqNm1JwNh0t2ELQCqIWg4B3dWEusgAmsoyOw=="], "caniuse-lite": ["caniuse-lite@1.0.30001791", "", {}, "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ=="],
"change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="],
@ -1111,7 +1111,7 @@
"kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="],
"knip": ["knip@6.6.2", "", { "dependencies": { "fdir": "^6.5.0", "formatly": "^0.3.0", "get-tsconfig": "4.14.0", "jiti": "^2.6.0", "minimist": "^1.2.8", "oxc-parser": "^0.127.0", "oxc-resolver": "^11.19.1", "picomatch": "^4.0.4", "smol-toml": "^1.6.1", "strip-json-comments": "5.0.3", "tinyglobby": "^0.2.16", "unbash": "^3.0.0", "yaml": "^2.8.2", "zod": "^4.1.11" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-ma2p+SvgIs1GZZLUV9QJrLkb9gGNBQHk7fcrtt3aVhiW2XEXH/yfMOU88F7ZdriYuBYkB53djPNYMWb2pKVl/g=="], "knip": ["knip@6.7.0", "", { "dependencies": { "fdir": "^6.5.0", "formatly": "^0.3.0", "get-tsconfig": "4.14.0", "jiti": "^2.6.0", "minimist": "^1.2.8", "oxc-parser": "^0.127.0", "oxc-resolver": "^11.19.1", "picomatch": "^4.0.4", "smol-toml": "^1.6.1", "strip-json-comments": "5.0.3", "tinyglobby": "^0.2.16", "unbash": "^3.0.0", "yaml": "^2.8.2", "zod": "^4.1.11" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-ckL51NDH1YJxnv1kNB0iUdDngB4f/e9Igz8uIqYfmNDoyOFmmk1V0WFv3LQ7/hzC63b2Z9X41gGUE9eOWrZpaA=="],
"known-css-properties": ["known-css-properties@0.37.0", "", {}, "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ=="], "known-css-properties": ["known-css-properties@0.37.0", "", {}, "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ=="],
@ -1291,9 +1291,9 @@
"oxc-resolver": ["oxc-resolver@11.19.1", "", { "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.19.1", "@oxc-resolver/binding-android-arm64": "11.19.1", "@oxc-resolver/binding-darwin-arm64": "11.19.1", "@oxc-resolver/binding-darwin-x64": "11.19.1", "@oxc-resolver/binding-freebsd-x64": "11.19.1", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.19.1", "@oxc-resolver/binding-linux-arm-musleabihf": "11.19.1", "@oxc-resolver/binding-linux-arm64-gnu": "11.19.1", "@oxc-resolver/binding-linux-arm64-musl": "11.19.1", "@oxc-resolver/binding-linux-ppc64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-musl": "11.19.1", "@oxc-resolver/binding-linux-s390x-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-musl": "11.19.1", "@oxc-resolver/binding-openharmony-arm64": "11.19.1", "@oxc-resolver/binding-wasm32-wasi": "11.19.1", "@oxc-resolver/binding-win32-arm64-msvc": "11.19.1", "@oxc-resolver/binding-win32-ia32-msvc": "11.19.1", "@oxc-resolver/binding-win32-x64-msvc": "11.19.1" } }, "sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg=="], "oxc-resolver": ["oxc-resolver@11.19.1", "", { "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.19.1", "@oxc-resolver/binding-android-arm64": "11.19.1", "@oxc-resolver/binding-darwin-arm64": "11.19.1", "@oxc-resolver/binding-darwin-x64": "11.19.1", "@oxc-resolver/binding-freebsd-x64": "11.19.1", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.19.1", "@oxc-resolver/binding-linux-arm-musleabihf": "11.19.1", "@oxc-resolver/binding-linux-arm64-gnu": "11.19.1", "@oxc-resolver/binding-linux-arm64-musl": "11.19.1", "@oxc-resolver/binding-linux-ppc64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-gnu": "11.19.1", "@oxc-resolver/binding-linux-riscv64-musl": "11.19.1", "@oxc-resolver/binding-linux-s390x-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-gnu": "11.19.1", "@oxc-resolver/binding-linux-x64-musl": "11.19.1", "@oxc-resolver/binding-openharmony-arm64": "11.19.1", "@oxc-resolver/binding-wasm32-wasi": "11.19.1", "@oxc-resolver/binding-win32-arm64-msvc": "11.19.1", "@oxc-resolver/binding-win32-ia32-msvc": "11.19.1", "@oxc-resolver/binding-win32-x64-msvc": "11.19.1" } }, "sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg=="],
"oxlint": ["oxlint@1.61.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.61.0", "@oxlint/binding-android-arm64": "1.61.0", "@oxlint/binding-darwin-arm64": "1.61.0", "@oxlint/binding-darwin-x64": "1.61.0", "@oxlint/binding-freebsd-x64": "1.61.0", "@oxlint/binding-linux-arm-gnueabihf": "1.61.0", "@oxlint/binding-linux-arm-musleabihf": "1.61.0", "@oxlint/binding-linux-arm64-gnu": "1.61.0", "@oxlint/binding-linux-arm64-musl": "1.61.0", "@oxlint/binding-linux-ppc64-gnu": "1.61.0", "@oxlint/binding-linux-riscv64-gnu": "1.61.0", "@oxlint/binding-linux-riscv64-musl": "1.61.0", "@oxlint/binding-linux-s390x-gnu": "1.61.0", "@oxlint/binding-linux-x64-gnu": "1.61.0", "@oxlint/binding-linux-x64-musl": "1.61.0", "@oxlint/binding-openharmony-arm64": "1.61.0", "@oxlint/binding-win32-arm64-msvc": "1.61.0", "@oxlint/binding-win32-ia32-msvc": "1.61.0", "@oxlint/binding-win32-x64-msvc": "1.61.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ=="], "oxlint": ["oxlint@1.62.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.62.0", "@oxlint/binding-android-arm64": "1.62.0", "@oxlint/binding-darwin-arm64": "1.62.0", "@oxlint/binding-darwin-x64": "1.62.0", "@oxlint/binding-freebsd-x64": "1.62.0", "@oxlint/binding-linux-arm-gnueabihf": "1.62.0", "@oxlint/binding-linux-arm-musleabihf": "1.62.0", "@oxlint/binding-linux-arm64-gnu": "1.62.0", "@oxlint/binding-linux-arm64-musl": "1.62.0", "@oxlint/binding-linux-ppc64-gnu": "1.62.0", "@oxlint/binding-linux-riscv64-gnu": "1.62.0", "@oxlint/binding-linux-riscv64-musl": "1.62.0", "@oxlint/binding-linux-s390x-gnu": "1.62.0", "@oxlint/binding-linux-x64-gnu": "1.62.0", "@oxlint/binding-linux-x64-musl": "1.62.0", "@oxlint/binding-openharmony-arm64": "1.62.0", "@oxlint/binding-win32-arm64-msvc": "1.62.0", "@oxlint/binding-win32-ia32-msvc": "1.62.0", "@oxlint/binding-win32-x64-msvc": "1.62.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-1uFkg6HakjsGIpW9wNdeW4/2LOHW9MEkoWjZUTUfQtIHyLIZPYt00w3Sg+H3lH+206FgBPHBbW5dVE5l2ExECQ=="],
"oxlint-tsgolint": ["oxlint-tsgolint@0.21.1", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.21.1", "@oxlint-tsgolint/darwin-x64": "0.21.1", "@oxlint-tsgolint/linux-arm64": "0.21.1", "@oxlint-tsgolint/linux-x64": "0.21.1", "@oxlint-tsgolint/win32-arm64": "0.21.1", "@oxlint-tsgolint/win32-x64": "0.21.1" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw=="], "oxlint-tsgolint": ["oxlint-tsgolint@0.22.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.22.0", "@oxlint-tsgolint/darwin-x64": "0.22.0", "@oxlint-tsgolint/linux-arm64": "0.22.0", "@oxlint-tsgolint/linux-x64": "0.22.0", "@oxlint-tsgolint/win32-arm64": "0.22.0", "@oxlint-tsgolint/win32-x64": "0.22.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-ku4MecLmCQIj1ScCtzNAqTuyl0BJQ02B36fJT+c5XQihHpYSFak+FC3GYO5fPyYk4oDwi0w0S7hTvrpNzuZhig=="],
"p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
@ -1325,7 +1325,7 @@
"possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="],
"postcss": ["postcss@8.5.10", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ=="], "postcss": ["postcss@8.5.12", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA=="],
"postcss-media-query-parser": ["postcss-media-query-parser@0.2.3", "", {}, "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig=="], "postcss-media-query-parser": ["postcss-media-query-parser@0.2.3", "", {}, "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig=="],
@ -1501,7 +1501,7 @@
"stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="],
"string-width": ["string-width@8.2.0", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw=="], "string-width": ["string-width@8.2.1", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA=="],
"string.prototype.includes": ["string.prototype.includes@2.0.1", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3" } }, "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg=="], "string.prototype.includes": ["string.prototype.includes@2.0.1", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3" } }, "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg=="],
@ -1711,17 +1711,19 @@
"micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="],
"qified/hookified": ["hookified@2.1.1", "", {}, "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA=="], "qified/hookified": ["hookified@2.2.0", "", {}, "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA=="],
"stylelint/file-entry-cache": ["file-entry-cache@11.1.2", "", { "dependencies": { "flat-cache": "^6.1.20" } }, "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log=="], "stylelint/file-entry-cache": ["file-entry-cache@11.1.2", "", { "dependencies": { "flat-cache": "^6.1.20" } }, "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log=="],
"stylelint/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], "stylelint/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
"stylelint-scss/mdn-data": ["mdn-data@2.28.0", "", {}, "sha512-uy9AS1yt+wW5eUEefgE3lOpqPghanUttycV0GXKbiXyBjwvbeE8XPj4u1C+voRfz7dEjwU4NDHTMfZ/s/JtZrQ=="],
"supports-hyperlinks/has-flag": ["has-flag@5.0.1", "", {}, "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA=="], "supports-hyperlinks/has-flag": ["has-flag@5.0.1", "", {}, "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA=="],
"supports-hyperlinks/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], "supports-hyperlinks/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
"table/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], "table/ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="],
"table/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "table/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],

View file

@ -27,11 +27,15 @@ const stylelintConfig: stylelint.Config = {
"@stylistic/function-parentheses-space-inside": undefined, "@stylistic/function-parentheses-space-inside": undefined,
"@stylistic/selector-list-comma-newline-after": undefined, "@stylistic/selector-list-comma-newline-after": undefined,
"@stylistic/string-quotes": undefined, "@stylistic/string-quotes": undefined,
"alpha-value-notation": ["percentage"],
"color-function-notation": "modern",
"color-no-hex": true,
"custom-property-pattern": undefined, "custom-property-pattern": undefined,
"declaration-block-no-duplicate-custom-properties": true, "declaration-block-no-duplicate-custom-properties": true,
"declaration-block-no-duplicate-properties": true, "declaration-block-no-duplicate-properties": true,
"declaration-block-no-redundant-longhand-properties": true, "declaration-block-no-redundant-longhand-properties": true,
"declaration-block-no-shorthand-property-overrides": true, "declaration-block-no-shorthand-property-overrides": true,
"function-disallowed-list": ["rgba", "hsla", "rgb", "hsl"],
"max-nesting-depth": undefined, "max-nesting-depth": undefined,
"no-descending-specificity": undefined, "no-descending-specificity": undefined,
"no-duplicate-selectors": [ "no-duplicate-selectors": [

77
composer.lock generated
View file

@ -2506,7 +2506,7 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
@ -2565,7 +2565,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -2589,7 +2589,7 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
@ -2650,7 +2650,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -2674,7 +2674,7 @@
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
@ -2734,7 +2734,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -2758,7 +2758,7 @@
}, },
{ {
"name": "symfony/polyfill-php84", "name": "symfony/polyfill-php84",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php84.git", "url": "https://github.com/symfony/polyfill-php84.git",
@ -2814,7 +2814,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php84/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -2838,16 +2838,16 @@
}, },
{ {
"name": "symfony/polyfill-php85", "name": "symfony/polyfill-php85",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php85.git", "url": "https://github.com/symfony/polyfill-php85.git",
"reference": "2c408a6bb0313e6001a83628dc5506100474254e" "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/2c408a6bb0313e6001a83628dc5506100474254e", "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee",
"reference": "2c408a6bb0313e6001a83628dc5506100474254e", "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2894,7 +2894,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php85/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -2914,11 +2914,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-10T16:50:15+00:00" "time": "2026-04-26T13:10:57+00:00"
}, },
{ {
"name": "symfony/polyfill-uuid", "name": "symfony/polyfill-uuid",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git", "url": "https://github.com/symfony/polyfill-uuid.git",
@ -2977,7 +2977,7 @@
"uuid" "uuid"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-uuid/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -3535,16 +3535,16 @@
}, },
{ {
"name": "voku/portable-ascii", "name": "voku/portable-ascii",
"version": "2.1.0", "version": "2.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/voku/portable-ascii.git", "url": "https://github.com/voku/portable-ascii.git",
"reference": "d870a33f0f79d2b4579740b0620200221ee44aeb" "reference": "8e1051fe39379367aecf014f41744ce7539a856f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/voku/portable-ascii/zipball/d870a33f0f79d2b4579740b0620200221ee44aeb", "url": "https://api.github.com/repos/voku/portable-ascii/zipball/8e1051fe39379367aecf014f41744ce7539a856f",
"reference": "d870a33f0f79d2b4579740b0620200221ee44aeb", "reference": "8e1051fe39379367aecf014f41744ce7539a856f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3581,7 +3581,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/voku/portable-ascii/issues", "issues": "https://github.com/voku/portable-ascii/issues",
"source": "https://github.com/voku/portable-ascii/tree/2.1.0" "source": "https://github.com/voku/portable-ascii/tree/2.1.1"
}, },
"funding": [ "funding": [
{ {
@ -3605,7 +3605,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-16T23:10:39+00:00" "time": "2026-04-26T05:33:54+00:00"
}, },
{ {
"name": "wpackagist-plugin/falcon", "name": "wpackagist-plugin/falcon",
@ -5215,12 +5215,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git", "url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "3901f65a6ee5585978c60ee579f23c7f848ec6a2" "reference": "08cd07f04fb07fb4d316e956801d57b700cf7096"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/3901f65a6ee5585978c60ee579f23c7f848ec6a2", "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/08cd07f04fb07fb4d316e956801d57b700cf7096",
"reference": "3901f65a6ee5585978c60ee579f23c7f848ec6a2", "reference": "08cd07f04fb07fb4d316e956801d57b700cf7096",
"shasum": "" "shasum": ""
}, },
"conflict": { "conflict": {
@ -5243,6 +5243,7 @@
"alextselegidis/easyappointments": "<=1.5.2", "alextselegidis/easyappointments": "<=1.5.2",
"alexusmai/laravel-file-manager": "<=3.3.1", "alexusmai/laravel-file-manager": "<=3.3.1",
"algolia/algoliasearch-magento-2": "<=3.16.1|>=3.17.0.0-beta1,<=3.17.1", "algolia/algoliasearch-magento-2": "<=3.16.1|>=3.17.0.0-beta1,<=3.17.1",
"almirhodzic/nova-toggle-5": "<1.3",
"alt-design/alt-redirect": "<1.6.4", "alt-design/alt-redirect": "<1.6.4",
"altcha-org/altcha": "<1.3.1", "altcha-org/altcha": "<1.3.1",
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
@ -5637,7 +5638,7 @@
"kelvinmo/simplexrd": "<3.1.1", "kelvinmo/simplexrd": "<3.1.1",
"kevinpapst/kimai2": "<1.16.7", "kevinpapst/kimai2": "<1.16.7",
"khodakhah/nodcms": "<=3.4.1", "khodakhah/nodcms": "<=3.4.1",
"kimai/kimai": "<=2.53", "kimai/kimai": "<2.54",
"kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
"klaviyo/magento2-extension": ">=1,<3", "klaviyo/magento2-extension": ">=1,<3",
"knplabs/knp-snappy": "<=1.4.2", "knplabs/knp-snappy": "<=1.4.2",
@ -6081,7 +6082,7 @@
"twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19", "twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19",
"typicms/core": "<16.1.7", "typicms/core": "<16.1.7",
"typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
"typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1", "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1|==14.2",
"typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", "typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18",
"typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1", "typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1",
@ -6263,7 +6264,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-23T22:17:39+00:00" "time": "2026-04-24T17:22:29+00:00"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",
@ -6806,16 +6807,16 @@
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "ad1b7b9092976d6c948b8a187cec9faaea9ec1df" "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/ad1b7b9092976d6c948b8a187cec9faaea9ec1df", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e",
"reference": "ad1b7b9092976d6c948b8a187cec9faaea9ec1df", "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6864,7 +6865,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -6884,11 +6885,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-10T16:19:22+00:00" "time": "2026-04-26T13:13:48+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@ -6949,7 +6950,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {
@ -6973,7 +6974,7 @@
}, },
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",
"version": "v1.36.0", "version": "v1.37.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php81.git", "url": "https://github.com/symfony/polyfill-php81.git",
@ -7029,7 +7030,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.36.0" "source": "https://github.com/symfony/polyfill-php81/tree/v1.37.0"
}, },
"funding": [ "funding": [
{ {

File diff suppressed because one or more lines are too long

View file

@ -31,11 +31,11 @@
"@sentry/core": "^10.50.0", "@sentry/core": "^10.50.0",
"@types/bun": "^1.3.13", "@types/bun": "^1.3.13",
"@types/node": "^25.6.0", "@types/node": "^25.6.0",
"@typescript/native-preview": "7.0.0-dev.20260423.1", "@typescript/native-preview": "7.0.0-dev.20260427.1",
"@vitejs/plugin-legacy": "^8.0.1", "@vitejs/plugin-legacy": "^8.0.1",
"better-typescript-lib": "^2.12.0", "better-typescript-lib": "^2.12.0",
"browserslist": "^4.28.2", "browserslist": "^4.28.2",
"caniuse-lite": "^1.0.30001790", "caniuse-lite": "^1.0.30001791",
"eslint": "^10.2.1", "eslint": "^10.2.1",
"eslint-plugin-functional": "^9.0.4", "eslint-plugin-functional": "^9.0.4",
"eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-jsx-a11y": "^6.10.2",
@ -44,11 +44,11 @@
"fdir": "^6.5.0", "fdir": "^6.5.0",
"globals": "^17.5.0", "globals": "^17.5.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"knip": "^6.6.2", "knip": "^6.7.0",
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"lightningcss-cli": "^1.32.0", "lightningcss-cli": "^1.32.0",
"oxlint": "^1.61.0", "oxlint": "^1.61.0",
"oxlint-tsgolint": "^0.21.1", "oxlint-tsgolint": "^0.22.0",
"playwright": "^1.59.1", "playwright": "^1.59.1",
"prettier": "^3.8.3", "prettier": "^3.8.3",
"prettier-plugin-pkg": "^0.22.1", "prettier-plugin-pkg": "^0.22.1",

View file

@ -90,17 +90,17 @@
} }
:root { :root {
/* Couleurs */ /* Couleurs */
--couleur-blanc: #ffffff; --couleur-blanc: oklch(100% 0 0deg / 100%);
--couleur-blanc-fond: rgb(255 255 255 / 90%); --couleur-blanc-fond: oklch(100% 0 0deg / 80%);
--couleur-gris: #eceaeb; --couleur-gris: oklch(93.89% 0.0025 345.21deg / 100%);
--couleur-gris-fonce: #808080; --couleur-gris-fond: oklch(93.89% 0.0025 345.21deg / 80%);
--couleur-gris-fonce-fond: rgb(128 128 128 / 80%); --couleur-gris-fond-extra: oklch(93.89% 0.0025 345.21deg / 60%);
--couleur-bordeaux: #490918; --couleur-gris-fonce: oklch(59.99% 0 0deg / 100%);
--couleur-bordeaux-fond: rgb(73 9 24 / 80%); --couleur-gris-fonce-fond: oklch(59.99% 0 0deg / 80%);
--couleur-jaune: #defdb5; --couleur-noir: oklch(24.35% 0 0deg / 100%);
--couleur-jaune-fond: rgb(235 255 184 / 80%); /* Arrières-plan */
--couleur-noir: #202020; --arriere-plan-points: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%)
--couleur-fond: rgb(236 234 235 / 80%); 1px 0.5px/2px 2px;
/* Polices */ /* Polices */
--police-lato: "Lato", sans-serif; --police-lato: "Lato", sans-serif;
/* Hauteurs de ligne */ /* Hauteurs de ligne */
@ -140,6 +140,7 @@
*/ */
html { html {
box-sizing: border-box; /* 1 */ box-sizing: border-box; /* 1 */
scrollbar-gutter: stable;
} }
/* /*
@ -169,7 +170,7 @@ html {
*/ */
body { body {
overscroll-behavior: none; overscroll-behavior: none;
accent-color: var(--couleur-jaune); /* 2 */ accent-color: var(--couleur-gris-fonce); /* 2 */
background: var(--couleur-gris); /* 1 */ background: var(--couleur-gris); /* 1 */
} }
@ -184,7 +185,7 @@ button, input, select, textarea {
* Change la couleur d'arrière-plan à la sélection du texte. * Change la couleur d'arrière-plan à la sélection du texte.
*/ */
*::selection { *::selection {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
/* Cache tout élément avec l'attribut hidden */ /* Cache tout élément avec l'attribut hidden */
@ -263,32 +264,30 @@ code {
*/ */
button { button {
all: initial; all: initial;
font: inherit;
cursor: pointer; cursor: pointer;
box-sizing: border-box; box-sizing: border-box;
font-family: Lato;
text-align: center; text-align: center;
letter-spacing: inherit; letter-spacing: inherit;
outline: 2px dashed transparent; outline: 2px dashed transparent;
outline-offset: -2px; outline-offset: -2px;
transition: 0.2s background, 0.2s color, 0.2s outline-color; transition: 0.2s background, 0.2s color, 0.2s outline-color;
} }
button:not[disabled]:focus-visible { button:not(button:disabled):focus-visible {
z-index: 5; z-index: 5;
outline-color: var(--couleur-noir); outline-color: var(--couleur-noir);
} }
button:not[disabled]:active { button:not(button:disabled):active {
color: var(--couleur-blanc) !important; background: var(--arriere-plan-points);
background: var(--couleur-noir) !important;
} }
@media (hover: hover) { @media (hover: hover) {
button:not[disabled]:hover { button:not(button:disabled):hover {
color: var(--couleur-noir); color: var(--couleur-blanc);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
button:disabled, button[disabled] { button:disabled {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px background: var(--arriere-plan-points);
0.5px/2px 2px;
outline-color: transparent; outline-color: transparent;
} }
button.bouton-case-pleine { button.bouton-case-pleine {
@ -300,14 +299,36 @@ button.bouton-case-pleine.bouton-blanc-sur-noir {
text-transform: uppercase; text-transform: uppercase;
letter-spacing: var(--espacement-inter-lettres-etendu-m); letter-spacing: var(--espacement-inter-lettres-etendu-m);
} }
button.bouton-case-pleine.bouton-blanc-sur-noir:focus-visible { button.bouton-case-pleine.bouton-blanc-sur-noir:not(
color: var(--couleur-noir); button.bouton-case-pleine.bouton-blanc-sur-noir:disabled
background: var(--couleur-jaune); ):active {
color: var(--couleur-blanc);
}
@media (hover: hover) {
button.bouton-case-pleine.bouton-blanc-sur-noir:not(
button.bouton-case-pleine.bouton-blanc-sur-noir:disabled
):hover {
background: var(--couleur-gris-fonce);
color: var(--couleur-blanc);
}
} }
button.bouton-blanc-sur-noir { button.bouton-blanc-sur-noir {
color: var(--couleur-blanc); color: var(--couleur-blanc);
background: var(--couleur-noir); background: var(--couleur-noir);
} }
button.bouton-blanc-sur-noir:not(button.bouton-blanc-sur-noir:disabled):focus-visible {
outline-color: var(--couleur-blanc);
}
button.bouton-blanc-sur-noir:not(button.bouton-blanc-sur-noir:disabled):active {
color: var(--couleur-noir);
background: var(--arriere-plan-points);
}
@media (hover: hover) {
button.bouton-blanc-sur-noir:not(button.bouton-blanc-sur-noir:disabled):hover {
background: var(--couleur-gris);
color: var(--couleur-noir);
}
}
@media (hover: hover) { @media (hover: hover) {
button.bouton-fleche { button.bouton-fleche {
background: initial; background: initial;
@ -323,8 +344,8 @@ button.bouton-retour-haut {
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
border-radius: 100%; border-radius: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
background: var(--couleur-fond); background: var(--couleur-gris-fond);
box-shadow: initial; box-shadow: initial;
transition: 0.2s background, 0.2s opacity, 0.2s visibility; transition: 0.2s background, 0.2s opacity, 0.2s visibility;
} }
@ -335,12 +356,12 @@ button.bouton-retour-haut img {
} }
button.bouton-retour-haut[data-actif] { button.bouton-retour-haut[data-actif] {
visibility: visible; visibility: visible;
opacity: 0.6; opacity: 50%;
} }
@media (hover: hover) { @media (hover: hover) {
button.bouton-retour-haut[data-actif]:hover { button.bouton-retour-haut[data-actif]:hover {
opacity: 1; opacity: 100%;
background: var(--couleur-jaune-fond); background: var(--couleur-gris-fond);
} }
} }
@ -349,8 +370,8 @@ dialog {
flex-flow: column nowrap; flex-flow: column nowrap;
place-self: center center; place-self: center center;
padding: var(--espace-l); padding: var(--espace-l);
opacity: 0; opacity: 0%;
background: white; background: var(--couleur-blanc);
transition: display 0.3s, opacity 0.3s, overlay 0.3s; transition: display 0.3s, opacity 0.3s, overlay 0.3s;
transition-behavior: allow-discrete; transition-behavior: allow-discrete;
} }
@ -361,10 +382,10 @@ dialog::backdrop {
} }
dialog:open { dialog:open {
display: flex; display: flex;
opacity: 1; opacity: 100%;
} }
dialog:open::backdrop { dialog:open::backdrop {
background-color: var(--couleur-fond); background-color: var(--couleur-gris-fond);
} }
dialog * + * { dialog * + * {
margin-block-start: var(--espace-m); margin-block-start: var(--espace-m);
@ -380,7 +401,7 @@ dialog button {
@starting-style { @starting-style {
dialog:open { dialog:open {
opacity: 0; opacity: 0%;
} }
} }
@starting-style { @starting-style {
@ -399,30 +420,24 @@ fieldset {
input, select, textarea { input, select, textarea {
padding: var(--espace-xs); padding: var(--espace-xs);
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
accent-color: var(--couleur-jaune); accent-color: var(--couleur-gris-fonce);
background: var(--couleur-gris); background: var(--couleur-gris);
transition: 0.2s background; transition: 0.2s background;
} }
input:focus-visible, input:focus-visible,
input:focus-within, input:focus-within,
input:active,
select:focus-visible, select:focus-visible,
select:focus-within, select:focus-within,
select:active,
textarea:focus-visible, textarea:focus-visible,
textarea:focus-within, textarea:focus-within {
textarea:active {
z-index: 10; z-index: 10;
outline: 2px dashed var(--couleur-noir); outline: 2px dashed var(--couleur-noir);
} }
input:disabled, input:active, select:active, textarea:active {
input[disabled], background: var(--arriere-plan-points);
select:disabled, }
select[disabled], input:disabled, select:disabled, textarea:disabled {
textarea:disabled, background: var(--arriere-plan-points);
textarea[disabled] {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px
0.5px/2px 2px;
outline-color: transparent; outline-color: transparent;
} }
@ -435,7 +450,9 @@ input:is([type="email"], [type="text"], [type="tel"])::selection, textarea::sele
background: var(--couleur-noir); background: var(--couleur-noir);
} }
input:is([type="email"], [type="text"], [type="tel"]):user-valid, textarea:user-valid { input:is([type="email"], [type="text"], [type="tel"]):user-valid, textarea:user-valid {
background: var(--couleur-jaune); background: var(--arriere-plan-points);
color: var(--couleur-noir);
font-weight: 500;
} }
input:is([type="email"], [type="text"], [type="tel"]):user-invalid, textarea:user-invalid { input:is([type="email"], [type="text"], [type="tel"]):user-invalid, textarea:user-invalid {
background: var(--couleur-gris); background: var(--couleur-gris);
@ -454,7 +471,8 @@ input[type="checkbox"], input[type="radio"] {
transition: 0.2s background; transition: 0.2s background;
} }
input[type="checkbox"]:checked, input[type="radio"]:checked { input[type="checkbox"]:checked, input[type="radio"]:checked {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
color: var(--couleur-blanc);
} }
input[type="checkbox"]:checked::before, input[type="radio"]:checked::before { input[type="checkbox"]:checked::before, input[type="radio"]:checked::before {
content: "x"; content: "x";
@ -483,7 +501,7 @@ input[type="radio"] + label {
} }
@media (hover: hover) { @media (hover: hover) {
input[type="checkbox"]:hover, input[type="radio"]:hover { input[type="checkbox"]:hover, input[type="radio"]:hover {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
@ -524,7 +542,7 @@ img, picture {
img { img {
object-fit: cover; /* 2 */ object-fit: cover; /* 2 */
background: var(--couleur-jaune); /* 3 */ background: var(--couleur-gris-fonce); /* 3 */
} }
/* /*
@ -560,7 +578,7 @@ a.lien-bouton {
--lien-bouton-marges-internes-bloc: var(--espace-xs); --lien-bouton-marges-internes-bloc: var(--espace-xs);
--lien-bouton-marges-internes-ligne: var(--espace-m); --lien-bouton-marges-internes-ligne: var(--espace-m);
/* Couleurs */ /* Couleurs */
--lien-bouton-arriere-plan-couleur-survol: var(--couleur-jaune); --lien-bouton-arriere-plan-couleur-survol: var(--couleur-gris-fonce);
padding: var(--lien-bouton-marges-internes-bloc) var(--lien-bouton-marges-internes-ligne); padding: var(--lien-bouton-marges-internes-bloc) var(--lien-bouton-marges-internes-ligne);
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
/* Change la couleur de l'arrière-plan pour marquer le focus. */ /* Change la couleur de l'arrière-plan pour marquer le focus. */
@ -589,13 +607,13 @@ a.lien-lien {
text-decoration: underline; text-decoration: underline;
} }
a.lien-lien:active { a.lien-lien:active {
text-decoration-color: var(--couleur-jaune); text-decoration-color: var(--couleur-gris-fonce);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
@media (hover: hover) { @media (hover: hover) {
a.lien-lien:hover { a.lien-lien:hover {
text-decoration-color: var(--couleur-jaune); text-decoration-color: var(--couleur-gris-fonce);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
a { a {
@ -656,7 +674,7 @@ video {
color: var(--couleur-noir); color: var(--couleur-noir);
text-transform: uppercase; text-transform: uppercase;
white-space: nowrap; white-space: nowrap;
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
.bandeau__conteneur { .bandeau__conteneur {
display: flex; display: flex;
@ -665,7 +683,7 @@ video {
animation: marquee linear 15s infinite both; animation: marquee linear 15s infinite both;
} }
.bandeau__conteneur *::selection { .bandeau__conteneur *::selection {
color: var(--couleur-jaune); color: var(--couleur-gris-fonce);
background: var(--couleur-noir); background: var(--couleur-noir);
} }
.bandeau__conteneur p { .bandeau__conteneur p {
@ -721,8 +739,8 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
z-index: 998; z-index: 998;
inset: var(--en-tete-hauteur) 0 0 0; inset: var(--en-tete-hauteur) 0 0 0;
height: var(--menu-mobile-hauteur); height: var(--menu-mobile-hauteur);
opacity: 0; opacity: 0%;
background-color: var(--couleur-fond); background-color: var(--couleur-gris-fond);
animation: fade-in 400ms both; animation: fade-in 400ms both;
} }
#menu-mobile .menu-modale__conteneur { #menu-mobile .menu-modale__conteneur {
@ -734,7 +752,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
height: fit-content; height: fit-content;
padding: var(--espace-xl); padding: var(--espace-xl);
border-bottom: 1px solid var(--couleur-noir); border-bottom: 1px solid var(--couleur-noir);
opacity: 0; opacity: 0%;
background-color: var(--couleur-gris); background-color: var(--couleur-gris);
animation: fade-in 400ms 200ms both; animation: fade-in 400ms 200ms both;
} }
@ -761,12 +779,12 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
@keyframes fade-in { @keyframes fade-in {
to { to {
opacity: 1; opacity: 100%;
} }
} }
@keyframes fade-out { @keyframes fade-out {
to { to {
opacity: 0; opacity: 0%;
} }
} }
@keyframes slide-in { @keyframes slide-in {
@ -791,7 +809,8 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
height: var(--en-tete-hauteur); height: var(--en-tete-hauteur);
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne); padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
border-bottom: 1px solid var(--couleur-noir); border-bottom: 1px solid var(--couleur-noir);
background: var(--couleur-gris); background: var(--couleur-gris-fond-extra);
backdrop-filter: brightness(125%) blur(6px);
} }
#en-tete picture, #en-tete img { #en-tete picture, #en-tete img {
background: transparent; background: transparent;
@ -846,12 +865,12 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
--liste-puce-cercle-puce-position-horizontale: 3.5ch; /* 3 */ --liste-puce-cercle-puce-position-horizontale: 3.5ch; /* 3 */
} }
#en-tete .menu-navigation__entree:has(a[aria-current="page"]) { #en-tete .menu-navigation__entree:has(a[aria-current="page"]) {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") center/auto background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
90% no-repeat; bottom/auto 90% no-repeat;
} }
#en-tete .menu-navigation__entree--courante { #en-tete .menu-navigation__entree--courante {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") center/auto background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
90% no-repeat; bottom/auto 90% no-repeat;
} }
#en-tete .menu-navigation__entree a { #en-tete .menu-navigation__entree a {
display: inline-block; /* 1 */ display: inline-block; /* 1 */
@ -860,8 +879,8 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
} }
@media (hover: hover) { @media (hover: hover) {
#en-tete .menu-navigation__entree:hover { #en-tete .menu-navigation__entree:hover {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") center/auto background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
90% no-repeat; bottom/auto 90% no-repeat;
} }
} }
@media (width <= 1000px) { @media (width <= 1000px) {
@ -869,6 +888,9 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
display: none; display: none;
} }
} }
#en-tete {
/* * Bouton du compte de Produits dans le Panier. */
}
#en-tete .compte-panier { #en-tete .compte-panier {
display: flex; display: flex;
flex-flow: row nowrap; flex-flow: row nowrap;
@ -877,25 +899,29 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
text-align: center; text-align: center;
} }
#en-tete .compte-panier[disabled] { #en-tete .compte-panier[disabled] {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px background: var(--arriere-plan-points);
0.5px/2px 2px;
} }
#en-tete .compte-panier[disabled] a:hover, #en-tete .compte-panier[disabled] a:hover,
#en-tete .compte-panier[disabled] a:active, #en-tete .compte-panier[disabled] a:active,
#en-tete .compte-panier[disabled] a:focus-within { #en-tete .compte-panier[disabled] a:focus-within {
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
background: initial;
} }
#en-tete .compte-panier a { #en-tete .compte-panier a {
padding-block: var(--espace-2xs); padding-block: var(--espace-2xs);
padding-inline: var(--espace-s); padding-inline: var(--espace-s);
text-transform: lowercase; text-transform: lowercase;
} background: transparent;
#en-tete .compte-panier a.lien-compte {
border-color: transparent;
} }
#en-tete .compte-panier a[data-contient-articles="true"] { #en-tete .compte-panier a[data-contient-articles="true"] {
background: var(--couleur-jaune); background: var(--couleur-gris-fond);
}
#en-tete .compte-panier a:hover, #en-tete .compte-panier a:focus-within {
color: var(--couleur-blanc);
background: var(--couleur-gris-fonce-fond);
}
#en-tete .compte-panier a:active {
color: var(--couleur-noir);
background: var(--arriere-plan-points);
} }
#en-tete .conteneur { #en-tete .conteneur {
display: flex; display: flex;
@ -912,6 +938,11 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
image-rendering: crisp-edges; image-rendering: crisp-edges;
shape-rendering: geometricprecision; shape-rendering: geometricprecision;
} }
@media (hover: hover) {
#en-tete .bouton-menu-mobile:hover {
background: initial !important;
}
}
@media (width <= 1000px) { @media (width <= 1000px) {
#en-tete .bouton-menu-mobile { #en-tete .bouton-menu-mobile {
display: block; display: block;
@ -938,10 +969,10 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
margin-top: var(--menu-section-marges-bloc-debut); /* 1 */ margin-top: var(--menu-section-marges-bloc-debut); /* 1 */
} }
#menu-categories-produits[data-entrees-presentes-debut] svg:first-of-type { #menu-categories-produits[data-entrees-presentes-debut] svg:first-of-type {
opacity: 1; opacity: 100%;
} }
#menu-categories-produits[data-entrees-presentes-fin] svg:last-of-type { #menu-categories-produits[data-entrees-presentes-fin] svg:last-of-type {
opacity: 1; opacity: 100%;
} }
#menu-categories-produits svg { #menu-categories-produits svg {
pointer-events: none; pointer-events: none;
@ -949,7 +980,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
bottom: calc(17.59px - 0.35rem); bottom: calc(17.59px - 0.35rem);
width: 0.8rem; width: 0.8rem;
height: 0.8rem; height: 0.8rem;
opacity: 0; opacity: 0%;
mix-blend-mode: exclusion; mix-blend-mode: exclusion;
shape-rendering: geometricprecision; shape-rendering: geometricprecision;
transition: 0.2s opacity; transition: 0.2s opacity;
@ -997,7 +1028,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
#menu-categories-produits ul li.categorie-courante a { #menu-categories-produits ul li.categorie-courante a {
font-weight: 600; font-weight: 600;
color: var(--couleur-noir); color: var(--couleur-noir);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
@media (hover: hover) { @media (hover: hover) {
#menu-categories-produits ul li.categorie-courante a:hover { #menu-categories-produits ul li.categorie-courante a:hover {
@ -1019,13 +1050,12 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
outline: initial; /* 3 */ outline: initial; /* 3 */
} }
#menu-categories-produits ul li a:focus-visible { #menu-categories-produits ul li a:focus-visible {
color: var(--couleur-jaune); color: var(--couleur-gris-fonce);
outline: initial; /* 3 */ outline: initial; /* 3 */
} }
@media (hover: hover) { @media (hover: hover) {
#menu-categories-produits ul li a:hover { #menu-categories-produits ul li a:hover {
color: var(--couleur-noir); background: var(--couleur-gris-fonce);
background: var(--couleur-jaune);
} }
} }
@media (width <= 1000px) { @media (width <= 1000px) {
@ -1185,7 +1215,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
@media (hover: hover) { @media (hover: hover) {
.grille-produits article figure a:hover .produit__illustration__survol { .grille-produits article figure a:hover .produit__illustration__survol {
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
transition: 0.3s opacity, 0.3s visibility; transition: 0.3s opacity, 0.3s visibility;
} }
} }
@ -1208,7 +1238,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
opacity: 0; opacity: 0%;
background-image: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg"); background-image: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
@ -1217,7 +1247,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
animation: 1.5s 0.5s test infinite alternate both linear; animation: 1.5s 0.5s test infinite alternate both linear;
} }
.grille-produits article figure .produit__illustration__principale img { .grille-produits article figure .produit__illustration__principale img {
opacity: 0; opacity: 0%;
transition: opacity 1s; transition: opacity 1s;
} }
.grille-produits article figure .produit__illustration__survol { .grille-produits article figure .produit__illustration__survol {
@ -1228,11 +1258,11 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
width: 100%; width: 100%;
height: 100%; height: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 0.15s opacity, 0.15s visibility; transition: 0.15s opacity, 0.15s visibility;
} }
.grille-produits article figure .produit__illustration__survol img { .grille-produits article figure .produit__illustration__survol img {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
.grille-produits article figure figcaption { .grille-produits article figure figcaption {
display: flex; display: flex;
@ -1270,7 +1300,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
@keyframes test { @keyframes test {
to { to {
opacity: 1; opacity: 100%;
} }
} }
/* /*
@ -1340,49 +1370,26 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
text-align: center; text-align: center;
letter-spacing: initial; letter-spacing: initial;
appearance: none; appearance: none;
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
@supports selector(:user-valid) { @supports selector(:user-valid) {
.resume-produit .selecteur-produit__attribut-variation select:user-valid { .resume-produit .selecteur-produit__attribut-variation select:user-valid {
background: var(--couleur-jaune-fond); background: var(--couleur-gris-fond);
} }
} }
.resume-produit .selecteur-produit__attribut-variation option { .resume-produit .selecteur-produit__attribut-variation option {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
.resume-produit .selecteur-produit__attribut-variation { .resume-produit .selecteur-produit__attribut-variation {
/* Conteneur des sélecteurs */ /* Conteneur des sélecteurs */
} }
.resume-produit .selecteur-produit__attribut-variation__selecteurs { .resume-produit .selecteur-produit__attribut-variation__selecteurs {
position: relative; position: relative;
/* Icône de flèche descendante */ display: flex;
} flex-flow: row wrap;
.resume-produit .selecteur-produit__attribut-variation__selecteurs::after { place-items: center;
pointer-events: none; place-content: center;
content: " "; gap: var(--espace-m);
position: absolute;
top: 7px;
right: 0.4rem;
display: inline-block;
width: 0.9rem;
height: 0.9rem;
text-align: center;
visibility: visible;
opacity: 1;
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/arrow.svg") no-repeat;
transition: opacity 0.2s, visibility 0.2s;
}
@supports not selector(:user-valid) {
.resume-produit .selecteur-produit__attribut-variation__selecteurs:has(select:valid)::after {
visibility: hidden;
opacity: 0;
}
}
@supports selector(:user-valid) {
.resume-produit .selecteur-produit__attribut-variation__selecteurs:has(select:user-valid)::after {
visibility: hidden;
opacity: 0;
}
} }
.resume-produit .selecteur-produit__prix { .resume-produit .selecteur-produit__prix {
font-style: initial; font-style: initial;
@ -1464,22 +1471,24 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
--section-marges-internes: var(--espace-l); --section-marges-internes: var(--espace-l);
overflow: hidden; overflow: hidden;
border-block: 1px solid var(--couleur-noir); border-block: 1px solid var(--couleur-noir);
background: var(--couleur-jaune); background: var(--arriere-plan-points);
transition: 0.2s background; transition: 0.2s background;
} }
.details-produit__actions:has(button[disabled]) { .details-produit__actions:has(button[disabled]) {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
.details-produit__actions button { .details-produit__actions button {
height: initial; height: initial;
padding: var(--section-marges-internes); padding: var(--section-marges-internes);
font-style: italic; font-style: italic;
text-transform: uppercase; text-transform: uppercase;
transition: 0.2s background, 0.2s font-weight; transition: 0.2s color, 0.2s background, 0.2s font-weight;
} }
@media (hover: hover) { @media (hover: hover) {
.details-produit__actions button:not([disabled]):hover { .details-produit__actions button:not([disabled]):hover {
font-weight: 600; font-weight: 600;
color: var(--couleur-blanc);
background: var(--couleur-gris-fonce-fond);
} }
} }
@ -1538,7 +1547,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
article figure a:hover article figure a:hover
.produit__illustration__survol { .produit__illustration__survol {
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
transition: 0.3s opacity, 0.3s visibility; transition: 0.3s opacity, 0.3s visibility;
} }
} }
@ -1553,7 +1562,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
width: 100%; width: 100%;
height: 100%; height: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 0.15s opacity, 0.15s visibility; transition: 0.15s opacity, 0.15s visibility;
} }
.produits-similaires .grille-produits-similaires article figure img { .produits-similaires .grille-produits-similaires article figure img {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -40,7 +40,7 @@
block-size: 100%; block-size: 100%;
margin: auto; margin: auto;
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
mask-image: linear-gradient( mask-image: linear-gradient(
var(--mask-direction, to right), var(--mask-direction, to right),
hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, 0),
@ -53,12 +53,12 @@
#page-a-propos .storytelling__animation[hidden] { #page-a-propos .storytelling__animation[hidden] {
display: grid !important; display: grid !important;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 1s opacity ease-in-out, 1s visibility ease-in-out; transition: 1s opacity ease-in-out, 1s visibility ease-in-out;
} }
#page-a-propos .storytelling__animation.no-js { #page-a-propos .storytelling__animation.no-js {
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 1s opacity ease-in-out, 1s visibility ease-in-out; transition: 1s opacity ease-in-out, 1s visibility ease-in-out;
} }
#page-a-propos .storytelling__animation .animation-conteneur { #page-a-propos .storytelling__animation .animation-conteneur {

View file

@ -176,7 +176,7 @@
text-align: right; text-align: right;
} }
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span { #panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span {
color: grey; color: var(--couleur-gris-fonce);
} }
#panneau-panier .panneau__sous-totaux__choix-methode-livraison { #panneau-panier .panneau__sous-totaux__choix-methode-livraison {
flex-flow: row wrap; flex-flow: row wrap;
@ -189,7 +189,7 @@
cursor: revert; cursor: revert;
flex-basis: 100%; flex-basis: 100%;
margin-bottom: var(--espace-xs); margin-bottom: var(--espace-xs);
color: grey; color: var(--couleur-gris-fonce);
text-align: center; text-align: center;
text-transform: lowercase; text-transform: lowercase;
} }
@ -203,7 +203,7 @@
margin-top: var(--espace-l); margin-top: var(--espace-l);
font-size: 0.8rem; font-size: 0.8rem;
font-weight: 450; font-weight: 450;
color: grey; color: var(--couleur-gris-fonce);
letter-spacing: var(--espacement-inter-lettres-etendu-s); letter-spacing: var(--espacement-inter-lettres-etendu-s);
} }
#panneau-panier .panneau__pied-de-page { #panneau-panier .panneau__pied-de-page {
@ -318,7 +318,7 @@
padding: 0; padding: 0;
font-size: 0.8rem; font-size: 0.8rem;
font-weight: 450; font-weight: 450;
color: grey; color: var(--couleur-gris-fonce);
text-align: center; text-align: center;
} }
#panneau-informations-client #panneau-informations-client
@ -379,7 +379,6 @@
} }
#panneau-informations-client .panneau__pied-de-page { #panneau-informations-client .panneau__pied-de-page {
align-content: center; align-content: center;
padding: var(--espace-l) 0;
font-size: 1.25rem; font-size: 1.25rem;
font-style: italic; font-style: italic;
color: var(--couleur-blanc); color: var(--couleur-blanc);
@ -389,9 +388,7 @@
background: var(--couleur-noir); background: var(--couleur-noir);
} }
#panneau-informations-client .panneau__pied-de-page button { #panneau-informations-client .panneau__pied-de-page button {
font: inherit; padding: var(--espace-l) 0;
color: inherit;
text-transform: inherit;
} }
@media (width <= 500px) { @media (width <= 500px) {
#panneau-informations-client .panneau__formulaires { #panneau-informations-client .panneau__formulaires {

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAbJ;AAgBE;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AA9BN;AAkCE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAxCJ;AA2CE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;IACE;;EAGF;IACE;;EAEA;IACE;;EAIJ;IACE;;EAGE;IACE;;EAKN;IACE;;;;ACpRN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAMR;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;IACE;;;;ACpKN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"} {"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAbJ;AAgBE;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AA9BN;AAkCE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAxCJ;AA2CE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;IACE;;EAGF;IACE;;EAEA;IACE;;EAIJ;IACE;;EAGE;IACE;;EAKN;IACE;;;;ACpRN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAMR;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;IACE;;;;ACjKN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="2.433 9.473 85.134 70.17">
<path
fill="transparent" stroke="oklch(59.99% 0 0deg / 80%)"
stroke-width="1px" d="M84.857 38.272c-2.238-3.079-6.335-4.365-11.182-3.978 6.131-6.94 8.302-14.885 4.751-19.772-4.576-6.298-16.933-5.12-27.595 2.63-2.749 1.998-5.11 4.235-7.031 6.565l-.041-.06c-4.577-6.299-16.937-5.12-27.597 2.632C5.498 34.041.565 45.429 5.143 51.729c2.068 2.845 5.73 4.16 10.101 4.038-5.506 6.701-7.337 14.156-3.945 18.821 4.577 6.3 16.935 5.12 27.596-2.63 2.666-1.939 4.974-4.103 6.866-6.36.147.255.303.504.478.745 4.578 6.301 16.935 5.121 27.596-2.628 10.667-7.755 15.599-19.146 11.022-25.443"
/>
</svg>

After

Width:  |  Height:  |  Size: 673 B

View file

@ -15,6 +15,6 @@
], ],
"name": "Haiku Atelier", "name": "Haiku Atelier",
"short_name": "Haiku Atelier", "short_name": "Haiku Atelier",
"theme_color": "#E7FFB4", "theme_color": "#ECEAEB",
"start_url": "https://haikuatelier.fr.ddev.site" "start_url": "https://haikuatelier.fr.ddev.site"
} }

View file

@ -17,6 +17,10 @@ $context = Timber::context();
$templates = ['accueil.twig']; $templates = ['accueil.twig'];
add_action('wp_enqueue_scripts', function (): void { add_action('wp_enqueue_scripts', function (): void {
Resource::enqueue_script_module_file(
id: 'haiku-atelier-2024-scripts-page-accueil',
path: '/assets/js/scripts-page-accueil.js',
);
Resource::enqueue_style_file( Resource::enqueue_style_file(
handle: 'haiku-atelier-2024-styles-page-accueil', handle: 'haiku-atelier-2024-styles-page-accueil',
path: '/assets/css/pages/page-accueil.css', path: '/assets/css/pages/page-accueil.css',

View file

@ -126,9 +126,10 @@ final readonly class Product {
public static function recupere_et_formate_attributs_produit(mixed $attributs_produit): mixed { public static function recupere_et_formate_attributs_produit(mixed $attributs_produit): mixed {
return [ return [
'taille' => ['nom' => 'Size', 'valeur' => $attributs_produit['pa_size'] ?? false],
'pierre' => ['nom' => 'Stone', 'valeur' => $attributs_produit['pa_stone'] ?? false],
'cote' => ['nom' => 'Side', 'valeur' => $attributs_produit['pa_side'] ?? false], 'cote' => ['nom' => 'Side', 'valeur' => $attributs_produit['pa_side'] ?? false],
'materiel' => ['nom' => 'Material', 'valeur' => $attributs_produit['pa_material-workshop'] ?? false],
'pierre' => ['nom' => 'Stone', 'valeur' => $attributs_produit['pa_stone'] ?? false],
'taille' => ['nom' => 'Size', 'valeur' => $attributs_produit['pa_size'] ?? false],
]; ];
} }
} }

View file

@ -2,17 +2,18 @@
:root { :root {
/* Couleurs */ /* Couleurs */
--couleur-blanc: #ffffff; --couleur-blanc: oklch(100% 0 0deg / 100%);
--couleur-blanc-fond: rgb(255 255 255 / 90%); --couleur-blanc-fond: oklch(100% 0 0deg / 80%);
--couleur-gris: #eceaeb; --couleur-gris: oklch(93.89% 0.0025 345.21deg / 100%);
--couleur-gris-fonce: #808080; --couleur-gris-fond: oklch(93.89% 0.0025 345.21deg / 80%);
--couleur-gris-fonce-fond: rgb(128 128 128 / 80%); --couleur-gris-fond-extra: oklch(93.89% 0.0025 345.21deg / 60%);
--couleur-bordeaux: #490918; --couleur-gris-fonce: oklch(59.99% 0 0deg / 100%);
--couleur-bordeaux-fond: rgb(73 9 24 / 80%); --couleur-gris-fonce-fond: oklch(59.99% 0 0deg / 80%);
--couleur-jaune: #defdb5; --couleur-noir: oklch(24.35% 0 0deg / 100%);
--couleur-jaune-fond: rgb(235 255 184 / 80%);
--couleur-noir: #202020; /* Arrières-plan */
--couleur-fond: rgb(236 234 235 / 80%); --arriere-plan-points: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%)
1px 0.5px/2px 2px;
/* Polices */ /* Polices */
--police-lato: "Lato", sans-serif; --police-lato: "Lato", sans-serif;

View file

@ -7,6 +7,7 @@
*/ */
html { html {
box-sizing: border-box; /* 1 */ box-sizing: border-box; /* 1 */
scrollbar-gutter: stable;
} }
/* /*
@ -37,7 +38,7 @@ html {
*/ */
body { body {
overscroll-behavior: none; overscroll-behavior: none;
accent-color: var(--couleur-jaune); /* 2 */ accent-color: var(--couleur-gris-fonce); /* 2 */
background: var(--couleur-gris); /* 1 */ background: var(--couleur-gris); /* 1 */
} }
@ -52,7 +53,7 @@ button, input, select, textarea {
* Change la couleur d'arrière-plan à la sélection du texte. * Change la couleur d'arrière-plan à la sélection du texte.
*/ */
*::selection { *::selection {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
/* Cache tout élément avec l'attribut hidden */ /* Cache tout élément avec l'attribut hidden */

View file

@ -5,37 +5,35 @@
*/ */
button { button {
all: initial; all: initial;
font: inherit;
cursor: pointer; cursor: pointer;
box-sizing: border-box; box-sizing: border-box;
font-family: Lato;
text-align: center; text-align: center;
letter-spacing: inherit; letter-spacing: inherit;
outline: 2px dashed transparent; outline: 2px dashed transparent;
outline-offset: -2px; outline-offset: -2px;
transition: 0.2s background, 0.2s color, 0.2s outline-color; transition: 0.2s background, 0.2s color, 0.2s outline-color;
&:not[disabled] { &:not(&:disabled) {
&:focus-visible { &:focus-visible {
z-index: 5; z-index: 5;
outline-color: var(--couleur-noir); outline-color: var(--couleur-noir);
} }
&:active { &:active {
color: var(--couleur-blanc) !important; background: var(--arriere-plan-points);
background: var(--couleur-noir) !important;
} }
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
color: var(--couleur-noir); color: var(--couleur-blanc);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
} }
&:disabled, &[disabled] { &:disabled {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px background: var(--arriere-plan-points);
/ 2px 2px;
outline-color: transparent; outline-color: transparent;
} }
@ -49,9 +47,17 @@ button {
text-transform: uppercase; text-transform: uppercase;
letter-spacing: var(--espacement-inter-lettres-etendu-m); letter-spacing: var(--espacement-inter-lettres-etendu-m);
&:focus-visible { &:not(&:disabled) {
color: var(--couleur-noir); &:active {
background: var(--couleur-jaune); color: var(--couleur-blanc);
}
@media (hover: hover) {
&:hover {
background: var(--couleur-gris-fonce);
color: var(--couleur-blanc);
}
}
} }
} }
} }
@ -59,6 +65,23 @@ button {
&.bouton-blanc-sur-noir { &.bouton-blanc-sur-noir {
color: var(--couleur-blanc); color: var(--couleur-blanc);
background: var(--couleur-noir); background: var(--couleur-noir);
&:not(&:disabled) {
&:focus-visible {
outline-color: var(--couleur-blanc);
}
&:active {
color: var(--couleur-noir);
background: var(--arriere-plan-points);
}
@media (hover: hover) {
&:hover {
background: var(--couleur-gris);
color: var(--couleur-noir);
}
}
}
} }
&.bouton-fleche { &.bouton-fleche {
@ -77,8 +100,8 @@ button {
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
border-radius: 100%; border-radius: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
background: var(--couleur-fond); background: var(--couleur-gris-fond);
box-shadow: initial; box-shadow: initial;
transition: 0.2s background, 0.2s opacity, 0.2s visibility; transition: 0.2s background, 0.2s opacity, 0.2s visibility;
@ -90,12 +113,12 @@ button {
&[data-actif] { &[data-actif] {
visibility: visible; visibility: visible;
opacity: 0.6; opacity: 50%;
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
opacity: 1; opacity: 100%;
background: var(--couleur-jaune-fond); background: var(--couleur-gris-fond);
} }
} }
} }

View file

@ -3,8 +3,8 @@ dialog {
flex-flow: column nowrap; flex-flow: column nowrap;
place-self: center center; place-self: center center;
padding: var(--espace-l); padding: var(--espace-l);
opacity: 0; opacity: 0%;
background: white; background: var(--couleur-blanc);
transition: display 0.3s, opacity 0.3s, overlay 0.3s; transition: display 0.3s, opacity 0.3s, overlay 0.3s;
transition-behavior: allow-discrete; transition-behavior: allow-discrete;
@ -16,10 +16,10 @@ dialog {
&:open { &:open {
display: flex; display: flex;
opacity: 1; opacity: 100%;
&::backdrop { &::backdrop {
background-color: var(--couleur-fond); background-color: var(--couleur-gris-fond);
} }
} }
@ -40,7 +40,7 @@ dialog {
@starting-style { @starting-style {
dialog:open { dialog:open {
opacity: 0; opacity: 0%;
} }
} }

View file

@ -11,18 +11,21 @@ fieldset {
input, select, textarea { input, select, textarea {
padding: var(--espace-xs); padding: var(--espace-xs);
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
accent-color: var(--couleur-jaune); accent-color: var(--couleur-gris-fonce);
background: var(--couleur-gris); background: var(--couleur-gris);
transition: 0.2s background; transition: 0.2s background;
&:focus-visible, &:focus-within, &:active { &:focus-visible, &:focus-within {
z-index: 10; z-index: 10;
outline: 2px dashed var(--couleur-noir); outline: 2px dashed var(--couleur-noir);
} }
&:disabled, &[disabled] { &:active {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px background: var(--arriere-plan-points);
/ 2px 2px; }
&:disabled {
background: var(--arriere-plan-points);
outline-color: transparent; outline-color: transparent;
} }
} }
@ -39,16 +42,14 @@ input:is([type="email"], [type="text"], [type="tel"]), textarea {
} }
&:user-valid { &:user-valid {
background: var(--couleur-jaune); background: var(--arriere-plan-points);
color: var(--couleur-noir);
font-weight: 500;
} }
&:user-invalid { &:user-invalid {
background: var(--couleur-gris); background: var(--couleur-gris);
} }
// &:user-invalid {
// border-color: red;
// }
} }
input, label, select, textarea { input, label, select, textarea {
@ -65,7 +66,8 @@ input[type="checkbox"], input[type="radio"] {
transition: 0.2s background; transition: 0.2s background;
&:checked { &:checked {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
color: var(--couleur-blanc);
// TODO: Utiliser un SVG plutôt qu'un « x » ? // TODO: Utiliser un SVG plutôt qu'un « x » ?
&::before { &::before {
@ -96,7 +98,7 @@ input[type="checkbox"], input[type="radio"] {
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
} }

View file

@ -12,5 +12,5 @@ img, picture {
img { img {
object-fit: cover; /* 2 */ object-fit: cover; /* 2 */
background: var(--couleur-jaune); /* 3 */ background: var(--couleur-gris-fonce); /* 3 */
} }

View file

@ -35,7 +35,7 @@ a {
--lien-bouton-marges-internes-ligne: var(--espace-m); --lien-bouton-marges-internes-ligne: var(--espace-m);
/* Couleurs */ /* Couleurs */
--lien-bouton-arriere-plan-couleur-survol: var(--couleur-jaune); --lien-bouton-arriere-plan-couleur-survol: var(--couleur-gris-fonce);
padding: var(--lien-bouton-marges-internes-bloc) var(--lien-bouton-marges-internes-ligne); padding: var(--lien-bouton-marges-internes-bloc) var(--lien-bouton-marges-internes-ligne);
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
@ -63,14 +63,14 @@ a {
text-decoration: underline; text-decoration: underline;
&:active { &:active {
text-decoration-color: var(--couleur-jaune); text-decoration-color: var(--couleur-gris-fonce);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
text-decoration-color: var(--couleur-jaune); text-decoration-color: var(--couleur-gris-fonce);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
} }
} }
} }

View file

@ -10,7 +10,7 @@
color: var(--couleur-noir); color: var(--couleur-noir);
text-transform: uppercase; text-transform: uppercase;
white-space: nowrap; white-space: nowrap;
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
&__conteneur { &__conteneur {
display: flex; display: flex;
@ -19,7 +19,7 @@
animation: marquee linear 15s infinite both; animation: marquee linear 15s infinite both;
*::selection { *::selection {
color: var(--couleur-jaune); color: var(--couleur-gris-fonce);
background: var(--couleur-noir); background: var(--couleur-noir);
} }

View file

@ -23,7 +23,8 @@
height: var(--en-tete-hauteur); height: var(--en-tete-hauteur);
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne); padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
border-bottom: 1px solid var(--couleur-noir); border-bottom: 1px solid var(--couleur-noir);
background: var(--couleur-gris); background: var(--couleur-gris-fond-extra);
backdrop-filter: brightness(125%) blur(6px);
picture, img { picture, img {
background: transparent; background: transparent;
@ -81,14 +82,14 @@
// BASELINE001: Marchera seulement pour les navigateurs > 2023. // BASELINE001: Marchera seulement pour les navigateurs > 2023.
&:has(a[aria-current="page"]) { &:has(a[aria-current="page"]) {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
center/auto 90% no-repeat; bottom/auto 90% no-repeat;
} }
// COMPAT001: Pour les navigateurs < 2023. // COMPAT001: Pour les navigateurs < 2023.
&--courante { &--courante {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
center/auto 90% no-repeat; bottom/auto 90% no-repeat;
} }
a { a {
@ -101,8 +102,8 @@
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche.svg") background: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-penche-gris.svg")
center/auto 90% no-repeat; bottom/auto 90% no-repeat;
} }
} }
} }
@ -114,6 +115,7 @@
} }
} }
/* * Bouton du compte de Produits dans le Panier. */
.compte-panier { .compte-panier {
display: flex; display: flex;
flex-flow: row nowrap; flex-flow: row nowrap;
@ -122,12 +124,10 @@
text-align: center; text-align: center;
&[disabled] { &[disabled] {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px background: var(--arriere-plan-points);
0.5px / 2px 2px;
a:hover, a:active, a:focus-within { a:hover, a:active, a:focus-within {
border: 1px solid var(--couleur-noir); border: 1px solid var(--couleur-noir);
background: initial;
} }
} }
@ -135,13 +135,20 @@
padding-block: var(--espace-2xs); padding-block: var(--espace-2xs);
padding-inline: var(--espace-s); padding-inline: var(--espace-s);
text-transform: lowercase; text-transform: lowercase;
background: transparent;
&.lien-compte {
border-color: transparent;
}
&[data-contient-articles="true"] { &[data-contient-articles="true"] {
background: var(--couleur-jaune); background: var(--couleur-gris-fond);
}
&:hover, &:focus-within {
color: var(--couleur-blanc);
background: var(--couleur-gris-fonce-fond);
}
&:active {
color: var(--couleur-noir);
background: var(--arriere-plan-points);
} }
} }
} }
@ -164,6 +171,12 @@
shape-rendering: geometricprecision; shape-rendering: geometricprecision;
} }
@media (hover: hover) {
&:hover {
background: initial !important;
}
}
// Affiche sur petites tailles d'écran. // Affiche sur petites tailles d'écran.
@media (width <= 1000px) { @media (width <= 1000px) {
display: block; display: block;

View file

@ -43,7 +43,7 @@
&:hover { &:hover {
.produit__illustration__survol { .produit__illustration__survol {
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
transition: 0.3s opacity, 0.3s visibility; transition: 0.3s opacity, 0.3s visibility;
} }
} }
@ -70,7 +70,7 @@
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
opacity: 0; opacity: 0%;
background-image: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg"); background-image: url("/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
@ -80,7 +80,7 @@
} }
img { img {
opacity: 0; opacity: 0%;
transition: opacity 1s; transition: opacity 1s;
} }
} }
@ -93,11 +93,11 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 0.15s opacity, 0.15s visibility; transition: 0.15s opacity, 0.15s visibility;
img { img {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
} }
@ -146,6 +146,6 @@
@keyframes test { @keyframes test {
to { to {
opacity: 1; opacity: 100%;
} }
} }

View file

@ -79,57 +79,27 @@
text-align: center; text-align: center;
letter-spacing: initial; letter-spacing: initial;
appearance: none; appearance: none;
background: var(--couleur-fond); background: var(--couleur-gris-fond);
@supports selector(:user-valid) { @supports selector(:user-valid) {
&:user-valid { &:user-valid {
background: var(--couleur-jaune-fond); background: var(--couleur-gris-fond);
} }
} }
} }
option { option {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
/* Conteneur des sélecteurs */ /* Conteneur des sélecteurs */
&__selecteurs { &__selecteurs {
position: relative; position: relative;
display: flex;
/* Icône de flèche descendante */ flex-flow: row wrap;
&::after { place-items: center;
pointer-events: none; place-content: center;
content: " "; gap: var(--espace-m);
position: absolute;
top: 7px;
right: 0.4rem;
display: inline-block;
width: 0.9rem;
height: 0.9rem;
text-align: center;
visibility: visible;
opacity: 1;
background: url("/app/themes/haiku-atelier-2024/assets/img/icons/arrow.svg") no-repeat;
transition: opacity 0.2s, visibility 0.2s;
}
@supports not selector(:user-valid) {
&:has(select:valid) {
&::after {
visibility: hidden;
opacity: 0;
}
}
}
@supports selector(:user-valid) {
&:has(select:user-valid) {
&::after {
visibility: hidden;
opacity: 0;
}
}
}
} }
} }
@ -230,12 +200,12 @@
overflow: hidden; overflow: hidden;
border-block: 1px solid var(--couleur-noir); border-block: 1px solid var(--couleur-noir);
background: var(--couleur-jaune); background: var(--arriere-plan-points);
transition: 0.2s background; transition: 0.2s background;
// Indique un Bouton désactivé avec un fond gris en-dessous du fond à motif // Indique un Bouton désactivé avec un fond gris en-dessous du fond à motif
&:has(button[disabled]) { &:has(button[disabled]) {
background: var(--couleur-fond); background: var(--couleur-gris-fond);
} }
button { button {
@ -243,13 +213,15 @@
padding: var(--section-marges-internes); padding: var(--section-marges-internes);
font-style: italic; font-style: italic;
text-transform: uppercase; text-transform: uppercase;
transition: 0.2s background, 0.2s font-weight; transition: 0.2s color, 0.2s background, 0.2s font-weight;
// Change la casse de la police au survol quand le Bouton n'est pas désactivé // Change la casse de la police au survol quand le Bouton n'est pas désactivé
&:not([disabled]) { &:not([disabled]) {
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
font-weight: 600; font-weight: 600;
color: var(--couleur-blanc);
background: var(--couleur-gris-fonce-fond);
} }
} }
} }

View file

@ -21,13 +21,13 @@
&[data-entrees-presentes-debut] { &[data-entrees-presentes-debut] {
svg:first-of-type { svg:first-of-type {
opacity: 1; opacity: 100%;
} }
} }
&[data-entrees-presentes-fin] { &[data-entrees-presentes-fin] {
svg:last-of-type { svg:last-of-type {
opacity: 1; opacity: 100%;
} }
} }
@ -37,7 +37,7 @@
bottom: calc(35.18px / 2 - 0.35rem); bottom: calc(35.18px / 2 - 0.35rem);
width: 0.8rem; width: 0.8rem;
height: 0.8rem; height: 0.8rem;
opacity: 0; opacity: 0%;
mix-blend-mode: exclusion; mix-blend-mode: exclusion;
shape-rendering: geometricprecision; shape-rendering: geometricprecision;
transition: 0.2s opacity; transition: 0.2s opacity;
@ -88,7 +88,7 @@
a { a {
font-weight: 600; font-weight: 600;
color: var(--couleur-noir); color: var(--couleur-noir);
background: var(--couleur-jaune); background: var(--couleur-gris-fonce);
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
@ -111,14 +111,13 @@
outline: initial; /* 3 */ outline: initial; /* 3 */
&:focus-visible { &:focus-visible {
color: var(--couleur-jaune); color: var(--couleur-gris-fonce);
outline: initial; /* 3 */ outline: initial; /* 3 */
} }
@media (hover: hover) { @media (hover: hover) {
&:hover { &:hover {
color: var(--couleur-noir); background: var(--couleur-gris-fonce);
background: var(--couleur-jaune);
} }
} }
} }

View file

@ -37,8 +37,8 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
z-index: 998; z-index: 998;
inset: var(--en-tete-hauteur) 0 0 0; inset: var(--en-tete-hauteur) 0 0 0;
height: var(--menu-mobile-hauteur); height: var(--menu-mobile-hauteur);
opacity: 0; opacity: 0%;
background-color: var(--couleur-fond); background-color: var(--couleur-gris-fond);
animation: fade-in 400ms both; animation: fade-in 400ms both;
} }
@ -51,7 +51,7 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
height: fit-content; height: fit-content;
padding: var(--espace-xl); padding: var(--espace-xl);
border-bottom: 1px solid var(--couleur-noir); border-bottom: 1px solid var(--couleur-noir);
opacity: 0; opacity: 0%;
background-color: var(--couleur-gris); background-color: var(--couleur-gris);
animation: fade-in 400ms 200ms both; animation: fade-in 400ms 200ms both;
@ -82,13 +82,13 @@ body:has(#menu-mobile:not([aria-hidden="true"])) {
@keyframes fade-in { @keyframes fade-in {
to { to {
opacity: 1; opacity: 100%;
} }
} }
@keyframes fade-out { @keyframes fade-out {
to { to {
opacity: 0; opacity: 0%;
} }
} }

View file

@ -79,7 +79,7 @@
padding: 0; padding: 0;
font-size: 0.8rem; font-size: 0.8rem;
font-weight: 450; font-weight: 450;
color: grey; color: var(--couleur-gris-fonce);
text-align: center; text-align: center;
p { p {
@ -149,7 +149,6 @@
// Total de la commande // Total de la commande
.panneau__pied-de-page { .panneau__pied-de-page {
align-content: center; align-content: center;
padding: var(--espace-l) 0;
font-size: 1.25rem; font-size: 1.25rem;
font-style: italic; font-style: italic;
color: var(--couleur-blanc); color: var(--couleur-blanc);
@ -159,9 +158,7 @@
background: var(--couleur-noir); background: var(--couleur-noir);
button { button {
font: inherit; padding: var(--espace-l) 0;
color: inherit;
text-transform: inherit;
} }
} }

View file

@ -193,7 +193,7 @@
text-align: right; text-align: right;
span { span {
color: grey; color: var(--couleur-gris-fonce);
} }
} }
} }
@ -210,7 +210,7 @@
cursor: revert; cursor: revert;
flex-basis: 100%; flex-basis: 100%;
margin-bottom: var(--espace-xs); margin-bottom: var(--espace-xs);
color: grey; color: var(--couleur-gris-fonce);
text-align: center; text-align: center;
text-transform: lowercase; text-transform: lowercase;
} }
@ -229,7 +229,7 @@
margin-top: var(--espace-l); margin-top: var(--espace-l);
font-size: 0.8rem; font-size: 0.8rem;
font-weight: 450; font-weight: 450;
color: grey; color: var(--couleur-gris-fonce);
letter-spacing: var(--espacement-inter-lettres-etendu-s); letter-spacing: var(--espacement-inter-lettres-etendu-s);
} }
} }

View file

@ -59,7 +59,7 @@
&:hover { &:hover {
.produit__illustration__survol { .produit__illustration__survol {
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
transition: 0.3s opacity, 0.3s visibility; transition: 0.3s opacity, 0.3s visibility;
} }
} }
@ -78,7 +78,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 0.15s opacity, 0.15s visibility; transition: 0.15s opacity, 0.15s visibility;
} }

View file

@ -48,7 +48,7 @@
block-size: 100%; block-size: 100%;
margin: auto; margin: auto;
visibility: visible; visibility: visible;
opacity: 1; opacity: 100%;
mask-image: linear-gradient( mask-image: linear-gradient(
var(--mask-direction, to right), var(--mask-direction, to right),
hsl(0deg 0% 0% / 0%), hsl(0deg 0% 0% / 0%),
@ -61,14 +61,14 @@
&[hidden] { &[hidden] {
display: grid !important; display: grid !important;
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 1s opacity ease-in-out, 1s visibility ease-in-out; transition: 1s opacity ease-in-out, 1s visibility ease-in-out;
} }
// N'affiche rien si JavaScript n'est pas activé. // N'affiche rien si JavaScript n'est pas activé.
&.no-js { &.no-js {
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0%;
transition: 1s opacity ease-in-out, 1s visibility ease-in-out; transition: 1s opacity ease-in-out, 1s visibility ease-in-out;
} }

View file

@ -30,6 +30,20 @@ class APIResponseError extends Schema.TaggedErrorClass<APIResponseError>()("APIR
type APIError = APIRequestError | APIResponseError; type APIError = APIRequestError | APIResponseError;
class WooCommerceErrorBody extends Schema.Class<WooCommerceErrorBody>("WooCommerceErrorBody")({
code: Schema.String,
data: Schema.Struct({
status: Schema.Int,
}),
message: Schema.String,
}) {}
class WooCommerceError extends Schema.Class<WooCommerceError>("WooCommerceError")({
body: WooCommerceErrorBody,
status: Schema.Number,
}) {}
type APIResponse<T> = T | WooCommerceError;
/** Client `fetch` contenant les options et en-têtes de Requêtes pré-renseignées. */ /** Client `fetch` contenant les options et en-têtes de Requêtes pré-renseignées. */
const APIFetchClient = FetchHttpClient.layer.pipe( const APIFetchClient = FetchHttpClient.layer.pipe(
Layer.provide( Layer.provide(
@ -96,7 +110,7 @@ class APIClient extends Context.Service<APIClient>()("haikuatelier.fr/APIClient"
}); });
const AddProductToCart = Effect.fn("AppClient.AddProductToCart")( const AddProductToCart = Effect.fn("AppClient.AddProductToCart")(
function*(nonce: string, productToAdd: CartProduct): Effect.fn.Return<WooCommerceCart, APIError> { function*(nonce: string, productToAdd: CartProduct): Effect.fn.Return<APIResponse<WooCommerceCart>, APIError> {
const request = pipe( const request = pipe(
HttpClientRequest.post(`/wp-json/wc/store/cart/add-item`), HttpClientRequest.post(`/wp-json/wc/store/cart/add-item`),
HttpClientRequest.setHeader("Nonce", nonce), HttpClientRequest.setHeader("Nonce", nonce),
@ -109,6 +123,9 @@ class APIClient extends Context.Service<APIClient>()("haikuatelier.fr/APIClient"
Effect.flatMap(HttpClientResponse.schemaBodyJson(WooCommerceCart)), Effect.flatMap(HttpClientResponse.schemaBodyJson(WooCommerceCart)),
Effect.mapError(error => matchAPIError(error)), Effect.mapError(error => matchAPIError(error)),
Effect.tapError(error => printErrorAsSuccinctMessage(error)), Effect.tapError(error => printErrorAsSuccinctMessage(error)),
// Effect.catchTag("APIResponseError", error => {
// if (error.cause.)
// }),
); );
return response; return response;

View file

@ -95,6 +95,11 @@ class ProductPageDOM extends Context.Service<ProductPageDOM>()(
); );
}); });
const setLoadingState = Effect.fn("setLoadingState")(function*(element: HTMLElement, isLoading: boolean) {
element.toggleAttribute(ATTRIBUT_DESACTIVE, isLoading);
element.toggleAttribute(ATTRIBUT_CHARGEMENT, isLoading);
});
const detailButtonClickHandler = Effect.fn("detailButtonClickHandler")( const detailButtonClickHandler = Effect.fn("detailButtonClickHandler")(
function*(evt: Event) { function*(evt: Event) {
// Empêche la pollution de l'historique de navigation // Empêche la pollution de l'historique de navigation
@ -182,8 +187,7 @@ class ProductPageDOM extends Context.Service<ProductPageDOM>()(
// TODO: Faire une véritable gestion des erreurs. // TODO: Faire une véritable gestion des erreurs.
const recoverFromBackendFailure = Effect.fn("recoverFromBackendFailure")(function*(error: APIError) { const recoverFromBackendFailure = Effect.fn("recoverFromBackendFailure")(function*(error: APIError) {
AddToCartButton.toggleAttribute(ATTRIBUT_DESACTIVE, false); yield* setLoadingState(AddToCartButton, false);
AddToCartButton.toggleAttribute(ATTRIBUT_CHARGEMENT, false);
// Affiche un message d'erreur sommaire à l'utilisateur puis réinitialise le texte. // Affiche un message d'erreur sommaire à l'utilisateur puis réinitialise le texte.
yield* SubscriptionRef.set(AddToCartButtonText, "Error!"); yield* SubscriptionRef.set(AddToCartButtonText, "Error!");
@ -217,26 +221,28 @@ class ProductPageDOM extends Context.Service<ProductPageDOM>()(
), ),
Effect.map(({ id, attributes }) => Effect.map(({ id, attributes }) =>
// Les données ont été validées en amont. // Les données ont été validées en amont.
Schema.decodeSync(CartProduct)({ id: id, quantity: 0, variation: attributes }) Schema.decodeSync(CartProduct)({ id: id, quantity: 1, variation: attributes })
), ),
Effect.tap(body => Console.debug("addToCartButtonClickHandler", "requestBody", body)), Effect.tap(body => Console.debug("addToCartButtonClickHandler", "requestBody", body)),
); );
// Désactive les interactions le temps de la requête. // Désactive les interactions le temps de la requête.
AddToCartButton.toggleAttribute(ATTRIBUT_DESACTIVE, true); yield* setLoadingState(AddToCartButton, true);
AddToCartButton.toggleAttribute(ATTRIBUT_CHARGEMENT, true); yield* SubscriptionRef.set(AddToCartButtonText, "Adding Product...");
// lanceAnimationCycleLoading(AddToCartButton, 500); // lanceAnimationCycleLoading(AddToCartButton, 500);
// Exécute la Requête auprès du backend. // Exécute la Requête auprès du backend.
const newCart = yield* API.AddProductToCart(PageStates.nonce, requestBody); const newCart = yield* API.AddProductToCart(PageStates.nonce, requestBody);
// Met à jour le compteur d'articles du Panier. // Met à jour le compteur d'articles du Panier.
const newItemsCount = WooCommerceCart._itemsCount.get(newCart); const newItemsCount = WooCommerceCart._itemsCount.get(newCart as WooCommerceCart);
emetMessageMajBoutonPanier({ quantiteProduits: newItemsCount }); emetMessageMajBoutonPanier({ quantiteProduits: newItemsCount });
AddToCartButton.toggleAttribute(ATTRIBUT_DESACTIVE, false); // Affiche un message de succès à l'utilisateur.
AddToCartButton.toggleAttribute(ATTRIBUT_CHARGEMENT, false); yield* SubscriptionRef.set(AddToCartButtonText, "OK!");
yield* SubscriptionRef.set(AddToCartButtonText, "Add to cart"); yield* setLoadingState(AddToCartButton, false);
yield* SubscriptionRef.set(AddToCartButtonText, "Add to cart").pipe(Effect.delay("3 seconds"));
}, },
Effect.catchTags({ Effect.catchTags({
APIResponseError: error => recoverFromBackendFailure(error), APIResponseError: error => recoverFromBackendFailure(error),

View file

@ -0,0 +1,9 @@
document.addEventListener("DOMContentLoaded", (): void => {
// TODO: Si la lecture automatique est désactivée, ajouter un bouton de lecture.
console.debug(navigator.getAutoplayPolicy("mediaelement"));
});
/**
* background-color: rgba(236, 234, 235, 0.52)
* backdrop-filter: contrast(50%) blur(3px)
*/

View file

@ -5,8 +5,9 @@
<main id="page-accueil"> <main id="page-accueil">
<video <video
autoplay disablepictureinpicture autoplay disablepictureinpicture
id="intro-video" preload="auto" id="intro-video" loop
loop muted muted playsinline
preload="auto" webkit-playsinline
> >
<source <source
media="(width >= 600px)" src="{{ site.theme.link }}/assets/video/intro-desktop.m4v" media="(width >= 600px)" src="{{ site.theme.link }}/assets/video/intro-desktop.m4v"

View file

@ -259,7 +259,10 @@
</form> </form>
<footer class="panneau__pied-de-page"> <footer class="panneau__pied-de-page">
<button form="formulaire-commande" type="submit"> <button
class="bouton-case-pleine bouton-blanc-sur-noir" form="formulaire-commande"
type="submit"
>
Calculate shipping Calculate shipping
</button> </button>
</footer> </footer>

View file

@ -10,9 +10,7 @@
<div class="selecteur-produit__attribut-variation"> <div class="selecteur-produit__attribut-variation">
{% if product.attributes %} {% if product.attributes %}
{% for attribut in product.attributes %} {% for attribut in product.attributes %}
<div class="test">
{{ include('parts/pages/produit/selecteur-attributs-produit.twig') }} {{ include('parts/pages/produit/selecteur-attributs-produit.twig') }}
</div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div> </div>

View file

@ -4,7 +4,7 @@
</label> </label>
<select <select
aria-labelledby="label-{{ atribut.slug }}" id="{{ attribut.slug }}" aria-labelledby="label-{{ attribut.slug }}" id="{{ attribut.slug }}"
name="{{ attribut.slug }}" required name="{{ attribut.slug }}" required
> >
<option <option

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

0
web/app/uploads/2024/09/HADOU-B-mix.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 398 KiB

After

Width:  |  Height:  |  Size: 398 KiB

Before After
Before After

0
web/app/uploads/2024/09/HADOU-B.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

0
web/app/uploads/2024/09/HADOU-BKIGEN-Bo.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 619 KiB

After

Width:  |  Height:  |  Size: 619 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

0
web/app/uploads/2024/09/IKKAN-B-g.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 725 KiB

After

Width:  |  Height:  |  Size: 725 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

0
web/app/uploads/2024/09/IKKAN-B-vrm.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

0
web/app/uploads/2024/09/IKKAN-B2-arg.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

0
web/app/uploads/2024/09/IKKAN-BaKIGEN-Ba.jpg Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 297 KiB

After

Width:  |  Height:  |  Size: 297 KiB

Before After
Before After

Some files were not shown because too many files have changed in this diff Show more