2024-11-13

This commit is contained in:
gcch 2024-11-13 09:08:08 +01:00
commit abd30975c4
16 changed files with 1927 additions and 558 deletions

View file

@ -1,62 +1,24 @@
<p align="center"> # Haiku Atelier
<a href="https://roots.io/bedrock/">
<img alt="Bedrock" src="https://cdn.roots.io/app/uploads/logo-bedrock.svg" height="100">
</a>
</p>
<p align="center"> ## Dépendances
<a href="https://packagist.org/packages/roots/bedrock">
<img alt="Packagist Installs" src="https://img.shields.io/packagist/dt/roots/bedrock?label=projects%20created&colorB=2b3072&colorA=525ddc&style=flat-square">
</a>
<a href="https://packagist.org/packages/roots/wordpress"> ### PHP
<img alt="roots/wordpress Packagist Downloads" src="https://img.shields.io/packagist/dt/roots/wordpress?label=roots%2Fwordpress%20downloads&logo=roots&logoColor=white&colorB=2b3072&colorA=525ddc&style=flat-square">
</a>
<img src="https://img.shields.io/badge/dynamic/json.svg?url=https://raw.githubusercontent.com/roots/bedrock/master/composer.json&label=wordpress&logo=roots&logoColor=white&query=$.require[%22roots/wordpress%22]&colorB=2b3072&colorA=525ddc&style=flat-square"> #### Dépendances
<a href="https://github.com/roots/bedrock/actions/workflows/ci.yml"> - `composer/installers` : permet d'installer et récupérer des dépendances dans des dossiers personnalisés ; nécessaire pour _Bedrock_.
<img alt="Build Status" src="https://img.shields.io/github/actions/workflow/status/roots/bedrock/ci.yml?branch=master&logo=github&label=CI&style=flat-square"> - `crell/fp` : librairie proposant des méthodes de programmation fonctionnelle.
</a> - `htmlburger/carbon-fields` : librairie en alternative à _Advanced Custom Fields_ permettant la création de champs et taxonomies personnalisés.
- `laravel/helpers` : ensemble de fonctions utilitaires ;
- `lstrojny/functional-php` libraire proposant des méthodes de programmation fonctionnelle (à sûrement remplacer par `laravel/helpers`).
- `mnsami/composer-custom-directory-installer` : permet d'installer des dépendances dans des dossiers personnalisés ; nécessaire pour `htmlburger/carbon-fields`.
- `oscarotero/env` : permet de récupérer les variables d'environnements des fichiers `.env` (?).
- `ramsey/uuid` : librairie pour la génération de _UUID_.
- `vlucas/phpdotenv` : permet de récupérer les variables d'environnements des fichiers `.env` (?).
<a href="https://twitter.com/rootswp"> #### Dépendances de développement
<img alt="Follow Roots" src="https://img.shields.io/badge/follow%20@rootswp-1da1f2?logo=twitter&logoColor=ffffff&message=&style=flat-square">
</a>
</p>
<p align="center">WordPress boilerplate with Composer, easier configuration, and an improved folder structure</p> - `phpstan/phpstan` : vérification de types statiques.
- `squizlabels/php_codesniffer` : linter.
<p align="center"> - `szepeviktor/phpstan-wordpress` : _stubs WordPress_.
<a href="https://roots.io/bedrock/">Website</a> &nbsp;&nbsp; <a href="https://roots.io/bedrock/docs/installation/">Documentation</a> &nbsp;&nbsp; <a href="https://github.com/roots/bedrock/releases">Releases</a> &nbsp;&nbsp; <a href="https://discourse.roots.io/">Community</a> - `vimeo/pslam` : analyseur de code statique.
</p>
## Sponsors
Bedrock is an open source project and completely free to use. If you've benefited from our projects and would like to support our future endeavors, please consider [sponsoring Roots](https://github.com/sponsors/roots).
<div align="center">
<a href="https://k-m.com/"><img src="https://cdn.roots.io/app/uploads/km-digital.svg" alt="KM Digital" width="120" height="90"></a> <a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="120" height="90"></a> <a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="120" height="90"></a> <a href="https://worksitesafety.ca/careers/"><img src="https://cdn.roots.io/app/uploads/worksite-safety.svg" alt="Worksite Safety" width="120" height="90"></a> <a href="https://www.itineris.co.uk/"><img src="https://cdn.roots.io/app/uploads/itineris.svg" alt="Itineris" width="120" height="90"></a>
</div>
## Overview
Bedrock is a WordPress boilerplate for developers that want to manage their projects with Git and Composer. Much of the philosophy behind Bedrock is inspired by the [Twelve-Factor App](http://12factor.net/) methodology, including the [WordPress specific version](https://roots.io/twelve-factor-wordpress/).
- Better folder structure
- Dependency management with [Composer](https://getcomposer.org)
- Easy WordPress configuration with environment specific files
- Environment variables with [Dotenv](https://github.com/vlucas/phpdotenv)
- Autoloader for mu-plugins (use regular plugins as mu-plugins)
- Enhanced security (separated web root and secure passwords with [wp-password-bcrypt](https://github.com/roots/wp-password-bcrypt))
## Getting Started
See the [Bedrock installation documentation](https://roots.io/bedrock/docs/installation/).
## Stay Connected
- Join us on Discord by [sponsoring us on GitHub](https://github.com/sponsors/roots)
- Participate on [Roots Discourse](https://discourse.roots.io/)
- Follow [@rootswp on Twitter](https://twitter.com/rootswp)
- Read the [Roots Blog](https://roots.io/blog/)
- Subscribe to the [Roots Newsletter](https://roots.io/newsletter/)

View file

@ -21,7 +21,8 @@
"composer/installers": "^2.2", "composer/installers": "^2.2",
"crell/fp": "^1.0", "crell/fp": "^1.0",
"htmlburger/carbon-fields": "^3.6", "htmlburger/carbon-fields": "^3.6",
"idleberg/wordpress-vite-assets": "^1.2", "illuminate/support": "^11.31",
"laravel/helpers": "^1.7",
"lstrojny/functional-php": "^1.17", "lstrojny/functional-php": "^1.17",
"mnsami/composer-custom-directory-installer": "^2.0", "mnsami/composer-custom-directory-installer": "^2.0",
"oscarotero/env": "^2.1", "oscarotero/env": "^2.1",
@ -32,16 +33,16 @@
"roots/wp-config": "^1.0.0", "roots/wp-config": "^1.0.0",
"roots/wp-password-bcrypt": "^1.1.0", "roots/wp-password-bcrypt": "^1.1.0",
"stripe/stripe-php": "^16.2", "stripe/stripe-php": "^16.2",
"symfony/uid": "^7.1",
"timber/timber": "^2.2", "timber/timber": "^2.2",
"vlucas/phpdotenv": "^5.5", "vlucas/phpdotenv": "^5.5",
"wpackagist-plugin/falcon": "^2.8", "wpackagist-plugin/falcon": "^2.8",
"wpackagist-plugin/force-regenerate-thumbnails": "^2.2", "wpackagist-plugin/force-regenerate-thumbnails": "^2.2",
"wpackagist-plugin/polylang": "^3.6",
"wpackagist-plugin/query-monitor": "^3.16", "wpackagist-plugin/query-monitor": "^3.16",
"wpackagist-plugin/wc-multishipping": "^2.5", "wpackagist-plugin/wc-multishipping": "^2.5",
"wpackagist-plugin/woocommerce": "^9.1", "wpackagist-plugin/woocommerce": "^9.1",
"wpackagist-plugin/wp-openapi": "^1.0", "wpackagist-plugin/wp-openapi": "^1.0",
"wpackagist-theme/twentytwentyfour": "^1.0" "wpackagist-theme/twentytwentyfour": "^1.3"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "^1.12", "phpstan/phpstan": "^1.12",

1512
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -68,6 +68,12 @@ build-css:
--minify \ --minify \
--output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.min.css" \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.min.css" \
-- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css" -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css"
pnpm lightningcss \
--bundle \
--minify \
--output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css" \
-- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css"
# Compile le CSS à chaque changement de fichier # Compile le CSS à chaque changement de fichier
watch-css: watch-css:

View file

@ -40,7 +40,7 @@
"prettier": "^3.3.3", "prettier": "^3.3.3",
"prettier-plugin-pkg": "^0.18.1", "prettier-plugin-pkg": "^0.18.1",
"prettier-plugin-sh": "^0.14.0", "prettier-plugin-sh": "^0.14.0",
"sass": "^1.80.6", "sass-embedded": "^1.80.7",
"stylelint": "^16.10.0", "stylelint": "^16.10.0",
"stylelint-config-clean-order": "^6.1.0", "stylelint-config-clean-order": "^6.1.0",
"stylelint-config-sass-guidelines": "^12.1.0", "stylelint-config-sass-guidelines": "^12.1.0",

490
pnpm-lock.yaml generated
View file

@ -93,9 +93,9 @@ importers:
prettier-plugin-sh: prettier-plugin-sh:
specifier: ^0.14.0 specifier: ^0.14.0
version: 0.14.0(prettier@3.3.3) version: 0.14.0(prettier@3.3.3)
sass: sass-embedded:
specifier: ^1.80.6 specifier: ^1.80.7
version: 1.80.6 version: 1.80.7
stylelint: stylelint:
specifier: ^16.10.0 specifier: ^16.10.0
version: 16.10.0(typescript@5.7.0-dev.20241105) version: 16.10.0(typescript@5.7.0-dev.20241105)
@ -122,19 +122,19 @@ importers:
version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.7.0-dev.20241105) version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.7.0-dev.20241105)
vite: vite:
specifier: ^5.4.11 specifier: ^5.4.11
version: 5.4.11(@types/node@22.9.0)(sass@1.80.6) version: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
vite-plugin-manifest-sri: vite-plugin-manifest-sri:
specifier: ^0.2.0 specifier: ^0.2.0
version: 0.2.0 version: 0.2.0
vite-plugin-node-polyfills: vite-plugin-node-polyfills:
specifier: ^0.22.0 specifier: ^0.22.0
version: 0.22.0(rollup@4.25.0)(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)) version: 0.22.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
vite-plugin-valibot-env: vite-plugin-valibot-env:
specifier: ^0.8.5 specifier: ^0.8.5
version: 0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)) version: 0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
vite-tsconfig-paths: vite-tsconfig-paths:
specifier: ^5.1.2 specifier: ^5.1.2
version: 5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)) version: 5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
wp-types: wp-types:
specifier: ^4.66.1 specifier: ^4.66.1
version: 4.66.1 version: 4.66.1
@ -282,6 +282,9 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@bufbuild/protobuf@2.2.2':
resolution: {integrity: sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==}
'@csstools/css-parser-algorithms@3.0.4': '@csstools/css-parser-algorithms@3.0.4':
resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==}
engines: {node: '>=18'} engines: {node: '>=18'}
@ -773,93 +776,93 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/rollup-android-arm-eabi@4.25.0': '@rollup/rollup-android-arm-eabi@4.26.0':
resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==} resolution: {integrity: sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.25.0': '@rollup/rollup-android-arm64@4.26.0':
resolution: {integrity: sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==} resolution: {integrity: sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.25.0': '@rollup/rollup-darwin-arm64@4.26.0':
resolution: {integrity: sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==} resolution: {integrity: sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.25.0': '@rollup/rollup-darwin-x64@4.26.0':
resolution: {integrity: sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==} resolution: {integrity: sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.25.0': '@rollup/rollup-freebsd-arm64@4.26.0':
resolution: {integrity: sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==} resolution: {integrity: sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.25.0': '@rollup/rollup-freebsd-x64@4.26.0':
resolution: {integrity: sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==} resolution: {integrity: sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.25.0': '@rollup/rollup-linux-arm-gnueabihf@4.26.0':
resolution: {integrity: sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==} resolution: {integrity: sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.25.0': '@rollup/rollup-linux-arm-musleabihf@4.26.0':
resolution: {integrity: sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==} resolution: {integrity: sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.25.0': '@rollup/rollup-linux-arm64-gnu@4.26.0':
resolution: {integrity: sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==} resolution: {integrity: sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-musl@4.25.0': '@rollup/rollup-linux-arm64-musl@4.26.0':
resolution: {integrity: sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==} resolution: {integrity: sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.25.0': '@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
resolution: {integrity: sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==} resolution: {integrity: sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.25.0': '@rollup/rollup-linux-riscv64-gnu@4.26.0':
resolution: {integrity: sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==} resolution: {integrity: sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.25.0': '@rollup/rollup-linux-s390x-gnu@4.26.0':
resolution: {integrity: sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==} resolution: {integrity: sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-gnu@4.25.0': '@rollup/rollup-linux-x64-gnu@4.26.0':
resolution: {integrity: sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==} resolution: {integrity: sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-musl@4.25.0': '@rollup/rollup-linux-x64-musl@4.26.0':
resolution: {integrity: sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==} resolution: {integrity: sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.25.0': '@rollup/rollup-win32-arm64-msvc@4.26.0':
resolution: {integrity: sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==} resolution: {integrity: sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.25.0': '@rollup/rollup-win32-ia32-msvc@4.26.0':
resolution: {integrity: sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==} resolution: {integrity: sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.25.0': '@rollup/rollup-win32-x64-msvc@4.26.0':
resolution: {integrity: sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==} resolution: {integrity: sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -1226,6 +1229,9 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true hasBin: true
buffer-builder@0.2.0:
resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==}
buffer-xor@1.0.3: buffer-xor@1.0.3:
resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==}
@ -1289,6 +1295,9 @@ packages:
colord@2.9.3: colord@2.9.3:
resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
colorjs.io@0.5.2:
resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
commander@4.1.1: commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
@ -1411,11 +1420,11 @@ packages:
easy-table@1.2.0: easy-table@1.2.0:
resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==}
electron-to-chromium@1.5.56: electron-to-chromium@1.5.57:
resolution: {integrity: sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==} resolution: {integrity: sha512-xS65H/tqgOwUBa5UmOuNSLuslDo7zho0y/lgQw35pnrqiZh7UOWHCeL/Bt6noJATbA6tpQJGCifsFsIRZj1Fqg==}
elliptic@6.6.0: elliptic@6.6.1:
resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==} resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==}
emoji-regex@8.0.0: emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@ -1769,6 +1778,9 @@ packages:
immutable@4.3.7: immutable@4.3.7:
resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==}
immutable@5.0.2:
resolution: {integrity: sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==}
import-fresh@3.3.0: import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -2344,20 +2356,148 @@ packages:
ripemd160@2.0.2: ripemd160@2.0.2:
resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
rollup@4.25.0: rollup@4.26.0:
resolution: {integrity: sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==} resolution: {integrity: sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
run-parallel@1.2.0: run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
safe-buffer@5.1.2: safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
safe-buffer@5.2.1: safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
sass-embedded-android-arm64@1.80.7:
resolution: {integrity: sha512-Gwl/OY80uEA14MLm7efJvc1ErgGT51SvAv4/kIpTziOJpkk+999/nrEJHQ6YAJ7r5DuQcKvC3lHipcENUIpP9A==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [android]
sass-embedded-android-arm@1.80.7:
resolution: {integrity: sha512-pMxJ70yOGXYGmfoGlAMKqnr/nuP/UgKV3jc7v5kpmWGpPPMF2u63DM2QkvTqM32FyfwyxSycVaNFNT+gPomTiw==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [android]
sass-embedded-android-ia32@1.80.7:
resolution: {integrity: sha512-CJccGPgBePPYiXhyQWvgHF8AqjIDSGf+mcC4Ac/f5upRd9Z/vhQVrJfsDxt4c4tV0HGEfbQpT9xOCYF1Z6luZQ==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [android]
sass-embedded-android-riscv64@1.80.7:
resolution: {integrity: sha512-kIGcyuhNes9NUDzJ9VHy/ZGKdADCCt7JAwiC7lFSc6/xs5rJtGRn6hZ+mcG7gQWAezb5oK/VMQl8ps7HBFUEXw==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [android]
sass-embedded-android-x64@1.80.7:
resolution: {integrity: sha512-oLMQiFpbSczOrGZSWlZvVJ1T9L6nDjS2u8PTxfT0MFX/FT3EhaxylHeiYKrmtY4epRufNCC/G96DMVqnSNa1QQ==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [android]
sass-embedded-darwin-arm64@1.80.7:
resolution: {integrity: sha512-Vi5BbTWd9OO0tC60CPw5IY7w3Tccr1/Gy2DdkfE4qP6Rc368WmUis5ceG8ehAye0IT7aoRXpw8XTzWyXAZHbfw==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [darwin]
sass-embedded-darwin-x64@1.80.7:
resolution: {integrity: sha512-yeANclgSHJ7K/XLG4Lnk7aQ5dk7K+oqIOtoOP0bjXgWsdPbes9V7k1ZJ9mZGl+f/XAPaRRPqjKs4WHU9s8m8MA==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [darwin]
sass-embedded-linux-arm64@1.80.7:
resolution: {integrity: sha512-Idb5K9LHHWklN7A/kqWUd6sktA36V70bSjZ/gvCDu/5CBJBkMsVNdrxcdpGzrZe7pYV4XUTkMZOwf91owEywtQ==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
sass-embedded-linux-arm@1.80.7:
resolution: {integrity: sha512-ZttC6H2Z9YXUVFlprqZ0AgXuHdzqhvhUWsG7UUqkND9JSHvyFSwRij4h90aOK3gKg3PBGI4yG5tonLq2yV525A==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
sass-embedded-linux-ia32@1.80.7:
resolution: {integrity: sha512-xKnWWEFz1jFc9xDAG7nMcjPBCTuiJbqvTmEtwQoWj79hQrzVdkLM6SiUGVbGa1c2s2fJMS3Bg2fkDJBK6/BcuQ==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [linux]
sass-embedded-linux-musl-arm64@1.80.7:
resolution: {integrity: sha512-7+GCYIh+c1BG4ot/PbTvVXUxd2GxDWcMxV7i3sARStQBDpTZFfohWdjUytLyqGxQgJIrbq0Q60Ucrw6HUJtJ9A==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [linux]
sass-embedded-linux-musl-arm@1.80.7:
resolution: {integrity: sha512-gJLfSFiiuGaqWjaj0bcuhOlQ+t1jS9StuzXnW1b9gy2I6Y0uCprgbbELgtRVPSZlCG2BBolR76YCGQTB85M43Q==}
engines: {node: '>=14.0.0'}
cpu: [arm]
os: [linux]
sass-embedded-linux-musl-ia32@1.80.7:
resolution: {integrity: sha512-Iw2E6P1lha335C5tGNgPjLD7Oll7OdLBJ7uPKaU+I7KbiOPk7ELsxUL9AYIrKO0/MLtgxGqOWWfTo/5cvU8xSA==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [linux]
sass-embedded-linux-musl-riscv64@1.80.7:
resolution: {integrity: sha512-gd92dkDVpTh4xJb2hpX82E6el30h4MxCb7VJLwtbQSrQuxOlZgaDX4plMSZifsNTLvOsafdLCYyI+QsZRr8bkA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
sass-embedded-linux-musl-x64@1.80.7:
resolution: {integrity: sha512-i5udU+i0LZrL3dhHAgIfK7LBaHtScwAceiykndNIHyRXc1TY2DX3lG0EolVUvPyWFUNnvGCgxZF8oUToPzJ+pw==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
sass-embedded-linux-riscv64@1.80.7:
resolution: {integrity: sha512-DvnXvu019c6THNQnSWfy2eY/HFWZ2ogGUjRkdKAxj7U7i/YD+bsDIxdDQHZ48qzOguzx8n2aRa/clriM0HQPUA==}
engines: {node: '>=14.0.0'}
cpu: [riscv64]
os: [linux]
sass-embedded-linux-x64@1.80.7:
resolution: {integrity: sha512-nQB+IZwCzVPpPkP5L9zV416/AGPLky7L2GGPWtvxG2CEeTV1Rzet+gkhzk2eYEdbh+3py/w9YVRTaQuZ3QV0vQ==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [linux]
sass-embedded-win32-arm64@1.80.7:
resolution: {integrity: sha512-Q6Rh/CM30m8txoKK5SIVamnwPXs028Mvfq4Ol4saHgSYro9kY/HTrrWlG/RPd6sPvYBCYIm1mX8oBteDUMCajQ==}
engines: {node: '>=14.0.0'}
cpu: [arm64]
os: [win32]
sass-embedded-win32-ia32@1.80.7:
resolution: {integrity: sha512-VZMRp81KWUZZDqNwkL3yTDT+VRxB7ScJKUJD1M8fq6P1nyJP35+r1byXLF4UQMoNgpC5B16txxMvqdkv43OqAA==}
engines: {node: '>=14.0.0'}
cpu: [ia32]
os: [win32]
sass-embedded-win32-x64@1.80.7:
resolution: {integrity: sha512-4p+GzOJJ1KqxPKrkIkKisod4YAcC70fj4WMRLrQLLuUW+MzAvtKgX2+ZJf90D50CozSdgETGBvdPSj3VLjBzZw==}
engines: {node: '>=14.0.0'}
cpu: [x64]
os: [win32]
sass-embedded@1.80.7:
resolution: {integrity: sha512-OwF0QvpDUjW2udPCvxgaObU0tQHycpsIgCDtHBVHuOqZ2LN0OkkY+uxSO7bOaw9wD7vXtt+1V+jiIZDTxiSRVQ==}
engines: {node: '>=16.0.0'}
hasBin: true
sass@1.80.6: sass@1.80.6:
resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==} resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
@ -2572,6 +2712,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'} engines: {node: '>=8'}
supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
supports-hyperlinks@3.1.0: supports-hyperlinks@3.1.0:
resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
@ -2583,6 +2727,14 @@ packages:
svg-tags@1.0.0: svg-tags@1.0.0:
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
sync-child-process@1.0.2:
resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
engines: {node: '>=16.0.0'}
sync-message-port@1.1.3:
resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
engines: {node: '>=16.0.0'}
table@6.8.2: table@6.8.2:
resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
@ -2688,6 +2840,9 @@ packages:
typescript: typescript:
optional: true optional: true
varint@6.0.0:
resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
vite-plugin-manifest-sri@0.2.0: vite-plugin-manifest-sri@0.2.0:
resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==} resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==}
@ -2908,6 +3063,8 @@ snapshots:
'@biomejs/cli-win32-x64@1.9.4': '@biomejs/cli-win32-x64@1.9.4':
optional: true optional: true
'@bufbuild/protobuf@2.2.2': {}
'@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)':
dependencies: dependencies:
'@csstools/css-tokenizer': 3.0.3 '@csstools/css-tokenizer': 3.0.3
@ -3237,74 +3394,74 @@ snapshots:
'@xml-tools/parser': 1.0.11 '@xml-tools/parser': 1.0.11
prettier: 3.3.3 prettier: 3.3.3
'@rollup/plugin-inject@5.0.5(rollup@4.25.0)': '@rollup/plugin-inject@5.0.5(rollup@4.26.0)':
dependencies: dependencies:
'@rollup/pluginutils': 5.1.3(rollup@4.25.0) '@rollup/pluginutils': 5.1.3(rollup@4.26.0)
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.30.12 magic-string: 0.30.12
optionalDependencies: optionalDependencies:
rollup: 4.25.0 rollup: 4.26.0
'@rollup/pluginutils@5.1.3(rollup@4.25.0)': '@rollup/pluginutils@5.1.3(rollup@4.26.0)':
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 4.0.2 picomatch: 4.0.2
optionalDependencies: optionalDependencies:
rollup: 4.25.0 rollup: 4.26.0
'@rollup/rollup-android-arm-eabi@4.25.0': '@rollup/rollup-android-arm-eabi@4.26.0':
optional: true optional: true
'@rollup/rollup-android-arm64@4.25.0': '@rollup/rollup-android-arm64@4.26.0':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.25.0': '@rollup/rollup-darwin-arm64@4.26.0':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.25.0': '@rollup/rollup-darwin-x64@4.26.0':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.25.0': '@rollup/rollup-freebsd-arm64@4.26.0':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.25.0': '@rollup/rollup-freebsd-x64@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.25.0': '@rollup/rollup-linux-arm-gnueabihf@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.25.0': '@rollup/rollup-linux-arm-musleabihf@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.25.0': '@rollup/rollup-linux-arm64-gnu@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.25.0': '@rollup/rollup-linux-arm64-musl@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.25.0': '@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.25.0': '@rollup/rollup-linux-riscv64-gnu@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.25.0': '@rollup/rollup-linux-s390x-gnu@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.25.0': '@rollup/rollup-linux-x64-gnu@4.26.0':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.25.0': '@rollup/rollup-linux-x64-musl@4.26.0':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.25.0': '@rollup/rollup-win32-arm64-msvc@4.26.0':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.25.0': '@rollup/rollup-win32-ia32-msvc@4.26.0':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.25.0': '@rollup/rollup-win32-x64-msvc@4.26.0':
optional: true optional: true
'@sentry-internal/browser-utils@8.38.0': '@sentry-internal/browser-utils@8.38.0':
@ -3727,7 +3884,7 @@ snapshots:
browserify-rsa: 4.1.1 browserify-rsa: 4.1.1
create-hash: 1.2.0 create-hash: 1.2.0
create-hmac: 1.1.7 create-hmac: 1.1.7
elliptic: 6.6.0 elliptic: 6.6.1
hash-base: 3.0.4 hash-base: 3.0.4
inherits: 2.0.4 inherits: 2.0.4
parse-asn1: 5.1.7 parse-asn1: 5.1.7
@ -3741,10 +3898,12 @@ snapshots:
browserslist@4.24.2: browserslist@4.24.2:
dependencies: dependencies:
caniuse-lite: 1.0.30001680 caniuse-lite: 1.0.30001680
electron-to-chromium: 1.5.56 electron-to-chromium: 1.5.57
node-releases: 2.0.18 node-releases: 2.0.18
update-browserslist-db: 1.1.1(browserslist@4.24.2) update-browserslist-db: 1.1.1(browserslist@4.24.2)
buffer-builder@0.2.0: {}
buffer-xor@1.0.3: {} buffer-xor@1.0.3: {}
buffer@5.7.1: buffer@5.7.1:
@ -3790,6 +3949,7 @@ snapshots:
chokidar@4.0.1: chokidar@4.0.1:
dependencies: dependencies:
readdirp: 4.0.2 readdirp: 4.0.2
optional: true
cipher-base@1.0.4: cipher-base@1.0.4:
dependencies: dependencies:
@ -3813,6 +3973,8 @@ snapshots:
colord@2.9.3: {} colord@2.9.3: {}
colorjs.io@0.5.2: {}
commander@4.1.1: {} commander@4.1.1: {}
commander@8.3.0: {} commander@8.3.0: {}
@ -3841,7 +4003,7 @@ snapshots:
create-ecdh@4.0.4: create-ecdh@4.0.4:
dependencies: dependencies:
bn.js: 4.12.1 bn.js: 4.12.1
elliptic: 6.6.0 elliptic: 6.6.1
create-hash@1.2.0: create-hash@1.2.0:
dependencies: dependencies:
@ -3953,9 +4115,9 @@ snapshots:
optionalDependencies: optionalDependencies:
wcwidth: 1.0.1 wcwidth: 1.0.1
electron-to-chromium@1.5.56: {} electron-to-chromium@1.5.57: {}
elliptic@6.6.0: elliptic@6.6.1:
dependencies: dependencies:
bn.js: 4.12.1 bn.js: 4.12.1
brorand: 1.1.0 brorand: 1.1.0
@ -4358,7 +4520,10 @@ snapshots:
ignore@6.0.2: {} ignore@6.0.2: {}
immutable@4.3.7: {} immutable@4.3.7:
optional: true
immutable@5.0.2: {}
import-fresh@3.3.0: import-fresh@3.3.0:
dependencies: dependencies:
@ -4864,7 +5029,8 @@ snapshots:
dependencies: dependencies:
readable-stream: 3.6.2 readable-stream: 3.6.2
readdirp@4.0.2: {} readdirp@4.0.2:
optional: true
regexp-to-ast@0.5.0: {} regexp-to-ast@0.5.0: {}
@ -4893,38 +5059,134 @@ snapshots:
hash-base: 3.0.4 hash-base: 3.0.4
inherits: 2.0.4 inherits: 2.0.4
rollup@4.25.0: rollup@4.26.0:
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.25.0 '@rollup/rollup-android-arm-eabi': 4.26.0
'@rollup/rollup-android-arm64': 4.25.0 '@rollup/rollup-android-arm64': 4.26.0
'@rollup/rollup-darwin-arm64': 4.25.0 '@rollup/rollup-darwin-arm64': 4.26.0
'@rollup/rollup-darwin-x64': 4.25.0 '@rollup/rollup-darwin-x64': 4.26.0
'@rollup/rollup-freebsd-arm64': 4.25.0 '@rollup/rollup-freebsd-arm64': 4.26.0
'@rollup/rollup-freebsd-x64': 4.25.0 '@rollup/rollup-freebsd-x64': 4.26.0
'@rollup/rollup-linux-arm-gnueabihf': 4.25.0 '@rollup/rollup-linux-arm-gnueabihf': 4.26.0
'@rollup/rollup-linux-arm-musleabihf': 4.25.0 '@rollup/rollup-linux-arm-musleabihf': 4.26.0
'@rollup/rollup-linux-arm64-gnu': 4.25.0 '@rollup/rollup-linux-arm64-gnu': 4.26.0
'@rollup/rollup-linux-arm64-musl': 4.25.0 '@rollup/rollup-linux-arm64-musl': 4.26.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.25.0 '@rollup/rollup-linux-powerpc64le-gnu': 4.26.0
'@rollup/rollup-linux-riscv64-gnu': 4.25.0 '@rollup/rollup-linux-riscv64-gnu': 4.26.0
'@rollup/rollup-linux-s390x-gnu': 4.25.0 '@rollup/rollup-linux-s390x-gnu': 4.26.0
'@rollup/rollup-linux-x64-gnu': 4.25.0 '@rollup/rollup-linux-x64-gnu': 4.26.0
'@rollup/rollup-linux-x64-musl': 4.25.0 '@rollup/rollup-linux-x64-musl': 4.26.0
'@rollup/rollup-win32-arm64-msvc': 4.25.0 '@rollup/rollup-win32-arm64-msvc': 4.26.0
'@rollup/rollup-win32-ia32-msvc': 4.25.0 '@rollup/rollup-win32-ia32-msvc': 4.26.0
'@rollup/rollup-win32-x64-msvc': 4.25.0 '@rollup/rollup-win32-x64-msvc': 4.26.0
fsevents: 2.3.3 fsevents: 2.3.3
run-parallel@1.2.0: run-parallel@1.2.0:
dependencies: dependencies:
queue-microtask: 1.2.3 queue-microtask: 1.2.3
rxjs@7.8.1:
dependencies:
tslib: 2.8.1
safe-buffer@5.1.2: {} safe-buffer@5.1.2: {}
safe-buffer@5.2.1: {} safe-buffer@5.2.1: {}
sass-embedded-android-arm64@1.80.7:
optional: true
sass-embedded-android-arm@1.80.7:
optional: true
sass-embedded-android-ia32@1.80.7:
optional: true
sass-embedded-android-riscv64@1.80.7:
optional: true
sass-embedded-android-x64@1.80.7:
optional: true
sass-embedded-darwin-arm64@1.80.7:
optional: true
sass-embedded-darwin-x64@1.80.7:
optional: true
sass-embedded-linux-arm64@1.80.7:
optional: true
sass-embedded-linux-arm@1.80.7:
optional: true
sass-embedded-linux-ia32@1.80.7:
optional: true
sass-embedded-linux-musl-arm64@1.80.7:
optional: true
sass-embedded-linux-musl-arm@1.80.7:
optional: true
sass-embedded-linux-musl-ia32@1.80.7:
optional: true
sass-embedded-linux-musl-riscv64@1.80.7:
optional: true
sass-embedded-linux-musl-x64@1.80.7:
optional: true
sass-embedded-linux-riscv64@1.80.7:
optional: true
sass-embedded-linux-x64@1.80.7:
optional: true
sass-embedded-win32-arm64@1.80.7:
optional: true
sass-embedded-win32-ia32@1.80.7:
optional: true
sass-embedded-win32-x64@1.80.7:
optional: true
sass-embedded@1.80.7:
dependencies:
'@bufbuild/protobuf': 2.2.2
buffer-builder: 0.2.0
colorjs.io: 0.5.2
immutable: 5.0.2
rxjs: 7.8.1
supports-color: 8.1.1
sync-child-process: 1.0.2
varint: 6.0.0
optionalDependencies:
sass-embedded-android-arm: 1.80.7
sass-embedded-android-arm64: 1.80.7
sass-embedded-android-ia32: 1.80.7
sass-embedded-android-riscv64: 1.80.7
sass-embedded-android-x64: 1.80.7
sass-embedded-darwin-arm64: 1.80.7
sass-embedded-darwin-x64: 1.80.7
sass-embedded-linux-arm: 1.80.7
sass-embedded-linux-arm64: 1.80.7
sass-embedded-linux-ia32: 1.80.7
sass-embedded-linux-musl-arm: 1.80.7
sass-embedded-linux-musl-arm64: 1.80.7
sass-embedded-linux-musl-ia32: 1.80.7
sass-embedded-linux-musl-riscv64: 1.80.7
sass-embedded-linux-musl-x64: 1.80.7
sass-embedded-linux-riscv64: 1.80.7
sass-embedded-linux-x64: 1.80.7
sass-embedded-win32-arm64: 1.80.7
sass-embedded-win32-ia32: 1.80.7
sass-embedded-win32-x64: 1.80.7
sass@1.80.6: sass@1.80.6:
dependencies: dependencies:
chokidar: 4.0.1 chokidar: 4.0.1
@ -4932,6 +5194,7 @@ snapshots:
source-map-js: 1.2.1 source-map-js: 1.2.1
optionalDependencies: optionalDependencies:
'@parcel/watcher': 2.5.0 '@parcel/watcher': 2.5.0
optional: true
semver-regex@4.0.5: {} semver-regex@4.0.5: {}
@ -5168,6 +5431,10 @@ snapshots:
dependencies: dependencies:
has-flag: 4.0.0 has-flag: 4.0.0
supports-color@8.1.1:
dependencies:
has-flag: 4.0.0
supports-hyperlinks@3.1.0: supports-hyperlinks@3.1.0:
dependencies: dependencies:
has-flag: 4.0.0 has-flag: 4.0.0
@ -5177,6 +5444,12 @@ snapshots:
svg-tags@1.0.0: {} svg-tags@1.0.0: {}
sync-child-process@1.0.2:
dependencies:
sync-message-port: 1.1.3
sync-message-port@1.1.3: {}
table@6.8.2: table@6.8.2:
dependencies: dependencies:
ajv: 8.17.1 ajv: 8.17.1
@ -5270,43 +5543,46 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 5.7.0-dev.20241105 typescript: 5.7.0-dev.20241105
varint@6.0.0: {}
vite-plugin-manifest-sri@0.2.0: {} vite-plugin-manifest-sri@0.2.0: {}
vite-plugin-node-polyfills@0.22.0(rollup@4.25.0)(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)): vite-plugin-node-polyfills@0.22.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
dependencies: dependencies:
'@rollup/plugin-inject': 5.0.5(rollup@4.25.0) '@rollup/plugin-inject': 5.0.5(rollup@4.26.0)
node-stdlib-browser: 1.2.1 node-stdlib-browser: 1.2.1
vite: 5.4.11(@types/node@22.9.0)(sass@1.80.6) vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
vite-plugin-valibot-env@0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)): vite-plugin-valibot-env@0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
dependencies: dependencies:
kleur: 4.1.5 kleur: 4.1.5
log-symbols: 7.0.0 log-symbols: 7.0.0
valibot: 1.0.0-beta.3(typescript@5.7.0-dev.20241105) valibot: 1.0.0-beta.3(typescript@5.7.0-dev.20241105)
vite: 5.4.11(@types/node@22.9.0)(sass@1.80.6) vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
vite-tsconfig-paths@5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass@1.80.6)): vite-tsconfig-paths@5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
dependencies: dependencies:
debug: 4.3.7 debug: 4.3.7
globrex: 0.1.2 globrex: 0.1.2
tsconfck: 3.1.4(typescript@5.7.0-dev.20241105) tsconfck: 3.1.4(typescript@5.7.0-dev.20241105)
optionalDependencies: optionalDependencies:
vite: 5.4.11(@types/node@22.9.0)(sass@1.80.6) vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
vite@5.4.11(@types/node@22.9.0)(sass@1.80.6): vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.49 postcss: 8.4.49
rollup: 4.25.0 rollup: 4.26.0
optionalDependencies: optionalDependencies:
'@types/node': 22.9.0 '@types/node': 22.9.0
fsevents: 2.3.3 fsevents: 2.3.3
sass: 1.80.6 sass: 1.80.6
sass-embedded: 1.80.7
vm-browserify@1.1.2: {} vm-browserify@1.1.2: {}

View file

@ -0,0 +1,111 @@
#page-succes-commande {
--page-hauteur-minimale: calc(
100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px
);
--page-marges-bloc-debut: var(--en-tete-hauteur);
display: flex;
flex-flow: column nowrap;
margin-top: var(--page-marges-bloc-debut);
margin-bottom: var(--espace-xl);
border-bottom: 1px solid var(--couleur-noir);
}
#page-succes-commande .contenu {
display: flex;
flex-flow: column nowrap;
place-items: center;
width: min(50rem, 100%);
min-height: var(--page-hauteur-minimale);
margin: auto;
font-weight: 500;
font-style: italic;
border: 1px solid var(--couleur-noir);
border-bottom: initial;
}
#page-succes-commande .contenu__en-tete {
width: 100%;
padding: var(--espace-m) var(--espace-xl);
color: var(--couleur-blanc);
background: var(--couleur-noir);
}
#page-succes-commande .contenu__en-tete h2 {
width: fit-content;
margin: auto;
text-transform: uppercase;
letter-spacing: var(--espacement-inter-lettres-etendu-l);
}
#page-succes-commande .contenu__rappel-commande {
display: flex;
flex-flow: column nowrap;
}
#page-succes-commande .contenu__rappel-commande__produit {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
border-bottom: 1px solid var(--couleur-noir);
}
#page-succes-commande .contenu__rappel-commande__produit__illustratif {
padding: var(--espace-l);
border-right: 1px solid var(--couleur-noir);
}
#page-succes-commande .contenu__rappel-commande__produit__illustratif picture {
overflow: hidden;
}
#page-succes-commande .contenu__rappel-commande__produit__illustratif img {
aspect-ratio: 1;
height: auto;
transition: 0.2s scale;
}
@media (hover: hover) {
#page-succes-commande .contenu__rappel-commande__produit__illustratif img:hover {
scale: 1.1;
}
}
#page-succes-commande .contenu__rappel-commande .detail-produit {
display: flex;
flex-flow: column nowrap;
place-content: center;
width: 100%;
padding: 0 var(--espace-xl);
font-style: italic;
}
#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix {
display: flex;
flex-flow: row nowrap;
column-gap: var(--espace-xl);
justify-content: space-between;
font-size: var(--espace-l);
line-height: var(--hauteur-ligne-moitie);
margin-bottom: var(--espace-xs);
}
#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix span {
min-width: 4rem;
font-weight: 600;
text-align: right;
font-style: initial;
}
#page-succes-commande .contenu__rappel-commande .detail-produit__description {
margin-bottom: var(--espace-l);
text-transform: lowercase;
line-height: var(--hauteur-ligne-moitie);
}
#page-succes-commande .contenu__textuel {
display: flex;
flex: 1;
flex-flow: column nowrap;
place-content: center;
max-width: 34rem;
height: 100%;
padding: var(--espace-xl);
font-style: normal;
}
#page-succes-commande .contenu__textuel p + p {
margin-top: var(--espace-m);
}
@media (width <= 50rem) {
#page-succes-commande .contenu {
border-right: initial;
border-left: initial;
}
}
/*# sourceMappingURL=page-succes-commande.css.map */

View file

@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../../../src/sass/pages/page-succes-commande.scss"],"names":[],"mappings":"AAEA;EAEE;AAAA;AAAA;EAKA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAGA;EACE;IACE;;;AAQV;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;IACE;IACA","file":"page-succes-commande.css"}

View file

@ -0,0 +1 @@
#page-succes-commande{--page-hauteur-minimale:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px);--page-marges-bloc-debut:var(--en-tete-hauteur);margin-top:var(--page-marges-bloc-debut);margin-bottom:var(--espace-xl);border-bottom:1px solid var(--couleur-noir);flex-flow:column;display:flex}#page-succes-commande .contenu{width:min(50rem,100%);min-height:var(--page-hauteur-minimale);border:1px solid var(--couleur-noir);border-bottom:initial;flex-flow:column;place-items:center;margin:auto;font-style:italic;font-weight:500;display:flex}#page-succes-commande .contenu__en-tete{width:100%;padding:var(--espace-m)var(--espace-xl);color:var(--couleur-blanc);background:var(--couleur-noir)}#page-succes-commande .contenu__en-tete h2{text-transform:uppercase;width:fit-content;letter-spacing:var(--espacement-inter-lettres-etendu-l);margin:auto}#page-succes-commande .contenu__rappel-commande{flex-flow:column;display:flex}#page-succes-commande .contenu__rappel-commande__produit{border-bottom:1px solid var(--couleur-noir);grid-template-rows:1fr;grid-template-columns:1fr 1fr;display:grid}#page-succes-commande .contenu__rappel-commande__produit__illustratif{padding:var(--espace-l);border-right:1px solid var(--couleur-noir)}#page-succes-commande .contenu__rappel-commande__produit__illustratif picture{overflow:hidden}#page-succes-commande .contenu__rappel-commande__produit__illustratif img{aspect-ratio:1;height:auto;transition:scale .2s}@media (hover:hover){#page-succes-commande .contenu__rappel-commande__produit__illustratif img:hover{scale:1.1}}#page-succes-commande .contenu__rappel-commande .detail-produit{width:100%;padding:0 var(--espace-xl);flex-flow:column;place-content:center;font-style:italic;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix{column-gap:var(--espace-xl);font-size:var(--espace-l);line-height:var(--hauteur-ligne-moitie);margin-bottom:var(--espace-xs);flex-flow:row;justify-content:space-between;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix span{text-align:right;min-width:4rem;font-weight:600;font-style:initial}#page-succes-commande .contenu__rappel-commande .detail-produit__description{margin-bottom:var(--espace-l);text-transform:lowercase;line-height:var(--hauteur-ligne-moitie)}#page-succes-commande .contenu__textuel{max-width:34rem;height:100%;padding:var(--espace-xl);flex-flow:column;flex:1;place-content:center;font-style:normal;display:flex}#page-succes-commande .contenu__textuel p+p{margin-top:var(--espace-m)}@media (width<=50rem){#page-succes-commande .contenu{border-right:initial;border-left:initial}}

File diff suppressed because one or more lines are too long

View file

@ -4,7 +4,6 @@ declare(strict_types=1);
use Carbon_Fields\Carbon_Fields; use Carbon_Fields\Carbon_Fields;
use HaikuAtelier\StarterSite; use HaikuAtelier\StarterSite;
use Idleberg\WordPress\ViteAssets\Assets;
use Timber\Timber; use Timber\Timber;
// Récupère les dépendances Composer // Récupère les dépendances Composer
@ -181,19 +180,3 @@ function charge_carbon_fields(): void {
Carbon_Fields::boot(); Carbon_Fields::boot();
} }
add_action("after_setup_theme", "charge_carbon_fields"); add_action("after_setup_theme", "charge_carbon_fields");
/**
* Vite
*/
$baseUrl = get_stylesheet_directory_uri();
$manifest = get_template_directory() . "/assets/js/.vite/manifest.json";
$viteAssets = new Assets(manifestFile: $manifest, basePath: $baseUrl, algorithm: "sha512");
// print_r($viteAssets);
// $viteAssets->inject($entryPoint);
add_filter("woocommerce_rest_products", "custom_response", 10, 3);
function custom_response($response, $user_data, $request) {
// Customize response data
$response->data["coupon"] = 3;
return $response;
}

View file

@ -6,12 +6,18 @@
declare(strict_types=1); declare(strict_types=1);
use Roots\WPConfig\Config; use Roots\WPConfig\Config;
use Stripe\Checkout\Session;
use Stripe\StripeClient;
use Timber\Timber; use Timber\Timber;
use Illuminate\Support\Arr;
use function Crell\fp\pipe;
require_once __DIR__ . "/src/inc/TraitementInformations.php";
/** @var string */ /** @var string */
$url_accueil = get_page_link(get_page_by_path("home")->ID); $url_accueil = get_page_link(get_page_by_path("home")->ID);
/** @var string */ /** @var string $session_id L'ID de la Session Stripe. */
$session_id = $_GET["session_id"]; $session_id = $_GET["session_id"];
// Redirige à l'Accueil si le paramètre d'ID de Session Stripe n'est pas présent // Redirige à l'Accueil si le paramètre d'ID de Session Stripe n'est pas présent
@ -21,23 +27,73 @@ if (!$session_id) {
} }
// Instancie un Client Stripe // Instancie un Client Stripe
$client_stripe = new \Stripe\StripeClient(Config::get("STRIPE_API_SECRET")); /** @var StripeClient $client_stripe Un Client Stripe pour récupérer les informations des Commande et Transaction .*/
$client_stripe = new StripeClient(Config::get("STRIPE_API_SECRET"));
try { try {
/** @var Session $session La Session Stripe pour la Commande. */
$session = $client_stripe->checkout->sessions->retrieve($session_id); $session = $client_stripe->checkout->sessions->retrieve($session_id);
/** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session Stripe. */
$order_id = $session->metadata["order_id"]; $order_id = $session->metadata["order_id"];
/** @var WC_Order|WC_Order_Refund|bool $commande La Commande WooCommerce liée à la Session Stripe, `false` si inexistante. */
$commande = wc_get_order("$order_id"); $commande = wc_get_order("$order_id");
if ($commande == false) {
throw new Error("La commande $order_id n'existe pas.");
}
// Passe la Commande en état "Payé"
if ($commande->get_status() === "pending") {
$commande->payment_complete($session_id);
$commande->set_payment_method_title("Stripe - Carte bancaire");
$commande->set_transaction_id($session_id);
}
// Contexte et modèles // Contexte et modèles
$contexte = Timber::context(); $contexte = Timber::context();
$modeles = ["succes-commande.twig"]; $modeles = ["succes-commande.twig"];
echo "<pre>"; /** @var WC_Order_Item[] $articles Les Articles de la Commande. */
print_r($session); $articles = $commande->get_items();
print_r($commande);
echo "</pre>";
http_response_code(200); $articles_formates = Arr::map(
array: $articles,
callback: function (WC_Order_Item $article) {
$donnees = $article->get_data();
$est_variation = $article["variation_id"] !== null;
$id_produit = $est_variation ? $article["variation_id"] : $article["product_id"];
$produit = wc_get_product($id_produit);
$titre_produit = $produit->get_title();
$attributs_produit = recupere_et_formate_attributs_produit($produit->get_attributes());
return [
"attributs" => $attributs_produit,
"id_produit" => $id_produit,
"image" => pipe($produit->get_image_id(), fn($id) => genere_balise_img_multiformats(id: $id, lazy: true)),
"permalien" => $produit->get_permalink(),
"prix" => $donnees["total"],
"quantite" => $article->get_quantity(),
"titre" => $titre_produit,
];
},
);
$contexte["articles"] = $articles_formates;
// echo "<pre>";
// print_r($articles_formates);
// echo "</pre>";
// Charge les scripts et styles de la page
function charge_scripts_styles_page_succes_commande(): void {
wp_enqueue_style(
handle: "haiku-atelier-2024-styles-page-succes-commande",
src: get_template_directory_uri() . "/assets/css/pages/page-succes-commande.css",
deps: [],
ver: filemtime(get_template_directory() . "/assets/css/pages/page-succes-commande.css"),
media: "all",
);
}
add_action("wp_enqueue_scripts", "charge_scripts_styles_page_succes_commande");
// Rendu // Rendu
Timber::render(filenames: $modeles, data: $contexte); Timber::render(filenames: $modeles, data: $contexte);

View file

@ -6,6 +6,7 @@
declare(strict_types=1); declare(strict_types=1);
use function Crell\fp\pipe; use function Crell\fp\pipe;
require_once "TraitementInformations.php"; require_once "TraitementInformations.php";
/* Images du Produit */ /* Images du Produit */

View file

@ -22,13 +22,13 @@ function genere_balise_img_multiformats($id, $lazy = false) {
} }
$url = wp_get_attachment_image_url($id); $url = wp_get_attachment_image_url($id);
$chemin = realpath(get_attached_file($id)); $chemin = realpath(get_attached_file($id)) ? realpath(get_attached_file($id)) : "";
$alt = get_post_meta($id, "_wp_attachment_image_alt", true); $alt = get_post_meta($id, "_wp_attachment_image_alt", true);
$dimensions = $chemin ? getimagesize($chemin) : []; $dimensions = $chemin ? getimagesize($chemin) : ["", ""];
$avif = realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".avif"); $avif = $chemin ? realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".avif") : false;
$jxl = realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".jxl"); $jxl = $chemin ? realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".jxl") : false;
$webp = realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".webp"); $webp = $chemin ? realpath(pathinfo($chemin)["dirname"] . "/" . pathinfo($chemin)["filename"] . ".webp") : false;
// Génère un tableau avec les différents formats valides // Génère un tableau avec les différents formats valides
$formats = pipe( $formats = pipe(
@ -49,7 +49,9 @@ function genere_balise_img_multiformats($id, $lazy = false) {
// Construis les balises <source> avec les formats valides // Construis les balises <source> avec les formats valides
$sources = ""; $sources = "";
foreach ($formats as $format) { foreach ($formats as $format) {
$sources .= "<source height='$dimensions[0]' srcset='$format[url]' type='image/$format[format]' width='$dimensions[1]' />\n"; $height = $dimensions[0] ?? "";
$width = $dimensions[1] ?? "";
$sources .= "<source height='$height' srcset='$format[url]' type='image/$format[format]' width='$width' />\n";
} }
$loading = $lazy ? "lazy" : "eager"; $loading = $lazy ? "lazy" : "eager";

View file

@ -0,0 +1,134 @@
// Styles pour la Page affichée après une Commande réussie
#page-succes-commande {
// Dimensions
--page-hauteur-minimale: calc(
100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px
);
// Marges
--page-marges-bloc-debut: var(--en-tete-hauteur);
display: flex;
flex-flow: column nowrap;
margin-top: var(--page-marges-bloc-debut);
margin-bottom: var(--espace-xl);
border-bottom: 1px solid var(--couleur-noir);
.contenu {
display: flex;
flex-flow: column nowrap;
place-items: center;
width: min(50rem, 100%);
min-height: var(--page-hauteur-minimale);
margin: auto;
font-weight: 500;
font-style: italic;
border: 1px solid var(--couleur-noir);
border-bottom: initial;
&__en-tete {
width: 100%;
padding: var(--espace-m) var(--espace-xl);
color: var(--couleur-blanc);
background: var(--couleur-noir);
h2 {
width: fit-content;
margin: auto;
text-transform: uppercase;
letter-spacing: var(--espacement-inter-lettres-etendu-l);
}
}
&__rappel-commande {
display: flex;
flex-flow: column nowrap;
&__produit {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
border-bottom: 1px solid var(--couleur-noir);
// Illustration du Produit
&__illustratif {
padding: var(--espace-l);
border-right: 1px solid var(--couleur-noir);
picture {
overflow: hidden;
}
img {
aspect-ratio: 1;
height: auto;
transition: 0.2s scale;
// Effet de zoom au survol
@media (hover: hover) {
&:hover {
scale: 1.1;
}
}
}
}
}
// Détail d'un Produit
.detail-produit {
display: flex;
flex-flow: column nowrap;
place-content: center;
width: 100%;
padding: 0 var(--espace-xl);
font-style: italic;
&__nom-prix {
display: flex;
flex-flow: row nowrap;
column-gap: var(--espace-xl);
justify-content: space-between;
font-size: var(--espace-l);
line-height: var(--hauteur-ligne-moitie);
margin-bottom: var(--espace-xs);
span {
min-width: 4rem;
font-weight: 600;
text-align: right;
font-style: initial;
}
}
&__description {
margin-bottom: var(--espace-l);
text-transform: lowercase;
line-height: var(--hauteur-ligne-moitie);
}
}
}
&__textuel {
display: flex;
flex: 1;
flex-flow: column nowrap;
place-content: center;
max-width: 34rem;
height: 100%;
padding: var(--espace-xl);
font-style: normal;
p + p {
margin-top: var(--espace-m);
}
}
}
@media (width <= 50rem) {
.contenu {
border-right: initial;
border-left: initial;
}
}
}

View file

@ -1,15 +1,54 @@
{% extends "base.twig" %} {% extends "base.twig" %}
{% block contenu %} {% block contenu %}
<main id="page-success-commande"> <main id="page-succes-commande">
<div class="contenu"> <div class="contenu">
<header class="contenu__en-tete"> <header class="contenu__en-tete">
<h2>Successful order!</h2> <h2>Successful order!</h2>
</header> </header>
{# Rappel de la Commande avec ses Articles #}
<div class="contenu__rappel-commande">
{% for article in articles %}
<article class="contenu__rappel-commande__produit">
{# Illustration cliquable du Produit #}
<div class="contenu__rappel-commande__produit__illustratif">
<a href="{{ article.permalien }}">
<picture>{{ article.image }}</picture>
</a>
</div>
<div class="contenu__rappel-commande__produit__textuel detail-produit">
<h3 class="detail-produit__nom-prix">
<a href="{{ article.permalien }}">{{ article.titre }}.</a>
<span>{{ article.prix }}€</span>
</h3>
<p class="detail-produit__description">
{# Affiche tous les attributs relevants pour la variation choisie #}
{% for attribut in article.attributs %}
{% if attribut.valeur %}
{{ attribut.nom }}: <strong>{{ attribut.valeur }}</strong><br />
{% endif %}
{% endfor %}
qty: <strong>{{ article.quantite }}</strong>
</p>
</div>
</article>
{% endfor %}
</div>
<div class="contenu__textuel"> <div class="contenu__textuel">
<p> <p>
<h1>Thanks for your order, {{ session.name }}!</h1> Thank you for your order, {{ session.name }}!
</p>
<p>
You will receive an email conforming your order in a short while.
</p>
<p>
If you have any questions, don't hesitate to <a class="lien-lien" href="/contact">contact us</a>!
</p> </p>
</div> </div>
</div> </div>