Compare commits

..

No commits in common. "7d3251747b0d0a0758bdf80536197177db2ea975" and "7baeb28fc1917ecf1b00efcb63d2280d3e0daf40" have entirely different histories.

56 changed files with 1586 additions and 8371 deletions

202
bun.lock
View file

@ -15,9 +15,9 @@
"valibot": "1.1.0", "valibot": "1.1.0",
}, },
"devDependencies": { "devDependencies": {
"@effect/language-service": "^0.85.0", "@effect/language-service": "^0.84.3",
"@gcch/configuration-eslint": "git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274", "@gcch/configuration-eslint": "git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274",
"@gcch/configuration-oxlint": "git+https://git.gcch.fr/gcch/configuration-oxlint#0968f683", "@gcch/configuration-oxlint": "git+https://git.gcch.fr/gcch/configuration-oxlint#bedd1fa23aff",
"@gcch/configuration-prettier": "git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801", "@gcch/configuration-prettier": "git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801",
"@playwright/test": "^1.59.1", "@playwright/test": "^1.59.1",
"@sentry/core": "^10.47.0", "@sentry/core": "^10.47.0",
@ -26,21 +26,21 @@
"@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.30001787", "caniuse-lite": "^1.0.30001786",
"eslint": "^10.2.0", "eslint": "^10.2.0",
"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",
"eslint-plugin-oxlint": "^1.59.0", "eslint-plugin-oxlint": "^1.58.0",
"eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-perfectionist": "^5.8.0",
"eslint-plugin-sonarjs": "^4.0.2", "eslint-plugin-sonarjs": "^4.0.2",
"fdir": "^6.5.0", "fdir": "^6.5.0",
"globals": "^17.4.0", "globals": "^17.4.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"knip": "^6.3.1", "knip": "^6.3.0",
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"lightningcss-cli": "^1.32.0", "lightningcss-cli": "^1.32.0",
"oxlint": "^1.59.0", "oxlint": "^1.58.0",
"oxlint-tsgolint": "^0.20.0", "oxlint-tsgolint": "^0.19.0",
"playwright": "^1.59.1", "playwright": "^1.59.1",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"prettier-plugin-pkg": "^0.22.1", "prettier-plugin-pkg": "^0.22.1",
@ -53,8 +53,8 @@
"stylelint-declaration-block-no-ignored-properties": "^3.0.0", "stylelint-declaration-block-no-ignored-properties": "^3.0.0",
"stylelint-plugin-logical-css": "^2.1.0", "stylelint-plugin-logical-css": "^2.1.0",
"typescript": "6.0.2", "typescript": "6.0.2",
"typescript-eslint": "^8.58.1", "typescript-eslint": "^8.58.0",
"vite": "^8.0.8", "vite": "^8.0.5",
"vite-tsconfig-paths": "^6.1.1", "vite-tsconfig-paths": "^6.1.1",
}, },
}, },
@ -266,7 +266,7 @@
"@csstools/selector-specificity": ["@csstools/selector-specificity@6.0.0", "", { "peerDependencies": { "postcss-selector-parser": "^7.1.1" } }, "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA=="], "@csstools/selector-specificity": ["@csstools/selector-specificity@6.0.0", "", { "peerDependencies": { "postcss-selector-parser": "^7.1.1" } }, "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA=="],
"@effect/language-service": ["@effect/language-service@0.85.0", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-crQwaeLmpmUfKaH2K42STNFMD5cywR6kBGKZI0FkvCbDyG3xM7CikJKucMIXOBvnUviO8loq0afT1ZSCtZiaaw=="], "@effect/language-service": ["@effect/language-service@0.84.3", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-zpxi6rLCwst/cBQd7ElwDvt36Y6Jvz8v6bCLnNiOL6OXvdLmqjOFWyzWZdMh92vvBQA/aVKhfIAAOP3o4wKt0A=="],
"@emnapi/core": ["@emnapi/core@1.9.2", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA=="], "@emnapi/core": ["@emnapi/core@1.9.2", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA=="],
@ -296,7 +296,7 @@
"@gcch/configuration-eslint": ["@gcch/configuration-eslint@git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274f0bfebd5135a728960644f4b1cdcb8", { "dependencies": { "@eslint/js": "^10.0.1", "astro-eslint-parser": "^1.3.0", "eslint": "^10.0.3", "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsdoc": "^62.8.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.6.0", "eslint-plugin-sonarjs": "^4.0.2", "eslint-plugin-unicorn": "^63.0.0", "globals": "^17.4.0", "typescript-eslint": "^8.57.0" }, "peerDependencies": { "eslint": "^10.0.3", "typescript": "^6.0.1-rc" } }, "62ee424274f0bfebd5135a728960644f4b1cdcb8"], "@gcch/configuration-eslint": ["@gcch/configuration-eslint@git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274f0bfebd5135a728960644f4b1cdcb8", { "dependencies": { "@eslint/js": "^10.0.1", "astro-eslint-parser": "^1.3.0", "eslint": "^10.0.3", "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsdoc": "^62.8.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.6.0", "eslint-plugin-sonarjs": "^4.0.2", "eslint-plugin-unicorn": "^63.0.0", "globals": "^17.4.0", "typescript-eslint": "^8.57.0" }, "peerDependencies": { "eslint": "^10.0.3", "typescript": "^6.0.1-rc" } }, "62ee424274f0bfebd5135a728960644f4b1cdcb8"],
"@gcch/configuration-oxlint": ["@gcch/configuration-oxlint@git+https://git.gcch.fr/gcch/configuration-oxlint#0968f683dfb3a8b6bbce827645c2be76a2d3adb9", { "dependencies": { "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.8.0", "globals": "^17.4.0", "oxlint": "^1.59.0", "oxlint-tsgolint": "^0.20.0" }, "peerDependencies": { "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.8.0", "oxlint": "^1.59.0", "oxlint-tsgolint": "^0.20.0", "typescript": "^6.0.2" } }, "0968f683dfb3a8b6bbce827645c2be76a2d3adb9"], "@gcch/configuration-oxlint": ["@gcch/configuration-oxlint@git+https://git.gcch.fr/gcch/configuration-oxlint#bedd1fa23affdb4c8ac4d3b39c4cc095791a3c05", { "dependencies": { "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-sonarjs": "^4.0.2", "globals": "^17.4.0", "oxlint": "^1.58.0", "oxlint-tsgolint": "^0.19.0" }, "peerDependencies": { "eslint-plugin-astro": "^1.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-sonarjs": "^4.0.2", "oxlint": "^1.58.0", "oxlint-tsgolint": "^0.19.0", "typescript": "^6.0.2" } }, "bedd1fa23affdb4c8ac4d3b39c4cc095791a3c05"],
"@gcch/configuration-prettier": ["@gcch/configuration-prettier@git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801bd44784ac91e0ff6e038d838f7eea1", { "dependencies": { "prettier": "^3.8.1", "prettier-plugin-curly": "^0.4.1", "prettier-plugin-ini": "^1.3.0", "prettier-plugin-jsdoc": "^1.8.0", "prettier-plugin-pkg": "^0.22.0", "prettier-plugin-sh": "^0.18.0", "prettier-plugin-sort-json": "^4.2.0" }, "peerDependencies": { "prettier": "^3.8.1" } }, "8de937e801bd44784ac91e0ff6e038d838f7eea1"], "@gcch/configuration-prettier": ["@gcch/configuration-prettier@git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801bd44784ac91e0ff6e038d838f7eea1", { "dependencies": { "prettier": "^3.8.1", "prettier-plugin-curly": "^0.4.1", "prettier-plugin-ini": "^1.3.0", "prettier-plugin-jsdoc": "^1.8.0", "prettier-plugin-pkg": "^0.22.0", "prettier-plugin-sh": "^0.18.0", "prettier-plugin-sort-json": "^4.2.0" }, "peerDependencies": { "prettier": "^3.8.1" } }, "8de937e801bd44784ac91e0ff6e038d838f7eea1"],
@ -428,55 +428,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.20.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-KKQcIHZHMxqpHUA1VXIbOG6chNCFkUWbQy6M+AFVtPKkA/3xAeJkJ3njoV66bfzwPHRcWQO+kcj5XqtbkjakoA=="], "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.19.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-FVOIp5Njte8Z6PpINz7sL5blqSro0pAL8VAHYQ+K5Xm4cOrPQ6DGIhH14oXnbRjzn8Kl69qjz8TPteyn8EqwsQ=="],
"@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.20.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-7HeVMuclGfG+NLZi2ybY0T4fMI7/XxO/208rJk+zEIloKkVnlh11Wd241JMGwgNFXn+MLJbOqOfojDb2Dt4L1g=="], "@oxlint-tsgolint/darwin-x64": ["@oxlint-tsgolint/darwin-x64@0.19.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-GakDTDACePvqOFq3N4oQCl8SyMMa7VBnqV0gDcXPuK50jdWCUqlxM9tgRJarjyIVvmDEJRGYOen+4uBtVwg4Aw=="],
"@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.20.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zxhUwz+WSxE6oWlZLK2z2ps9yC6ebmgoYmjAl0Oa48+GqkZ56NVgo+wb8DURNv6xrggzHStQxqQxe3mK51HZag=="], "@oxlint-tsgolint/linux-arm64": ["@oxlint-tsgolint/linux-arm64@0.19.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Ya0R7somo+KDhhkPtENJ9Q28Fost+aqA3MPe86pEqgmukHFc/KO65PgShOSbIFjZNptELEQvsWL8gDxYZWhH3w=="],
"@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.20.0", "", { "os": "linux", "cpu": "x64" }, "sha512-/1l6FnahC9im8PK+Ekkx/V3yetO/PzZnJegE2FXcv/iXEhbeVxP/ouiTYcUQu9shT1FWJCSNti1VJHH+21Y1dg=="], "@oxlint-tsgolint/linux-x64": ["@oxlint-tsgolint/linux-x64@0.19.0", "", { "os": "linux", "cpu": "x64" }, "sha512-yFH378jWc1k/oJmpk+TKpWbKvFieJJvsOHxVMSNFc+ukqs44ZSHVt4HFfAhXAt/bzVK2f7EIDTGp8Hm1OjoJ6Q=="],
"@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.20.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-oPZ5Yz8sVdo7P/5q+i3IKeix31eFZ55JAPa1+RGPoe9PoaYVsdMvR6Jvib6YtrqoJnFPlg3fjEjlEPL8VBKYJA=="], "@oxlint-tsgolint/win32-arm64": ["@oxlint-tsgolint/win32-arm64@0.19.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-R6NyAtha7OWxh7NGBeFxqDTGAVl1Xj4xLa8Qj39PKbIDqBeVW8BIb+1nEnRp+Mo/VpRoeoFAcqlBsuMcUMd26Q=="],
"@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.20.0", "", { "os": "win32", "cpu": "x64" }, "sha512-4stx8RHj3SP9vQyRF/yZbz5igtPvYMEUR8CUoha4BVNZihi39DpCR8qkU7lpjB5Ga1DRMo2pHaA4bdTOMaY4mw=="], "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.19.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2ePvxcbS5tPOmrQvxR8Kc+IqzdTtlrGeMDv+jjTYfkTFPmh2rF9yxVchi/4WM6js3gt2UauQeMV/tfnZNemENQ=="],
"@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-etYDw/UaEv936AQUd/CRMBVd+e+XuuU6wC+VzOv1STvsTyZenLChepLWqLtnyTTp4YMlM22ypzogDDwqYxv5cg=="], "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.58.0", "", { "os": "android", "cpu": "arm" }, "sha512-1T7UN3SsWWxpWyWGn1cT3ASNJOo+pI3eUkmEl7HgtowapcV8kslYpFQcYn431VuxghXakPNlbjRwhqmR37PFOg=="],
"@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TgLc7XVLKH2a4h8j3vn1MDjfK33i9MY60f/bKhRGWyVzbk5LCZ4X01VZG7iHrMmi5vYbAp8//Ponigx03CLsdw=="], "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.58.0", "", { "os": "android", "cpu": "arm64" }, "sha512-GryzujxuiRv2YFF7bRy8mKcxlbuAN+euVUtGJt9KKbLT8JBUIosamVhcthLh+VEr6KE6cjeVMAQxKAzJcoN7dg=="],
"@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DXyFPf5ZKldMLloRHx/B9fsxsiTQomaw7cmEW3YIJko2HgCh+GUhp9gGYwHrqlLJPsEe3dYj9JebjX92D3j3AA=="], "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.58.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-7/bRSJIwl4GxeZL9rPZ11anNTyUO9epZrfEJH/ZMla3+/gbQ6xZixh9nOhsZ0QwsTW7/5J2A/fHbD1udC5DQQA=="],
"@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-LgvrsdgVLX1qWqIEmNsSmMXJhpAWdtUQ0M+oR0CySwi+9IHWyOGuIL8w8+u/kbZNMyZr4WUyYB5i0+D+AKgkLg=="], "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.58.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-EqdtJSiHweS2vfILNrpyJ6HUwpEq2g7+4Zx1FPi4hu3Hu7tC3znF6ufbXO8Ub2LD4mGgznjI7kSdku9NDD1Mkg=="],
"@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-bOJhqX/ny4hrFuTPlyk8foSRx/vLRpxJh0jOOKN2NWW6FScXHPAA5rQbrwdQPcgGB5V8Ua51RS03fke8ssBcug=="], "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.58.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-VQt5TH4M42mY20F545G637RKxV/yjwVtKk2vfXuazfReSIiuvWBnv+FVSvIV5fKVTJNjt3GSJibh6JecbhGdBw=="],
"@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-vVUXxYMF9trXCsz4m9H6U0IjehosVHxBzVgJUxly1uz4W1PdDyicaBnpC0KRXsHYretLVe+uS9pJy8iM57Kujw=="], "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-fBYcj4ucwpAtjJT3oeBdFBYKvNyjRSK+cyuvBOTQjh0jvKp4yeA4S/D0IsCHus/VPaNG5L48qQkh+Vjy3HL2/Q=="],
"@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-TULQW8YBPGRWg5yZpFPL54HLOnJ3/HiX6VenDPi6YfxB/jlItwSMFh3/hCeSNbh+DAMaE1Py0j5MOaivHkI/9Q=="], "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-0BeuFfwlUHlJ1xpEdSD1YO3vByEFGPg36uLjK1JgFaxFb4W6w17F8ET8sz5cheZ4+x5f2xzdnRrrWv83E3Yd8g=="],
"@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Gt54Y4eqSgYJ90xipm24xeyaPV854706o/kiT8oZvUt3VDY7qqxdqyGqchMaujd87ib+/MXvnl9WkK8Cc1BExg=="], "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-TXlZgnPTlxrQzxG9ZXU7BNwx1Ilrr17P3GwZY0If2EzrinqRH3zXPc3HrRcBJgcsoZNMuNL5YivtkJYgp467UQ=="],
"@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-3CtsKp7NFB3OfqQzbuAecrY7GIZeiv7AD+xutU4tefVQzlfmTI7/ygWLrvkzsDEjTlMq41rYHxgsn6Yh8tybmA=="], "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zSoYRo5dxHLcUx93Stl2hW3hSNjPt99O70eRVWt5A1zwJ+FPjeCCANCD2a9R4JbHsdcl11TIQOjyigcRVOH2mw=="],
"@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-K0diOpT3ncDmOfl9I1HuvpEsAuTxkts0VYwIv/w6Xiy9CdwyPBVX88Ga9l8VlGgMrwBMnSY4xIvVlVY/fkQk7Q=="], "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.58.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NQ0U/lqxH2/VxBYeAIvMNUK1y0a1bJ3ZicqkF2c6wfakbEciP9jvIE4yNzCFpZaqeIeRYaV7AVGqEO1yrfVPjA=="],
"@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-xAU7+QDU6kTJJ7mJLOGgo7oOjtAtkKyFZ0Yjdb5cEo3DiCCPFLvyr08rWiQh6evZ7RiUTf+o65NY/bqttzJiQQ=="], "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-X9J+kr3gIC9FT8GuZt0ekzpNUtkBVzMVU4KiKDSlocyQuEgi3gBbXYN8UkQiV77FTusLDPsovjo95YedHr+3yg=="],
"@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-KUmZmKlTTyauOnvUNVxK7G40sSSx0+w5l1UhaGsC6KPpOYHenx2oqJTnabmpLJicok7IC+3Y6fXAUOMyexaeJQ=="], "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-CDze3pi1OO3Wvb/QsXjmLEY4XPKGM6kIo82ssNOgmcl1IdndF9VSGAE38YLhADWmOac7fjqhBw82LozuUVxD0Q=="],
"@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-4usRxC8gS0PGdkHnRmwJt/4zrQNZyk6vL0trCxwZSsAKM+OxhB8nKiR+mhjdBbl8lbMh2gc3bZpNN/ik8c4c2A=="], "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.58.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-b/89glbxFaEAcA6Uf1FvCNecBJEgcUTsV1quzrqXM/o4R1M4u+2KCVuyGCayN2UpsRWtGGLb+Ver0tBBpxaPog=="],
"@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-s/rNE2gDmbwAOOP493xk2X7M8LZfI1LJFSSW1+yanz3vuQCFPiHkx4GY+O1HuLUDtkzGlhtMrIcxxzyYLv308w=="], "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-0/yYpkq9VJFCEcuRlrViGj8pJUFFvNS4EkEREaN7CB1EcLXJIaVSSa5eCihwBGXtOZxhnblWgxks9juRdNQI7w=="],
"@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+yYj1udJa2UvvIUmEm0IcKgc0UlPMgz0nsSTvkPL2y6n0uU5LgIHSwVu4AHhrve6j9BpVSoRksnz8c9QcvITJA=="], "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-hr6FNvmcAXiH+JxSvaJ4SJ1HofkdqEElXICW9sm3/Rd5eC3t7kzvmLyRAB3NngKO2wzXRCAm4Z/mGWfrsS4X8w=="],
"@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-bUplUb48LYsB3hHlQXP2ZMOenpieWoOyppLAnnAhuPag3MGPnt+7caxE3w/Vl9wpQsTA3gzLntQi9rxWrs7Xqg=="], "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.58.0", "", { "os": "none", "cpu": "arm64" }, "sha512-R+O368VXgRql1K6Xar+FEo7NEwfo13EibPMoTv3sesYQedRXd6m30Dh/7lZMxnrQVFfeo4EOfYIP4FpcgWQNHg=="],
"@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-/HLsLuz42rWl7h7ePdmMTpHm2HIDmPtcEMYgm5BBEHiEiuNOrzMaUpd2z7UnNni5LGN9obJy2YoAYBLXQwazrA=="], "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.58.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Q0FZiAY/3c4YRj4z3h9K1PgaByrifrfbBoODSeX7gy97UtB7pySPUQfC2B/GbxWU6k7CzQrRy5gME10PltLAFQ=="],
"@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-rUPy+JnanpPwV/aJCPnxAD1fW50+XPI0VkWr7f0vEbqcdsS8NpB24Rw6RsS7SdpFv8Dw+8ugCwao5nCFbqOUSg=="], "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.58.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-Y8FKBABrSPp9H0QkRLHDHOSUgM/309a3IvOVgPcVxYcX70wxJrk608CuTg7w+C6vEd724X5wJoNkBcGYfH7nNQ=="],
"@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-xkE7puteDS/vUyRngLXW0t8WgdWoS/tfxXjhP/P7SMqPDx+hs44SpssO3h3qmTqECYEuXBUPzcAw5257Ka+ofA=="], "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.58.0", "", { "os": "win32", "cpu": "x64" }, "sha512-bCn5rbiz5My+Bj7M09sDcnqW0QJyINRVxdZ65x1/Y2tGrMwherwK/lpk+HRQCKvXa8pcaQdF5KY5j54VGZLwNg=="],
"@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=="],
@ -512,37 +512,37 @@
"@reteps/dockerfmt": ["@reteps/dockerfmt@0.5.2", "", {}, "sha512-Hbr7yen4fP5TxGM54ucXa4o5NwWXatJ6Bd9I8gp0PValYbI4Rug2Gu+rVv7K7o/efQc3F5ctqWJz47rYaa8zBw=="], "@reteps/dockerfmt": ["@reteps/dockerfmt@0.5.2", "", {}, "sha512-Hbr7yen4fP5TxGM54ucXa4o5NwWXatJ6Bd9I8gp0PValYbI4Rug2Gu+rVv7K7o/efQc3F5ctqWJz47rYaa8zBw=="],
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-rc.15", "", { "os": "android", "cpu": "arm64" }, "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA=="], "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-rc.12", "", { "os": "android", "cpu": "arm64" }, "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA=="],
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-rc.15", "", { "os": "darwin", "cpu": "arm64" }, "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg=="], "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-rc.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg=="],
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-rc.15", "", { "os": "darwin", "cpu": "x64" }, "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw=="], "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-rc.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw=="],
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-rc.15", "", { "os": "freebsd", "cpu": "x64" }, "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw=="], "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-rc.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q=="],
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15", "", { "os": "linux", "cpu": "arm" }, "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA=="], "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12", "", { "os": "linux", "cpu": "arm" }, "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q=="],
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w=="], "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg=="],
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-rc.15", "", { "os": "linux", "cpu": "arm64" }, "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ=="], "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-rc.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw=="],
"@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15", "", { "os": "linux", "cpu": "ppc64" }, "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ=="], "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g=="],
"@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15", "", { "os": "linux", "cpu": "s390x" }, "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ=="], "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og=="],
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-rc.15", "", { "os": "linux", "cpu": "x64" }, "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA=="], "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-rc.12", "", { "os": "linux", "cpu": "x64" }, "sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg=="],
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-rc.15", "", { "os": "linux", "cpu": "x64" }, "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw=="], "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-rc.12", "", { "os": "linux", "cpu": "x64" }, "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig=="],
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-rc.15", "", { "os": "none", "cpu": "arm64" }, "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg=="], "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-rc.12", "", { "os": "none", "cpu": "arm64" }, "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA=="],
"@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-rc.15", "", { "dependencies": { "@emnapi/core": "1.9.2", "@emnapi/runtime": "1.9.2", "@napi-rs/wasm-runtime": "^1.1.3" }, "cpu": "none" }, "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q=="], "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-rc.12", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.1.1" }, "cpu": "none" }, "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg=="],
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15", "", { "os": "win32", "cpu": "arm64" }, "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA=="], "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q=="],
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-rc.15", "", { "os": "win32", "cpu": "x64" }, "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g=="], "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-rc.12", "", { "os": "win32", "cpu": "x64" }, "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw=="],
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.15", "", {}, "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g=="], "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.12", "", {}, "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw=="],
"@sentry-internal/browser-utils": ["@sentry-internal/browser-utils@10.47.0", "", { "dependencies": { "@sentry/core": "10.47.0" } }, "sha512-bVFRAeJWMBcBCvJKIFCMJ1/yQToL4vPGqfmlnDZeypcxkqUDKQ/Y3ziLHXoDL2sx0lagcgU2vH1QhCQ67Aujjw=="], "@sentry-internal/browser-utils": ["@sentry-internal/browser-utils@10.47.0", "", { "dependencies": { "@sentry/core": "10.47.0" } }, "sha512-bVFRAeJWMBcBCvJKIFCMJ1/yQToL4vPGqfmlnDZeypcxkqUDKQ/Y3ziLHXoDL2sx0lagcgU2vH1QhCQ67Aujjw=="],
@ -586,25 +586,25 @@
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/type-utils": "8.58.1", "@typescript-eslint/utils": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ=="], "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/type-utils": "8.58.0", "@typescript-eslint/utils": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg=="],
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw=="], "@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA=="],
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.1", "@typescript-eslint/types": "^8.58.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g=="], "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.0", "@typescript-eslint/types": "^8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg=="],
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0" } }, "sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ=="], "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0" } }, "sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ=="],
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw=="], "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A=="],
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg=="], "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg=="],
"@typescript-eslint/types": ["@typescript-eslint/types@8.58.0", "", {}, "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww=="], "@typescript-eslint/types": ["@typescript-eslint/types@8.58.0", "", {}, "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww=="],
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.1", "@typescript-eslint/tsconfig-utils": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg=="], "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.0", "@typescript-eslint/tsconfig-utils": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA=="],
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA=="], "@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA=="],
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ=="], "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"@typescript/lib-decorators": ["@better-typescript-lib/decorators@2.12.0", "", { "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-/m9Q5Xk66ThUJidTsxmXJH0+49iCLl5PFmue0HkNSGrcPU96oaoKNY5sH1AslwA/OWVvBg3hE58ZwSGm6TQFuQ=="], "@typescript/lib-decorators": ["@better-typescript-lib/decorators@2.12.0", "", { "peerDependencies": { "typescript": ">=4.5.2" } }, "sha512-/m9Q5Xk66ThUJidTsxmXJH0+49iCLl5PFmue0HkNSGrcPU96oaoKNY5sH1AslwA/OWVvBg3hE58ZwSGm6TQFuQ=="],
@ -726,7 +726,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.30001787", "", {}, "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg=="], "caniuse-lite": ["caniuse-lite@1.0.30001786", "", {}, "sha512-4oxTZEvqmLLrERwxO76yfKM7acZo310U+v4kqexI2TL1DkkUEMT8UijrxxcnVdxR3qkVf5awGRX+4Z6aPHVKrA=="],
"change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="],
@ -838,7 +838,7 @@
"eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="],
"eslint-plugin-oxlint": ["eslint-plugin-oxlint@1.59.0", "", { "dependencies": { "jsonc-parser": "^3.3.1" }, "peerDependencies": { "oxlint": "~1.59.0" } }, "sha512-g0DR+xSsnUdyaMc2KAXvBVGWz5V4GwlAE1PM+ocKxl2Eg7YgOjkRLLbxgJ3bhYOhRLhD8F0X4DjJu2FSDvrvAg=="], "eslint-plugin-oxlint": ["eslint-plugin-oxlint@1.58.0", "", { "dependencies": { "jsonc-parser": "^3.3.1" }, "peerDependencies": { "oxlint": "~1.58.0" } }, "sha512-L3aZSg0x2fL0dXyOgoK8A1QUbnfGzXt6bX4AFD7Scauw6zVUBOZrES5eRTzLLGgeVg0el5lvqHGl1WFAGo14DA=="],
"eslint-plugin-perfectionist": ["eslint-plugin-perfectionist@5.8.0", "", { "dependencies": { "@typescript-eslint/utils": "^8.58.0", "natural-orderby": "^5.0.0" }, "peerDependencies": { "eslint": "^8.45.0 || ^9.0.0 || ^10.0.0" } }, "sha512-k8uIptWIxkUclonCFGyDzgYs9NI+Qh0a7cUXS3L7IYZDEsjXuimFBVbxXPQQngWqMiaxJRwbtYB4smMGMqF+cw=="], "eslint-plugin-perfectionist": ["eslint-plugin-perfectionist@5.8.0", "", { "dependencies": { "@typescript-eslint/utils": "^8.58.0", "natural-orderby": "^5.0.0" }, "peerDependencies": { "eslint": "^8.45.0 || ^9.0.0 || ^10.0.0" } }, "sha512-k8uIptWIxkUclonCFGyDzgYs9NI+Qh0a7cUXS3L7IYZDEsjXuimFBVbxXPQQngWqMiaxJRwbtYB4smMGMqF+cw=="],
@ -1076,7 +1076,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.3.1", "", { "dependencies": { "@nodelib/fs.walk": "^1.2.3", "fast-glob": "^3.3.3", "formatly": "^0.3.0", "get-tsconfig": "4.13.7", "jiti": "^2.6.0", "minimist": "^1.2.8", "oxc-parser": "^0.121.0", "oxc-resolver": "^11.19.1", "picocolors": "^1.1.1", "picomatch": "^4.0.1", "smol-toml": "^1.6.1", "strip-json-comments": "5.0.3", "unbash": "^2.2.0", "yaml": "^2.8.2", "zod": "^4.1.11" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-22kLJloVcOVOAudCxlFOC0ICAMme7dKsS7pVTEnrmyKGpswb8ieznvAiSKUeFVDJhb01ect6dkDc1Ha1g1sPpg=="], "knip": ["knip@6.3.0", "", { "dependencies": { "@nodelib/fs.walk": "^1.2.3", "fast-glob": "^3.3.3", "formatly": "^0.3.0", "get-tsconfig": "4.13.7", "jiti": "^2.6.0", "minimist": "^1.2.8", "oxc-parser": "^0.121.0", "oxc-resolver": "^11.19.1", "picocolors": "^1.1.1", "picomatch": "^4.0.1", "smol-toml": "^1.6.1", "strip-json-comments": "5.0.3", "unbash": "^2.2.0", "yaml": "^2.8.2", "zod": "^4.1.11" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-g6dVPoTw6iNm3cubC5IWxVkVsd0r5hXhTBTbAGIEQN53GdA2ZM/slMTPJ7n5l8pBebNQPHpxjmKxuR4xVQ2/hQ=="],
"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=="],
@ -1256,9 +1256,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.59.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.59.0", "@oxlint/binding-android-arm64": "1.59.0", "@oxlint/binding-darwin-arm64": "1.59.0", "@oxlint/binding-darwin-x64": "1.59.0", "@oxlint/binding-freebsd-x64": "1.59.0", "@oxlint/binding-linux-arm-gnueabihf": "1.59.0", "@oxlint/binding-linux-arm-musleabihf": "1.59.0", "@oxlint/binding-linux-arm64-gnu": "1.59.0", "@oxlint/binding-linux-arm64-musl": "1.59.0", "@oxlint/binding-linux-ppc64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-gnu": "1.59.0", "@oxlint/binding-linux-riscv64-musl": "1.59.0", "@oxlint/binding-linux-s390x-gnu": "1.59.0", "@oxlint/binding-linux-x64-gnu": "1.59.0", "@oxlint/binding-linux-x64-musl": "1.59.0", "@oxlint/binding-openharmony-arm64": "1.59.0", "@oxlint/binding-win32-arm64-msvc": "1.59.0", "@oxlint/binding-win32-ia32-msvc": "1.59.0", "@oxlint/binding-win32-x64-msvc": "1.59.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-0xBLeGGjP4vD9pygRo8iuOkOzEU1MqOnfiOl7KYezL/QvWL8NUg6n03zXc7ZVqltiOpUxBk2zgHI3PnRIEdAvw=="], "oxlint": ["oxlint@1.58.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.58.0", "@oxlint/binding-android-arm64": "1.58.0", "@oxlint/binding-darwin-arm64": "1.58.0", "@oxlint/binding-darwin-x64": "1.58.0", "@oxlint/binding-freebsd-x64": "1.58.0", "@oxlint/binding-linux-arm-gnueabihf": "1.58.0", "@oxlint/binding-linux-arm-musleabihf": "1.58.0", "@oxlint/binding-linux-arm64-gnu": "1.58.0", "@oxlint/binding-linux-arm64-musl": "1.58.0", "@oxlint/binding-linux-ppc64-gnu": "1.58.0", "@oxlint/binding-linux-riscv64-gnu": "1.58.0", "@oxlint/binding-linux-riscv64-musl": "1.58.0", "@oxlint/binding-linux-s390x-gnu": "1.58.0", "@oxlint/binding-linux-x64-gnu": "1.58.0", "@oxlint/binding-linux-x64-musl": "1.58.0", "@oxlint/binding-openharmony-arm64": "1.58.0", "@oxlint/binding-win32-arm64-msvc": "1.58.0", "@oxlint/binding-win32-ia32-msvc": "1.58.0", "@oxlint/binding-win32-x64-msvc": "1.58.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.18.0" }, "optionalPeers": ["oxlint-tsgolint"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-t4s9leczDMqlvOSjnbCQe7gtoLkWgBGZ7sBdCJ9EOj5IXFSG/X7OAzK4yuH4iW+4cAYe8kLFbC8tuYMwWZm+Cg=="],
"oxlint-tsgolint": ["oxlint-tsgolint@0.20.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.20.0", "@oxlint-tsgolint/darwin-x64": "0.20.0", "@oxlint-tsgolint/linux-arm64": "0.20.0", "@oxlint-tsgolint/linux-x64": "0.20.0", "@oxlint-tsgolint/win32-arm64": "0.20.0", "@oxlint-tsgolint/win32-x64": "0.20.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-/Uc9TQyN1l8w9QNvXtVHYtz+SzDJHKpb5X0UnHodl0BVzijUPk0LPlDOHAvogd1UI+iy9ZSF6gQxEqfzUxCULQ=="], "oxlint-tsgolint": ["oxlint-tsgolint@0.19.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.19.0", "@oxlint-tsgolint/darwin-x64": "0.19.0", "@oxlint-tsgolint/linux-arm64": "0.19.0", "@oxlint-tsgolint/linux-x64": "0.19.0", "@oxlint-tsgolint/win32-arm64": "0.19.0", "@oxlint-tsgolint/win32-x64": "0.19.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-pSzUmDjMyjC8iUUZ7fCLo0D1iUaYIfodd/WIQ6Zra11YkjkUQk3BOFoW4I5ec6uZ/0s2FEmxtiZ7hiTXFRp1cg=="],
"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=="],
@ -1368,7 +1368,7 @@
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
"rolldown": ["rolldown@1.0.0-rc.15", "", { "dependencies": { "@oxc-project/types": "=0.124.0", "@rolldown/pluginutils": "1.0.0-rc.15" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-rc.15", "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", "@rolldown/binding-darwin-x64": "1.0.0-rc.15", "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g=="], "rolldown": ["rolldown@1.0.0-rc.12", "", { "dependencies": { "@oxc-project/types": "=0.122.0", "@rolldown/pluginutils": "1.0.0-rc.12" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-rc.12", "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", "@rolldown/binding-darwin-x64": "1.0.0-rc.12", "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A=="],
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
@ -1556,7 +1556,7 @@
"typescript": ["typescript@6.0.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="], "typescript": ["typescript@6.0.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="],
"typescript-eslint": ["typescript-eslint@8.58.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.1", "@typescript-eslint/parser": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/utils": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg=="], "typescript-eslint": ["typescript-eslint@8.58.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.0", "@typescript-eslint/parser": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA=="],
"unbash": ["unbash@2.2.0", "", {}, "sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w=="], "unbash": ["unbash@2.2.0", "", {}, "sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w=="],
@ -1588,7 +1588,7 @@
"varint": ["varint@6.0.0", "", {}, "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="], "varint": ["varint@6.0.0", "", {}, "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="],
"vite": ["vite@8.0.8", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.8", "rolldown": "1.0.0-rc.15", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw=="], "vite": ["vite@8.0.5", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.8", "rolldown": "1.0.0-rc.12", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-nmu43Qvq9UopTRfMx2jOYW5l16pb3iDC1JH6yMuPkpVbzK0k+L7dfsEDH4jRgYFmsg0sTAqkojoZgzLMlwHsCQ=="],
"vite-tsconfig-paths": ["vite-tsconfig-paths@6.1.1", "", { "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", "tsconfck": "^3.0.3" }, "peerDependencies": { "vite": "*" } }, "sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg=="], "vite-tsconfig-paths": ["vite-tsconfig-paths@6.1.1", "", { "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", "tsconfck": "^3.0.3" }, "peerDependencies": { "vite": "*" } }, "sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg=="],
@ -1634,38 +1634,12 @@
"@gcch/configuration-eslint/eslint": ["eslint@10.1.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.3", "@eslint/config-helpers": "^0.5.3", "@eslint/core": "^1.1.1", "@eslint/plugin-kit": "^0.6.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA=="], "@gcch/configuration-eslint/eslint": ["eslint@10.1.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.3", "@eslint/config-helpers": "^0.5.3", "@eslint/core": "^1.1.1", "@eslint/plugin-kit": "^0.6.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA=="],
"@gcch/configuration-eslint/typescript-eslint": ["typescript-eslint@8.58.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.58.0", "@typescript-eslint/parser": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/utils": "8.58.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA=="],
"@gcch/configuration-prettier/prettier-plugin-sh": ["prettier-plugin-sh@0.18.0", "", { "dependencies": { "@reteps/dockerfmt": "^0.3.6", "sh-syntax": "^0.5.8" }, "peerDependencies": { "prettier": "^3.6.0" } }, "sha512-cW1XL27FOJQ/qGHOW6IHwdCiNWQsAgK+feA8V6+xUTaH0cD3Mh+tFAtBvEEWvuY6hTDzRV943Fzeii+qMOh7nQ=="], "@gcch/configuration-prettier/prettier-plugin-sh": ["prettier-plugin-sh@0.18.0", "", { "dependencies": { "@reteps/dockerfmt": "^0.3.6", "sh-syntax": "^0.5.8" }, "peerDependencies": { "prettier": "^3.6.0" } }, "sha512-cW1XL27FOJQ/qGHOW6IHwdCiNWQsAgK+feA8V6+xUTaH0cD3Mh+tFAtBvEEWvuY6hTDzRV943Fzeii+qMOh7nQ=="],
"@keyv/bigmap/keyv": ["keyv@5.6.0", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw=="], "@keyv/bigmap/keyv": ["keyv@5.6.0", "", { "dependencies": { "@keyv/serialize": "^1.1.1" } }, "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw=="],
"@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.3", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1" } }, "sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1", "@typescript-eslint/utils": "8.58.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ=="],
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
"@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1" } }, "sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w=="],
"@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/project-service/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.0", "@typescript-eslint/tsconfig-utils": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA=="],
"@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.0", "@typescript-eslint/tsconfig-utils": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA=="],
"@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"astro-eslint-parser/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], "astro-eslint-parser/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
"astro-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], "astro-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="],
@ -1704,7 +1678,7 @@
"qified/hookified": ["hookified@2.1.1", "", {}, "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA=="], "qified/hookified": ["hookified@2.1.1", "", {}, "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA=="],
"rolldown/@oxc-project/types": ["@oxc-project/types@0.124.0", "", {}, "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg=="], "rolldown/@oxc-project/types": ["@oxc-project/types@0.122.0", "", {}, "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA=="],
"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=="],
@ -1720,8 +1694,6 @@
"table/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "table/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.58.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.58.1", "@typescript-eslint/types": "8.58.1", "@typescript-eslint/typescript-estree": "8.58.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ=="],
"vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
"@gcch/configuration-eslint/eslint/@eslint/config-array": ["@eslint/config-array@0.23.3", "", { "dependencies": { "@eslint/object-schema": "^3.0.3", "debug": "^4.3.1", "minimatch": "^10.2.4" } }, "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw=="], "@gcch/configuration-eslint/eslint/@eslint/config-array": ["@eslint/config-array@0.23.3", "", { "dependencies": { "@eslint/object-schema": "^3.0.3", "debug": "^4.3.1", "minimatch": "^10.2.4" } }, "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw=="],
@ -1732,32 +1704,8 @@
"@gcch/configuration-eslint/eslint/@eslint/plugin-kit": ["@eslint/plugin-kit@0.6.1", "", { "dependencies": { "@eslint/core": "^1.1.1", "levn": "^0.4.1" } }, "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ=="], "@gcch/configuration-eslint/eslint/@eslint/plugin-kit": ["@eslint/plugin-kit@0.6.1", "", { "dependencies": { "@eslint/core": "^1.1.1", "levn": "^0.4.1" } }, "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.58.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/type-utils": "8.58.0", "@typescript-eslint/utils": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.58.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/parser": ["@typescript-eslint/parser@8.58.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/typescript-estree": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.58.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.58.0", "@typescript-eslint/tsconfig-utils": "8.58.0", "@typescript-eslint/types": "8.58.0", "@typescript-eslint/visitor-keys": "8.58.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA=="],
"@gcch/configuration-prettier/prettier-plugin-sh/@reteps/dockerfmt": ["@reteps/dockerfmt@0.3.6", "", {}, "sha512-Tb5wIMvBf/nLejTQ61krK644/CEMB/cpiaIFXqGApfGqO3GwcR3qnI0DbmkFVCl2OyEp8LnLX3EkucoL0+tbFg=="], "@gcch/configuration-prettier/prettier-plugin-sh/@reteps/dockerfmt": ["@reteps/dockerfmt@0.3.6", "", {}, "sha512-Tb5wIMvBf/nLejTQ61krK644/CEMB/cpiaIFXqGApfGqO3GwcR3qnI0DbmkFVCl2OyEp8LnLX3EkucoL0+tbFg=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/type-utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.0", "@typescript-eslint/types": "^8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg=="],
"@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A=="],
"@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.0", "@typescript-eslint/types": "^8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg=="],
"@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A=="],
"@typescript-eslint/utils/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"eslint-plugin-jsx-a11y/minimatch/brace-expansion": ["brace-expansion@1.1.13", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w=="], "eslint-plugin-jsx-a11y/minimatch/brace-expansion": ["brace-expansion@1.1.13", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w=="],
"stylelint/file-entry-cache/flat-cache": ["flat-cache@6.1.22", "", { "dependencies": { "cacheable": "^2.3.4", "flatted": "^3.4.2", "hookified": "^1.15.0" } }, "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug=="], "stylelint/file-entry-cache/flat-cache": ["flat-cache@6.1.22", "", { "dependencies": { "cacheable": "^2.3.4", "flatted": "^3.4.2", "hookified": "^1.15.0" } }, "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug=="],
@ -1768,24 +1716,8 @@
"table/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "table/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.58.1", "", { "dependencies": { "@typescript-eslint/types": "8.58.1", "@typescript-eslint/visitor-keys": "8.58.1" } }, "sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w=="],
"typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.58.1", "", {}, "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw=="],
"@gcch/configuration-eslint/eslint/@eslint/config-array/@eslint/object-schema": ["@eslint/object-schema@3.0.3", "", {}, "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ=="], "@gcch/configuration-eslint/eslint/@eslint/config-array/@eslint/object-schema": ["@eslint/object-schema@3.0.3", "", {}, "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/parser/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.58.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.58.0", "@typescript-eslint/types": "^8.58.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.58.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A=="],
"@gcch/configuration-eslint/typescript-eslint/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.58.0", "", { "dependencies": { "@typescript-eslint/types": "8.58.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ=="],
"eslint-plugin-jsx-a11y/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], "eslint-plugin-jsx-a11y/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
} }
} }

42
composer.lock generated
View file

@ -585,7 +585,7 @@
}, },
{ {
"name": "illuminate/collections", "name": "illuminate/collections",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/collections.git", "url": "https://github.com/illuminate/collections.git",
@ -644,7 +644,7 @@
}, },
{ {
"name": "illuminate/conditionable", "name": "illuminate/conditionable",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/conditionable.git", "url": "https://github.com/illuminate/conditionable.git",
@ -690,7 +690,7 @@
}, },
{ {
"name": "illuminate/contracts", "name": "illuminate/contracts",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/contracts.git", "url": "https://github.com/illuminate/contracts.git",
@ -738,7 +738,7 @@
}, },
{ {
"name": "illuminate/macroable", "name": "illuminate/macroable",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/macroable.git", "url": "https://github.com/illuminate/macroable.git",
@ -784,7 +784,7 @@
}, },
{ {
"name": "illuminate/reflection", "name": "illuminate/reflection",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/reflection.git", "url": "https://github.com/illuminate/reflection.git",
@ -835,16 +835,16 @@
}, },
{ {
"name": "illuminate/support", "name": "illuminate/support",
"version": "v13.4.0", "version": "v13.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/support.git", "url": "https://github.com/illuminate/support.git",
"reference": "e7ce0496cae80c3e1aa72e37f09335a6454846dc" "reference": "f31e168e236a90d96d7894cd1f107b1ba095de69"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/e7ce0496cae80c3e1aa72e37f09335a6454846dc", "url": "https://api.github.com/repos/illuminate/support/zipball/f31e168e236a90d96d7894cd1f107b1ba095de69",
"reference": "e7ce0496cae80c3e1aa72e37f09335a6454846dc", "reference": "f31e168e236a90d96d7894cd1f107b1ba095de69",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -910,7 +910,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2026-04-07T13:34:38+00:00" "time": "2026-03-30T13:32:27+00:00"
}, },
{ {
"name": "laravel/helpers", "name": "laravel/helpers",
@ -1220,16 +1220,16 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "3.11.4", "version": "3.11.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/CarbonPHP/carbon.git", "url": "https://github.com/CarbonPHP/carbon.git",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60" "reference": "6a7e652845bb018c668220c2a545aded8594fbbf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60", "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6a7e652845bb018c668220c2a545aded8594fbbf",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60", "reference": "6a7e652845bb018c668220c2a545aded8594fbbf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1321,7 +1321,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-07T09:57:54+00:00" "time": "2026-03-11T17:23:39+00:00"
}, },
{ {
"name": "oscarotero/env", "name": "oscarotero/env",
@ -5129,12 +5129,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git", "url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "7c570124dcf5c6834d78348d6817f32cd6b537d7" "reference": "db78064456eb735e368677828095fb7fe5aeda6f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/7c570124dcf5c6834d78348d6817f32cd6b537d7", "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/db78064456eb735e368677828095fb7fe5aeda6f",
"reference": "7c570124dcf5c6834d78348d6817f32cd6b537d7", "reference": "db78064456eb735e368677828095fb7fe5aeda6f",
"shasum": "" "shasum": ""
}, },
"conflict": { "conflict": {
@ -5249,7 +5249,7 @@
"cesnet/simplesamlphp-module-proxystatistics": "<3.1", "cesnet/simplesamlphp-module-proxystatistics": "<3.1",
"chriskacerguis/codeigniter-restserver": "<=2.7.1", "chriskacerguis/codeigniter-restserver": "<=2.7.1",
"chrome-php/chrome": "<1.14", "chrome-php/chrome": "<1.14",
"ci4-cms-erp/ci4ms": "<=0.31.1", "ci4-cms-erp/ci4ms": "<=0.28.6",
"civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
"ckeditor/ckeditor": "<4.25", "ckeditor/ckeditor": "<4.25",
"clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3",
@ -5769,7 +5769,7 @@
"pixelfed/pixelfed": "<0.12.5", "pixelfed/pixelfed": "<0.12.5",
"plotly/plotly.js": "<2.25.2", "plotly/plotly.js": "<2.25.2",
"pocketmine/bedrock-protocol": "<8.0.2", "pocketmine/bedrock-protocol": "<8.0.2",
"pocketmine/pocketmine-mp": "<5.41.1", "pocketmine/pocketmine-mp": "<5.32.1",
"pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
"pressbooks/pressbooks": "<5.18", "pressbooks/pressbooks": "<5.18",
"prestashop/autoupgrade": ">=4,<4.10.1", "prestashop/autoupgrade": ">=4,<4.10.1",
@ -6171,7 +6171,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-06T23:13:58+00:00" "time": "2026-04-04T07:24:55+00:00"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",

File diff suppressed because it is too large Load diff

View file

@ -1,37 +1,25 @@
#:schema mago-schema.json
php-version = "8.5" php-version = "8.5"
stack-size = 0 stack-size = 8388608
threads = 0 threads = 8
[source] [source]
excludes = ["web/wp/wp-admin/includes/noop.php"] excludes = ["web/wp/wp-admin/includes/noop.php"]
extensions = ["php"] extensions = ["php"]
includes = ["config", "vendor", "web/app/plugins", "web/vendor", "web/wp"] includes = ["config", "vendor", "web/app/plugins", "web/vendor", "web/wp"]
paths = ["web/app/themes/haiku-atelier-2024"] paths = ["web/app/themes/haiku-atelier-2024"]
workspace = "."
[linter] [linter]
integrations = ["wordpress"] integrations = ["wordpress"]
[linter.rules] [linter.rules]
ambiguous-function-call = { enabled = true } ambiguous-function-call = { enabled = true }
array-style = { enabled = true, style = "short" }
halstead = { effort-threshold = 7000 } halstead = { effort-threshold = 7000 }
literal-named-argument = { enabled = false } literal-named-argument = { enabled = false }
missing-docs = { enabled = true }
no-array-accumulation-in-loop = { enabled = true }
no-inline = { enabled = true } no-inline = { enabled = true }
no-is-null = { enabled = true }
no-iterator-to-array-in-foreach = { enabled = true }
no-parameter-shadowing = { enabled = true }
no-redundant-readonly = { enabled = true } no-redundant-readonly = { enabled = true }
no-redundant-use = { enabled = true } no-redundant-use = { enabled = true }
no-variable-variable = { enabled = true } no-variable-variable = { enabled = true }
require-namespace = { enabled = true } require-namespace = { enabled = true }
sorted-integer-keys = { enabled = true }
# Les else permettent de conserver les branches d'une condition à la même indentation.
no-else-clause = { enabled = false }
[analyzer] [analyzer]
allow-possibly-undefined-array-keys = false allow-possibly-undefined-array-keys = false
@ -53,16 +41,13 @@ threads = 0
require-api-or-internal = true require-api-or-internal = true
strict-list-index-checks = true strict-list-index-checks = true
trust-existence-checks = false trust-existence-checks = false
check-experimental = true
check-name-casing = true
memoize-properties = true
[analyzer.performance] [analyzer.performance]
array-combination-threshold = 256
consensus-limit-threshold = 512
disjunction-complexity-threshold = 8192
formula-size-threshold = 1024
integer-combination-threshold = 256
negation-complexity-threshold = 8192
saturation-complexity-threshold = 16384 saturation-complexity-threshold = 16384
disjunction-complexity-threshold = 8192
negation-complexity-threshold = 8192
consensus-limit-threshold = 512
formula-size-threshold = 1024
string-combination-threshold = 256 string-combination-threshold = 256
integer-combination-threshold = 256
array-combination-threshold = 256

View file

@ -21,9 +21,9 @@
"valibot": "1.1.0" "valibot": "1.1.0"
}, },
"devDependencies": { "devDependencies": {
"@effect/language-service": "^0.85.0", "@effect/language-service": "^0.84.3",
"@gcch/configuration-eslint": "git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274", "@gcch/configuration-eslint": "git+https://git.gcch.fr/gcch/configuration-eslint#62ee424274",
"@gcch/configuration-oxlint": "git+https://git.gcch.fr/gcch/configuration-oxlint#0968f683", "@gcch/configuration-oxlint": "git+https://git.gcch.fr/gcch/configuration-oxlint#bedd1fa23aff",
"@gcch/configuration-prettier": "git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801", "@gcch/configuration-prettier": "git+https://git.gcch.fr/gcch/configuration-prettier#8de937e801",
"@playwright/test": "^1.59.1", "@playwright/test": "^1.59.1",
"@sentry/core": "^10.47.0", "@sentry/core": "^10.47.0",
@ -32,21 +32,21 @@
"@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.30001787", "caniuse-lite": "^1.0.30001786",
"eslint": "^10.2.0", "eslint": "^10.2.0",
"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",
"eslint-plugin-oxlint": "^1.59.0", "eslint-plugin-oxlint": "^1.58.0",
"eslint-plugin-perfectionist": "^5.8.0", "eslint-plugin-perfectionist": "^5.8.0",
"eslint-plugin-sonarjs": "^4.0.2", "eslint-plugin-sonarjs": "^4.0.2",
"fdir": "^6.5.0", "fdir": "^6.5.0",
"globals": "^17.4.0", "globals": "^17.4.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"knip": "^6.3.1", "knip": "^6.3.0",
"lightningcss": "^1.32.0", "lightningcss": "^1.32.0",
"lightningcss-cli": "^1.32.0", "lightningcss-cli": "^1.32.0",
"oxlint": "^1.59.0", "oxlint": "^1.58.0",
"oxlint-tsgolint": "^0.20.0", "oxlint-tsgolint": "^0.19.0",
"playwright": "^1.59.1", "playwright": "^1.59.1",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"prettier-plugin-pkg": "^0.22.1", "prettier-plugin-pkg": "^0.22.1",
@ -59,8 +59,8 @@
"stylelint-declaration-block-no-ignored-properties": "^3.0.0", "stylelint-declaration-block-no-ignored-properties": "^3.0.0",
"stylelint-plugin-logical-css": "^2.1.0", "stylelint-plugin-logical-css": "^2.1.0",
"typescript": "6.0.2", "typescript": "6.0.2",
"typescript-eslint": "^8.58.1", "typescript-eslint": "^8.58.0",
"vite": "^8.0.8", "vite": "^8.0.5",
"vite-tsconfig-paths": "^6.1.1" "vite-tsconfig-paths": "^6.1.1"
}, },
"browserslist": [ "browserslist": [

View file

@ -1,3 +1,9 @@
<svg viewBox="0 0 90 90" xmlns="http://www.w3.org/2000/svg"> <svg
<path fill="#E7FFB4" d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723" /> viewBox="0 0 90 90"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill="#E7FFB4"
d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 611 B

Before After
Before After

View file

@ -1,11 +1,17 @@
<svg viewBox="43.801 35.326 186.516 130.185" xmlns="http://www.w3.org/2000/svg"> <svg
viewBox="43.801 35.326 186.516 130.185"
xmlns="http://www.w3.org/2000/svg"
>
<path <path
opacity=".5" fill="#DFDEDE" opacity=".5"
fill="#DFDEDE"
d="M226.058 108.87c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.223 10.456-44.276 31.967-38.105 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.099-48.039" d="M226.058 108.87c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.223 10.456-44.276 31.967-38.105 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.099-48.039"
/> />
<path <path
fill="none" stroke="#2B2B2B" fill="none"
stroke-width="5" stroke-miterlimit="10" stroke="#2B2B2B"
stroke-width="5"
stroke-miterlimit="10"
d="M226.058 108.87c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.223 10.456-44.276 31.967-38.105 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.099-48.039z" d="M226.058 108.87c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.223 10.456-44.276 31.967-38.105 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.099-48.039z"
/> />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -1,11 +1,17 @@
<svg viewBox="43.727 35.716 186.52 130.194" xmlns="http://www.w3.org/2000/svg"> <svg
viewBox="43.727 35.716 186.52 130.194"
xmlns="http://www.w3.org/2000/svg"
>
<path <path
opacity=".5" fill="#DFDEDE" opacity=".5"
fill="#DFDEDE"
d="M225.982 109.258c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.222 10.456-44.276 31.967-38.104 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.098-48.039" d="M225.982 109.258c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.222 10.456-44.276 31.967-38.104 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.098-48.039"
/> />
<path <path
fill="none" stroke="#D8FFA5" fill="none"
stroke-width="5" stroke-miterlimit="10" stroke="#D8FFA5"
stroke-width="5"
stroke-miterlimit="10"
d="M225.982 109.258c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.222 10.456-44.276 31.967-38.104 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.098-48.039z" d="M225.982 109.258c-3.021-7.855-11.031-12.949-21.609-14.896 17.068-11.315 26.261-27.05 21.471-39.518-6.177-16.074-33.244-20.635-60.461-10.179-7.015 2.694-13.343 6.124-18.778 10.001-.018-.05-.032-.102-.052-.152-6.174-16.076-33.251-20.633-60.46-10.178-27.222 10.456-44.276 31.967-38.104 48.043 2.792 7.266 9.862 12.164 19.273 14.402-15.603 11.168-23.785 26.049-19.206 37.953 6.176 16.079 33.251 20.633 60.46 10.176 6.809-2.611 12.975-5.918 18.311-9.656.169.627.358 1.251.595 1.867 6.174 16.075 33.241 20.631 60.462 10.176 27.22-10.455 44.272-31.965 38.098-48.039z"
/> />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -1,3 +1,6 @@
<svg viewBox="94.634 56.652 88.879 79.521" xmlns="http://www.w3.org/2000/svg"> <svg
viewBox="94.634 56.652 88.879 79.521"
xmlns="http://www.w3.org/2000/svg"
>
<path d="m94.623 136.156 88.869-36.863-88.869-42.648s21.33 20.87 21.33 39.756c0 18.891-21.33 39.755-21.33 39.755" /> <path d="m94.623 136.156 88.869-36.863-88.869-42.648s21.33 20.87 21.33 39.756c0 18.891-21.33 39.755-21.33 39.755" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 210 B

Before After
Before After

View file

@ -1,3 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="32.026 31.499 14.793 16.534"> <svg
xmlns="http://www.w3.org/2000/svg"
viewBox="32.026 31.499 14.793 16.534"
>
<path d="m32.026 31.499 6.858 16.534 7.935-16.534s-3.883 3.968-7.396 3.968c-3.515 0-7.397-3.968-7.397-3.968" /> <path d="m32.026 31.499 6.858 16.534 7.935-16.534s-3.883 3.968-7.396 3.968c-3.515 0-7.397-3.968-7.397-3.968" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 200 B

After

Width:  |  Height:  |  Size: 205 B

Before After
Before After

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<svg viewBox="4.189 16.921 81.623 56.159" xmlns="http://www.w3.org/2000/svg"> <svg
<path d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723" fill="#808080" /> viewBox="4.189 16.921 81.623 56.159"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723"
fill="#808080"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 667 B

Before After
Before After

View file

@ -1,3 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="2.433 9.473 85.134 70.17"> <svg
<path fill="#E7FFB4" 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" /> xmlns="http://www.w3.org/2000/svg"
viewBox="2.433 9.473 85.134 70.17"
>
<path
fill="#E7FFB4"
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> </svg>

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 619 B

Before After
Before After

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<svg viewBox="4.189 16.921 81.623 56.159" xmlns="http://www.w3.org/2000/svg"> <svg
<path d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723" style="fill: rgb(73, 9, 24)" /> viewBox="4.189 16.921 81.623 56.159"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723"
style="fill: rgb(73, 9, 24)"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 681 B

Before After
Before After

View file

@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<svg viewBox="4.189 16.921 81.623 56.159" xmlns="http://www.w3.org/2000/svg"> <svg
<path fill="#E7FFB4" d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723" /> viewBox="4.189 16.921 81.623 56.159"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill="#E7FFB4"
d="M85.241 48.817c-1.365-3.553-4.989-5.856-9.771-6.737 7.718-5.116 11.871-12.229 9.706-17.868-2.79-7.268-15.031-9.329-27.335-4.602-3.173 1.218-6.032 2.768-8.491 4.521l-.024-.068c-2.791-7.269-15.035-9.329-27.338-4.601C9.681 24.19 1.969 33.914 4.76 41.184c1.262 3.283 4.458 5.501 8.712 6.514C6.419 52.746 2.721 59.473 4.79 64.857c2.791 7.27 15.033 9.329 27.337 4.602 3.077-1.183 5.866-2.676 8.278-4.366.076.284.162.565.269.843 2.791 7.271 15.032 9.33 27.336 4.604 12.31-4.73 20.022-14.456 17.231-21.723"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 667 B

Before After
Before After

View file

@ -1,16 +1,24 @@
<svg <svg
xmlns="http://www.w3.org/2000/svg" class="icon line-color" xmlns="http://www.w3.org/2000/svg"
data-name="Line Color" viewBox="0 0 24 24" class="icon line-color"
data-name="Line Color"
viewBox="0 0 24 24"
> >
<path <path
fill="none" stroke="#000" fill="none"
stroke-linecap="round" stroke-linejoin="round" stroke="#000"
stroke-width="2" d="M19 19 5 5" stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M19 19 5 5"
/> />
<path <path
fill="none" stroke="#000" fill="none"
stroke-linecap="round" stroke-linejoin="round" stroke="#000"
stroke-width="2" d="M19 5 5 19" stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M19 5 5 19"
data-name="primary" data-name="primary"
/> />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 432 B

Before After
Before After

View file

@ -1,3 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="34.739 35.077 8.402 7.319"> <svg
xmlns="http://www.w3.org/2000/svg"
viewBox="34.739 35.077 8.402 7.319"
>
<path d="M39.895 41.075q-1.494.606-2.617.369-1.123-.239-1.597-1.406-.445-1.097.188-2.068.634-.97 2.128-1.576 1.553-.63 2.641-.379 1.088.253 1.556 1.409.44 1.086-.134 2.046-.576.961-2.165 1.605M38.4 37.387q-1.168.474-1.66 1.053-.492.58-.208 1.281.28.69 1.028.773.748.085 1.939-.398 1.18-.479 1.658-1.06.477-.581.198-1.27-.289-.712-1.032-.785-.743-.072-1.923.406" /> <path d="M39.895 41.075q-1.494.606-2.617.369-1.123-.239-1.597-1.406-.445-1.097.188-2.068.634-.97 2.128-1.576 1.553-.63 2.641-.379 1.088.253 1.556 1.409.44 1.086-.134 2.046-.576.961-2.165 1.605M38.4 37.387q-1.168.474-1.66 1.053-.492.58-.208 1.281.28.69 1.028.773.748.085 1.939-.398 1.18-.479 1.658-1.06.477-.581.198-1.27-.289-.712-1.032-.785-.743-.072-1.923.406" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 451 B

After

Width:  |  Height:  |  Size: 456 B

Before After
Before After

View file

@ -1,6 +1,11 @@
<svg <svg
xmlns="http://www.w4.org/2000/svg" width="15" xmlns="http://www.w4.org/2000/svg"
height="15" viewBox="0 0 15 15" width="15"
height="15"
viewBox="0 0 15 15"
> >
<path d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414" fill="red" /> <path
d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414"
fill="red"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 282 B

Before After
Before After

View file

@ -1,6 +1,8 @@
<svg <svg
xmlns="http://www.w3.org/2000/svg" width="15" xmlns="http://www.w3.org/2000/svg"
height="15" transform="scale(-1 1)" width="15"
height="15"
transform="scale(-1 1)"
viewBox="0 0 15 15" viewBox="0 0 15 15"
> >
<path d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414" /> <path d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414" />

Before

Width:  |  Height:  |  Size: 283 B

After

Width:  |  Height:  |  Size: 287 B

Before After
Before After

View file

@ -2,22 +2,31 @@
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!doctype svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!doctype svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg <svg
version="1.1" xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" xmlns="http://www.w3.org/2000/svg"
y="0px" width="330.107px" xmlns:xlink="http://www.w3.org/1999/xlink"
height="330.773px" viewBox="0 0 330.107 330.773" x="0px"
enable-background="new 0 0 330.107 330.773" xml:space="preserve" y="0px"
width="330.107px"
height="330.773px"
viewBox="0 0 330.107 330.773"
enable-background="new 0 0 330.107 330.773"
xml:space="preserve"
> >
<g id="logo_x2F_colors"> <g id="logo_x2F_colors">
<ellipse <ellipse
fill="#EBFFB8" cx="165.872" fill="#EBFFB8"
cy="162.37" rx="164.236" cx="165.872"
cy="162.37"
rx="164.236"
ry="161.992" ry="161.992"
/> />
<g> <g>
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M256.14,174.292c0.624,1.266,0.236,5.389,0.142,5.907 clip-rule="evenodd"
fill="#202020"
d="M256.14,174.292c0.624,1.266,0.236,5.389,0.142,5.907
c-0.165,0.873-0.366,5.486-0.339,6.494c0.03,0.981-0.037,5.803-0.067,6.871c-0.061,2.059-0.419,3.634-0.353,5.689 c-0.165,0.873-0.366,5.486-0.339,6.494c0.03,0.981-0.037,5.803-0.067,6.871c-0.061,2.059-0.419,3.634-0.353,5.689
c0.065,2.075-0.045,4.115-0.176,6.188c-0.064,0.991-0.149,5.077-0.266,6.136c-0.214,1.976-0.326,4.438-0.703,6.396 c0.065,2.075-0.045,4.115-0.176,6.188c-0.064,0.991-0.149,5.077-0.266,6.136c-0.214,1.976-0.326,4.438-0.703,6.396
c-0.18,0.946-0.581,5.088-0.84,6.161c-0.479,1.982-1.034,5.444-1.652,7.539c-0.396,1.344-2.98,6.876-6.584,9.736 c-0.18,0.946-0.581,5.088-0.84,6.161c-0.479,1.982-1.034,5.444-1.652,7.539c-0.396,1.344-2.98,6.876-6.584,9.736
@ -36,8 +45,10 @@
c0.867-0.366,1.639-0.822,2.529-1.164C252.635,175.333,255.338,174.318,256.14,174.292z" c0.867-0.366,1.639-0.822,2.529-1.164C252.635,175.333,255.338,174.318,256.14,174.292z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M95.368,240.441c-0.003-0.45-0.282-2.143-0.28-2.598 clip-rule="evenodd"
fill="#202020"
d="M95.368,240.441c-0.003-0.45-0.282-2.143-0.28-2.598
c0.002-0.916-0.063-1.613,0-2.526c0.067-1.018-0.075-2.626,0-3.789c0.028-0.469,0.139-0.42,0.139-1.402 c0.002-0.916-0.063-1.613,0-2.526c0.067-1.018-0.075-2.626,0-3.789c0.028-0.469,0.139-0.42,0.139-1.402
c0-1.013,0.026-3.481,0-4.491c-0.052-2.035,0.133-3.676,0.106-5.721c-0.054-4.137,0.167-8.312-0.134-12.442 c0-1.013,0.026-3.481,0-4.491c-0.052-2.035,0.133-3.676,0.106-5.721c-0.054-4.137,0.167-8.312-0.134-12.442
c-0.151-2.07-0.123-4.101,0.006-6.17c0.062-0.968,0.126-0.463,0.149-1.431c0.025-1.058-0.081-0.694-1.558-0.598 c-0.151-2.07-0.123-4.101,0.006-6.17c0.062-0.968,0.126-0.463,0.149-1.431c0.025-1.058-0.081-0.694-1.558-0.598
@ -67,8 +78,10 @@
c-0.147-0.15-0.511-0.832-0.549-1.019C95.301,241.81,95.375,241.513,95.368,240.441z" c-0.147-0.15-0.511-0.832-0.549-1.019C95.301,241.81,95.375,241.513,95.368,240.441z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M133.788,243.492c-0.473-0.146-0.111-10.932-0.105-11.157 clip-rule="evenodd"
fill="#202020"
d="M133.788,243.492c-0.473-0.146-0.111-10.932-0.105-11.157
c-0.003,0.12,0.004-3.417-0.024-4.714c-0.031-1.412-0.125-2.748-0.186-4.158c-0.062-1.408-0.096-2.819-0.134-4.229 c-0.003,0.12,0.004-3.417-0.024-4.714c-0.031-1.412-0.125-2.748-0.186-4.158c-0.062-1.408-0.096-2.819-0.134-4.229
c-0.037-1.438-0.025-2.886,0.001-4.322c0.059-2.86,0.245-5.72,0.39-8.579c0.145-2.88,0.111-4.506,0.111-7.389 c-0.037-1.438-0.025-2.886,0.001-4.322c0.059-2.86,0.245-5.72,0.39-8.579c0.145-2.88,0.111-4.506,0.111-7.389
c-0.998,0.313-1.975,0.225-2.996,0.501c-0.503,0.138-3.559,0.098-4.185,0.159c-1.162,0.111-2.771-0.142-3.083,0.349 c-0.998,0.313-1.975,0.225-2.996,0.501c-0.503,0.138-3.559,0.098-4.185,0.159c-1.162,0.111-2.771-0.142-3.083,0.349
@ -92,8 +105,10 @@
c0.932-0.091,1.7,0.077,2.607-0.018C130.454,193.426,132.048,193.397,133.932,192.823z" c0.932-0.091,1.7,0.077,2.607-0.018C130.454,193.426,132.048,193.397,133.932,192.823z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M208.743,178.101c-0.564,0.717-5.647,6.054-6.142,6.852 clip-rule="evenodd"
fill="#202020"
d="M208.743,178.101c-0.564,0.717-5.647,6.054-6.142,6.852
c-0.49,0.79-2.506,2.904-2.761,3.294c-0.19,0.286-2.529,3.547-3.214,4.512c-0.35,0.494-1.129,1.836-1.186,2.396 c-0.49,0.79-2.506,2.904-2.761,3.294c-0.19,0.286-2.529,3.547-3.214,4.512c-0.35,0.494-1.129,1.836-1.186,2.396
c-0.094,0.941-0.302,1.752,0.275,2.639c0.242,0.374,0.496,0.946,0.694,1.34c0.205,0.406,4.422,9.228,4.639,9.625 c-0.094,0.941-0.302,1.752,0.275,2.639c0.242,0.374,0.496,0.946,0.694,1.34c0.205,0.406,4.422,9.228,4.639,9.625
c0.259,0.471,5.928,12.979,6.146,13.883c0.233,0.98,2.601,6.334,3.644,8.222c1.016,1.844,2.092,3.97,3.22,5.776 c0.259,0.471,5.928,12.979,6.146,13.883c0.233,0.98,2.601,6.334,3.644,8.222c1.016,1.844,2.092,3.97,3.22,5.776
@ -106,8 +121,10 @@
C208.606,176.621,209.252,177.455,208.743,178.101z" C208.606,176.621,209.252,177.455,208.743,178.101z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M183.833,175.865c0.031,0.313,0.395,7.007,0.33,7.995 clip-rule="evenodd"
fill="#202020"
d="M183.833,175.865c0.031,0.313,0.395,7.007,0.33,7.995
c-0.027,0.414-0.22,3.441-0.132,4.419c0.086,0.953,0.01,5.818-0.057,6.771c-0.023,0.31,0.121,3.432,0.126,3.902 c-0.027,0.414-0.22,3.441-0.132,4.419c0.086,0.953,0.01,5.818-0.057,6.771c-0.023,0.31,0.121,3.432,0.126,3.902
c0.007,1-0.165,3.777-0.207,4.753c-0.046,1.034-0.039,3.636,0,4.104c0.035,0.44,0.098,3.667,0.104,4.209 c0.007,1-0.165,3.777-0.207,4.753c-0.046,1.034-0.039,3.636,0,4.104c0.035,0.44,0.098,3.667,0.104,4.209
c0.023,2.042-0.047,4.101,0.031,6.138c0.079,2.019-0.144,4.786-0.241,6.81c-0.105,2.21-0.021,10.085-0.105,11.158 c0.023,2.042-0.047,4.101,0.031,6.138c0.079,2.019-0.144,4.786-0.241,6.81c-0.105,2.21-0.021,10.085-0.105,11.158
@ -119,8 +136,10 @@
c1.242-0.794,4.192-2.041,5.014-2.146C183.825,174.873,183.764,175.179,183.833,175.865z" c1.242-0.794,4.192-2.041,5.014-2.146C183.825,174.873,183.764,175.179,183.833,175.865z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M163.603,202.786c-0.327,1.961-0.003,4.088-0.327,6.051 clip-rule="evenodd"
fill="#202020"
d="M163.603,202.786c-0.327,1.961-0.003,4.088-0.327,6.051
c-0.153,0.913-0.331,3.709-0.331,4.727c0,1.826-0.416,5.138-0.282,7.158c0.142,2.104-0.01,4.69-0.141,6.735 c-0.153,0.913-0.331,3.709-0.331,4.727c0,1.826-0.416,5.138-0.282,7.158c0.142,2.104-0.01,4.69-0.141,6.735
c-0.132,2.099-0.14,3.929-0.14,6.035c0,1.009,0.076,5.682-0.28,6.666c-0.511,1.408-3.76,2.572-5.318,3.204 c-0.132,2.099-0.14,3.929-0.14,6.035c0,1.009,0.076,5.682-0.28,6.666c-0.511,1.408-3.76,2.572-5.318,3.204
c-0.928,0.376-1.852,0.286-2.623-0.283c-0.746-0.547-0.653-1.295-0.536-2.018c0.146-0.922,0.243-2.868,0.477-3.778 c-0.928,0.376-1.852,0.286-2.623-0.283c-0.746-0.547-0.653-1.295-0.536-2.018c0.146-0.922,0.243-2.868,0.477-3.778
@ -131,34 +150,49 @@
C163.361,195.148,163.769,201.799,163.603,202.786z" C163.361,195.148,163.769,201.799,163.603,202.786z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M158.061,188.91c-1.36,0.13-3.944,0.762-4.253-0.85 clip-rule="evenodd"
fill="#202020"
d="M158.061,188.91c-1.36,0.13-3.944,0.762-4.253-0.85
c-0.118-0.616,0.837-1.216,1.345-1.625c0.746-0.603,1.592-1.134,2.547-1.53c0.395-0.161,0.902-0.395,1.357-0.424 c-0.118-0.616,0.837-1.216,1.345-1.625c0.746-0.603,1.592-1.134,2.547-1.53c0.395-0.161,0.902-0.395,1.357-0.424
c0.467-0.029,0.935,0.163,1.361,0.281c0.545,0.149,1.135,0.223,1.706,0.298c0.448,0.058,1.194-0.014,1.571,0.211 c0.467-0.029,0.935,0.163,1.361,0.281c0.545,0.149,1.135,0.223,1.706,0.298c0.448,0.058,1.194-0.014,1.571,0.211
c0.593,0.354-0.886,1.479-1.165,1.734c-0.8,0.729-1.517,1.293-2.582,1.774c-0.035-0.048-0.413,0.074-0.448,0.025 c0.593,0.354-0.886,1.479-1.165,1.734c-0.8,0.729-1.517,1.293-2.582,1.774c-0.035-0.048-0.413,0.074-0.448,0.025
C158.361,188.914,158.097,188.958,158.061,188.91z" C158.361,188.914,158.097,188.958,158.061,188.91z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M155.311,183.014c-1.12-0.002-0.427-0.802,0.003-1.173 clip-rule="evenodd"
fill="#202020"
d="M155.311,183.014c-1.12-0.002-0.427-0.802,0.003-1.173
c0.68-0.582,4.113-2.3,5.148-2.56c1.005-0.254,2.154-0.189,3.191-0.109c1.102,0.086,2.107,0.288,1.062,1.136 c0.68-0.582,4.113-2.3,5.148-2.56c1.005-0.254,2.154-0.189,3.191-0.109c1.102,0.086,2.107,0.288,1.062,1.136
c-0.776,0.629-1.587,1.238-2.521,1.727c-1.057,0.552-1.993,0.719-3.231,0.859C158.961,182.873,156.52,183.014,155.311,183.014z" c-0.776,0.629-1.587,1.238-2.521,1.727c-1.057,0.552-1.993,0.719-3.231,0.859C158.961,182.873,156.52,183.014,155.311,183.014z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M154.77,177.503c0.293-0.291,0.844-0.653,1.253-0.86 clip-rule="evenodd"
fill="#202020"
d="M154.77,177.503c0.293-0.291,0.844-0.653,1.253-0.86
c0.483-0.245,0.571-0.458,1.08-0.672c1.113-0.468,1.478-1.019,2.51-1.581c0.393-0.214,0.591-0.433,1.063-0.536 c0.483-0.245,0.571-0.458,1.08-0.672c1.113-0.468,1.478-1.019,2.51-1.581c0.393-0.214,0.591-0.433,1.063-0.536
c0.601-0.134,3.981-0.078,4.499-0.098c0.503-0.022,1.013,0.03,1.516,0.051C164.062,176.816,163.687,177.607,154.77,177.503z" c0.601-0.134,3.981-0.078,4.499-0.098c0.503-0.022,1.013,0.03,1.516,0.051C164.062,176.816,163.687,177.607,154.77,177.503z"
/> />
</g> </g>
<g> <g>
<path fill="#202020" d="M75,149.773c15.5,2.5,165.69,0,175.47,0s9.028-6.834,9.028-6.834s1.959-4.05-31.998-5.666 <path
c-33.958-1.617-60.152,2.646-76.576,5.573s-65.882-0.384-71.424-0.601S59.5,147.273,75,149.773z" /> fill="#202020"
<path fill="#202020" d="M250.495,123.773c-87.74-1.097-128.746,6.052-159.245,4.25c-20.582-1.216-20.922-7.918-21.211-11.084 d="M75,149.773c15.5,2.5,165.69,0,175.47,0s9.028-6.834,9.028-6.834s1.959-4.05-31.998-5.666
c-33.958-1.617-60.152,2.646-76.576,5.573s-65.882-0.384-71.424-0.601S59.5,147.273,75,149.773z"
/>
<path
fill="#202020"
d="M250.495,123.773c-87.74-1.097-128.746,6.052-159.245,4.25c-20.582-1.216-20.922-7.918-21.211-11.084
s0-6.406,33.957-8.022c33.958-1.617,54.865,5.762,77.504,6.606c22.638,0.846,63.45,0.664,68.995,0.784 s0-6.406,33.957-8.022c33.958-1.617,54.865,5.762,77.504,6.606c22.638,0.846,63.45,0.664,68.995,0.784
C260.5,116.523,270.5,124.023,250.495,123.773z" /> C260.5,116.523,270.5,124.023,250.495,123.773z"
<path fill="#202020" d="M80.75,89.329c0,0,121.5-1.806,166.72,1.444c9.754,0.701,8.53,8,8.53,8s-4.541,6.668-33,6.5 />
c-33.996-0.201-52.361-8.656-75-9.5c-22.638-0.846-67.416,2.225-72.958,2.442S63.612,89.329,80.75,89.329z" /> <path
fill="#202020"
d="M80.75,89.329c0,0,121.5-1.806,166.72,1.444c9.754,0.701,8.53,8,8.53,8s-4.541,6.668-33,6.5
c-33.996-0.201-52.361-8.656-75-9.5c-22.638-0.846-67.416,2.225-72.958,2.442S63.612,89.329,80.75,89.329z"
/>
</g> </g>
</g> </g>
<g id="home_loading" /> <g id="home_loading" />

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

@ -1,3 +1,9 @@
<svg viewBox="29.047 55.883 209.764 80.943" xmlns="http://www.w3.org/2000/svg"> <svg
<path d="M38.421 133.462c16.438 3.1 175.723 0 186.094 0 10.372 0 9.575-8.475 9.575-8.475s2.077-5.022-33.935-7.026c-36.015-2.005-63.796 3.282-81.213 6.912-17.419 3.628-69.872-.477-75.749-.747-5.878-.269-21.211 6.234-4.772 9.336m6.099-74.953S173.376 56.27 221.333 60.3c10.344.87 9.046 9.92 9.046 9.92s-4.816 8.269-34.997 8.06c-36.054-.25-55.531-10.734-79.542-11.78-24.007-1.049-71.499 2.759-77.374 3.029-5.878.268-12.123-11.02 6.054-11.02m180.022 42.712c-93.052-1.36-136.54 7.504-168.887 5.27-21.829-1.507-22.188-9.818-22.495-13.744s0-7.943 36.014-9.948c36.013-2.005 58.187 7.146 82.195 8.191 24.01 1.049 67.293.823 73.173.972 10.61.268 21.215 9.568 0 9.259" fill="#2B2B2B" /> viewBox="29.047 55.883 209.764 80.943"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M38.421 133.462c16.438 3.1 175.723 0 186.094 0 10.372 0 9.575-8.475 9.575-8.475s2.077-5.022-33.935-7.026c-36.015-2.005-63.796 3.282-81.213 6.912-17.419 3.628-69.872-.477-75.749-.747-5.878-.269-21.211 6.234-4.772 9.336m6.099-74.953S173.376 56.27 221.333 60.3c10.344.87 9.046 9.92 9.046 9.92s-4.816 8.269-34.997 8.06c-36.054-.25-55.531-10.734-79.542-11.78-24.007-1.049-71.499 2.759-77.374 3.029-5.878.268-12.123-11.02 6.054-11.02m180.022 42.712c-93.052-1.36-136.54 7.504-168.887 5.27-21.829-1.507-22.188-9.818-22.495-13.744s0-7.943 36.014-9.948c36.013-2.005 58.187 7.146 82.195 8.191 24.01 1.049 67.293.823 73.173.972 10.61.268 21.215 9.568 0 9.259"
fill="#2B2B2B"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 764 B

After

Width:  |  Height:  |  Size: 779 B

Before After
Before After

View file

@ -2,22 +2,32 @@
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!doctype svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!doctype svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg <svg
version="1.1" xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" xmlns="http://www.w3.org/2000/svg"
y="0px" width="330.107px" xmlns:xlink="http://www.w3.org/1999/xlink"
height="330.773px" viewBox="0 0 330.107 330.773" x="0px"
enable-background="new 0 0 330.107 330.773" xml:space="preserve" y="0px"
width="330.107px"
height="330.773px"
viewBox="0 0 330.107 330.773"
enable-background="new 0 0 330.107 330.773"
xml:space="preserve"
> >
<g id="logo_x2F_colors"> <g id="logo_x2F_colors">
<ellipse <ellipse
display="none" fill="#DEFDB5" display="none"
cx="165.872" cy="162.37" fill="#DEFDB5"
rx="164.236" ry="161.992" cx="165.872"
cy="162.37"
rx="164.236"
ry="161.992"
/> />
<g> <g>
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M256.14,137.243c0.624,1.266,0.236,5.389,0.142,5.907 clip-rule="evenodd"
fill="#202020"
d="M256.14,137.243c0.624,1.266,0.236,5.389,0.142,5.907
c-0.165,0.873-0.366,5.486-0.339,6.494c0.03,0.981-0.037,5.803-0.067,6.871c-0.061,2.059-0.419,3.634-0.353,5.689 c-0.165,0.873-0.366,5.486-0.339,6.494c0.03,0.981-0.037,5.803-0.067,6.871c-0.061,2.059-0.419,3.634-0.353,5.689
c0.065,2.075-0.045,4.115-0.176,6.188c-0.064,0.991-0.149,5.077-0.266,6.136c-0.214,1.976-0.326,4.438-0.703,6.396 c0.065,2.075-0.045,4.115-0.176,6.188c-0.064,0.991-0.149,5.077-0.266,6.136c-0.214,1.976-0.326,4.438-0.703,6.396
c-0.18,0.946-0.581,5.088-0.84,6.161c-0.479,1.982-1.034,5.444-1.652,7.539c-0.396,1.344-2.98,6.876-6.584,9.736 c-0.18,0.946-0.581,5.088-0.84,6.161c-0.479,1.982-1.034,5.444-1.652,7.539c-0.396,1.344-2.98,6.876-6.584,9.736
@ -36,8 +46,10 @@
c0.867-0.366,1.639-0.822,2.529-1.164C252.635,138.285,255.338,137.27,256.14,137.243z" c0.867-0.366,1.639-0.822,2.529-1.164C252.635,138.285,255.338,137.27,256.14,137.243z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M95.368,203.393c-0.003-0.45-0.282-2.143-0.28-2.598 clip-rule="evenodd"
fill="#202020"
d="M95.368,203.393c-0.003-0.45-0.282-2.143-0.28-2.598
c0.002-0.916-0.063-1.613,0-2.526c0.067-1.018-0.075-2.626,0-3.789c0.028-0.469,0.139-0.42,0.139-1.402 c0.002-0.916-0.063-1.613,0-2.526c0.067-1.018-0.075-2.626,0-3.789c0.028-0.469,0.139-0.42,0.139-1.402
c0-1.013,0.026-3.481,0-4.491c-0.052-2.035,0.133-3.676,0.106-5.721c-0.054-4.137,0.167-8.312-0.134-12.442 c0-1.013,0.026-3.481,0-4.491c-0.052-2.035,0.133-3.676,0.106-5.721c-0.054-4.137,0.167-8.312-0.134-12.442
c-0.151-2.07-0.123-4.101,0.006-6.17c0.062-0.968,0.126-0.463,0.149-1.431c0.025-1.058-0.081-0.694-1.558-0.598 c-0.151-2.07-0.123-4.101,0.006-6.17c0.062-0.968,0.126-0.463,0.149-1.431c0.025-1.058-0.081-0.694-1.558-0.598
@ -67,8 +79,10 @@
c-0.147-0.15-0.511-0.832-0.549-1.019C95.301,204.762,95.375,204.465,95.368,203.393z" c-0.147-0.15-0.511-0.832-0.549-1.019C95.301,204.762,95.375,204.465,95.368,203.393z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M133.788,206.443c-0.473-0.146-0.111-10.932-0.105-11.157 clip-rule="evenodd"
fill="#202020"
d="M133.788,206.443c-0.473-0.146-0.111-10.932-0.105-11.157
c-0.003,0.12,0.004-3.417-0.024-4.714c-0.031-1.412-0.125-2.748-0.186-4.158c-0.062-1.408-0.096-2.819-0.134-4.229 c-0.003,0.12,0.004-3.417-0.024-4.714c-0.031-1.412-0.125-2.748-0.186-4.158c-0.062-1.408-0.096-2.819-0.134-4.229
c-0.037-1.438-0.025-2.886,0.001-4.322c0.059-2.86,0.245-5.72,0.39-8.579c0.145-2.88,0.111-4.506,0.111-7.389 c-0.037-1.438-0.025-2.886,0.001-4.322c0.059-2.86,0.245-5.72,0.39-8.579c0.145-2.88,0.111-4.506,0.111-7.389
c-0.998,0.313-1.975,0.225-2.996,0.501c-0.503,0.138-3.559,0.098-4.185,0.159c-1.162,0.111-2.771-0.142-3.083,0.349 c-0.998,0.313-1.975,0.225-2.996,0.501c-0.503,0.138-3.559,0.098-4.185,0.159c-1.162,0.111-2.771-0.142-3.083,0.349
@ -92,8 +106,10 @@
c0.932-0.091,1.7,0.077,2.607-0.018C130.454,156.377,132.048,156.349,133.932,155.774z" c0.932-0.091,1.7,0.077,2.607-0.018C130.454,156.377,132.048,156.349,133.932,155.774z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M208.743,141.052c-0.564,0.717-5.647,6.054-6.142,6.852 clip-rule="evenodd"
fill="#202020"
d="M208.743,141.052c-0.564,0.717-5.647,6.054-6.142,6.852
c-0.49,0.79-2.506,2.904-2.761,3.294c-0.19,0.286-2.529,3.547-3.214,4.512c-0.35,0.494-1.129,1.836-1.186,2.396 c-0.49,0.79-2.506,2.904-2.761,3.294c-0.19,0.286-2.529,3.547-3.214,4.512c-0.35,0.494-1.129,1.836-1.186,2.396
c-0.094,0.941-0.302,1.752,0.275,2.639c0.242,0.374,0.496,0.946,0.694,1.34c0.205,0.406,4.422,9.228,4.639,9.625 c-0.094,0.941-0.302,1.752,0.275,2.639c0.242,0.374,0.496,0.946,0.694,1.34c0.205,0.406,4.422,9.228,4.639,9.625
c0.259,0.471,5.928,12.979,6.146,13.883c0.233,0.98,2.601,6.334,3.644,8.222c1.016,1.844,2.092,3.97,3.22,5.776 c0.259,0.471,5.928,12.979,6.146,13.883c0.233,0.98,2.601,6.334,3.644,8.222c1.016,1.844,2.092,3.97,3.22,5.776
@ -106,8 +122,10 @@
C208.606,139.572,209.252,140.406,208.743,141.052z" C208.606,139.572,209.252,140.406,208.743,141.052z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M183.833,138.816c0.031,0.313,0.395,7.007,0.33,7.995 clip-rule="evenodd"
fill="#202020"
d="M183.833,138.816c0.031,0.313,0.395,7.007,0.33,7.995
c-0.027,0.414-0.22,3.441-0.132,4.419c0.086,0.953,0.01,5.818-0.057,6.771c-0.023,0.31,0.121,3.432,0.126,3.902 c-0.027,0.414-0.22,3.441-0.132,4.419c0.086,0.953,0.01,5.818-0.057,6.771c-0.023,0.31,0.121,3.432,0.126,3.902
c0.007,1-0.165,3.777-0.207,4.753c-0.046,1.034-0.039,3.636,0,4.104c0.035,0.44,0.098,3.667,0.104,4.209 c0.007,1-0.165,3.777-0.207,4.753c-0.046,1.034-0.039,3.636,0,4.104c0.035,0.44,0.098,3.667,0.104,4.209
c0.023,2.042-0.047,4.101,0.031,6.138c0.079,2.019-0.144,4.786-0.241,6.81c-0.105,2.21-0.021,10.085-0.105,11.158 c0.023,2.042-0.047,4.101,0.031,6.138c0.079,2.019-0.144,4.786-0.241,6.81c-0.105,2.21-0.021,10.085-0.105,11.158
@ -119,8 +137,10 @@
c1.242-0.794,4.192-2.041,5.014-2.146C183.825,137.825,183.764,138.13,183.833,138.816z" c1.242-0.794,4.192-2.041,5.014-2.146C183.825,137.825,183.764,138.13,183.833,138.816z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M163.603,165.738c-0.327,1.961-0.003,4.088-0.327,6.051 clip-rule="evenodd"
fill="#202020"
d="M163.603,165.738c-0.327,1.961-0.003,4.088-0.327,6.051
c-0.153,0.913-0.331,3.709-0.331,4.727c0,1.826-0.416,5.138-0.282,7.158c0.142,2.104-0.01,4.69-0.141,6.735 c-0.153,0.913-0.331,3.709-0.331,4.727c0,1.826-0.416,5.138-0.282,7.158c0.142,2.104-0.01,4.69-0.141,6.735
c-0.132,2.099-0.14,3.929-0.14,6.035c0,1.009,0.076,5.682-0.28,6.666c-0.511,1.408-3.76,2.572-5.318,3.204 c-0.132,2.099-0.14,3.929-0.14,6.035c0,1.009,0.076,5.682-0.28,6.666c-0.511,1.408-3.76,2.572-5.318,3.204
c-0.928,0.376-1.852,0.286-2.623-0.283c-0.746-0.547-0.653-1.295-0.536-2.018c0.146-0.922,0.243-2.868,0.477-3.778 c-0.928,0.376-1.852,0.286-2.623-0.283c-0.746-0.547-0.653-1.295-0.536-2.018c0.146-0.922,0.243-2.868,0.477-3.778
@ -131,40 +151,49 @@
C163.361,158.1,163.769,164.75,163.603,165.738z" C163.361,158.1,163.769,164.75,163.603,165.738z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M158.061,151.862c-1.36,0.13-3.944,0.762-4.253-0.85 clip-rule="evenodd"
fill="#202020"
d="M158.061,151.862c-1.36,0.13-3.944,0.762-4.253-0.85
c-0.118-0.616,0.837-1.216,1.345-1.625c0.746-0.603,1.592-1.134,2.547-1.53c0.395-0.161,0.902-0.395,1.357-0.424 c-0.118-0.616,0.837-1.216,1.345-1.625c0.746-0.603,1.592-1.134,2.547-1.53c0.395-0.161,0.902-0.395,1.357-0.424
c0.467-0.029,0.935,0.163,1.361,0.281c0.545,0.149,1.135,0.223,1.706,0.298c0.448,0.058,1.194-0.014,1.571,0.211 c0.467-0.029,0.935,0.163,1.361,0.281c0.545,0.149,1.135,0.223,1.706,0.298c0.448,0.058,1.194-0.014,1.571,0.211
c0.593,0.354-0.886,1.479-1.165,1.734c-0.8,0.729-1.517,1.293-2.582,1.774c-0.035-0.048-0.413,0.074-0.448,0.025 c0.593,0.354-0.886,1.479-1.165,1.734c-0.8,0.729-1.517,1.293-2.582,1.774c-0.035-0.048-0.413,0.074-0.448,0.025
C158.361,151.865,158.097,151.91,158.061,151.862z" C158.361,151.865,158.097,151.91,158.061,151.862z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M155.311,145.966c-1.12-0.002-0.427-0.802,0.003-1.173 clip-rule="evenodd"
fill="#202020"
d="M155.311,145.966c-1.12-0.002-0.427-0.802,0.003-1.173
c0.68-0.582,4.113-2.3,5.148-2.56c1.005-0.254,2.154-0.189,3.191-0.109c1.102,0.086,2.107,0.288,1.062,1.136 c0.68-0.582,4.113-2.3,5.148-2.56c1.005-0.254,2.154-0.189,3.191-0.109c1.102,0.086,2.107,0.288,1.062,1.136
c-0.776,0.629-1.587,1.238-2.521,1.727c-1.057,0.552-1.993,0.719-3.231,0.859C158.961,145.825,156.52,145.966,155.311,145.966z" c-0.776,0.629-1.587,1.238-2.521,1.727c-1.057,0.552-1.993,0.719-3.231,0.859C158.961,145.825,156.52,145.966,155.311,145.966z"
/> />
<path <path
fill-rule="evenodd" clip-rule="evenodd" fill-rule="evenodd"
fill="#202020" d="M154.77,140.455c0.293-0.291,0.844-0.653,1.253-0.86 clip-rule="evenodd"
fill="#202020"
d="M154.77,140.455c0.293-0.291,0.844-0.653,1.253-0.86
c0.483-0.245,0.571-0.458,1.08-0.672c1.113-0.468,1.478-1.019,2.51-1.581c0.393-0.214,0.591-0.433,1.063-0.536 c0.483-0.245,0.571-0.458,1.08-0.672c1.113-0.468,1.478-1.019,2.51-1.581c0.393-0.214,0.591-0.433,1.063-0.536
c0.601-0.134,3.981-0.078,4.499-0.098c0.503-0.022,1.013,0.03,1.516,0.051C164.062,139.768,163.687,140.559,154.77,140.455z" c0.601-0.134,3.981-0.078,4.499-0.098c0.503-0.022,1.013,0.03,1.516,0.051C164.062,139.768,163.687,140.559,154.77,140.455z"
/> />
</g> </g>
<g display="none"> <g display="none">
<path <path
display="inline" fill="#202020" display="inline"
fill="#202020"
d="M75,149.773c15.5,2.5,165.69,0,175.47,0s9.028-6.834,9.028-6.834 d="M75,149.773c15.5,2.5,165.69,0,175.47,0s9.028-6.834,9.028-6.834
s1.959-4.05-31.998-5.666c-33.958-1.617-60.152,2.646-76.576,5.573s-65.882-0.384-71.424-0.601S59.5,147.273,75,149.773z" s1.959-4.05-31.998-5.666c-33.958-1.617-60.152,2.646-76.576,5.573s-65.882-0.384-71.424-0.601S59.5,147.273,75,149.773z"
/> />
<path <path
display="inline" fill="#202020" display="inline"
fill="#202020"
d="M250.495,123.773c-87.74-1.097-128.746,6.052-159.245,4.25 d="M250.495,123.773c-87.74-1.097-128.746,6.052-159.245,4.25
c-20.582-1.216-20.922-7.918-21.211-11.084s0-6.406,33.957-8.022c33.958-1.617,54.865,5.762,77.504,6.606 c-20.582-1.216-20.922-7.918-21.211-11.084s0-6.406,33.957-8.022c33.958-1.617,54.865,5.762,77.504,6.606
c22.638,0.846,63.45,0.664,68.995,0.784C260.5,116.523,270.5,124.023,250.495,123.773z" c22.638,0.846,63.45,0.664,68.995,0.784C260.5,116.523,270.5,124.023,250.495,123.773z"
/> />
<path <path
display="inline" fill="#202020" display="inline"
fill="#202020"
d="M80.75,89.329c0,0,121.5-1.806,166.72,1.444c9.754,0.701,8.53,8,8.53,8 d="M80.75,89.329c0,0,121.5-1.806,166.72,1.444c9.754,0.701,8.53,8,8.53,8
s-4.541,6.668-33,6.5c-33.996-0.201-52.361-8.656-75-9.5c-22.638-0.846-67.416,2.225-72.958,2.442S63.612,89.329,80.75,89.329z" s-4.541,6.668-33,6.5c-33.996-0.201-52.361-8.656-75-9.5c-22.638-0.846-67.416,2.225-72.958,2.442S63.612,89.329,80.75,89.329z"
/> />

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

@ -1,6 +1,8 @@
<svg <svg
width="307.49" height="77.116" width="307.49"
viewBox="0 0 307.49 77.116" xml:space="preserve" height="77.116"
viewBox="0 0 307.49 77.116"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
> >
<path d="M32.444 37.183c-20.81 0-21.059 17.971-21.059 36.43 0 1.02-.949 2.25-2.183 2.25h-7.02C.949 75.863 0 74.884 0 73.613V2.52C0 1.249.948.271 2.182.271h7.59c1.526 0 2.181.767 2.181 1.858 0 8.244 2.358 26.106 20.49 26.106 18.816 0 20.491-16.657 20.491-26.106 0-1.092 1.043-1.858 2.182-1.858h7.59c1.232 0 2.181.978 2.181 2.249v71.093c0 1.271-.948 2.25-2.181 2.25h-7.021c-1.233 0-2.182-1.261-2.182-2.25.002-16.652.434-36.43-21.059-36.43M71.91 74.247c-.854-34.243 16.317-55.889 32.159-66.01 7.114-4.524 15.652-7.646 31.115-7.861 1.518 0 2.276 1.184 2.276 3.015v55.565c0 9.692-8.063 15.387-15.842 13.771-12.522-2.585-18.594-17.647-26.183-25.832-2.656-2.799-6.355-2.691-8.917.754-3.51 4.738-3.226 9.8-3.226 25.844 0 2.047-.189 2.263-1.992 2.37h-7.874c-.947 0-1.516-.431-1.516-1.616m55.116-22.506-.285-29.721c0-4.2-2.276-6.999-5.977-6.892-4.269.107-10.909 3.337-14.419 6.568-5.027 4.522-5.881 7.107-4.079 12.599 1.423 4.2 9.961 18.199 16.222 22.291 4.269 2.908 8.538.647 8.538-4.845m23.441 21.312V2.703c0-2.162.569-2.703 2.088-2.703h9.651c1.803 0 1.96.541 1.96 2.703l.095 70.35c0 2.053-.949 2.81-2.467 2.81h-8.955c-1.518 0-2.372-.649-2.372-2.81m26.796.878V2.459c0-1.395 1.183-1.717 2.131-1.717h8.539c1.138 0 2.226.322 2.226 1.717v24.716c0 1.54 1.606 1.54 1.606 1.54 3.875 0 11.305.032 11.305.032 18.014 0 19.026-16.768 19.026-25.858 0-1.621.569-2.146 1.993-2.146L233.09.64c1.233 0 2.092.841 2.092 2.249 0 15.577-1.188 29.832-16.069 29.832 17.291 0 16.543 20.726 16.543 41.102 0 1.186-.38 2.04-1.708 2.04h-9.29c-1.707 0-1.896-.858-1.896-2.254 0-21.024-1.217-35.922-20.182-35.922h-10.903c-1.138 0-1.518.429-1.518 1.824v34.42c0 1.181-1.088 1.932-2.226 1.932h-8.539c-.948 0-2.131-.751-2.131-1.932m114.835-31.974V3.248c0-1.847.398-2.607 2.093-2.607h11.205c1.895 0 2.094.761 2.094 2.607v41.275c0 16.075-13.059 33.021-30.801 32.585-17.741-.434-30.799-16.51-30.799-32.585V3.248c0-1.847.199-2.607 2.093-2.607h11.205c1.694 0 2.093.761 2.093 2.607v38.709c0 11.403 2.433 23.85 15.408 23.85 13.431-.001 15.409-12.447 15.409-23.85" /> <path d="M32.444 37.183c-20.81 0-21.059 17.971-21.059 36.43 0 1.02-.949 2.25-2.183 2.25h-7.02C.949 75.863 0 74.884 0 73.613V2.52C0 1.249.948.271 2.182.271h7.59c1.526 0 2.181.767 2.181 1.858 0 8.244 2.358 26.106 20.49 26.106 18.816 0 20.491-16.657 20.491-26.106 0-1.092 1.043-1.858 2.182-1.858h7.59c1.232 0 2.181.978 2.181 2.249v71.093c0 1.271-.948 2.25-2.181 2.25h-7.021c-1.233 0-2.182-1.261-2.182-2.25.002-16.652.434-36.43-21.059-36.43M71.91 74.247c-.854-34.243 16.317-55.889 32.159-66.01 7.114-4.524 15.652-7.646 31.115-7.861 1.518 0 2.276 1.184 2.276 3.015v55.565c0 9.692-8.063 15.387-15.842 13.771-12.522-2.585-18.594-17.647-26.183-25.832-2.656-2.799-6.355-2.691-8.917.754-3.51 4.738-3.226 9.8-3.226 25.844 0 2.047-.189 2.263-1.992 2.37h-7.874c-.947 0-1.516-.431-1.516-1.616m55.116-22.506-.285-29.721c0-4.2-2.276-6.999-5.977-6.892-4.269.107-10.909 3.337-14.419 6.568-5.027 4.522-5.881 7.107-4.079 12.599 1.423 4.2 9.961 18.199 16.222 22.291 4.269 2.908 8.538.647 8.538-4.845m23.441 21.312V2.703c0-2.162.569-2.703 2.088-2.703h9.651c1.803 0 1.96.541 1.96 2.703l.095 70.35c0 2.053-.949 2.81-2.467 2.81h-8.955c-1.518 0-2.372-.649-2.372-2.81m26.796.878V2.459c0-1.395 1.183-1.717 2.131-1.717h8.539c1.138 0 2.226.322 2.226 1.717v24.716c0 1.54 1.606 1.54 1.606 1.54 3.875 0 11.305.032 11.305.032 18.014 0 19.026-16.768 19.026-25.858 0-1.621.569-2.146 1.993-2.146L233.09.64c1.233 0 2.092.841 2.092 2.249 0 15.577-1.188 29.832-16.069 29.832 17.291 0 16.543 20.726 16.543 41.102 0 1.186-.38 2.04-1.708 2.04h-9.29c-1.707 0-1.896-.858-1.896-2.254 0-21.024-1.217-35.922-20.182-35.922h-10.903c-1.138 0-1.518.429-1.518 1.824v34.42c0 1.181-1.088 1.932-2.226 1.932h-8.539c-.948 0-2.131-.751-2.131-1.932m114.835-31.974V3.248c0-1.847.398-2.607 2.093-2.607h11.205c1.895 0 2.094.761 2.094 2.607v41.275c0 16.075-13.059 33.021-30.801 32.585-17.741-.434-30.799-16.51-30.799-32.585V3.248c0-1.847.199-2.607 2.093-2.607h11.205c1.694 0 2.093.761 2.093 2.607v38.709c0 11.403 2.433 23.85 15.408 23.85 13.431-.001 15.409-12.447 15.409-23.85" />

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before After
Before After

View file

@ -1,15 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="329.449 122.475 21.745 29"> <svg
xmlns="http://www.w3.org/2000/svg"
viewBox="329.449 122.475 21.745 29"
>
<path <path
fill="#fff" d="M349.05 131.283c.28-2.099 0-3.499-1.124-4.898-1.217-1.4-3.37-2-6.085-2h-7.957c-.562 0-1.03.4-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l-.375 2.299c-.093.3.281.7.562.7h4.213c.468 0 .842-.4.936-.899l.093-.2.749-5.198.094-.3c.094-.6.468-.9.936-.9h.655c4.026 0 7.115-1.799 8.052-6.698.374-2.099.187-3.898-.843-5.098-.374-.299-.749-.699-1.123-.899" fill="#fff"
d="M349.05 131.283c.28-2.099 0-3.499-1.124-4.898-1.217-1.4-3.37-2-6.085-2h-7.957c-.562 0-1.03.4-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l-.375 2.299c-.093.3.281.7.562.7h4.213c.468 0 .842-.4.936-.899l.093-.2.749-5.198.094-.3c.094-.6.468-.9.936-.9h.655c4.026 0 7.115-1.799 8.052-6.698.374-2.099.187-3.898-.843-5.098-.374-.299-.749-.699-1.123-.899"
opacity=".7" opacity=".7"
/> />
<path <path
fill="#fff" d="M349.05 131.283c.28-2.099 0-3.499-1.124-4.898-1.217-1.4-3.37-2-6.085-2h-7.957c-.562 0-1.03.4-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l1.217-8.297-.094.3c.187-.599.562-.999 1.217-.999h2.34c4.588 0 8.145-2 9.175-7.697 0-.2 0-.4.094-.5" fill="#fff"
d="M349.05 131.283c.28-2.099 0-3.499-1.124-4.898-1.217-1.4-3.37-2-6.085-2h-7.957c-.562 0-1.03.4-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l1.217-8.297-.094.3c.187-.599.562-.999 1.217-.999h2.34c4.588 0 8.145-2 9.175-7.697 0-.2 0-.4.094-.5"
opacity=".7" opacity=".7"
/> />
<path fill="#fff" d="M337.628 131.283c0-.3.188-.6.562-.8.094 0 .281-.1.374-.1h6.273c.749 0 1.404.1 2.059.2.188 0 .281 0 .562.1.094.1.281.1.468.2.094 0 .094 0 .281.1l.843.3c.28-2.099 0-3.499-1.124-4.798-1.217-1.4-3.37-2.1-6.085-2.1h-7.957c-.562 0-1.03.5-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l1.217-8.297z" />
<path <path
fill="#231f20" d="M349.01 131.261c.448.263.846.579 1.145.947.498.579.796 1.316.946 2.157.149-1.683-.1-3.051-.946-4.103-.299-.369-.647-.632-1.045-.895 0 .579 0 1.21-.1 1.894m-19.362 14.995 3.136-20.835c.05-.578.548-.999 1.095-.999h7.964c2.737 0 4.878.631 6.072 2.052.598.736.946 1.578 1.095 2.525.199-1.894-.099-3.209-1.095-4.419-1.194-1.474-3.335-2.105-6.072-2.105h-7.964c-.547 0-1.045.421-1.145 1l-3.285 22.202c0 .21.05.421.199.579m5.127 2.209-.05.316c-.05.211.05.421.199.579l.15-.895z" fill="#fff"
d="M337.628 131.283c0-.3.188-.6.562-.8.094 0 .281-.1.374-.1h6.273c.749 0 1.404.1 2.059.2.188 0 .281 0 .562.1.094.1.281.1.468.2.094 0 .094 0 .281.1l.843.3c.28-2.099 0-3.499-1.124-4.798-1.217-1.4-3.37-2.1-6.085-2.1h-7.957c-.562 0-1.03.5-1.124 1l-3.276 22.192c-.094.499.187.899.655.899h4.962l1.217-8.297z"
/>
<path
fill="#231f20"
d="M349.01 131.261c.448.263.846.579 1.145.947.498.579.796 1.316.946 2.157.149-1.683-.1-3.051-.946-4.103-.299-.369-.647-.632-1.045-.895 0 .579 0 1.21-.1 1.894m-19.362 14.995 3.136-20.835c.05-.578.548-.999 1.095-.999h7.964c2.737 0 4.878.631 6.072 2.052.598.736.946 1.578 1.095 2.525.199-1.894-.099-3.209-1.095-4.419-1.194-1.474-3.335-2.105-6.072-2.105h-7.964c-.547 0-1.045.421-1.145 1l-3.285 22.202c0 .21.05.421.199.579m5.127 2.209-.05.316c-.05.211.05.421.199.579l.15-.895z"
opacity=".2" opacity=".2"
/> />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After

View file

@ -1,3 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="201.754 136.33 100.039 26.6"> <svg
<path fill="#fff" d="M213.773 136.33h-7.8c-.5 0-1 .4-1.1.9l-3.1 20c-.1.4.2.7.6.7h3.7c.5 0 1-.4 1.1-.9l.8-5.4c.1-.5.5-.9 1.1-.9h2.5c5.1 0 8.1-2.5 8.9-7.4.3-2.1 0-3.8-1-5-1.1-1.3-3.1-2-5.7-2m.9 7.3c-.4 2.8-2.6 2.8-4.6 2.8h-1.2l.8-5.2c0-.3.3-.5.6-.5h.5c1.4 0 2.7 0 3.4.8.5.4.7 1.1.5 2.1m22.3-.1h-3.7c-.3 0-.6.2-.6.5l-.2 1-.3-.4c-.8-1.2-2.6-1.6-4.4-1.6-4.1 0-7.6 3.1-8.3 7.5-.4 2.2.1 4.3 1.4 5.7 1.1 1.3 2.8 1.9 4.7 1.9 3.3 0 5.2-2.1 5.2-2.1l-.2 1c-.1.4.2.8.6.8h3.4c.5 0 1-.4 1.1-.9l2-12.8c.1-.2-.3-.6-.7-.6m-5.1 7.2c-.4 2.1-2 3.6-4.2 3.6-1.1 0-1.9-.3-2.5-1s-.8-1.6-.6-2.6c.3-2.1 2.1-3.6 4.2-3.6 1.1 0 1.9.4 2.5 1 .5.7.7 1.6.6 2.6m25-7.2h-3.7c-.4 0-.7.2-.9.5l-5.2 7.6-2.2-7.3c-.1-.5-.6-.8-1-.8h-3.7c-.4 0-.8.4-.6.9l4.1 12.1-3.9 5.4c-.3.4 0 1 .5 1h3.7c.4 0 .7-.2.9-.5l12.5-18c.3-.3 0-.9-.5-.9m12.4-7.2h-7.8c-.5 0-1 .4-1.1.9l-3.1 19.9c-.1.4.2.7.6.7h4c.4 0 .7-.3.7-.6l.9-5.7c.1-.5.5-.9 1.1-.9h2.5c5.1 0 8.1-2.5 8.9-7.4.3-2.1 0-3.8-1-5-1.2-1.2-3.1-1.9-5.7-1.9m.9 7.3c-.4 2.8-2.6 2.8-4.6 2.8h-1.2l.8-5.2c0-.3.3-.5.6-.5h.5c1.4 0 2.7 0 3.4.8.5.4.6 1.1.5 2.1m22.3-.1h-3.7c-.3 0-.6.2-.6.5l-.2 1-.3-.4c-.8-1.2-2.6-1.6-4.4-1.6-4.1 0-7.6 3.1-8.3 7.5-.4 2.2.1 4.3 1.4 5.7 1.1 1.3 2.8 1.9 4.7 1.9 3.3 0 5.2-2.1 5.2-2.1l-.2 1c-.1.4.2.8.6.8h3.4c.5 0 1-.4 1.1-.9l2-12.8c0-.2-.3-.6-.7-.6m-5.2 7.2c-.4 2.1-2 3.6-4.2 3.6-1.1 0-1.9-.3-2.5-1s-.8-1.6-.6-2.6c.3-2.1 2.1-3.6 4.2-3.6 1.1 0 1.9.4 2.5 1 .6.7.8 1.6.6 2.6m9.6-13.9-3.2 20.3c-.1.4.2.7.6.7h3.2c.5 0 1-.4 1.1-.9l3.2-19.9c.1-.4-.2-.7-.6-.7h-3.6c-.4 0-.6.2-.7.5" /> xmlns="http://www.w3.org/2000/svg"
viewBox="201.754 136.33 100.039 26.6"
>
<path
fill="#fff"
d="M213.773 136.33h-7.8c-.5 0-1 .4-1.1.9l-3.1 20c-.1.4.2.7.6.7h3.7c.5 0 1-.4 1.1-.9l.8-5.4c.1-.5.5-.9 1.1-.9h2.5c5.1 0 8.1-2.5 8.9-7.4.3-2.1 0-3.8-1-5-1.1-1.3-3.1-2-5.7-2m.9 7.3c-.4 2.8-2.6 2.8-4.6 2.8h-1.2l.8-5.2c0-.3.3-.5.6-.5h.5c1.4 0 2.7 0 3.4.8.5.4.7 1.1.5 2.1m22.3-.1h-3.7c-.3 0-.6.2-.6.5l-.2 1-.3-.4c-.8-1.2-2.6-1.6-4.4-1.6-4.1 0-7.6 3.1-8.3 7.5-.4 2.2.1 4.3 1.4 5.7 1.1 1.3 2.8 1.9 4.7 1.9 3.3 0 5.2-2.1 5.2-2.1l-.2 1c-.1.4.2.8.6.8h3.4c.5 0 1-.4 1.1-.9l2-12.8c.1-.2-.3-.6-.7-.6m-5.1 7.2c-.4 2.1-2 3.6-4.2 3.6-1.1 0-1.9-.3-2.5-1s-.8-1.6-.6-2.6c.3-2.1 2.1-3.6 4.2-3.6 1.1 0 1.9.4 2.5 1 .5.7.7 1.6.6 2.6m25-7.2h-3.7c-.4 0-.7.2-.9.5l-5.2 7.6-2.2-7.3c-.1-.5-.6-.8-1-.8h-3.7c-.4 0-.8.4-.6.9l4.1 12.1-3.9 5.4c-.3.4 0 1 .5 1h3.7c.4 0 .7-.2.9-.5l12.5-18c.3-.3 0-.9-.5-.9m12.4-7.2h-7.8c-.5 0-1 .4-1.1.9l-3.1 19.9c-.1.4.2.7.6.7h4c.4 0 .7-.3.7-.6l.9-5.7c.1-.5.5-.9 1.1-.9h2.5c5.1 0 8.1-2.5 8.9-7.4.3-2.1 0-3.8-1-5-1.2-1.2-3.1-1.9-5.7-1.9m.9 7.3c-.4 2.8-2.6 2.8-4.6 2.8h-1.2l.8-5.2c0-.3.3-.5.6-.5h.5c1.4 0 2.7 0 3.4.8.5.4.6 1.1.5 2.1m22.3-.1h-3.7c-.3 0-.6.2-.6.5l-.2 1-.3-.4c-.8-1.2-2.6-1.6-4.4-1.6-4.1 0-7.6 3.1-8.3 7.5-.4 2.2.1 4.3 1.4 5.7 1.1 1.3 2.8 1.9 4.7 1.9 3.3 0 5.2-2.1 5.2-2.1l-.2 1c-.1.4.2.8.6.8h3.4c.5 0 1-.4 1.1-.9l2-12.8c0-.2-.3-.6-.7-.6m-5.2 7.2c-.4 2.1-2 3.6-4.2 3.6-1.1 0-1.9-.3-2.5-1s-.8-1.6-.6-2.6c.3-2.1 2.1-3.6 4.2-3.6 1.1 0 1.9.4 2.5 1 .6.7.8 1.6.6 2.6m9.6-13.9-3.2 20.3c-.1.4.2.7.6.7h3.2c.5 0 1-.4 1.1-.9l3.2-19.9c.1-.4-.2-.7-.6-.7h-3.6c-.4 0-.6.2-.7.5"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After

View file

@ -19,7 +19,7 @@ $templates = ['contact.twig'];
add_action('wp_enqueue_scripts', function (): void { add_action('wp_enqueue_scripts', function (): void {
Resource::enqueue_style_file( Resource::enqueue_style_file(
handle: 'haiku-atelier-2024-styles-page-contact', handle: 'haiku-atelier-2024-styles-page-contact',
path: '/assets/css/pages/page-contact.min.css', path: '/assets/css/pages/page-contact.css',
); );
}); });

View file

@ -65,12 +65,12 @@ $product_tags = $raw_product->get_tag_ids()
|> (static fn(/** @var list<Option<WC_Term>> */ $tags) => Arr::map($tags, static fn($tag) => $tag->unwrap())); |> (static fn(/** @var list<Option<WC_Term>> */ $tags) => Arr::map($tags, static fn($tag) => $tag->unwrap()));
$tags = get_terms(['taxonomy' => 'product_tag', 'hide_empty' => true]); $tags = get_terms(['taxonomy' => 'product_tag', 'hide_empty' => true]);
// echo '<pre>'; echo '<pre>';
// print_r($product_tags); print_r($product_tags);
// print_r($tags); print_r($tags);
// echo '</pre>'; echo '</pre>';
// exit(); exit();
add_action('wp_enqueue_scripts', function (): void { add_action('wp_enqueue_scripts', function (): void {
Resource::enqueue_script_module_file( Resource::enqueue_script_module_file(

View file

@ -26,8 +26,7 @@ final readonly class Attribute {
/** @var list<WP_Term> */ /** @var list<WP_Term> */
$terms = $attribute->get_terms() ?? []; $terms = $attribute->get_terms() ?? [];
/** @var list<AttributeOption> */ /** @var list<AttributeOption> */
$options = Arr::map($terms, AttributeOption::new(...)) $options = Arr::map($terms, AttributeOption::new(...));
|> (static fn($options) => Arr::sort($options, static fn($attribute) => $attribute->id));
return new self(name: $name, slug: $slug, options: $options); return new self(name: $name, slug: $slug, options: $options);
} }

View file

@ -20,10 +20,10 @@ final readonly class Term {
if ($term_data instanceof WP_Term) { if ($term_data instanceof WP_Term) {
return some($term_data); return some($term_data);
} } else {
return none(); return none();
} }
}
/** /**
* @return Option\Option<list<WP_Term>> * @return Option\Option<list<WP_Term>>

View file

@ -1,132 +0,0 @@
import { Array as FxArray, Effect, pipe, Option, ServiceMap, Layer, ManagedRuntime, Console, HashMap } from "effect";
import { getAllSelectorFromDocument, getFirstSelectorFromDocument } from "../scripts-effect/lib/dom.ts";
import { NonEmptyReadonlyArray } from "effect/Array";
import { NoSuchElementError } from "effect/Cause";
import {
DOM_BOUTON_AJOUT_PANIER,
DOM_BOUTONS_ACCORDEON,
DOM_CONTENUS_ACCORDEON,
DOM_PRIX_PRODUIT,
ATTRIBUT_ARIA_CONTROLS,
ATTRIBUT_ARIA_EXPANDED,
ATTRIBUT_HIDDEN,
} from "./constantes/dom.ts";
import { WCStoreCartAddItemArgsItems } from "./lib/types/api/cart-add-item";
/** Représente un ensemble bouton-contenu d'une Section dans la description du Produit. */
type DetailEnsemble = {
button: HTMLButtonElement;
content: HTMLDivElement;
};
class ProductPageElements extends ServiceMap.Service<
ProductPageElements,
{
AddProductButton: HTMLButtonElement;
DetailsButtons: NonEmptyReadonlyArray<HTMLButtonElement>;
DetailsContents: NonEmptyReadonlyArray<HTMLDivElement>;
Details: HashMap.HashMap<string, DetailEnsemble>;
ProductPrice: HTMLParagraphElement;
ProductRawJson: HTMLScriptElement;
VariationChoiceForm: HTMLFormElement;
VariationSelectors: ReadonlyArray<HTMLSelectElement>;
}
>()("haikuatelier.fr/Produit/ProductPageElements") {
static readonly layer = Layer.effect(
ProductPageElements,
Effect.gen(function* () {
const AddProductButton = yield* getFirstSelectorFromDocument<HTMLButtonElement>(DOM_BOUTON_AJOUT_PANIER);
const DetailsButtons = yield* getAllSelectorFromDocument<HTMLButtonElement>(DOM_BOUTONS_ACCORDEON);
const DetailsContents = yield* getAllSelectorFromDocument<HTMLDivElement>(DOM_CONTENUS_ACCORDEON);
const ProductPrice = yield* getFirstSelectorFromDocument<HTMLParagraphElement>(DOM_PRIX_PRODUIT);
const ProductRawJson = yield* getFirstSelectorFromDocument<HTMLScriptElement>("#product-json");
const VariationChoiceForm = yield* getFirstSelectorFromDocument<HTMLFormElement>("#variation-choice");
const VariationSelectors = yield* pipe(
getAllSelectorFromDocument<HTMLSelectElement>(".selecteur-produit select"),
Option.orElseSome(() => FxArray.empty<HTMLSelectElement>()),
);
const Details = yield* pipe(
DetailsButtons,
FxArray.map(
(button: HTMLButtonElement, index: number): Effect.Effect<[string, DetailEnsemble], NoSuchElementError> =>
Effect.gen(function* () {
const contentId = yield* Option.fromNullishOr(button.getAttribute(ATTRIBUT_ARIA_CONTROLS));
const content = yield* FxArray.get(DetailsContents, index);
return [contentId, { button, content } satisfies DetailEnsemble];
}),
),
Effect.all,
Effect.map(HashMap.fromIterable<string, DetailEnsemble>),
);
return ProductPageElements.of({
AddProductButton,
DetailsButtons,
DetailsContents,
Details,
ProductPrice,
ProductRawJson,
VariationChoiceForm,
VariationSelectors,
});
}),
);
}
class ProductPageDOM extends ServiceMap.Service<
ProductPageDOM,
{
/**
* Replie toutes les sections de la description du Produit.
*/
toggleAllDetails: () => Effect.Effect<void>;
/**
* Récupère les Attributs du Produit depuis les Elements au sein du DOM.
*/
getProductAttributesFromDOM: () => Effect.Effect<ReadonlyArray<WCStoreCartAddItemArgsItems>>;
}
>()("haikuatelier.fr/Produit/ProductPageDOM") {
static readonly layer = Layer.effect(
ProductPageDOM,
Effect.gen(function* () {
const { Details, VariationSelectors } = yield* ProductPageElements;
const toggleAllDetails: () => Effect.Effect<void> = () =>
Effect.sync((): void => {
pipe(
// Récupère les Sections sous forme d'Ensembles.
[...HashMap.values(Details)],
FxArray.forEach((detail: DetailEnsemble) => {
detail.button.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, false);
detail.content.toggleAttribute(ATTRIBUT_HIDDEN, true);
}),
);
});
const getProductAttributesFromDOM: () => Effect.Effect<ReadonlyArray<WCStoreCartAddItemArgsItems>> = () =>
Effect.sync(() =>
FxArray.map(VariationSelectors, (select: HTMLSelectElement) => ({
attribute: select.id,
value: select.value,
})),
);
return ProductPageDOM.of({
getProductAttributesFromDOM,
toggleAllDetails,
});
}),
);
}
const ProductPageRuntime = ManagedRuntime.make(
pipe(
ProductPageDOM.layer,
Layer.provide(ProductPageElements.layer),
Layer.tapError((error) => Console.error("ManagedRuntime", "Impossible de créer le Layer :", error.name)),
),
);
export { type DetailEnsemble, ProductPageElements, ProductPageDOM, ProductPageRuntime };

View file

@ -1,16 +1,17 @@
// Scripts pour la Page Produit // Scripts pour la Page Produit
import { pipe } from "@mobily/ts-belt"; import { pipe } from "@mobily/ts-belt";
import { forEach as arrayForEach } from "@mobily/ts-belt/Array";
import { get as dictGet } from "@mobily/ts-belt/Dict"; import { get as dictGet } from "@mobily/ts-belt/Dict";
import { tap as optionTap } from "@mobily/ts-belt/Option"; import { tap as optionTap } from "@mobily/ts-belt/Option";
import { Array as FxArray, Effect, pipe as epipe, Option, Stream, Console, HashMap } from "effect"; import { pipe as epipe } from "effect";
import { EitherAsync } from "purify-ts"; import { EitherAsync, Maybe } from "purify-ts";
import { match, P } from "ts-pattern"; import { match, P } from "ts-pattern";
import { ValiError } from "valibot"; import { ValiError } from "valibot";
import type { AnySchema } from "valibot"; import type { AnySchema } from "valibot";
import type { WCStoreCart } from "./lib/types/api/cart.ts"; import type { WCStoreCart } from "./lib/types/api/cart.ts";
import type { WCStoreCartAddItemArgs } from "./lib/types/api/cart-add-item.ts"; import type { WCStoreCartAddItemArgs, WCStoreCartAddItemArgsItems } from "./lib/types/api/cart-add-item.ts";
import type { FetchErrors } from "./lib/types/reseau.ts"; import type { FetchErrors } from "./lib/types/reseau.ts";
import { ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts"; import { ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts";
@ -20,6 +21,7 @@ import {
ATTRIBUT_CHARGEMENT, ATTRIBUT_CHARGEMENT,
ATTRIBUT_DESACTIVE, ATTRIBUT_DESACTIVE,
ATTRIBUT_HIDDEN, ATTRIBUT_HIDDEN,
ATTRIBUT_PRIX,
DOM_BOUTON_AJOUT_PANIER, DOM_BOUTON_AJOUT_PANIER,
DOM_BOUTONS_ACCORDEON, DOM_BOUTONS_ACCORDEON,
DOM_CONTENUS_ACCORDEON, DOM_CONTENUS_ACCORDEON,
@ -29,12 +31,14 @@ import {
import { lanceAnimationCycleLoading } from "./lib/animations.ts"; import { lanceAnimationCycleLoading } from "./lib/animations.ts";
import { mustGetEleInDocument, mustGetElesInDocument, recupereElementDocumentEither } from "./lib/dom.ts"; import { mustGetEleInDocument, mustGetElesInDocument, recupereElementDocumentEither } from "./lib/dom.ts";
import { BadRequestError, reporteErreur, ServerError } from "./lib/erreurs.ts"; import { BadRequestError, reporteErreur, ServerError } from "./lib/erreurs.ts";
import { estHTMLSelectElement } from "./lib/gardes.ts";
import { emetMessageMajBoutonPanier } from "./lib/messages.ts"; import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
import { newPartialResponse, postBackend, safeFetch } from "./lib/reseau.ts"; import { newPartialResponse, postBackend, safeFetch } from "./lib/reseau.ts";
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts"; import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts"; import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
import { safeSchemaParse } from "./lib/validation"; import { safeSchemaParse } from "./lib/validation";
import { ProductPageElements, ProductPageRuntime } from "./scripts-page-produit-service.ts";
type EnsembleLienContenu = [HTMLAnchorElement, HTMLElement];
/** États utiles pour les scripts de la page. */ /** États utiles pour les scripts de la page. */
type EtatsPage = { type EtatsPage = {
@ -47,6 +51,16 @@ type EtatsPage = {
// @ts-expect-error -- États injectés par le modèle PHP // @ts-expect-error -- États injectés par le modèle PHP
const ETATS_PAGE: EtatsPage = _etats; const ETATS_PAGE: EtatsPage = _etats;
/**
* Fonction utilitaire pour déplier toutes les sections de la Boîte des Informations Produit en ajustant les attributs
* correspondants.
*/
const deplieToutesSections = (ensembleLiensContenus: Array<EnsembleLienContenu>): void =>
arrayForEach(ensembleLiensContenus, (ensemble: EnsembleLienContenu): void => {
Maybe.fromNullable(ensemble.at(0)).ifJust((e): void => e.setAttribute(ATTRIBUT_ARIA_EXPANDED, "false"));
Maybe.fromNullable(ensemble.at(1)).ifJust((e): void => e.setAttribute(ATTRIBUT_HIDDEN, "true"));
});
// Éléments d'intérêt // Éléments d'intérêt
const E = { const E = {
BOUTON_AJOUT_PANIER: mustGetEleInDocument<HTMLButtonElement>(DOM_BOUTON_AJOUT_PANIER), BOUTON_AJOUT_PANIER: mustGetEleInDocument<HTMLButtonElement>(DOM_BOUTON_AJOUT_PANIER),
@ -58,6 +72,83 @@ const E = {
VARIATION_CHOICE_FORM: mustGetEleInDocument<HTMLFormElement>("#variation-choice"), VARIATION_CHOICE_FORM: mustGetEleInDocument<HTMLFormElement>("#variation-choice"),
}; };
const gereAccordeonDetailsProduit = (): void => {
const contenus = new Map<string, EnsembleLienContenu>();
// Créé la Map avec les ensembles Lien-Contenu
E.BOUTONS_ACCORDEON.forEach((bouton, index): void => {
const idContenu: null | string = bouton.getAttribute(ATTRIBUT_ARIA_CONTROLS);
const sectionCorrespondante: HTMLDivElement | undefined = E.CONTENUS_ACCORDEON[index];
if (!idContenu) {
throw new Error("Le lien ne dispose pas d'ID !");
}
if (!sectionCorrespondante) {
throw new Error("Le lien ne dispose pas de section correspondante !");
}
contenus.set(idContenu, [bouton, sectionCorrespondante]);
bouton.addEventListener("click", (evenement: Event): void => {
// Empêche la pollution de l'historique de navigation
evenement.preventDefault();
// Sauvegarde l'état d'ouverture de la section avant de toutes les fermer
const estAncienContenuDeplie: boolean = bouton.getAttribute(ATTRIBUT_ARIA_EXPANDED) === "true";
pipe(contenus.values(), Array.from<EnsembleLienContenu>, deplieToutesSections);
// Ne fais rien de plus si l'onglet sélectionné était le courant
if (estAncienContenuDeplie) {
return;
}
// Ouvre le nouvel onglet sélectionné
bouton.setAttribute(ATTRIBUT_ARIA_EXPANDED, "true");
sectionCorrespondante.removeAttribute(ATTRIBUT_HIDDEN);
});
});
// Ajoute des Écouteurs d'Événements
E.DOM_VARIATION.ifRight((selecteur): void =>
selecteur.addEventListener("change", (evenement: Event): void => {
const cibleSelecteur: Maybe<HTMLSelectElement> = Maybe.fromNullable(evenement.target).filter(
estHTMLSelectElement,
);
// Active le Bouton si le Sélecteur est valide
cibleSelecteur
.map((v) => v.validity.valid)
.ifJust((v: boolean) => E.BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, !v));
// Met à jour le prix affiché pour la Variation
cibleSelecteur
.chainNullable((s) => s.selectedOptions[0])
.chainNullable((e) => e.getAttribute(ATTRIBUT_PRIX))
.ifJust((p) => {
E.PRIX_PRODUIT.textContent = `${p}`;
});
}),
);
E.BOUTON_AJOUT_PANIER.addEventListener("click", (event: MouseEvent): void => ajouteProduitAuPanier(event));
};
const getAttributesFromDom = (): ReadonlyArray<WCStoreCartAddItemArgsItems> => {
const selectElements = epipe(
document.querySelectorAll<HTMLSelectElement>(".selecteur-produit select"),
Array.from<HTMLSelectElement>,
);
if (selectElements.length === 0) {
return [];
}
const attributes = selectElements.map((select: HTMLSelectElement) => ({
attribute: select.id,
value: select.value,
}));
return attributes;
};
const areArraysEqual = <T>(array1: Array<T>, array2: Array<T>): boolean => { const areArraysEqual = <T>(array1: Array<T>, array2: Array<T>): boolean => {
if (array1 !== array2) { if (array1 !== array2) {
const a1 = JSON.stringify(array1.toSorted()); const a1 = JSON.stringify(array1.toSorted());
@ -171,97 +262,40 @@ const ajouteProduitAuPanier = (event: MouseEvent): void => {
.run(); .run();
}; };
/** const initAddToCartButtonActivationOnUserChoice = (): void => {
* Initialise l'état initial d'interactivité du Bouton d'ajout de Produit au Panier. const isInStock = E.BOUTON_AJOUT_PANIER.hasAttribute("data-in-stock");
*/
const initAddToCartButton = Effect.fn("initAddToCartButton")(function* () {
const { AddProductButton, VariationSelectors } = yield* ProductPageElements;
/** Est-ce que le Produit affiché est en stock ? */
const isProductInStock = AddProductButton.hasAttribute("data-in-stock") === true;
// S'il n'y a pas de stock, ne rien faire. // S'il n'y a pas de stock, ne rien faire.
if (isProductInStock === false) { if (!isInStock) {
console.debug("initAddToCartButton", "Pas de stock."); return;
return yield* Effect.void;
} }
// S'il n'y a pas de Sélecteurs de variations, activer le Bouton d'ajout au Panier. // S'il n'y a pas de sélecteur de variation, activer le bouton.
if (FxArray.isReadonlyArrayEmpty(VariationSelectors)) { const selectElements: ReadonlyArray<HTMLSelectElement> = epipe(
console.debug("initAddToCartButton", "Produt simple."); document.querySelectorAll<HTMLSelectElement>(".selecteur-produit select"),
Array.from<HTMLSelectElement>,
);
if (selectElements.length === 0) {
E.BOUTON_AJOUT_PANIER.removeAttribute(ATTRIBUT_DESACTIVE); E.BOUTON_AJOUT_PANIER.removeAttribute(ATTRIBUT_DESACTIVE);
} }
return yield* Effect.void; // (Dés)active le bouton d'ajout au panier en fonction de la validité du formulaire.
}); E.VARIATION_CHOICE_FORM.addEventListener("change", (): void => {
const isFormValid = E.VARIATION_CHOICE_FORM.checkValidity();
const onFormChange = Effect.fnUntraced(function* (event: Event) { if (isFormValid) {
const { AddProductButton } = yield* ProductPageElements; E.BOUTON_AJOUT_PANIER.removeAttribute(ATTRIBUT_DESACTIVE);
// La cible ne peut qu'être un Formulaire. } else {
const target = event.target as HTMLFormElement; E.BOUTON_AJOUT_PANIER.setAttribute(ATTRIBUT_DESACTIVE, "");
const isClickAllowed = target.checkValidity() === false;
// Active/désactive le Bouton en fonction de la validité du Formulaire du Produit.
AddProductButton.toggleAttribute(ATTRIBUT_DESACTIVE, isClickAllowed);
return yield* Effect.void;
});
/**
* Initialise la mise à jour de l'état d'interactivité du Bouton d'ajout de Produit au Panier en fonction des actions de l'Utilisateur.
*/
const initAddToCartInteractionUpdates = Effect.fn("initAddToCartInteractionUpdates")(function* () {
return yield* pipe(
Stream.fromEventListener(E.VARIATION_CHOICE_FORM, "change"),
Stream.tap(onFormChange),
Stream.runDrain,
);
});
const onDetailButtonClick = Effect.fnUntraced(function* (event: Event) {
const { Details } = yield* ProductPageElements;
// Empêche la pollution de l'historique de navigation
event.preventDefault();
// La cible est connue.
const target = event.target as HTMLButtonElement;
// Récupère le contenu correspondant.
const linkedSection = yield* pipe(
Option.fromNullishOr(target.getAttribute(ATTRIBUT_ARIA_CONTROLS)),
Option.flatMap((contentId: string) => HashMap.get(Details, contentId)),
);
// Sauvegarde l'état d'ouverture de la Section avant de toutes les fermer.
const wasCurrentSection: boolean = target.getAttribute(ATTRIBUT_ARIA_EXPANDED) === "true";
// Replie toutes les Sections.
yield* toggleAllDetails();
// Ne fais rien de plus si l'onglet sélectionné était le courant
if (wasCurrentSection === true) {
return yield* Effect.void;
} }
// Ouvre le nouvel onglet sélectionné
target.toggleAttribute(ATTRIBUT_ARIA_EXPANDED, true);
linkedSection.content.toggleAttribute(ATTRIBUT_HIDDEN, false);
return yield* Effect.void;
});
const initDetailInteractions = Effect.fn("initDetailInteractions")(function* () {
const PageElements = yield* ProductPageElements;
return yield* pipe(
FxArray.map(PageElements.DetailsButtons, (button: HTMLButtonElement) =>
pipe(Stream.fromEventListener(button, "click"), Stream.tap(onDetailButtonClick)),
),
Stream.mergeAll({ concurrency: "unbounded" }),
Stream.runDrain,
);
}); });
};
document.addEventListener("DOMContentLoaded", (): void => { document.addEventListener("DOMContentLoaded", (): void => {
ProductPageRuntime.runFork(pipe(initAddToCartButton(), Effect.tapCause(Console.error))); gereAccordeonDetailsProduit();
ProductPageRuntime.runFork(pipe(initAddToCartInteractionUpdates(), Effect.tapCause(Console.error))); initAddToCartButtonActivationOnUserChoice();
ProductPageRuntime.runFork(pipe(initDetailInteractions(), Effect.tapCause(Console.error)));
updatePriceOnAttributeChange(); updatePriceOnAttributeChange();
// DEBUG
console.debug(JSON.parse(document.querySelector("#product-json")?.textContent));
}); });

View file

@ -1,7 +1,10 @@
{% extends 'base.twig' %} {% extends 'base.twig' %}
{% block contenu %} {% block contenu %}
<main class="page-modele-simple" id="page-404"> <main
class="page-modele-simple"
id="page-404"
>
<div class="contenu"> <div class="contenu">
<header class="contenu__en-tete"> <header class="contenu__en-tete">
<h2>Sorry!</h2> <h2>Sorry!</h2>
@ -13,7 +16,10 @@
</p> </p>
<p> <p>
<a class="lien-lien" href="/shop"> <a
class="lien-lien"
href="/shop"
>
Go back to the Shop Go back to the Shop
</a> </a>
</p> </p>

View file

@ -6,103 +6,147 @@
<main id="page-a-propos"> <main id="page-a-propos">
<div class="storytelling"> <div class="storytelling">
<div class="storytelling__conteneur"> <div class="storytelling__conteneur">
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/about/haikuabout", 'A montage of many different pictures/drawings of jewelry and of someone working.', image_dimensions[0], image_dimensions[1], 'storytelling-montage') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/about/haikuabout", 'A montage of many different pictures/drawings of jewelry and of someone working.', image_dimensions[0], image_dimensions[1], 'storytelling-montage')
}}
{# Épingles #} {# Épingles #}
<button <button
aria-label="First pin" class="epingle" aria-label="First pin"
data-id-ensemble-epingle-boite="1" type="button" class="epingle"
data-id-ensemble-epingle-boite="1"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
<button <button
aria-label="Second pin" class="epingle" aria-label="Second pin"
data-id-ensemble-epingle-boite="2" type="button" class="epingle"
data-id-ensemble-epingle-boite="2"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
<button <button
aria-label="Third pin" class="epingle" aria-label="Third pin"
data-id-ensemble-epingle-boite="3" type="button" class="epingle"
data-id-ensemble-epingle-boite="3"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
<button <button
aria-label="Fourth pin" class="epingle" aria-label="Fourth pin"
data-id-ensemble-epingle-boite="4" type="button" class="epingle"
data-id-ensemble-epingle-boite="4"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
<button <button
aria-label="Fifth pin" class="epingle" aria-label="Fifth pin"
data-id-ensemble-epingle-boite="5" type="button" class="epingle"
data-id-ensemble-epingle-boite="5"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
<button <button
aria-label="Sixth pin" class="epingle" aria-label="Sixth pin"
data-id-ensemble-epingle-boite="6" type="button" class="epingle"
data-id-ensemble-epingle-boite="6"
type="button"
> >
<img <img
alt="" height="56" alt=""
role="presentation" src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg" height="56"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/aboutlclick-black.svg"
width="82" width="82"
/> />
</button> </button>
{# Boîtes de texte #} {# Boîtes de texte #}
<div class="boite-texte" data-id-ensemble-epingle-boite="1"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="1"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p> <p>
Haïkus are short japanese poems written in three lines to capture the beauty of small details in the everyday life. Haïkus are short japanese poems written in three lines to capture the beauty of small details in the
everyday life.
</p> </p>
<p>More than poetry, its a philosophy.</p> <p>More than poetry, its a philosophy.</p>
</div> </div>
<div class="boite-texte" data-id-ensemble-epingle-boite="2"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="2"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p> <p>
Haiku Atelier creates minimalist and subtil jewelry with an edgy twist, trying to distillate some poetry through those small objects. Haiku Atelier creates minimalist and subtil jewelry with an edgy twist, trying to distillate some poetry
through those small objects.
</p> </p>
<p> <p>
@ -110,73 +154,112 @@
</p> </p>
</div> </div>
<div class="boite-texte" data-id-ensemble-epingle-boite="3"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="3"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p> <p>
After learning the art of jewelry making for two years in Paris, Manon Designere launched the brand Haiku, gleaning into the Japanese minimalist aesthetic. After learning the art of jewelry making for two years in Paris, Manon Designere launched the brand Haiku,
gleaning into the Japanese minimalist aesthetic.
</p> </p>
<p> <p>
Now based in Brussels, she still makes everything by hand, pouring her soul into her work to share her vision of the world. Now based in Brussels, she still makes everything by hand, pouring her soul into her work to share her
vision of the world.
</p> </p>
</div> </div>
<div class="boite-texte" data-id-ensemble-epingle-boite="4"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="4"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p>Here you can see some of the tools used at the studio.</p> <p>Here you can see some of the tools used at the studio.</p>
<p> <p>
From sketches to models, from soldering to polishing, the numerous steps behind each piece are what makes it so unique. From sketches to models, from soldering to polishing, the numerous steps behind each piece are what makes it
so unique.
</p> </p>
<p> <p>
A touch of animism to value handcrafted objects, restrain mass production and lead toward slow life. A touch of animism to value handcrafted objects, restrain mass production and lead toward slow life.
</p> </p>
</div> </div>
<div class="boite-texte" data-id-ensemble-epingle-boite="5"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="5"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p> <p>
We pay a lot of attention choosing the materials we work on: all of the pieces are made in 80% recycled sterling silver. We pay a lot of attention choosing the materials we work on: all of the pieces are made in 80% recycled
sterling silver.
</p> </p>
<p> <p>
We also choose to propose many designs in a mix of sterling silver and silver gilded parts to avoid relying too much on the gold plating process, which can be pollutant. We also choose to propose many designs in a mix of sterling silver and silver gilded parts to avoid relying
too much on the gold plating process, which can be pollutant.
</p> </p>
<p> <p>
The packagings are also carefully selected, produced nearby, made in eco-friendly coton or paper. Our gift bags are even handmade in dead-stock fabrics. The packagings are also carefully selected, produced nearby, made in eco-friendly coton or paper. Our gift
bags are even handmade in dead-stock fabrics.
</p> </p>
</div> </div>
<div class="boite-texte" data-id-ensemble-epingle-boite="6"> <div
<button class="boite-texte__bouton-fermeture" type="button"> class="boite-texte"
data-id-ensemble-epingle-boite="6"
>
<button
class="boite-texte__bouton-fermeture"
type="button"
>
<img <img
alt="An icon in form of a cross" height="20" alt="An icon in form of a cross"
role="presentation" src="{{ site.theme.link }}/assets/img/icons/cross.svg" height="20"
role="presentation"
src="{{ site.theme.link }}/assets/img/icons/cross.svg"
width="20" width="20"
/> />
</button> </button>
<p> <p>
We hope that those small objects will move you, as we are moved by the beauty hidden behind a ray of sunshine, a leaf falling from a branch, the smell of an old book, the song of birds before dawn... We hope that those small objects will move you, as we are moved by the beauty hidden behind a ray of
sunshine, a leaf falling from a branch, the smell of an old book, the song of birds before dawn...
</p> </p>
<p>Haiku jewelry are like a bit of poetry to wear everywhere.</p> <p>Haiku jewelry are like a bit of poetry to wear everywhere.</p>
</div> </div>

View file

@ -2,75 +2,122 @@
{% import 'macros/images.twig' as images %} {% import 'macros/images.twig' as images %}
{% block contenu %} {% block contenu %}
<main id="page-accueil" aria-label="Scroll down to navigate through the pictures"> <main
id="page-accueil"
aria-label="Scroll down to navigate through the pictures"
>
<div class="storytelling"> <div class="storytelling">
<div <div
aria-hidden="true" class="storytelling__conteneur" aria-hidden="true"
class="storytelling__conteneur"
inert inert
> >
{# Animation #} {# Animation #}
<div class="storytelling__animation no-js"> <div class="storytelling__animation no-js">
<svg <svg
alt="" class="animation-conteneur" alt=""
height="90px" preserveAspectRatio="xMidYMin" class="animation-conteneur"
viewBox="0 0 1200 90" width="100%" height="90px"
preserveAspectRatio="xMidYMin"
viewBox="0 0 1200 90"
width="100%"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
> >
<svg <svg
alt="Scroll down" class="animation-texte" alt="Scroll down"
height="100%" width="100%" class="animation-texte"
height="100%"
width="100%"
y="50%" y="50%"
> >
<path <path
d="m0 0c600-90 600 90 1200 0" fill="transparent" d="m0 0c600-90 600 90 1200 0"
id="curve-1" transform="translate3d(0,0,0)" fill="transparent"
id="curve-1"
transform="translate3d(0,0,0)"
/> />
{# TODO: Créer une fonction pour générer les images #} {# TODO: Créer une fonction pour générer les images #}
<text dominant-baseline="middle" transform="translate3d(0,0,0)"> <text
<textPath id="text-path-1" xlink:href="#curve-1"> dominant-baseline="middle"
transform="translate3d(0,0,0)"
>
<textPath
id="text-path-1"
xlink:href="#curve-1"
>
Scroll down Scroll down
</textPath> </textPath>
<animate <animate
attributeName="startOffset" dur="5s" attributeName="startOffset"
fill="remove" from="-50%" dur="5s"
to="0%" repeatCount="indefinite" fill="remove"
from="-50%"
to="0%"
repeatCount="indefinite"
xlink:href="#text-path-1" xlink:href="#text-path-1"
/> />
</text> </text>
<text dominant-baseline="middle" transform="translate3d(0,0,0)"> <text
<textPath id="text-path-2" xlink:href="#curve-1"> dominant-baseline="middle"
transform="translate3d(0,0,0)"
>
<textPath
id="text-path-2"
xlink:href="#curve-1"
>
Scroll down Scroll down
</textPath> </textPath>
<animate <animate
attributeName="startOffset" dur="5s" attributeName="startOffset"
fill="remove" from="0%" dur="5s"
to="50%" repeatCount="indefinite" fill="remove"
from="0%"
to="50%"
repeatCount="indefinite"
xlink:href="#text-path-2" xlink:href="#text-path-2"
/> />
</text> </text>
<text dominant-baseline="middle" transform="translate3d(0,0,0)"> <text
<textPath id="text-path-3" xlink:href="#curve-1"> dominant-baseline="middle"
transform="translate3d(0,0,0)"
>
<textPath
id="text-path-3"
xlink:href="#curve-1"
>
Scroll down Scroll down
</textPath> </textPath>
<animate <animate
attributeName="startOffset" dur="5s" attributeName="startOffset"
fill="remove" from="50%" dur="5s"
to="100%" repeatCount="indefinite" fill="remove"
from="50%"
to="100%"
repeatCount="indefinite"
xlink:href="#text-path-3" xlink:href="#text-path-3"
/> />
</text> </text>
<text dominant-baseline="middle" transform="translate3d(0,0,0)"> <text
<textPath id="text-path-4" xlink:href="#curve-1"> dominant-baseline="middle"
transform="translate3d(0,0,0)"
>
<textPath
id="text-path-4"
xlink:href="#curve-1"
>
Scroll down Scroll down
</textPath> </textPath>
<animate <animate
attributeName="startOffset" dur="5s" attributeName="startOffset"
fill="remove" from="100%" dur="5s"
to="150%" repeatCount="indefinite" fill="remove"
from="100%"
to="150%"
repeatCount="indefinite"
xlink:href="#text-path-4" xlink:href="#text-path-4"
/> />
</text> </text>
@ -80,94 +127,145 @@
{# Images #} {# Images #}
<div <div
class="storytelling__image" data-index="1" class="storytelling__image"
data-index="1"
tabindex="-1" tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll1", '', 903, 1080, 'image-scroll1') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll1", '', 903, 1080, 'image-scroll1')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="2" tabindex="-1" data-caché
data-index="2"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll2", '', 903, 1080, 'image-scroll2') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll2", '', 903, 1080, 'image-scroll2')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="3" tabindex="-1" data-caché
data-index="3"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll3", '', 903, 1080, 'image-scroll3') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll3", '', 903, 1080, 'image-scroll3')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="4" tabindex="-1" data-caché
data-index="4"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll4", '', 903, 1080, 'image-scroll4') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll4", '', 903, 1080, 'image-scroll4')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="5" tabindex="-1" data-caché
data-index="5"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll5", '', 903, 1080, 'image-scroll5') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll5", '', 903, 1080, 'image-scroll5')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="6" tabindex="-1" data-caché
data-index="6"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll6", '', 903, 1080, 'image-scroll6') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll6", '', 903, 1080, 'image-scroll6')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="7" tabindex="-1" data-caché
data-index="7"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll7", '', 903, 1080, 'image-scroll7') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll7", '', 903, 1080, 'image-scroll7')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="8" tabindex="-1" data-caché
data-index="8"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll8", '', 903, 1080, 'image-scroll8') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll8", '', 903, 1080, 'image-scroll8')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="9" tabindex="-1" data-caché
data-index="9"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll9", '', 903, 1080, 'image-scroll9') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll9", '', 903, 1080, 'image-scroll9')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="10" tabindex="-1" data-caché
data-index="10"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll10", '', 903, 1080, 'image-scroll10') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll10", '', 903, 1080, 'image-scroll10')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="11" tabindex="-1" data-caché
data-index="11"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll11", '', 903, 1080, 'image-scroll11') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll11", '', 903, 1080, 'image-scroll11')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="12" tabindex="-1" data-caché
data-index="12"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll12", '', 903, 1080, 'image-scroll12') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll12", '', 903, 1080, 'image-scroll12')
}}
</div> </div>
<div <div
class="storytelling__image" data-caché class="storytelling__image"
data-index="13" tabindex="-1" data-caché
data-index="13"
tabindex="-1"
> >
{{ images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll13", '', 903, 1080, 'image-scroll13') }} {{
images.genere_source_img_multi_formats("#{ site.theme.link }/assets/img/storytelling/scroll13", '', 903, 1080, 'image-scroll13')
}}
</div> </div>
</div> </div>
</div> </div>

View file

@ -8,7 +8,10 @@
{% endblock head %} {% endblock head %}
{% endblock conteneur_html_head %} {% endblock conteneur_html_head %}
<body class="{{ body_class }}" data-langue="{{ langue_courante }}"> <body
class="{{ body_class }}"
data-langue="{{ langue_courante }}"
>
{# En-tête #} {# En-tête #}
{{ include('parts/en-tete.twig') }} {{ include('parts/en-tete.twig') }}
@ -18,15 +21,21 @@
{# Bouton Revenir en haut #} {# Bouton Revenir en haut #}
<button <button
aria-hidden="true" aria-labelled-by="bouton-retour-haut-label" aria-hidden="true"
class="bouton-retour-haut" id="bouton-retour-haut" aria-labelled-by="bouton-retour-haut-label"
class="bouton-retour-haut"
id="bouton-retour-haut"
type="button" type="button"
> >
<img <img
alt="An arrow pointing to the top" aria-hidden="true" alt="An arrow pointing to the top"
aria-hidden="true"
src="{{ site.theme.link }}/assets/img/icons/arrow.svg" src="{{ site.theme.link }}/assets/img/icons/arrow.svg"
/> />
<span class="visuellement-cache" id="bouton-retour-haut-label">Back to top</span> <span
class="visuellement-cache"
id="bouton-retour-haut-label"
>Back to top</span>
</button> </button>
{# Pied de page #} {# Pied de page #}

View file

@ -24,8 +24,10 @@ const _etats = {
<div class="actions"> <div class="actions">
<button <button
{{ products|length == 12 ? '' : 'hidden' }} class="bouton-case-pleine bouton-blanc-sur-noir" {{ products|length == 12 ? '' : 'hidden' }}
id="bouton-plus-de-produits" type="button" class="bouton-case-pleine bouton-blanc-sur-noir"
id="bouton-plus-de-produits"
type="button"
> >
Show more Show more
</button> </button>

View file

@ -1,7 +1,10 @@
{% extends 'base.twig' %} {% extends 'base.twig' %}
{% block contenu %} {% block contenu %}
<main class="page-modele-simple" id="page-cgv"> <main
class="page-modele-simple"
id="page-cgv"
>
<div class="contenu"> <div class="contenu">
<header class="contenu__en-tete"> <header class="contenu__en-tete">
<h2>Terms & Conditions</h2> <h2>Terms & Conditions</h2>
@ -14,15 +17,22 @@
</header> </header>
<p> <p>
Each piece, made in sterling silver and 18k gold plated silver, is made to order. As soon as we receive your order, depending on its complexity, production in our workshop will take between 2 to 7 working days. It will then be send to you, at the latest, within 14 days of your order. Each piece, made in sterling silver and 18k gold plated silver, is made to order. As soon as we receive your
order, depending on its complexity, production in our workshop will take between 2 to 7 working days. It
will then be send to you, at the latest, within 14 days of your order.
</p> </p>
<p> <p>
The products are delivered by Mondial Relay or UPS. Products are delivered in France, Europe, and any country included by those two delivery companies.</p> The products are delivered by Mondial Relay or UPS. Products are delivered in France, Europe, and any
country included by those two delivery companies.</p>
<p> <p>
The details of delivery costs and times are specified in during the payment process. The delivery times are mentioned for information only. When the order is sent, the customers will receive an e-mail from the carrier allowing them to track their package. The details of delivery costs and times are specified in during the payment process. The delivery times are
mentioned for information only. When the order is sent, the customers will receive an e-mail from the
carrier allowing them to track their package.
</p> </p>
<p> <p>
Haiku Atelier cannot be held responsible for delays in delivery due to errors or disruptions attributable to carriers (including in the event of a total or partial strike in particular of the postal services and means of transport and/or communications). Haiku Atelier cannot be held responsible for delays in delivery due to errors or disruptions attributable to
carriers (including in the event of a total or partial strike in particular of the postal services and means
of transport and/or communications).
</p> </p>
</section> </section>
@ -32,14 +42,21 @@
</header> </header>
<p> <p>
If for any reason you are not satisfied with your purchase, we will refund or exchange it within 14 days of receipt. If more than 30 days have past since your purchase, unfortunately, we cannot offer a refund or an exchange. If for any reason you are not satisfied with your purchase, we will refund or exchange it within 14 days of
receipt. If more than 30 days have past since your purchase, unfortunately, we cannot offer a refund or an
exchange.
</p> </p>
<p> <p>
To be eligible for a return or an exchange, your item must be in the same condition as received, unworn and unused, in its original packaging. You will also need the receipt or proof of purchase. To be eligible for a return or an exchange, your item must be in the same condition as received, unworn and
unused, in its original packaging. You will also need the receipt or proof of purchase.
</p> </p>
<p> <p>
To start a return you can contact us at <a class="lien-lien" href="mailto:haiku.atelier@gmail.com">haiku.atelier@gmail.com</a>. Please note that returns and exchange will need to be send back our workshop in Brussels. To start a return you can contact us at <a
class="lien-lien"
href="mailto:haiku.atelier@gmail.com"
>haiku.atelier@gmail.com</a>. Please note that returns and exchange will need to be send back our workshop
in Brussels.
</p> </p>
<p> <p>
@ -47,11 +64,15 @@
</p> </p>
<p> <p>
The site does not provide any return labels. Return costs are the responsibility of the customer. Taxes or duties on international deliveries are non-refundable. Haiku Atelier undertakes to reimburse the price of the product and the initial shipping costs, upon receipt of the product. The site does not provide any return labels. Return costs are the responsibility of the customer. Taxes or
duties on international deliveries are non-refundable. Haiku Atelier undertakes to reimburse the price of
the product and the initial shipping costs, upon receipt of the product.
</p> </p>
<p> <p>
Once the returned product has been quality checked and approved, the refund will be made via the original method of payment used for the returned order and a confirmation email will be sent to the customer. Haiku Atelier is not responsible for items purchased from other retailers. Once the returned product has been quality checked and approved, the refund will be made via the original
method of payment used for the returned order and a confirmation email will be sent to the customer. Haiku
Atelier is not responsible for items purchased from other retailers.
</p> </p>
</section> </section>
@ -61,11 +82,17 @@
</header> </header>
<p> <p>
Please inspect your order upon receipt and contact us immediately if the item is defective, damaged, or if you received the wrong item. Make written observations at the latest within three (3) days following the delivery, to Haiku Atelier, by sending a photograph of the product. Unfortunately we cannot accept returns on sale items and gift cards. Please inspect your order upon receipt and contact us immediately if the item is defective, damaged, or if
you received the wrong item. Make written observations at the latest within three (3) days following the
delivery, to Haiku Atelier, by sending a photograph of the product. Unfortunately we cannot accept returns
on sale items and gift cards.
</p> </p>
<p> <p>
Haiku Atelier jewelry are guarantee for a year. If your piece unexpectedly broke or loses its gold color within a year, you can send it back to us and we will repair it for free, you will just have to organize your own shipping label (our workshop is located in Brussels).<br /> We still provide after sale services past the guarantee year, the price of those services will be determined depending on each case. Haiku Atelier jewelry are guarantee for a year. If your piece unexpectedly broke or loses its gold color
within a year, you can send it back to us and we will repair it for free, you will just have to organize
your own shipping label (our workshop is located in Brussels).<br /> We still provide after sale services
past the guarantee year, the price of those services will be determined depending on each case.
</p> </p>
</section> </section>
@ -75,23 +102,37 @@
</header> </header>
<p> <p>
This website is operated by Manon Designere - créatrice de bijoux, whose registered office is located at 45 rue de Franceville, 93220 Gagny, France. These general terms and conditions of use and sale (the "GTCU") govern the use of the site by any user wishing to access the site and make a purchase on the site (the "User" or the "Customer"). This website is operated by Manon Designere - créatrice de bijoux, whose registered office is located at 45
rue de Franceville, 93220 Gagny, France. These general terms and conditions of use and sale (the "GTCU")
govern the use of the site by any user wishing to access the site and make a purchase on the site (the
"User" or the "Customer").
</p> </p>
<p> <p>
By accessing the site, the user acknowledges having read and fully and unreservedly accepts the GTCU. Haiku Atelier reserves the right to modify the GTCU at any time. The change will take effect immediately upon posting the GTCU. By accessing the site, the user acknowledges having read and fully and unreservedly accepts the GTCU. Haiku
Atelier reserves the right to modify the GTCU at any time. The change will take effect immediately upon
posting the GTCU.
</p> </p>
<p> <p>
The products governed by these GTCUs are those which appear on the site (the “Products”). The products are offered for sale within the limits of available stocks. The site does not guarantee that the products will be in stock. The site reserves the right to remove a product at any time for any reason. The products governed by these GTCUs are those which appear on the site (the “Products”). The products are
offered for sale within the limits of available stocks. The site does not guarantee that the products will
be in stock. The site reserves the right to remove a product at any time for any reason.
</p> </p>
<p> <p>
The colors, features, specifications, and details of the products are described and presented with the greatest possible accuracy. However, the site does not warrant that the colors, features, specifications, and details of the products will be accurate, complete, reliable, current, or free from other errors, and users' digital display may not accurately reflect the actual colors and details of the products. The colors, features, specifications, and details of the products are described and presented with the
greatest possible accuracy. However, the site does not warrant that the colors, features, specifications,
and details of the products will be accurate, complete, reliable, current, or free from other errors, and
users' digital display may not accurately reflect the actual colors and details of the products.
</p> </p>
<p> <p>
The prices of the products are indicated in Euros all taxes included, including the applicable French VAT (20%). The prices of the products are exclusive of delivery costs (shipping, packaging, and making up the package according to the applicable amounts). The amount of the delivery costs will be specified before the validation of the order. The prices of the products may be modified at any time. However, a price cannot be modified once the purchase order has been validated. The prices of the products are indicated in Euros all taxes included, including the applicable French VAT
(20%). The prices of the products are exclusive of delivery costs (shipping, packaging, and making up the
package according to the applicable amounts). The amount of the delivery costs will be specified before the
validation of the order. The prices of the products may be modified at any time. However, a price cannot be
modified once the purchase order has been validated.
</p> </p>
<p> <p>
@ -105,15 +146,24 @@
</ul> </ul>
<p> <p>
Haiku Atelier will not be held responsible for the failure to deliver a package due to an incorrect or incomplete delivery address. Once the undelivered products have been collected by Haiku Atelier, a new delivery will be possible and incur a reshipping fee invoiced to the customer. Haiku Atelier will not be held responsible for the failure to deliver a package due to an incorrect or
incomplete delivery address. Once the undelivered products have been collected by Haiku Atelier, a new
delivery will be possible and incur a reshipping fee invoiced to the customer.
</p> </p>
<p> <p>
International deliveries are subject to import charges, duties, taxes, or fees of the destination country. These funds are set by the government of that country, in accordance with import/export regulations, and billed by the courier. Haiku Atelier is not responsible for these duties, taxes, or other charges.<br /> If a package is returned because a customer has refused to pay any import taxes or customs duties owed, the package refund will not include shipping and return costs. International deliveries are subject to import charges, duties, taxes, or fees of the destination country.
These funds are set by the government of that country, in accordance with import/export regulations, and
billed by the courier. Haiku Atelier is not responsible for these duties, taxes, or other charges.<br /> If
a package is returned because a customer has refused to pay any import taxes or customs duties owed, the
package refund will not include shipping and return costs.
</p> </p>
<p> <p>
Haiku Atelier is the exclusive owner of all intellectual property rights or holds the rights of use relating to both the structure and the content of the site. The GTCU are subject to French law, regardless of the country of residence of the user and the place of placing the purchase order.<br />In the absence of an amicable agreement, any dispute will be submitted to the competent French courts. Haiku Atelier is the exclusive owner of all intellectual property rights or holds the rights of use relating
to both the structure and the content of the site. The GTCU are subject to French law, regardless of the
country of residence of the user and the place of placing the purchase order.<br />In the absence of an
amicable agreement, any dispute will be submitted to the competent French courts.
</p> </p>
</section> </section>
@ -124,7 +174,10 @@
<p> <p>
<strong>Contact:</strong><br /> <strong>Contact:</strong><br />
For inquiries and customer service, please refer to <a class="lien-lien" href="/contact">our Contact page</a>. For inquiries and customer service, please refer to <a
class="lien-lien"
href="/contact"
>our Contact page</a>.
</p> </p>
<p> <p>

View file

@ -1,7 +1,10 @@
{% extends 'base.twig' %} {% extends 'base.twig' %}
{% block contenu %} {% block contenu %}
<main class="page-modele-simple" id="page-contact"> <main
class="page-modele-simple"
id="page-contact"
>
<div class="contenu"> <div class="contenu">
<header class="contenu__en-tete"> <header class="contenu__en-tete">
<h2>Say hi!</h2> <h2>Say hi!</h2>
@ -9,9 +12,16 @@
<div class="contenu__textuel"> <div class="contenu__textuel">
<p> <p>
For any inquiries, from simple information questions to problems with your products, or just to say hi, don't hesitate to contact us at <a class="lien-lien" href="mailto:haikuatelier@gmail.com"> For any inquiries, from simple information questions to problems with your products, or just to say hi, don't
hesitate to contact us at <a
class="lien-lien"
href="mailto:haikuatelier@gmail.com"
>
haikuatelier@gmail.com haikuatelier@gmail.com
</a> or on Instagram at <a class="lien-lien" href="https://www.instagram.com/haiku.atelier"> </a> or on Instagram at <a
class="lien-lien"
href="https://www.instagram.com/haiku.atelier"
>
haiku.atelier haiku.atelier
</a>. </a>.
</p> </p>

View file

@ -1,15 +1,22 @@
{% extends 'base.twig' %} {% extends 'base.twig' %}
{% block contenu %} {% block contenu %}
<main class="page-modele-simple" id="page-succes-commande"> <main
class="page-modele-simple"
id="page-succes-commande"
>
<div class="contenu"> <div class="contenu">
<header class="contenu__en-tete"> <header class="contenu__en-tete">
<h2>Failed order!</h2> <h2>Failed order!</h2>
</header> </header>
<div class="contenu__textuel"> <div class="contenu__textuel">
<p>Sadly, something went wrong during your order, or you chose to cancel it. You can try again if you want: your cart is still there.</p> <p>Sadly, something went wrong during your order, or you chose to cancel it. You can try again if you want: your
<p>If an error persists and you don't know what's going on, please don't hesitate to <a class="lien-lien" href="/contact">contact us</a>!</p> cart is still there.</p>
<p>If an error persists and you don't know what's going on, please don't hesitate to <a
class="lien-lien"
href="/contact"
>contact us</a>!</p>
</div> </div>
</div> </div>
</main> </main>

View file

@ -1,13 +1,25 @@
{% macro genere_source_img_multi_formats(rel_url, alt = '', width, height, id = '') %} {% macro genere_source_img_multi_formats(rel_url, alt = '', width, height, id = '') %}
<picture id="{{ id }}"> <picture id="{{ id }}">
<source srcset="{{ rel_url }}.jxl" type="image/jxl" /> <source
<source srcset="{{ rel_url }}.avif" type="image/avif" /> srcset="{{ rel_url }}.jxl"
<source srcset="{{ rel_url }}.png" type="image/png" /> type="image/jxl"
/>
<source
srcset="{{ rel_url }}.avif"
type="image/avif"
/>
<source
srcset="{{ rel_url }}.png"
type="image/png"
/>
<img <img
alt="{{ alt }}" decoding="sync" alt="{{ alt }}"
height="{{ height }}" loading="eager" decoding="sync"
src="{{ rel_url }}.jpg" width="{{ width }}" height="{{ height }}"
loading="eager"
src="{{ rel_url }}.jpg"
width="{{ width }}"
onload="this.style.opacity = 1" onload="this.style.opacity = 1"
/> />
</picture> </picture>

View file

@ -12,7 +12,10 @@ const _etats = {
{% endblock head %} {% endblock head %}
{% block contenu %} {% block contenu %}
<main id="page-panier" data-contient-articles="{{ articles_presents }}"> <main
id="page-panier"
data-contient-articles="{{ articles_presents }}"
>
{# « Your Cart » #} {# « Your Cart » #}
{{ include('parts/pages/panier/panneau-panier.twig') }} {{ include('parts/pages/panier/panneau-panier.twig') }}
{# Your Info #} {# Your Info #}
@ -20,7 +23,10 @@ const _etats = {
<div class="panier-vide"> <div class="panier-vide">
<p>Sorry! Your cart is empty.</p> <p>Sorry! Your cart is empty.</p>
<a class="lien-bouton" href="{{ pages.shop.lien }}"> <a
class="lien-bouton"
href="{{ pages.shop.lien }}"
>
Go back to the Shop Go back to the Shop
</a> </a>
</div> </div>

View file

@ -1,39 +1,54 @@
<header id="en-tete"> <header id="en-tete">
<div class="logo"> <div class="logo">
<img <img
alt="Haiku Atelier's Logo" decoding="async" alt="Haiku Atelier's Logo"
height="77" loading="eager" decoding="async"
src="{{ site.theme.link }}/assets/img/logos/logo-v2-text.svg" width="307" height="77"
loading="eager"
src="{{ site.theme.link }}/assets/img/logos/logo-v2-text.svg"
width="307"
/> />
</div> </div>
{# TODO: Utiliser un Menu WordPress ? #} {# TODO: Utiliser un Menu WordPress ? #}
<nav class="menu-navigation" id="menu-navigation-en-tete"> <nav
class="menu-navigation"
id="menu-navigation-en-tete"
>
<ul> <ul>
<li class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.home.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.home.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.home.lien }}" href="{{ pages.home.lien }}"
> >
{{ pages.home.nom }} {{ pages.home.nom }}
</a> </a>
</span> </span>
</li> </li>
<li class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ est_page_boutique ? 'aria-current=page' : '' }} class="lien-menu" {{ est_page_boutique ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.shop.lien }}" href="{{ pages.shop.lien }}"
> >
{{ pages.shop.nom }} {{ pages.shop.nom }}
</a> </a>
</span> </span>
</li> </li>
<li class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.about.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.about.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.about.lien }}" href="{{ pages.about.lien }}"
> >
{{ pages.about.nom }} {{ pages.about.nom }}
@ -41,10 +56,13 @@
</span> </span>
</li> </li>
<li class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.contact.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.contact.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.contact.lien }}" href="{{ pages.contact.lien }}"
> >
{{ pages.contact.nom }} {{ pages.contact.nom }}
@ -58,8 +76,10 @@
{# Bouton « Panier » avec l'indicateur de quantité de Produits #} {# Bouton « Panier » avec l'indicateur de quantité de Produits #}
<div class="compte-panier"> <div class="compte-panier">
<a <a
class="lien-bouton" data-contient-articles="{{ articles_presents }}" class="lien-bouton"
href="{{ pages.cart.lien }}" rel="cart" data-contient-articles="{{ articles_presents }}"
href="{{ pages.cart.lien }}"
rel="cart"
> >
cart ({{ quantite_articles }}) cart ({{ quantite_articles }})
</a> </a>
@ -67,30 +87,45 @@
{# Bouton (dés)activant le menu mobile #} {# Bouton (dés)activant le menu mobile #}
<button <button
aria-label="Button to toggle the mobile navigation menu for small screen sizes" class="bouton-menu-mobile" aria-label="Button to toggle the mobile navigation menu for small screen sizes"
id="bouton-menu-mobile" type="button" class="bouton-menu-mobile"
id="bouton-menu-mobile"
type="button"
> >
<img <img
alt="An icon representing an « Hamburger » menu" decoding="async" alt="An icon representing an « Hamburger » menu"
loading="eager" src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg" decoding="async"
loading="eager"
src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg"
/> />
</button> </button>
</div> </div>
{# Menu mobile #} {# Menu mobile #}
<div <div
aria-hidden="true" aria-labelledby="menu-mobile" aria-hidden="true"
class="menu-modale" id="menu-mobile" aria-labelledby="menu-mobile"
class="menu-modale"
id="menu-mobile"
> >
<div class="menu-modale__fond" data-a11y-dialog-hide></div> <div
class="menu-modale__fond"
data-a11y-dialog-hide
></div>
<div class="menu-modale__conteneur"> <div class="menu-modale__conteneur">
<nav class="menu-navigation" id="menu-navigation-mobile"> <nav
class="menu-navigation"
id="menu-navigation-mobile"
>
<ul> <ul>
<li class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.home.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.home.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.home.lien }}" href="{{ pages.home.lien }}"
> >
{{ pages.home.nom }} {{ pages.home.nom }}
@ -98,10 +133,13 @@
</span> </span>
</li> </li>
<li class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ est_page_boutique ? 'aria-current=page' : '' }} class="lien-menu" {{ est_page_boutique ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.shop.lien }}" href="{{ pages.shop.lien }}"
> >
{{ pages.shop.nom }} {{ pages.shop.nom }}
@ -109,10 +147,13 @@
</span> </span>
</li> </li>
<li class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.about.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.about.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.about.lien }}" href="{{ pages.about.lien }}"
> >
{{ pages.about.nom }} {{ pages.about.nom }}
@ -120,10 +161,13 @@
</span> </span>
</li> </li>
<li class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"> <li
class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : 'menu-navigation__entree' }}"
>
<span> <span>
<a <a
{{ page_courante == pages.contact.lien ? 'aria-current=page' : '' }} class="lien-menu" {{ page_courante == pages.contact.lien ? 'aria-current=page' : '' }}
class="lien-menu"
href="{{ pages.contact.lien }}" href="{{ pages.contact.lien }}"
> >
{{ pages.contact.nom }} {{ pages.contact.nom }}

View file

@ -1,3 +1,6 @@
<script id="injection-v2" type="application/json"> <script
id="injection-v2"
type="application/json"
>
{ "authString": "{{ auth_string }}", "nonce": "{{ nonce_wc }}" } { "authString": "{{ auth_string }}", "nonce": "{{ nonce_wc }}" }
</script> </script>

View file

@ -1,43 +1,67 @@
<head> <head>
<meta charset="{{ site.charset }}" /> <meta charset="{{ site.charset }}" />
<meta name="description" content="{{ site.description }}" /> <meta
<meta name="viewport" content="width=device-width, initial-scale=1" /> name="description"
content="{{ site.description }}"
/>
<meta
name="viewport"
content="width=device-width, initial-scale=1"
/>
{# Pinterest #} {# Pinterest #}
<meta name="p:domain_verify" content="98fed4c924501d2f2a90c5b37e165085" /> <meta
name="p:domain_verify"
content="98fed4c924501d2f2a90c5b37e165085"
/>
{# Favicon #} {# Favicon #}
<link rel="apple-touch-icon" href="{{ site.theme.link }}/assets/img/apple-touch-icon.png" />
<link <link
rel="icon" href="{{ site.theme.link }}/assets/img/favicon.ico" rel="apple-touch-icon"
href="{{ site.theme.link }}/assets/img/apple-touch-icon.png"
/>
<link
rel="icon"
href="{{ site.theme.link }}/assets/img/favicon.ico"
sizes="48x48" sizes="48x48"
/> />
<link <link
rel="icon" href="{{ site.theme.link }}/assets/img/favicon.svg" rel="icon"
href="{{ site.theme.link }}/assets/img/favicon.svg"
type="image/svg+xml" type="image/svg+xml"
/> />
<link rel="manifest" href="{{ site.theme.link }}/assets/site.webmanifest" /> <link
rel="manifest"
href="{{ site.theme.link }}/assets/site.webmanifest"
/>
{# Préchargements #} {# Préchargements #}
<link <link
as="image" href="{{ site.theme.link }}/assets/img/icons/cloud-gris.svg" as="image"
rel="preload" type="image/svg+xml" href="{{ site.theme.link }}/assets/img/icons/cloud-gris.svg"
rel="preload"
type="image/svg+xml"
/> />
<link <link
as="font" crossorigin as="font"
href="{{ site.theme.link }}/assets/fonts/lato/lato-variable-webfont.woff2" rel="preload" crossorigin
href="{{ site.theme.link }}/assets/fonts/lato/lato-variable-webfont.woff2"
rel="preload"
type="font/woff2" type="font/woff2"
/> />
<link <link
as="font" crossorigin as="font"
href="{{ site.theme.link }}/assets/fonts/lato/lato-variable-italic-webfont.woff2" rel="preload" crossorigin
href="{{ site.theme.link }}/assets/fonts/lato/lato-variable-italic-webfont.woff2"
rel="preload"
type="font/woff2" type="font/woff2"
/> />
{# Plausible #} {# Plausible #}
{% if environnement == 'production' %} {% if environnement == 'production' %}
<script <script
data-domain="haikuatelier.com" defer data-domain="haikuatelier.com"
defer
src="https://greyhound.haikuatelier.com/js/script.js" src="https://greyhound.haikuatelier.com/js/script.js"
></script> ></script>
{% endif %} {% endif %}

View file

@ -1,30 +1,48 @@
<nav <nav
aria-label="Navigation for the dedicated pages of the main Categories of Products" class="menu-categories-produits" aria-label="Navigation for the dedicated pages of the main Categories of Products"
data-entrees-presentes-fin id="menu-categories-produits" class="menu-categories-produits"
data-entrees-presentes-fin
id="menu-categories-produits"
> >
<svg <svg
alt="" height="15" alt=""
id="fleche-defilement-categories-produits-gauche" role="presentation" height="15"
transform="scale(-1 1)" viewBox="0 0 15 15" id="fleche-defilement-categories-produits-gauche"
width="15" xmlns="http://www.w3.org/2000/svg" role="presentation"
transform="scale(-1 1)"
viewBox="0 0 15 15"
width="15"
xmlns="http://www.w3.org/2000/svg"
> >
<path d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414" fill="#fff" /> <path
d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414"
fill="#fff"
/>
</svg> </svg>
<ul> <ul>
<li {{ est_page_tous_produits ? "class='categorie-courante'" : '' }}><a href="{{ pages.shop.lien }}">All</a></li> <li {{ est_page_tous_produits ? "class='categorie-courante'" : '' }}><a href="{{ pages.shop.lien }}">All</a></li>
{% for categorie in categories_produits %} {% for categorie in categories_produits %}
{# TODO: Factoriser l'injection de classe d'une manière plus propre #} {# TODO: Factoriser l'injection de classe d'une manière plus propre #}
<li {{ categorie.courante ? "class='categorie-courante'" : '' }} id="categorie-{{ categorie.slug|e }}"> <li
{{ categorie.courante ? "class='categorie-courante'" : '' }}
id="categorie-{{ categorie.slug|e }}"
>
<a href="/{{ base_categorie_produit }}/{{ categorie.slug|e }}">{{ categorie.nom|e }}</a> <a href="/{{ base_categorie_produit }}/{{ categorie.slug|e }}">{{ categorie.nom|e }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<svg <svg
alt="" height="15" alt=""
id="fleche-defilement-categories-produits-droite" role="presentation" height="15"
viewBox="0 0 15 15" width="15" id="fleche-defilement-categories-produits-droite"
role="presentation"
viewBox="0 0 15 15"
width="15"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
> >
<path d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414" fill="#fff" /> <path
d="M8.293 2.293a1 1 0 0 1 1.414 0l4.5 4.5a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414-1.414L11 8.5H1.5a1 1 0 0 1 0-2H11L8.293 3.707a1 1 0 0 1 0-1.414"
fill="#fff"
/>
</svg> </svg>
</nav> </nav>

View file

@ -1,33 +1,45 @@
<section class="panneau" id="panneau-informations-client"> <section
class="panneau"
id="panneau-informations-client"
>
<header class="panneau__en-tete"> <header class="panneau__en-tete">
<h2>Your info</h2> <h2>Your info</h2>
</header> </header>
{# « PayPal Express Checkout » #} {# « PayPal Express Checkout » #}
<div class="panneau__paypal-express" hidden> <div
class="panneau__paypal-express"
hidden
>
<p>Express Check-out</p> <p>Express Check-out</p>
{# Bouton PayPal #} {# Bouton PayPal #}
<button type="button"> <button type="button">
<img <img
alt="PayPal's Logo" height="18" alt="PayPal's Logo"
src="{{ site.theme.link }}/assets/img/paypal/logo-paypal.svg" width="13.48" height="18"
src="{{ site.theme.link }}/assets/img/paypal/logo-paypal.svg"
width="13.48"
/> />
<img <img
alt="PayPal" height="18" alt="PayPal"
src="{{ site.theme.link }}/assets/img/paypal/titre-paypal.svg" width="67.69" height="18"
src="{{ site.theme.link }}/assets/img/paypal/titre-paypal.svg"
width="67.69"
/> />
</button> </button>
</div> </div>
<form <form
class="panneau__formulaires" id="formulaire-commande" class="panneau__formulaires"
id="formulaire-commande"
method="post" method="post"
> >
{# Formulaires pour la livraison et facturation #} {# Formulaires pour la livraison et facturation #}
<div class="panneau__formulaires__separation-adresses"> <div class="panneau__formulaires__separation-adresses">
<input <input
id="separation-adresses" name="separation-adresses" id="separation-adresses"
name="separation-adresses"
type="checkbox" type="checkbox"
/> />
<label for="separation-adresses">Use a separate billing address</label> <label for="separation-adresses">Use a separate billing address</label>
@ -40,9 +52,12 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-prenom">First name</label> <label for="livraison-prenom">First name</label>
<input <input
autocomplete="given-name" id="livraison-prenom" autocomplete="given-name"
minlength="2" name="livraison-prenom" id="livraison-prenom"
required type="text" minlength="2"
name="livraison-prenom"
required
type="text"
value="{{ adresse_livraison.first_name }}" value="{{ adresse_livraison.first_name }}"
/> />
</div> </div>
@ -50,9 +65,12 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-nom">Last name</label> <label for="livraison-nom">Last name</label>
<input <input
autocomplete="family-name" id="livraison-nom" autocomplete="family-name"
name="livraison-nom" minlength="2" id="livraison-nom"
required type="text" name="livraison-nom"
minlength="2"
required
type="text"
value="{{ adresse_livraison.last_name }}" value="{{ adresse_livraison.last_name }}"
/> />
</div> </div>
@ -60,27 +78,36 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-adresse">Address</label> <label for="livraison-adresse">Address</label>
<input <input
autocomplete="street-address" id="livraison-adresse" autocomplete="street-address"
name="livraison-adresse" required id="livraison-adresse"
type="text" value="{{ adresse_livraison.address_1 }}" name="livraison-adresse"
required
type="text"
value="{{ adresse_livraison.address_1 }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-code-postal">Postcode</label> <label for="livraison-code-postal">Postcode</label>
<input <input
id="livraison-code-postal" minlength="3" id="livraison-code-postal"
name="livraison-code-postal" required minlength="3"
type="text" value="{{ adresse_livraison.postcode }}" name="livraison-code-postal"
required
type="text"
value="{{ adresse_livraison.postcode }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-ville">City</label> <label for="livraison-ville">City</label>
<input <input
autocomplete="address-level2" id="livraison-ville" autocomplete="address-level2"
minlength="2" name="livraison-ville" id="livraison-ville"
required type="text" minlength="2"
name="livraison-ville"
required
type="text"
value="{{ adresse_livraison.city }}" value="{{ adresse_livraison.city }}"
/> />
</div> </div>
@ -88,20 +115,27 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-region-etat">Region/State</label> <label for="livraison-region-etat">Region/State</label>
<input <input
autocomplete="address-level1" id="livraison-region-etat" autocomplete="address-level1"
name="livraison-region-etat" placeholder="If applicable" id="livraison-region-etat"
type="text" value="{{ adresse_livraison.state }}" name="livraison-region-etat"
placeholder="If applicable"
type="text"
value="{{ adresse_livraison.state }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-pays">Country</label> <label for="livraison-pays">Country</label>
<select <select
id="livraison-pays" name="livraison-pays" id="livraison-pays"
name="livraison-pays"
required required
> >
{% for cle, pays in pays_livraison %} {% for cle, pays in pays_livraison %}
<option {{ cle == adresse_livraison.country ? 'selected' : '' }} value="{{ cle }}"> <option
{{ cle == adresse_livraison.country ? 'selected' : '' }}
value="{{ cle }}"
>
{{ pays }} {{ pays }}
</option> </option>
{% endfor %} {% endfor %}
@ -111,9 +145,12 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-telephone">Phone</label> <label for="livraison-telephone">Phone</label>
<input <input
autocomplete="tel" id="livraison-telephone" autocomplete="tel"
minlength="6" name="livraison-telephone" id="livraison-telephone"
required type="tel" minlength="6"
name="livraison-telephone"
required
type="tel"
value="{{ adresse_livraison.phone }}" value="{{ adresse_livraison.phone }}"
/> />
</div> </div>
@ -121,45 +158,62 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="livraison-email">Email Address</label> <label for="livraison-email">Email Address</label>
<input <input
autocomplete="email" id="livraison-email" autocomplete="email"
minlength="4" name="livraison-email" id="livraison-email"
required type="email" minlength="4"
name="livraison-email"
required
type="email"
value="{{ email }}" value="{{ email }}"
/> />
</div> </div>
</div> </div>
</div> </div>
<div class="panneau__formulaires__facturation formulaire" hidden> <div
class="panneau__formulaires__facturation formulaire"
hidden
>
<h3 class="formulaire__titre">Billing:</h3> <h3 class="formulaire__titre">Billing:</h3>
<div class="formulaire__champs"> <div class="formulaire__champs">
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-prenom">First name</label> <label for="facturation-prenom">First name</label>
<input <input
autocomplete="given-name" disabled autocomplete="given-name"
id="facturation-prenom" name="facturation-prenom" disabled
minlength="2" required id="facturation-prenom"
type="text" value="{{ adresse_facturation.first_name }}" name="facturation-prenom"
minlength="2"
required
type="text"
value="{{ adresse_facturation.first_name }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-nom">Last name</label> <label for="facturation-nom">Last name</label>
<input <input
autocomplete="family-name" disabled autocomplete="family-name"
id="facturation-nom" name="facturation-nom" disabled
minlength="2" required id="facturation-nom"
type="text" value="{{ adresse_facturation.last_name }}" name="facturation-nom"
minlength="2"
required
type="text"
value="{{ adresse_facturation.last_name }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-adresse">Address</label> <label for="facturation-adresse">Address</label>
<input <input
autocomplete="street-address" disabled autocomplete="street-address"
id="facturation-adresse" name="facturation-adresse" disabled
required type="text" id="facturation-adresse"
name="facturation-adresse"
required
type="text"
value="{{ adresse_facturation.address_1 }}" value="{{ adresse_facturation.address_1 }}"
/> />
</div> </div>
@ -167,9 +221,12 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-code-postal">Postcode</label> <label for="facturation-code-postal">Postcode</label>
<input <input
disabled id="facturation-code-postal" disabled
minlength="3" name="facturation-code-postal" id="facturation-code-postal"
required type="text" minlength="3"
name="facturation-code-postal"
required
type="text"
value="{{ adresse_facturation.postcode }}" value="{{ adresse_facturation.postcode }}"
/> />
</div> </div>
@ -177,19 +234,26 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-ville">City</label> <label for="facturation-ville">City</label>
<input <input
autocomplete="address-level2" disabled autocomplete="address-level2"
id="facturation-ville" minlength="2" disabled
name="facturation-ville" required id="facturation-ville"
type="text" value="{{ adresse_facturation.city }}" minlength="2"
name="facturation-ville"
required
type="text"
value="{{ adresse_facturation.city }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-region-etat">Region/State</label> <label for="facturation-region-etat">Region/State</label>
<input <input
autocomplete="address-level1" disabled autocomplete="address-level1"
id="facturation-region-etat" name="facturation-region-etat" disabled
placeholder="If applicable" type="text" id="facturation-region-etat"
name="facturation-region-etat"
placeholder="If applicable"
type="text"
value="{{ adresse_facturation.state }}" value="{{ adresse_facturation.state }}"
/> />
</div> </div>
@ -197,11 +261,15 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-pays">Country</label> <label for="facturation-pays">Country</label>
<select <select
id="facturation-pays" name="facturation-pays" id="facturation-pays"
name="facturation-pays"
required required
> >
{% for cle, pays in pays_livraison %} {% for cle, pays in pays_livraison %}
<option {{ cle == adresse_livraison.country ? 'selected' : '' }} value="{{ cle }}"> <option
{{ cle == adresse_livraison.country ? 'selected' : '' }}
value="{{ cle }}"
>
{{ pays }} {{ pays }}
</option> </option>
{% endfor %} {% endfor %}
@ -211,27 +279,39 @@
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-telephone">Phone</label> <label for="facturation-telephone">Phone</label>
<input <input
autocomplete="tel" disabled autocomplete="tel"
id="facturation-telephone" minlength="6" disabled
name="facturation-telephone" required id="facturation-telephone"
type="tel" value="{{ adresse_facturation.phone }}" minlength="6"
name="facturation-telephone"
required
type="tel"
value="{{ adresse_facturation.phone }}"
/> />
</div> </div>
<div class="formulaire__champs__champ"> <div class="formulaire__champs__champ">
<label for="facturation-email">Email Address</label> <label for="facturation-email">Email Address</label>
<input <input
autocomplete="email" disabled autocomplete="email"
id="facturation-email" minlength="4" disabled
name="facturation-email" required id="facturation-email"
type="email" value="{{ email }} " minlength="4"
name="facturation-email"
required
type="email"
value="{{ email }} "
/> />
</div> </div>
</div> </div>
</div> </div>
<div class="panneau__formulaires__message"> <div class="panneau__formulaires__message">
<p class="message" id="message-formulaire-adresses"> </p> <p
class="message"
id="message-formulaire-adresses"
>
</p>
</div> </div>
{# Formulaire de paiement #} {# Formulaire de paiement #}
@ -247,10 +327,14 @@
</p> </p>
</div> </div>
<div class="formulaire__paiement__choix" hidden> <div
class="formulaire__paiement__choix"
hidden
>
<label for="paiement-stripe">Credit card</label> <label for="paiement-stripe">Credit card</label>
<input <input
id="paiement-stripe" name="type-paiement" id="paiement-stripe"
name="type-paiement"
type="radio" type="radio"
/> />
</div> </div>
@ -259,7 +343,10 @@
</form> </form>
<footer class="panneau__pied-de-page"> <footer class="panneau__pied-de-page">
<button form="formulaire-commande" type="submit"> <button
form="formulaire-commande"
type="submit"
>
Calculate shipping Calculate shipping
</button> </button>
</footer> </footer>

View file

@ -1,4 +1,7 @@
<section class="panneau" id="panneau-panier"> <section
class="panneau"
id="panneau-panier"
>
<header class="panneau__en-tete"> <header class="panneau__en-tete">
<h2>Your cart</h2> <h2>Your cart</h2>
</header> </header>
@ -6,8 +9,10 @@
<div class="panneau__grille-produits"> <div class="panneau__grille-produits">
{% for produit in produits_panier %} {% for produit in produits_panier %}
<article <article
class="panneau__grille-produits__produit" data-cle-panier="{{ produit.cle }}" class="panneau__grille-produits__produit"
data-id-produit="{{ produit.id_produit }}" data-id-variation="{{ produit.id_variation }}" data-cle-panier="{{ produit.cle }}"
data-id-produit="{{ produit.id_produit }}"
data-id-variation="{{ produit.id_variation }}"
data-quantite="{{ produit.quantite }}" data-quantite="{{ produit.quantite }}"
> >
<div class="panneau__grille-produits__produit__illustratif"> <div class="panneau__grille-produits__produit__illustratif">
@ -34,20 +39,29 @@
<div class="detail-produit__actions"> <div class="detail-produit__actions">
<button <button
class="detail-produit__actions__soustraction" {{ produit.quantite <= 1 ? 'disabled' }} class="detail-produit__actions__soustraction"
{{ produit.quantite <= 1 ? 'disabled' }}
type="button" type="button"
> >
- -
</button> </button>
<input <input
aria-label="Quantity selector" min="1" aria-label="Quantity selector"
type="number" value="{{ produit.quantite }}" min="1"
type="number"
value="{{ produit.quantite }}"
/> />
<button class="detail-produit__actions__addition" type="button"> <button
class="detail-produit__actions__addition"
type="button"
>
+ +
</button> </button>
<button class="detail-produit__actions__suppression" type="button"> <button
class="detail-produit__actions__suppression"
type="button"
>
Remove Remove
</button> </button>
</div> </div>
@ -58,27 +72,40 @@
<div class="panneau__instructions-code-promo"> <div class="panneau__instructions-code-promo">
<textarea <textarea
aria-label="Special instructions for your order" class="panneau__instructions-code-promo__instructions" aria-label="Special instructions for your order"
id="instructions-client" maxlength="2000" class="panneau__instructions-code-promo__instructions"
minlength="10" name="instructions" id="instructions-client"
placeholder="Add special instructions for your order: specify the products you want wrapped and how (i.e. all in one bag or separated), a gift message, etc." resizable="false" maxlength="2000"
rows="3" spellcheck="true" minlength="10"
name="instructions"
placeholder="Add special instructions for your order: specify the products you want wrapped and how (i.e. all in one bag or separated), a gift message, etc."
resizable="false"
rows="3"
spellcheck="true"
></textarea> ></textarea>
<form <form
action="" class="panneau__instructions-code-promo__code-promo" action=""
{{ code_promo ? 'data-code-promo-present' }} id="ensemble-code-promo" class="panneau__instructions-code-promo__code-promo"
{{ code_promo ? 'data-code-promo-present' }}
id="ensemble-code-promo"
> >
<input <input
{{ code_promo ? 'disabled' }} aria-label="DIscount code or gift card" {{ code_promo ? 'disabled' }}
id="champ-code-promo" maxlength="20" aria-label="DIscount code or gift card"
minlength="3" name="code-promo" id="champ-code-promo"
placeholder="Discount code or gift card" type="text" maxlength="20"
minlength="3"
name="code-promo"
placeholder="Discount code or gift card"
type="text"
value="{{ code_promo ? code_promo }}" value="{{ code_promo ? code_promo }}"
/> />
<button <button
class="bouton-blanc-sur-noir" for="code-promo" class="bouton-blanc-sur-noir"
id="bouton-code-promo" type="button" for="code-promo"
id="bouton-code-promo"
type="button"
> >
{{ code_promo ? 'Remove' : 'Apply' }} {{ code_promo ? 'Remove' : 'Apply' }}
</button> </button>
@ -88,20 +115,27 @@
</div> </div>
<div class="panneau__sous-totaux"> <div class="panneau__sous-totaux">
<div class="panneau__sous-totaux__ligne" id="sous-total-produits"> <div
class="panneau__sous-totaux__ligne"
id="sous-total-produits"
>
<p>Subtotal:</p> <p>Subtotal:</p>
<p><strong>{{ sous_total_panier }}€</strong></p> <p><strong>{{ sous_total_panier }}€</strong></p>
</div> </div>
<div <div
class="panneau__sous-totaux__ligne" id="sous-total-reduction" class="panneau__sous-totaux__ligne"
id="sous-total-reduction"
{{ not code_promo ? 'hidden' }} {{ not code_promo ? 'hidden' }}
> >
<p>Discount:</p> <p>Discount:</p>
<p><strong>-{{ sous_total_reduction }}€</strong></p> <p><strong>-{{ sous_total_reduction }}€</strong></p>
</div> </div>
<div class="panneau__sous-totaux__ligne" id="sous-total-livraison"> <div
class="panneau__sous-totaux__ligne"
id="sous-total-livraison"
>
<p>Shipping:</p> <p>Shipping:</p>
{% if not adresse_renseignee %} {% if not adresse_renseignee %}
<p> <p>
@ -115,7 +149,8 @@
</div> </div>
<fieldset <fieldset
class="panneau__sous-totaux__choix-methode-livraison" {{ not adresse_renseignee ? 'hidden' }} class="panneau__sous-totaux__choix-methode-livraison"
{{ not adresse_renseignee ? 'hidden' }}
id="choix-methode-livraison" id="choix-methode-livraison"
> >
<label>Select your shipping method</label> <label>Select your shipping method</label>
@ -123,11 +158,16 @@
{% for methode_livraison in methodes_livraison %} {% for methode_livraison in methodes_livraison %}
<div data-methode-initiale> <div data-methode-initiale>
<input <input
{{ methode_livraison.selectionnee ? 'checked' }} data-prix="{{ methode_livraison.prix }}" {{ methode_livraison.selectionnee ? 'checked' }}
id="methode-livraison-{{ methode_livraison.id }}" name="choix-methode-livraison" data-prix="{{ methode_livraison.prix }}"
type="radio" value="{{ methode_livraison.id }}" id="methode-livraison-{{ methode_livraison.id }}"
name="choix-methode-livraison"
type="radio"
value="{{ methode_livraison.id }}"
/> />
<label for="methode-livraison-{{ methode_livraison.id }}">{{ methode_livraison.titre }} ({{ methode_livraison.prix }}€)</label> <label for="methode-livraison-{{ methode_livraison.id }}">{{ methode_livraison.titre }} ({{
methode_livraison.prix
}}€)</label>
</div> </div>
{% endfor %} {% endfor %}
</fieldset> </fieldset>

View file

@ -1,8 +1,12 @@
{# Barre flottante avec le nom du Produit, le sélecteur de variation et de quantité pour le Panier. #} {# Barre flottante avec le nom du Produit, le sélecteur de variation et de quantité pour le Panier. #}
<aside aria-label="Product's name, price and variation selection" class="resume-produit"> <aside
aria-label="Product's name, price and variation selection"
class="resume-produit"
>
<form <form
class="selecteur-produit" id="variation-choice" class="selecteur-produit"
id="variation-choice"
name="variation-choice" name="variation-choice"
> >
<h3 class="selecteur-produit__nom">{{ product.name }}</h3> <h3 class="selecteur-produit__nom">{{ product.name }}</h3>
@ -15,24 +19,66 @@
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{#
{% if variations_produit|length > 1 %}
<label
for="selecteur-variation"
id="label-selecteur-variation"
>
Option:
</label>
<div class="selecteur-produit__attribut-variation__selecteurs">
<select
aria-labelledby="label-selecteur-variation"
id="selecteur-variation"
name="variations"
>
<option
disabled
selected
value=""
>
--
</option>
{% for variation in variations_produit %}
<option
data-prix="{{ variation.prix }}"
value="{{ variation.id }}"
>
{{ variation.titre }}
</option>
{% endfor %}
</select>
</div>
{% endif %}
#}
</div> </div>
<p class="selecteur-produit__prix">{{ maximum_price ?? product.price }}€</p> <p class="selecteur-produit__prix">{{ maximum_price ?? product.price }}€</p>
</form> </form>
</aside> </aside>
<aside aria-label="Product's details, shipping conditions and care tips" class="details-produit"> <aside
aria-label="Product's details, shipping conditions and care tips"
class="details-produit"
>
<div class="details-produit__textes"> <div class="details-produit__textes">
<section class="section-textuelle"> <section class="section-textuelle">
<h3 class="section-textuelle__titre"> <h3 class="section-textuelle__titre">
<button <button
aria-expanded="true" aria-controls="section-details-produit" aria-expanded="true"
aria-controls="section-details-produit"
type="button" type="button"
> >
Details Details
</button> </button>
</h3> </h3>
<div class="section-textuelle__contenu" id="section-details-produit"> <div
class="section-textuelle__contenu"
id="section-details-produit"
>
{{ product.details }} {{ product.details }}
</div> </div>
</section> </section>
@ -40,13 +86,17 @@
<section class="section-textuelle"> <section class="section-textuelle">
<h3 class="section-textuelle__titre"> <h3 class="section-textuelle__titre">
<button <button
aria-expanded="false" aria-controls="section-conditions-livraison" aria-expanded="false"
aria-controls="section-conditions-livraison"
type="button" type="button"
> >
Shipping Shipping
</button> </button>
</h3> </h3>
<div class="section-textuelle__contenu" id="section-conditions-livraison"> <div
class="section-textuelle__contenu"
id="section-conditions-livraison"
>
{{ descriptions_produits.texte_conditions_livraison }} {{ descriptions_produits.texte_conditions_livraison }}
</div> </div>
</section> </section>
@ -54,13 +104,17 @@
<section class="section-textuelle"> <section class="section-textuelle">
<h3 class="section-textuelle__titre"> <h3 class="section-textuelle__titre">
<button <button
aria-expanded="false" aria-controls="section-entretien-produit" aria-expanded="false"
aria-controls="section-entretien-produit"
type="button" type="button"
> >
Care Care
</button> </button>
</h3> </h3>
<div class="section-textuelle__contenu" id="section-entretien-produit"> <div
class="section-textuelle__contenu"
id="section-entretien-produit"
>
{{ descriptions_produits.texte_entretien_produit }} {{ descriptions_produits.texte_entretien_produit }}
</div> </div>
</section> </section>
@ -70,16 +124,21 @@
{# Désactive le bouton d'ajout au panier en cas d'absence de stock. #} {# Désactive le bouton d'ajout au panier en cas d'absence de stock. #}
{% if product.stock > 0 %} {% if product.stock > 0 %}
<button <button
class="bouton-case-pleine" disabled class="bouton-case-pleine"
data-in-stock for="variation-choice" disabled
id="bouton-ajout-panier" type="submit" data-in-stock
for="variation-choice"
id="bouton-ajout-panier"
type="submit"
> >
Add to cart Add to cart
</button> </button>
{% else %} {% else %}
<button <button
class="bouton-case-pleine" disabled class="bouton-case-pleine"
for="variation-choice" id="bouton-ajout-panier" disabled
for="variation-choice"
id="bouton-ajout-panier"
type="button" type="button"
> >
Out of stock Out of stock

View file

@ -1,7 +1,13 @@
<main class="photos-produit"> <main class="photos-produit">
<div aria-label="Photo of the Product alone" class="colonne colonne-gauche"> <div
aria-label="Photo of the Product alone"
class="colonne colonne-gauche"
>
{% for photo in product.left_column_photos %} {% for photo in product.left_column_photos %}
<figure data-index="0" role="figure"> <figure
data-index="0"
role="figure"
>
<picture> <picture>
{{ photo }} {{ photo }}
</picture> </picture>
@ -9,9 +15,15 @@
{% endfor %} {% endfor %}
</div> </div>
<div aria-label="Photos of the Product worn" class="colonne colonne-droite"> <div
aria-label="Photos of the Product worn"
class="colonne colonne-droite"
>
{% for photo in product.right_column_photos %} {% for photo in product.right_column_photos %}
<figure data-index="{{ loop.index }}" role="figure"> <figure
data-index="{{ loop.index }}"
role="figure"
>
<picture> <picture>
{{ photo }} {{ photo }}
</picture> </picture>

View file

@ -1,4 +1,7 @@
<section aria-label="Products in the same Collection" class="produits-similaires"> <section
aria-label="Products in the same Collection"
class="produits-similaires"
>
<header><h2>From the same Collection</h2></header> <header><h2>From the same Collection</h2></header>
{{ include('parts/pages/produit/grille-produits-similaires.twig') }} {{ include('parts/pages/produit/grille-produits-similaires.twig') }}

View file

@ -1,14 +1,20 @@
<div class="selecteur-produit__attribut-variation__selecteurs"> <div class="selecteur-produit__attribut-variation__selecteurs">
<label for="{{ attribut.slug }}" id="label-{{ attribut.slug }}"> <label
for="{{ attribut.slug }}"
id="label-{{ attribut.slug }}"
>
{{ attribut.name }}: {{ attribut.name }}:
</label> </label>
<select <select
aria-labelledby="label-{{ atribut.slug }}" id="{{ attribut.slug }}" aria-labelledby="label-{{ atribut.slug }}"
name="{{ attribut.slug }}" required id="{{ attribut.slug }}"
name="{{ attribut.slug }}"
required
> >
<option <option
disabled selected disabled
selected
value="" value=""
> >
-- --

View file

@ -1,5 +1,6 @@
<div <div
class="grille-produits" data-page="1" class="grille-produits"
data-page="1"
{% if category_id %}data-id-categorie-produits="{{ category_id }}"{% endif %} {% if category_id %}data-id-categorie-produits="{{ category_id }}"{% endif %}
> >
{% if products|length > 0 %} {% if products|length > 0 %}

View file

@ -1,7 +1,11 @@
<footer aria-label="Footer offering navigations links" id="pied-de-page"> <footer
aria-label="Footer offering navigations links"
id="pied-de-page"
>
<div class="zone-menu-navigation-secondaire"> <div class="zone-menu-navigation-secondaire">
<nav <nav
aria-label="Navigation for special pages" class="menu-navigation" aria-label="Navigation for special pages"
class="menu-navigation"
id="menu-navigation-secondaire" id="menu-navigation-secondaire"
> >
<ul> <ul>
@ -14,14 +18,18 @@
<div class="zone-liens-reseaux-sociaux"> <div class="zone-liens-reseaux-sociaux">
<nav <nav
aria-label="Navigation for Haiku Atelier's social links" class="menu-navigation" aria-label="Navigation for Haiku Atelier's social links"
class="menu-navigation"
id="liens-reseaux-sociaux" id="liens-reseaux-sociaux"
> >
<ul> <ul>
{% for lien in liens_reseaux_sociaux %} {% for lien in liens_reseaux_sociaux %}
{% if lien.url %} {% if lien.url %}
<li> <li>
<a href="{{ lien.url }}" target="_blank"> <a
href="{{ lien.url }}"
target="_blank"
>
{{ lien.nom }} {{ lien.nom }}
</a> </a>
</li> </li>

View file

@ -17,7 +17,10 @@
</p> </p>
<p> <p>
Don't hesitate to <a class="lien-lien" href="/contact">contact us</a> if you have any questions! Don't hesitate to <a
class="lien-lien"
href="/contact"
>contact us</a> if you have any questions!
</p> </p>
</div> </div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -2,6 +2,7 @@
{% block texte_supplementaire %} {% block texte_supplementaire %}
<p> <p>
Your order has been received and will be dispatched as soon as possible. You will be receive a tracking number once it has been sent. Your order has been received and will be dispatched as soon as possible. You will be receive a tracking number once
it has been sent.
</p> </p>
{% endblock %} {% endblock %}