diff --git a/manual/assets/js/src/demos/ascii.js b/manual/assets/js/src/demos/ascii.js new file mode 100644 index 000000000..940cb74c9 --- /dev/null +++ b/manual/assets/js/src/demos/ascii.js @@ -0,0 +1,155 @@ +import { + CubeTextureLoader, + FogExp2, + LoadingManager, + PerspectiveCamera, + Scene, + SRGBColorSpace, + WebGLRenderer +} from "three"; + +import { + ASCIIEffect, + ASCIITexture, + BlendFunction, + EffectComposer, + EffectPass, + RenderPass +} from "postprocessing"; + +import { Pane } from "tweakpane"; +import { SpatialControls } from "spatial-controls"; +import { calculateVerticalFoV, FPSMeter } from "../utils"; +import * as Domain from "../objects/Domain"; + +function load() { + + const assets = new Map(); + const loadingManager = new LoadingManager(); + const cubeTextureLoader = new CubeTextureLoader(loadingManager); + + const path = document.baseURI + "img/textures/skies/sunset/"; + const format = ".png"; + const urls = [ + path + "px" + format, path + "nx" + format, + path + "py" + format, path + "ny" + format, + path + "pz" + format, path + "nz" + format + ]; + + return new Promise((resolve, reject) => { + + loadingManager.onLoad = () => resolve(assets); + loadingManager.onError = (url) => reject(new Error(`Failed to load ${url}`)); + + cubeTextureLoader.load(urls, (t) => { + + t.colorSpace = SRGBColorSpace; + assets.set("sky", t); + + }); + + }); + +} + +window.addEventListener("load", () => load().then((assets) => { + + // Renderer + + const renderer = new WebGLRenderer({ + powerPreference: "high-performance", + antialias: false, + stencil: false, + depth: false + }); + + renderer.debug.checkShaderErrors = (window.location.hostname === "localhost"); + const container = document.querySelector(".viewport"); + container.prepend(renderer.domElement); + + // Camera & Controls + + const camera = new PerspectiveCamera(); + const controls = new SpatialControls(camera.position, camera.quaternion, renderer.domElement); + const settings = controls.settings; + settings.rotation.sensitivity = 2.2; + settings.rotation.damping = 0.05; + settings.translation.damping = 0.1; + controls.position.set(0, 10, 1); + controls.lookAt(0, 10, -1); + + // Scene, Lights, Objects + + const scene = new Scene(); + scene.fog = new FogExp2(0x373134, 0.06); + scene.background = assets.get("sky"); + scene.add(Domain.createLights()); + scene.add(Domain.createEnvironment(scene.background)); + scene.add(Domain.createActors(scene.background)); + + // Post Processing + + const composer = new EffectComposer(renderer, { + multisampling: Math.min(4, renderer.capabilities.maxSamples) + }); + + const effect = new ASCIIEffect({ + asciiTexture: new ASCIITexture({ + characters: " .:,'-^=*+?!|0#X%WM@", + font: "Arial", + fontSize: 54, + size: 1024, + maxCharsPerRow: 16 + }), + cellSize: 12, + inverted: false + }); + + composer.addPass(new RenderPass(scene, camera)); + composer.addPass(new EffectPass(camera, effect)); + + // Settings + + const params = { useSceneColor: true }; + + const fpsMeter = new FPSMeter(); + const pane = new Pane({ container: container.querySelector(".tp") }); + pane.addBinding(fpsMeter, "fps", { readonly: true, label: "FPS" }); + + const folder = pane.addFolder({ title: "Settings" }); + folder.addBinding(effect, "inverted"); + folder.addBinding(effect, "cellSize", { min: 2, max: 24, step: 2 }); + folder.addBinding(effect, "color", { color: { type: "float" } }); + folder.addBinding(params, "useSceneColor").on("change", + (e) => void (effect.color = e.value ? null : effect.color.getHex())); + + folder.addBinding(effect.blendMode.opacity, "value", { label: "opacity", min: 0, max: 1, step: 0.01 }); + folder.addBinding(effect.blendMode, "blendFunction", { options: BlendFunction }); + + // Resize Handler + + function onResize() { + + const width = container.clientWidth, height = container.clientHeight; + camera.aspect = width / height; + camera.fov = calculateVerticalFoV(90, Math.max(camera.aspect, 16 / 9)); + camera.updateProjectionMatrix(); + composer.setSize(width, height); + + } + + window.addEventListener("resize", onResize); + onResize(); + + // Render Loop + + requestAnimationFrame(function render(timestamp) { + + fpsMeter.update(timestamp); + controls.update(timestamp); + composer.render(); + requestAnimationFrame(render); + + }); + +})); diff --git a/manual/content/demos/special-effects/ascii.en.md b/manual/content/demos/special-effects/ascii.en.md new file mode 100644 index 000000000..5755d809a --- /dev/null +++ b/manual/content/demos/special-effects/ascii.en.md @@ -0,0 +1,15 @@ +--- +layout: single +collection: sections +title: ASCII +draft: false +menu: + demos: + parent: special-effects + weight: 9 +script: ascii +--- + +# ASCII + +### External Resources diff --git a/package.json b/package.json index 83298901c..faa773978 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postprocessing", - "version": "6.36.7", + "version": "6.37.0", "description": "A post processing library for three.js.", "homepage": "https://github.com/pmndrs/postprocessing", "license": "Zlib", @@ -58,6 +58,7 @@ "pnpm": { "onlyBuiltDependencies": [ "@parcel/watcher", + "core-js", "esbuild", "hugo-bin" ] @@ -88,7 +89,7 @@ "watch:js": "node esbuild -w" }, "peerDependencies": { - "three": ">= 0.157.0 < 0.174.0" + "three": ">= 0.157.0 < 0.175.0" }, "devDependencies": { "@tweakpane/core": "2.x.x", @@ -101,7 +102,7 @@ "cssnano": "7.x.x", "dat.gui": "0.x.x", "del-cli": "6.x.x", - "esbuild": "0.24.x", + "esbuild": "0.25.x", "esbuild-plugin-glsl": "1.x.x", "esdoc": "1.x.x", "esdoc-importpath-plugin": "1.x.x", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b51130704..eec725009 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,16 +13,16 @@ importers: version: 2.0.5 '@types/three': specifier: 0.x.x - version: 0.173.0 + version: 0.174.0 '@typescript-eslint/eslint-plugin': specifier: 8.x.x - version: 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) + version: 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3) '@typescript-eslint/parser': specifier: 8.x.x - version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + version: 8.25.0(eslint@9.21.0)(typescript@5.7.3) autoprefixer: specifier: 10.x.x - version: 10.4.20(postcss@8.5.1) + version: 10.4.20(postcss@8.5.3) ava: specifier: 6.x.x version: 6.2.0 @@ -31,7 +31,7 @@ importers: version: 5.0.0 cssnano: specifier: 7.x.x - version: 7.0.6(postcss@8.5.1) + version: 7.0.6(postcss@8.5.3) dat.gui: specifier: 0.x.x version: 0.7.9 @@ -39,11 +39,11 @@ importers: specifier: 6.x.x version: 6.0.0 esbuild: - specifier: 0.24.x - version: 0.24.2 + specifier: 0.25.x + version: 0.25.0 esbuild-plugin-glsl: specifier: 1.x.x - version: 1.2.2(esbuild@0.24.2) + version: 1.2.2(esbuild@0.25.0) esdoc: specifier: 1.x.x version: 1.1.0 @@ -55,49 +55,49 @@ importers: version: 1.0.0 eslint: specifier: 9.x.x - version: 9.19.0 + version: 9.21.0 eslint-config-aether: specifier: 2.x.x - version: 2.0.2(eslint@9.19.0)(typescript@5.7.3) + version: 2.0.2(eslint@9.21.0)(typescript@5.7.3) gzipper: specifier: 8.x.x version: 8.2.0 hugo-bin: specifier: 0.x.x - version: 0.140.1 + version: 0.142.0 npm-run-all: specifier: 4.x.x version: 4.1.5 postcss: specifier: 8.x.x - version: 8.5.1 + version: 8.5.3 postcss-cli: specifier: 11.x.x - version: 11.0.0(postcss@8.5.1) + version: 11.0.0(postcss@8.5.3) postcss-preset-env: specifier: 10.x.x - version: 10.1.3(postcss@8.5.1) + version: 10.1.5(postcss@8.5.3) sass: specifier: 1.x.x - version: 1.84.0 + version: 1.85.1 spatial-controls: specifier: 6.x.x - version: 6.1.2(three@0.173.0) + version: 6.1.2(three@0.174.0) stylelint: specifier: 16.x.x - version: 16.14.1(typescript@5.7.3) + version: 16.15.0(typescript@5.7.3) stylelint-config-standard-scss: specifier: 14.x.x - version: 14.0.0(postcss@8.5.1)(stylelint@16.14.1(typescript@5.7.3)) + version: 14.0.0(postcss@8.5.3)(stylelint@16.15.0(typescript@5.7.3)) stylelint-order: specifier: 6.x.x - version: 6.0.4(stylelint@16.14.1(typescript@5.7.3)) + version: 6.0.4(stylelint@16.15.0(typescript@5.7.3)) three: specifier: 0.x.x - version: 0.173.0 + version: 0.174.0 three-demo: specifier: 5.x.x - version: 5.1.3(dat.gui@0.7.9)(three@0.173.0) + version: 5.1.3(dat.gui@0.7.9)(three@0.174.0) tiny-glob: specifier: 0.x.x version: 0.2.9 @@ -128,19 +128,19 @@ packages: '@csstools/css-parser-algorithms': ^3.0.4 '@csstools/css-tokenizer': ^3.0.3 - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.1': - resolution: {integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==} + '@csstools/css-calc@2.1.2': + resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-color-parser@3.0.7': - resolution: {integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==} + '@csstools/css-color-parser@3.0.8': + resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.4 @@ -169,14 +169,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.7': - resolution: {integrity: sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==} + '@csstools/postcss-color-function@4.0.8': + resolution: {integrity: sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.7': - resolution: {integrity: sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==} + '@csstools/postcss-color-mix-function@3.0.8': + resolution: {integrity: sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -187,8 +187,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.6': - resolution: {integrity: sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==} + '@csstools/postcss-exponential-functions@2.0.7': + resolution: {integrity: sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -199,20 +199,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.7': - resolution: {integrity: sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==} + '@csstools/postcss-gamut-mapping@2.0.8': + resolution: {integrity: sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.7': - resolution: {integrity: sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==} + '@csstools/postcss-gradients-interpolation-method@5.0.8': + resolution: {integrity: sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.7': - resolution: {integrity: sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==} + '@csstools/postcss-hwb-function@4.0.8': + resolution: {integrity: sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -223,8 +223,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-initial@2.0.0': - resolution: {integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==} + '@csstools/postcss-initial@2.0.1': + resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -271,8 +271,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.6': - resolution: {integrity: sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==} + '@csstools/postcss-media-minmax@2.0.7': + resolution: {integrity: sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -295,8 +295,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.7': - resolution: {integrity: sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==} + '@csstools/postcss-oklab-function@4.0.8': + resolution: {integrity: sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -307,14 +307,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-random-function@1.0.2': - resolution: {integrity: sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==} + '@csstools/postcss-random-function@1.0.3': + resolution: {integrity: sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.7': - resolution: {integrity: sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==} + '@csstools/postcss-relative-color-syntax@3.0.8': + resolution: {integrity: sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -325,26 +325,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-sign-functions@1.1.1': - resolution: {integrity: sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==} + '@csstools/postcss-sign-functions@1.1.2': + resolution: {integrity: sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.6': - resolution: {integrity: sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==} + '@csstools/postcss-stepped-value-functions@4.0.7': + resolution: {integrity: sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.1': - resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} + '@csstools/postcss-text-decoration-shorthand@4.0.2': + resolution: {integrity: sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.6': - resolution: {integrity: sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==} + '@csstools/postcss-trigonometric-functions@4.0.7': + resolution: {integrity: sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -376,152 +376,152 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -540,24 +540,24 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.19.0': - resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + '@eslint/js@9.21.0': + resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@gfx/zopfli@1.0.15': @@ -580,8 +580,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} '@isaacs/cliui@8.0.2': @@ -592,8 +592,8 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@keyv/serialize@1.0.2': - resolution: {integrity: sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==} + '@keyv/serialize@1.0.3': + resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} '@mapbox/node-pre-gyp@2.0.0': resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} @@ -750,63 +750,63 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.13.1': - resolution: {integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==} + '@types/node@22.13.8': + resolution: {integrity: sha512-G3EfaZS+iOGYWLLRCEAXdWK9my08oHNZ+FHluRiggIYJPOXzhOiDgpVCUHaUvyIC5/fj7C/p637jdzC666AOKQ==} '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - '@types/three@0.173.0': - resolution: {integrity: sha512-KtNjfI/CRB6JVKIVeZM1R3GYDX2wkoV2itNcQu2j4d7qkhjGOuB+s2oF6jl9mztycDLGMtrAnJQYxInC8Bb20A==} + '@types/three@0.174.0': + resolution: {integrity: sha512-De/+vZnfg2aVWNiuy1Ldu+n2ydgw1osinmiZTAn0necE++eOfsygL8JpZgFjR2uHmAPo89MkxBj3JJ+2BMe+Uw==} '@types/webxr@0.5.21': resolution: {integrity: sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA==} - '@typescript-eslint/eslint-plugin@8.23.0': - resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + '@typescript-eslint/eslint-plugin@8.25.0': + resolution: {integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.23.0': - resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + '@typescript-eslint/parser@8.25.0': + resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.23.0': - resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + '@typescript-eslint/scope-manager@8.25.0': + resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.23.0': - resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + '@typescript-eslint/type-utils@8.25.0': + resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.23.0': - resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + '@typescript-eslint/types@8.25.0': + resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.23.0': - resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + '@typescript-eslint/typescript-estree@8.25.0': + resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.23.0': - resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + '@typescript-eslint/utils@8.25.0': + resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.23.0': - resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + '@typescript-eslint/visitor-keys@8.25.0': + resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vercel/nft@0.27.10': @@ -1121,8 +1121,8 @@ packages: cacheable@1.8.8: resolution: {integrity: sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} call-bind@1.0.8: @@ -1144,8 +1144,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001697: - resolution: {integrity: sha512-GwNPlWJin8E+d7Gxq96jxM6w0w+VFeyyXRsjU58emtkYqnbwHqXm5uT2uCmO0RQE9htWknOP4xtBlLmM/gWxvQ==} + caniuse-lite@1.0.30001701: + resolution: {integrity: sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -1562,8 +1562,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.93: - resolution: {integrity: sha512-M+29jTcfNNoR9NV7la4SwUqzWAxEwnc7ThA5e1m6LRSotmpfpCpLcIfgtSCVL+MllNLgAyM/5ru86iMRemPzDQ==} + electron-to-chromium@1.5.109: + resolution: {integrity: sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==} emittery@1.1.0: resolution: {integrity: sha512-rsX7ktqARv/6UQDgMaLfIqUWAEzzbCQiVh7V9rhDXp6c37yoJcks12NVD+XPkgl4AEavmNhVfrhGoqYwIsMYYA==} @@ -1628,8 +1628,8 @@ packages: peerDependencies: esbuild: 0.x.x - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} hasBin: true @@ -1735,8 +1735,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.21.0: + resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1822,8 +1822,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -1858,8 +1858,8 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} engines: {node: '>=18'} find-up@5.0.0: @@ -1877,15 +1877,15 @@ packages: flat-cache@6.1.6: resolution: {integrity: sha512-F+CKgSwp0pzLx67u+Zy1aCueVWFAHWbXepvXlZ+bWVTaASbm5SyCnSJ80Fp1ePEmS57wU+Bf6cx6525qtMZ4lQ==} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - for-each@0.3.4: - resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} forever-agent@0.6.1: @@ -1938,8 +1938,8 @@ packages: resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} get-proto@1.0.1: @@ -1997,8 +1997,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} globals@9.18.0: @@ -2020,8 +2020,8 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} engines: {node: '>=18'} globjoin@0.1.4: @@ -2093,8 +2093,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hookified@1.7.0: - resolution: {integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==} + hookified@1.7.1: + resolution: {integrity: sha512-OXcdHsXeOiD7OJ5zvWj8Oy/6RCdLwntAX+wUrfemNcMGn6sux4xbEHi2QXwqePYhjQ/yvxxq2MvCRirdlHscBw==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -2124,8 +2124,8 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - hugo-bin@0.140.1: - resolution: {integrity: sha512-b8USeQg0GieW9oD4lpQJkqZ6cVMJenItSjLtiB6pWZhwdGOrnhQ+zDpXpxfrXcANZ6k2mKe92cnluoV61xH8uQ==} + hugo-bin@0.142.0: + resolution: {integrity: sha512-i3ar9xmBbeMf0Q5tXrkCM3fARWN8BWV99tOq+b63C7EZd7a0aD5SOzDAWGi0pGxy583oKc/tS0VQSS3QWUI0fA==} engines: {node: '>=18'} hasBin: true @@ -2432,8 +2432,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.2.3: - resolution: {integrity: sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==} + keyv@5.3.0: + resolution: {integrity: sha512-XMBcWGBqH1j04AzjzdIulcsAKr5MaGlYC/N2PLyxdwTrEqVhQnuEIP5h1TPpa5UUcPOH1yVJ+xvhYJ2QAEv94w==} kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -2565,11 +2565,11 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.15.0: - resolution: {integrity: sha512-KIrS0lFPOqA4DgeO16vI5fkAsy8p++WBlbXtB5P1EQs8ubBgguAInNd1DnrCeTRfGchY0kgThgDOOIPyOLH2dQ==} + mdn-data@2.17.0: + resolution: {integrity: sha512-VT5LJBdLRI+cc3DPXJD89PGwI8yXuciE5gZJoSPnH4yeGzMPqxwkZv3BjFSoaWpmOlJNBhVT6HKeQPcZKlNEvA==} - memoize@10.0.0: - resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} + memoize@10.1.0: + resolution: {integrity: sha512-MMbFhJzh4Jlg/poq1si90XRlTZRDHVqdlz2mPyGJ6kqMpyHUyVpDd5gpFAvVehW64+RA1eKE9Yt8aSLY7w2Kgg==} engines: {node: '>=18'} memorystream@0.3.1: @@ -2863,9 +2863,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} peek-readable@5.4.2: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} @@ -2908,8 +2908,8 @@ packages: resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} postcss-attribute-case-insensitive@7.0.1: @@ -2937,8 +2937,8 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-color-functional-notation@7.0.7: - resolution: {integrity: sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==} + postcss-color-functional-notation@7.0.8: + resolution: {integrity: sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3050,8 +3050,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-lab-function@7.0.7: - resolution: {integrity: sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==} + postcss-lab-function@7.0.8: + resolution: {integrity: sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3071,8 +3071,8 @@ packages: tsx: optional: true - postcss-logical@8.0.0: - resolution: {integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==} + postcss-logical@8.1.0: + resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3205,8 +3205,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.3: - resolution: {integrity: sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==} + postcss-preset-env@10.1.5: + resolution: {integrity: sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3265,8 +3265,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-sorting@8.0.2: @@ -3289,8 +3289,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.1: - resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.1.2: @@ -3354,8 +3354,8 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - readdirp@4.1.1: - resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} reflect.getprototypeof@1.0.10: @@ -3415,8 +3415,8 @@ packages: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rimraf@5.0.10: @@ -3447,8 +3447,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.84.0: - resolution: {integrity: sha512-XDAbhEPJRxi7H0SxrnOpiXFQoUJHwkR2u3Zc4el+fK/Tt5Hpzw5kkQ59qVDfvdaUq6gCrEZIbySFBM2T9DNKHg==} + sass@1.85.1: + resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==} engines: {node: '>=14.0.0'} hasBin: true @@ -3725,14 +3725,14 @@ packages: peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 - stylelint-scss@6.11.0: - resolution: {integrity: sha512-AvJ6LVzz2iXHxPlPTR9WVy73FC/vmohH54VySNlCKX1NIXNAeuzy/VbIkMJLMyw/xKYqkgY4kAgB+qy5BfCaCg==} + stylelint-scss@6.11.1: + resolution: {integrity: sha512-e4rYo0UY+BIMtGeGanghrvHTjcryxgZbyFxUedp8dLFqC4P70aawNdYjRrQxbnKhu3BNr4+lt5e/53tcKXiwFA==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 - stylelint@16.14.1: - resolution: {integrity: sha512-oqCL7AC3786oTax35T/nuLL8p2C3k/8rHKAooezrPGRvUX0wX+qqs5kMWh5YYT4PHQgVDobHT4tw55WgpYG6Sw==} + stylelint@16.15.0: + resolution: {integrity: sha512-OK6Rs7EPdcdmjqiDycadZY4fw3f5/TC1X6/tGjnF3OosbwCeNs7nG+79MCAtjEg7ckwqTJTsku08e0Rmaz5nUw==} engines: {node: '>=18.12.0'} hasBin: true @@ -3805,8 +3805,8 @@ packages: dat.gui: 0.x.x three: 0.x.x - three@0.173.0: - resolution: {integrity: sha512-AUwVmViIEUgBwxJJ7stnF0NkPpZxx1aZ6WiAbQ/Qq61h6I9UR4grXtZDmO8mnlaNORhHnIBlXJ1uBxILEKuVyw==} + three@0.174.0: + resolution: {integrity: sha512-p+WG3W6Ov74alh3geCMkGK9NWuT62ee21cV3jEnun201zodVF4tCE5aZa2U122/mkLRmhJJUQmLLW1BH00uQJQ==} through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -3912,8 +3912,8 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} universalify@0.1.2: @@ -3924,8 +3924,8 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4063,17 +4063,17 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/color-helpers@5.0.1': {} + '@csstools/color-helpers@5.0.2': {} - '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 @@ -4088,308 +4088,308 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.1)': + '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.3)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-color-function@4.0.7(postcss@8.5.1)': + '@csstools/postcss-color-function@4.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-color-mix-function@3.0.7(postcss@8.5.1)': + '@csstools/postcss-color-mix-function@3.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.1)': + '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-exponential-functions@2.0.6(postcss@8.5.1)': + '@csstools/postcss-exponential-functions@2.0.7(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.1)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.3)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.7(postcss@8.5.1)': + '@csstools/postcss-gamut-mapping@2.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.5.1)': + '@csstools/postcss-gradients-interpolation-method@5.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-hwb-function@4.0.7(postcss@8.5.1)': + '@csstools/postcss-hwb-function@4.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.1)': + '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.3)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.0(postcss@8.5.1)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.1)': + '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.3)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.1)': + '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.1)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.1)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.1)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.1)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.1)': + '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.3)': dependencies: '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-media-minmax@2.0.6(postcss@8.5.1)': + '@csstools/postcss-media-minmax@2.0.7(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.1)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.3)': dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.1)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.3)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.1)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.7(postcss@8.5.1)': + '@csstools/postcss-oklab-function@4.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.1)': + '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@1.0.2(postcss@8.5.1)': + '@csstools/postcss-random-function@1.0.3(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.5.1)': + '@csstools/postcss-relative-color-syntax@3.0.8(postcss@8.5.3)': dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.1)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.3)': dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-sign-functions@1.1.1(postcss@8.5.1)': + '@csstools/postcss-sign-functions@1.1.2(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.5.1)': + '@csstools/postcss-stepped-value-functions@4.0.7(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.5.1)': + '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.3)': dependencies: - '@csstools/color-helpers': 5.0.1 - postcss: 8.5.1 + '@csstools/color-helpers': 5.0.2 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.5.1)': + '@csstools/postcss-trigonometric-functions@4.0.7(postcss@8.5.3)': dependencies: - '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.1)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)': + '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.0.0)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 - '@csstools/utilities@2.0.0(postcss@8.5.1)': + '@csstools/utilities@2.0.0(postcss@8.5.3)': dependencies: - postcss: 8.5.1 + postcss: 8.5.3 '@dual-bundle/import-meta-resolve@4.1.0': {} - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.0': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.0': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.0': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.0': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.0': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.0': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.0': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.0': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.0': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.0': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.0': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.0': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.0': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.0': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.0': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.0': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.0': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@esbuild/netbsd-arm64@0.25.0': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@esbuild/netbsd-x64@0.25.0': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.25.0': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.0': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.0': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.0': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.0': optional: true - '@esbuild/win32-x64@0.24.2': + '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0)': dependencies: - eslint: 9.19.0 + eslint: 9.21.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -4402,11 +4402,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.0': dependencies: ajv: 6.12.6 debug: 4.4.0 @@ -4420,13 +4420,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.19.0': {} + '@eslint/js@9.21.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.7': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.12.0 levn: 0.4.1 '@gfx/zopfli@1.0.15': @@ -4444,7 +4444,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.2': {} '@isaacs/cliui@8.0.2': dependencies: @@ -4459,7 +4459,7 @@ snapshots: dependencies: minipass: 7.1.2 - '@keyv/serialize@1.0.2': + '@keyv/serialize@1.0.3': dependencies: buffer: 6.0.3 @@ -4486,7 +4486,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 + fastq: 1.19.1 '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -4564,10 +4564,10 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} - '@stylistic/eslint-plugin@2.13.0(eslint@9.19.0)(typescript@5.7.3)': + '@stylistic/eslint-plugin@2.13.0(eslint@9.21.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + eslint: 9.21.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -4594,13 +4594,13 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.13.1': + '@types/node@22.13.8': dependencies: undici-types: 6.20.0 '@types/stats.js@0.17.3': {} - '@types/three@0.173.0': + '@types/three@0.174.0': dependencies: '@tweenjs/tween.js': 23.1.3 '@types/stats.js': 0.17.3 @@ -4611,15 +4611,15 @@ snapshots: '@types/webxr@0.5.21': {} - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0 + '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.25.0 + '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.25.0 + eslint: 9.21.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -4628,40 +4628,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 + '@typescript-eslint/scope-manager': 8.25.0 + '@typescript-eslint/types': 8.25.0 + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.25.0 debug: 4.4.0 - eslint: 9.19.0 + eslint: 9.21.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.23.0': + '@typescript-eslint/scope-manager@8.25.0': dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 + '@typescript-eslint/types': 8.25.0 + '@typescript-eslint/visitor-keys': 8.25.0 - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) debug: 4.4.0 - eslint: 9.19.0 + eslint: 9.21.0 ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.23.0': {} + '@typescript-eslint/types@8.25.0': {} - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 + '@typescript-eslint/types': 8.25.0 + '@typescript-eslint/visitor-keys': 8.25.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -4672,20 +4672,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.25.0(eslint@9.21.0)(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0) + '@typescript-eslint/scope-manager': 8.25.0 + '@typescript-eslint/types': 8.25.0 + '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) + eslint: 9.21.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.23.0': + '@typescript-eslint/visitor-keys@8.25.0': dependencies: - '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/types': 8.25.0 eslint-visitor-keys: 4.2.0 '@vercel/nft@0.27.10': @@ -4872,7 +4872,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 arrgv@1.0.2: {} @@ -4896,14 +4896,14 @@ snapshots: asynckit@0.4.0: optional: true - autoprefixer@10.4.20(postcss@8.5.1): + autoprefixer@10.4.20(postcss@8.5.3): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001697 + caniuse-lite: 1.0.30001701 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 ava@6.2.0: @@ -4928,13 +4928,13 @@ snapshots: debug: 4.4.0 emittery: 1.1.0 figures: 6.1.0 - globby: 14.0.2 + globby: 14.1.0 ignore-by-default: 2.1.0 indent-string: 5.0.0 is-plain-object: 5.0.0 is-promise: 4.0.0 matcher: 5.0.0 - memoize: 10.0.0 + memoize: 10.1.0 ms: 2.1.3 p-map: 7.0.3 package-config: 5.0.0 @@ -4955,7 +4955,7 @@ snapshots: available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 aws-sign2@0.7.0: optional: true @@ -5073,10 +5073,10 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001697 - electron-to-chromium: 1.5.93 + caniuse-lite: 1.0.30001701 + electron-to-chromium: 1.5.109 node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) + update-browserslist-db: 1.1.3(browserslist@4.24.4) buffer-crc32@0.2.13: {} @@ -5106,25 +5106,25 @@ snapshots: cacheable@1.8.8: dependencies: - hookified: 1.7.0 - keyv: 5.2.3 + hookified: 1.7.1 + keyv: 5.3.0 - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 callsites@3.1.0: {} @@ -5133,11 +5133,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001697 + caniuse-lite: 1.0.30001701 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001697: {} + caniuse-lite@1.0.30001701: {} caseless@0.12.0: optional: true @@ -5219,7 +5219,7 @@ snapshots: chokidar@4.0.3: dependencies: - readdirp: 4.1.1 + readdirp: 4.1.2 chownr@3.0.0: {} @@ -5352,27 +5352,27 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-blank-pseudo@7.0.1(postcss@8.5.1): + css-blank-pseudo@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - css-declaration-sorter@7.2.0(postcss@8.5.1): + css-declaration-sorter@7.2.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 css-functions-list@3.2.3: {} - css-has-pseudo@7.0.2(postcss@8.5.1): + css-has-pseudo@7.0.2(postcss@8.5.3): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.5.1): + css-prefers-color-scheme@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 css-select@1.2.0: dependencies: @@ -5412,49 +5412,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.6(postcss@8.5.1): + cssnano-preset-default@7.0.6(postcss@8.5.3): dependencies: browserslist: 4.24.4 - css-declaration-sorter: 7.2.0(postcss@8.5.1) - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-calc: 10.1.1(postcss@8.5.1) - postcss-colormin: 7.0.2(postcss@8.5.1) - postcss-convert-values: 7.0.4(postcss@8.5.1) - postcss-discard-comments: 7.0.3(postcss@8.5.1) - postcss-discard-duplicates: 7.0.1(postcss@8.5.1) - postcss-discard-empty: 7.0.0(postcss@8.5.1) - postcss-discard-overridden: 7.0.0(postcss@8.5.1) - postcss-merge-longhand: 7.0.4(postcss@8.5.1) - postcss-merge-rules: 7.0.4(postcss@8.5.1) - postcss-minify-font-values: 7.0.0(postcss@8.5.1) - postcss-minify-gradients: 7.0.0(postcss@8.5.1) - postcss-minify-params: 7.0.2(postcss@8.5.1) - postcss-minify-selectors: 7.0.4(postcss@8.5.1) - postcss-normalize-charset: 7.0.0(postcss@8.5.1) - postcss-normalize-display-values: 7.0.0(postcss@8.5.1) - postcss-normalize-positions: 7.0.0(postcss@8.5.1) - postcss-normalize-repeat-style: 7.0.0(postcss@8.5.1) - postcss-normalize-string: 7.0.0(postcss@8.5.1) - postcss-normalize-timing-functions: 7.0.0(postcss@8.5.1) - postcss-normalize-unicode: 7.0.2(postcss@8.5.1) - postcss-normalize-url: 7.0.0(postcss@8.5.1) - postcss-normalize-whitespace: 7.0.0(postcss@8.5.1) - postcss-ordered-values: 7.0.1(postcss@8.5.1) - postcss-reduce-initial: 7.0.2(postcss@8.5.1) - postcss-reduce-transforms: 7.0.0(postcss@8.5.1) - postcss-svgo: 7.0.1(postcss@8.5.1) - postcss-unique-selectors: 7.0.3(postcss@8.5.1) - - cssnano-utils@5.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - cssnano@7.0.6(postcss@8.5.1): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.5.1) + css-declaration-sorter: 7.2.0(postcss@8.5.3) + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-calc: 10.1.1(postcss@8.5.3) + postcss-colormin: 7.0.2(postcss@8.5.3) + postcss-convert-values: 7.0.4(postcss@8.5.3) + postcss-discard-comments: 7.0.3(postcss@8.5.3) + postcss-discard-duplicates: 7.0.1(postcss@8.5.3) + postcss-discard-empty: 7.0.0(postcss@8.5.3) + postcss-discard-overridden: 7.0.0(postcss@8.5.3) + postcss-merge-longhand: 7.0.4(postcss@8.5.3) + postcss-merge-rules: 7.0.4(postcss@8.5.3) + postcss-minify-font-values: 7.0.0(postcss@8.5.3) + postcss-minify-gradients: 7.0.0(postcss@8.5.3) + postcss-minify-params: 7.0.2(postcss@8.5.3) + postcss-minify-selectors: 7.0.4(postcss@8.5.3) + postcss-normalize-charset: 7.0.0(postcss@8.5.3) + postcss-normalize-display-values: 7.0.0(postcss@8.5.3) + postcss-normalize-positions: 7.0.0(postcss@8.5.3) + postcss-normalize-repeat-style: 7.0.0(postcss@8.5.3) + postcss-normalize-string: 7.0.0(postcss@8.5.3) + postcss-normalize-timing-functions: 7.0.0(postcss@8.5.3) + postcss-normalize-unicode: 7.0.2(postcss@8.5.3) + postcss-normalize-url: 7.0.0(postcss@8.5.3) + postcss-normalize-whitespace: 7.0.0(postcss@8.5.3) + postcss-ordered-values: 7.0.1(postcss@8.5.3) + postcss-reduce-initial: 7.0.2(postcss@8.5.3) + postcss-reduce-transforms: 7.0.0(postcss@8.5.3) + postcss-svgo: 7.0.1(postcss@8.5.3) + postcss-unique-selectors: 7.0.3(postcss@8.5.3) + + cssnano-utils@5.0.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + + cssnano@7.0.6(postcss@8.5.3): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.5.3) lilconfig: 3.1.3 - postcss: 8.5.1 + postcss: 8.5.3 csso@5.0.5: dependencies: @@ -5538,7 +5538,7 @@ snapshots: del@8.0.0: dependencies: - globby: 14.0.2 + globby: 14.1.0 is-glob: 4.0.3 is-path-cwd: 3.0.0 is-path-inside: 4.0.0 @@ -5614,7 +5614,7 @@ snapshots: dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 @@ -5635,7 +5635,7 @@ snapshots: safer-buffer: 2.1.2 optional: true - electron-to-chromium@1.5.93: {} + electron-to-chromium@1.5.109: {} emittery@1.1.0: {} @@ -5677,7 +5677,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -5726,7 +5726,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -5736,37 +5736,37 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-plugin-glsl@1.2.2(esbuild@0.24.2): + esbuild-plugin-glsl@1.2.2(esbuild@0.25.0): dependencies: - esbuild: 0.24.2 + esbuild: 0.25.0 - esbuild@0.24.2: + esbuild@0.25.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 escalade@3.2.0: {} @@ -5856,13 +5856,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-config-aether@2.0.2(eslint@9.19.0)(typescript@5.7.3): + eslint-config-aether@2.0.2(eslint@9.21.0)(typescript@5.7.3): dependencies: - '@stylistic/eslint-plugin': 2.13.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 - globals: 15.14.0 + '@stylistic/eslint-plugin': 2.13.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + eslint: 9.21.0 + globals: 15.15.0 transitivePeerDependencies: - supports-color - typescript @@ -5876,18 +5876,18 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.19.0: + eslint@9.21.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.21.0 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -5989,9 +5989,9 @@ snapshots: fastest-levenshtein@1.0.16: {} - fastq@1.19.0: + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fflate@0.8.2: {} @@ -6026,7 +6026,7 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-up-simple@1.0.0: {} + find-up-simple@1.0.1: {} find-up@5.0.0: dependencies: @@ -6039,22 +6039,22 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 flat-cache@6.1.6: dependencies: cacheable: 1.8.8 - flatted: 3.3.2 - hookified: 1.7.0 + flatted: 3.3.3 + hookified: 1.7.1 - flatted@3.3.2: {} + flatted@3.3.3: {} - for-each@0.3.4: + for-each@0.3.5: dependencies: is-callable: 1.2.7 - foreground-child@3.3.0: + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 @@ -6113,9 +6113,9 @@ snapshots: get-east-asian-width@1.3.0: {} - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -6146,7 +6146,7 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 getpass@0.1.7: dependencies: @@ -6163,7 +6163,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -6191,7 +6191,7 @@ snapshots: globals@14.0.0: {} - globals@15.14.0: {} + globals@15.15.0: {} globals@9.18.0: {} @@ -6219,14 +6219,14 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 - globby@14.0.2: + globby@14.1.0: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.3 - ignore: 5.3.2 - path-type: 5.0.0 + ignore: 7.0.3 + path-type: 6.0.0 slash: 5.1.0 - unicorn-magic: 0.1.0 + unicorn-magic: 0.3.0 globjoin@0.1.4: {} @@ -6295,7 +6295,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hookified@1.7.0: {} + hookified@1.7.1: {} hosted-git-info@2.8.9: {} @@ -6339,7 +6339,7 @@ snapshots: transitivePeerDependencies: - supports-color - hugo-bin@0.140.1: + hugo-bin@0.142.0: dependencies: '@xhmikosr/bin-wrapper': 13.0.5 package-config: 5.0.0 @@ -6399,7 +6399,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} @@ -6433,7 +6433,7 @@ snapshots: is-data-view@1.0.2: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -6529,7 +6529,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-zst@1.0.0: {} @@ -6635,9 +6635,9 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.2.3: + keyv@5.3.0: dependencies: - '@keyv/serialize': 1.0.2 + '@keyv/serialize': 1.0.3 kind-of@6.0.3: {} @@ -6739,9 +6739,9 @@ snapshots: mdn-data@2.12.2: {} - mdn-data@2.15.0: {} + mdn-data@2.17.0: {} - memoize@10.0.0: + memoize@10.1.0: dependencies: mimic-function: 5.0.1 @@ -6915,7 +6915,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -6949,7 +6949,7 @@ snapshots: package-config@5.0.0: dependencies: - find-up-simple: 1.0.0 + find-up-simple: 1.0.1 load-json-file: 7.0.1 package-json-from-dist@1.0.1: {} @@ -6977,7 +6977,7 @@ snapshots: parse5@3.0.3: dependencies: - '@types/node': 22.13.1 + '@types/node': 22.13.8 path-exists@4.0.0: {} @@ -7000,7 +7000,7 @@ snapshots: path-type@4.0.0: {} - path-type@5.0.0: {} + path-type@6.0.0: {} peek-readable@5.4.2: {} @@ -7031,35 +7031,35 @@ snapshots: dependencies: irregular-plurals: 3.5.0 - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.1): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-calc@10.1.1(postcss@8.5.1): + postcss-calc@10.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.5.1): + postcss-clamp@4.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-cli@11.0.0(postcss@8.5.1): + postcss-cli@11.0.0(postcss@8.5.3): dependencies: chokidar: 3.6.0 dependency-graph: 0.11.0 fs-extra: 11.3.0 get-stdin: 9.0.0 - globby: 14.0.2 + globby: 14.1.0 picocolors: 1.1.1 - postcss: 8.5.1 - postcss-load-config: 5.1.0(postcss@8.5.1) - postcss-reporter: 7.1.0(postcss@8.5.1) + postcss: 8.5.3 + postcss-load-config: 5.1.0(postcss@8.5.3) + postcss-reporter: 7.1.0(postcss@8.5.3) pretty-hrtime: 1.0.3 read-cache: 1.0.0 slash: 5.1.0 @@ -7068,393 +7068,393 @@ snapshots: - jiti - tsx - postcss-color-functional-notation@7.0.7(postcss@8.5.1): + postcss-color-functional-notation@7.0.8(postcss@8.5.3): dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-color-hex-alpha@10.0.0(postcss@8.5.1): + postcss-color-hex-alpha@10.0.0(postcss@8.5.3): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.1): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.3): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.5.1): + postcss-colormin@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.5.1): + postcss-convert-values@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.5(postcss@8.5.1): + postcss-custom-media@11.0.5(postcss@8.5.3): dependencies: '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.1 + postcss: 8.5.3 - postcss-custom-properties@14.0.4(postcss@8.5.1): + postcss-custom-properties@14.0.4(postcss@8.5.3): dependencies: '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.4(postcss@8.5.1): + postcss-custom-selectors@8.0.4(postcss@8.5.3): dependencies: '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.1): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-discard-comments@7.0.3(postcss@8.5.1): + postcss-discard-comments@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@7.0.1(postcss@8.5.1): + postcss-discard-duplicates@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-discard-empty@7.0.0(postcss@8.5.1): + postcss-discard-empty@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-discard-overridden@7.0.0(postcss@8.5.1): + postcss-discard-overridden@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-double-position-gradients@6.0.0(postcss@8.5.1): + postcss-double-position-gradients@6.0.0(postcss@8.5.3): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.5.1): + postcss-focus-visible@10.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-focus-within@9.0.1(postcss@8.5.1): + postcss-focus-within@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-font-variant@5.0.0(postcss@8.5.1): + postcss-font-variant@5.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-gap-properties@6.0.0(postcss@8.5.1): + postcss-gap-properties@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-image-set-function@7.0.0(postcss@8.5.1): + postcss-image-set-function@7.0.0(postcss@8.5.3): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-lab-function@7.0.7(postcss@8.5.1): + postcss-lab-function@7.0.8(postcss@8.5.3): dependencies: - '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/utilities': 2.0.0(postcss@8.5.1) - postcss: 8.5.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/utilities': 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-load-config@5.1.0(postcss@8.5.1): + postcss-load-config@5.1.0(postcss@8.5.3): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-logical@8.0.0(postcss@8.5.1): + postcss-logical@8.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-media-query-parser@0.2.3: {} - postcss-merge-longhand@7.0.4(postcss@8.5.1): + postcss-merge-longhand@7.0.4(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.5.1) + stylehacks: 7.0.4(postcss@8.5.3) - postcss-merge-rules@7.0.4(postcss@8.5.1): + postcss-merge-rules@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@7.0.0(postcss@8.5.1): + postcss-minify-font-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.5.1): + postcss-minify-gradients@7.0.0(postcss@8.5.3): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.5.1): + postcss-minify-params@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.4(postcss@8.5.1): + postcss-minify-selectors@7.0.4(postcss@8.5.3): dependencies: cssesc: 3.0.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.1(postcss@8.5.1): + postcss-nesting@13.0.1(postcss@8.5.3): dependencies: - '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-normalize-charset@7.0.0(postcss@8.5.1): + postcss-normalize-charset@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-normalize-display-values@7.0.0(postcss@8.5.1): + postcss-normalize-display-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.5.1): + postcss-normalize-positions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.5.1): + postcss-normalize-repeat-style@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.5.1): + postcss-normalize-string@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.5.1): + postcss-normalize-timing-functions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.5.1): + postcss-normalize-unicode@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.5.1): + postcss-normalize-url@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.5.1): + postcss-normalize-whitespace@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.1): + postcss-opacity-percentage@3.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-ordered-values@7.0.1(postcss@8.5.1): + postcss-ordered-values@7.0.1(postcss@8.5.3): dependencies: - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.5.1): + postcss-overflow-shorthand@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.1): + postcss-page-break@3.0.4(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-place@10.0.0(postcss@8.5.1): + postcss-place@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.3(postcss@8.5.1): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.1) - '@csstools/postcss-color-function': 4.0.7(postcss@8.5.1) - '@csstools/postcss-color-mix-function': 3.0.7(postcss@8.5.1) - '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.1) - '@csstools/postcss-exponential-functions': 2.0.6(postcss@8.5.1) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.1) - '@csstools/postcss-gamut-mapping': 2.0.7(postcss@8.5.1) - '@csstools/postcss-gradients-interpolation-method': 5.0.7(postcss@8.5.1) - '@csstools/postcss-hwb-function': 4.0.7(postcss@8.5.1) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.1) - '@csstools/postcss-initial': 2.0.0(postcss@8.5.1) - '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.1) - '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.1) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.1) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.1) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.1) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.1) - '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.1) - '@csstools/postcss-media-minmax': 2.0.6(postcss@8.5.1) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.1) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.1) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.1) - '@csstools/postcss-oklab-function': 4.0.7(postcss@8.5.1) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1) - '@csstools/postcss-random-function': 1.0.2(postcss@8.5.1) - '@csstools/postcss-relative-color-syntax': 3.0.7(postcss@8.5.1) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.1) - '@csstools/postcss-sign-functions': 1.1.1(postcss@8.5.1) - '@csstools/postcss-stepped-value-functions': 4.0.6(postcss@8.5.1) - '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.5.1) - '@csstools/postcss-trigonometric-functions': 4.0.6(postcss@8.5.1) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.1) - autoprefixer: 10.4.20(postcss@8.5.1) + postcss-preset-env@10.1.5(postcss@8.5.3): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.3) + '@csstools/postcss-color-function': 4.0.8(postcss@8.5.3) + '@csstools/postcss-color-mix-function': 3.0.8(postcss@8.5.3) + '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.3) + '@csstools/postcss-exponential-functions': 2.0.7(postcss@8.5.3) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.3) + '@csstools/postcss-gamut-mapping': 2.0.8(postcss@8.5.3) + '@csstools/postcss-gradients-interpolation-method': 5.0.8(postcss@8.5.3) + '@csstools/postcss-hwb-function': 4.0.8(postcss@8.5.3) + '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.3) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.3) + '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.3) + '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.3) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.3) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.3) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.3) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.3) + '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.3) + '@csstools/postcss-media-minmax': 2.0.7(postcss@8.5.3) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.3) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.3) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.3) + '@csstools/postcss-oklab-function': 4.0.8(postcss@8.5.3) + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) + '@csstools/postcss-random-function': 1.0.3(postcss@8.5.3) + '@csstools/postcss-relative-color-syntax': 3.0.8(postcss@8.5.3) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.3) + '@csstools/postcss-sign-functions': 1.1.2(postcss@8.5.3) + '@csstools/postcss-stepped-value-functions': 4.0.7(postcss@8.5.3) + '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.3) + '@csstools/postcss-trigonometric-functions': 4.0.7(postcss@8.5.3) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.3) + autoprefixer: 10.4.20(postcss@8.5.3) browserslist: 4.24.4 - css-blank-pseudo: 7.0.1(postcss@8.5.1) - css-has-pseudo: 7.0.2(postcss@8.5.1) - css-prefers-color-scheme: 10.0.0(postcss@8.5.1) + css-blank-pseudo: 7.0.1(postcss@8.5.3) + css-has-pseudo: 7.0.2(postcss@8.5.3) + css-prefers-color-scheme: 10.0.0(postcss@8.5.3) cssdb: 8.2.3 - postcss: 8.5.1 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.1) - postcss-clamp: 4.1.0(postcss@8.5.1) - postcss-color-functional-notation: 7.0.7(postcss@8.5.1) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.1) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.1) - postcss-custom-media: 11.0.5(postcss@8.5.1) - postcss-custom-properties: 14.0.4(postcss@8.5.1) - postcss-custom-selectors: 8.0.4(postcss@8.5.1) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.1) - postcss-double-position-gradients: 6.0.0(postcss@8.5.1) - postcss-focus-visible: 10.0.1(postcss@8.5.1) - postcss-focus-within: 9.0.1(postcss@8.5.1) - postcss-font-variant: 5.0.0(postcss@8.5.1) - postcss-gap-properties: 6.0.0(postcss@8.5.1) - postcss-image-set-function: 7.0.0(postcss@8.5.1) - postcss-lab-function: 7.0.7(postcss@8.5.1) - postcss-logical: 8.0.0(postcss@8.5.1) - postcss-nesting: 13.0.1(postcss@8.5.1) - postcss-opacity-percentage: 3.0.0(postcss@8.5.1) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.1) - postcss-page-break: 3.0.4(postcss@8.5.1) - postcss-place: 10.0.0(postcss@8.5.1) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.1) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.1) - postcss-selector-not: 8.0.1(postcss@8.5.1) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 - - postcss-reduce-initial@7.0.2(postcss@8.5.1): + postcss: 8.5.3 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.3) + postcss-clamp: 4.1.0(postcss@8.5.3) + postcss-color-functional-notation: 7.0.8(postcss@8.5.3) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.3) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.3) + postcss-custom-media: 11.0.5(postcss@8.5.3) + postcss-custom-properties: 14.0.4(postcss@8.5.3) + postcss-custom-selectors: 8.0.4(postcss@8.5.3) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.3) + postcss-double-position-gradients: 6.0.0(postcss@8.5.3) + postcss-focus-visible: 10.0.1(postcss@8.5.3) + postcss-focus-within: 9.0.1(postcss@8.5.3) + postcss-font-variant: 5.0.0(postcss@8.5.3) + postcss-gap-properties: 6.0.0(postcss@8.5.3) + postcss-image-set-function: 7.0.0(postcss@8.5.3) + postcss-lab-function: 7.0.8(postcss@8.5.3) + postcss-logical: 8.1.0(postcss@8.5.3) + postcss-nesting: 13.0.1(postcss@8.5.3) + postcss-opacity-percentage: 3.0.0(postcss@8.5.3) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.3) + postcss-page-break: 3.0.4(postcss@8.5.3) + postcss-place: 10.0.0(postcss@8.5.3) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.3) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.3) + postcss-selector-not: 8.0.1(postcss@8.5.3) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 + + postcss-reduce-initial@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - postcss: 8.5.1 + postcss: 8.5.3 - postcss-reduce-transforms@7.0.0(postcss@8.5.1): + postcss-reduce-transforms@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.1): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-reporter@7.1.0(postcss@8.5.1): + postcss-reporter@7.1.0(postcss@8.5.3): dependencies: picocolors: 1.1.1 - postcss: 8.5.1 + postcss: 8.5.3 thenby: 1.3.4 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.1): + postcss-safe-parser@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-scss@4.0.9(postcss@8.5.1): + postcss-scss@4.0.9(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-selector-not@8.0.1(postcss@8.5.1): + postcss-selector-not@8.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.0.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sorting@8.0.2(postcss@8.5.1): + postcss-sorting@8.0.2(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-svgo@7.0.1(postcss@8.5.1): + postcss-svgo@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.3(postcss@8.5.1): + postcss-unique-selectors@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss@8.5.1: + postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 @@ -7528,7 +7528,7 @@ snapshots: dependencies: picomatch: 2.3.1 - readdirp@4.1.1: {} + readdirp@4.1.2: {} reflect.getprototypeof@1.0.10: dependencies: @@ -7537,7 +7537,7 @@ snapshots: es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -7608,7 +7608,7 @@ snapshots: dependencies: lowercase-keys: 3.0.0 - reusify@1.0.4: {} + reusify@1.1.0: {} rimraf@5.0.10: dependencies: @@ -7622,7 +7622,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -7644,7 +7644,7 @@ snapshots: safer-buffer@2.1.2: optional: true - sass@1.84.0: + sass@1.85.1: dependencies: chokidar: 4.0.3 immutable: 5.0.3 @@ -7678,7 +7678,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -7718,14 +7718,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -7780,9 +7780,9 @@ snapshots: source-map@0.6.1: optional: true - spatial-controls@6.1.2(three@0.173.0): + spatial-controls@6.1.2(three@0.174.0): dependencies: - three: 0.173.0 + three: 0.174.0 spdx-correct@3.2.0: dependencies: @@ -7912,62 +7912,62 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 5.4.2 - stylehacks@7.0.4(postcss@8.5.1): + stylehacks@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.4 - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - stylelint-config-recommended-scss@14.1.0(postcss@8.5.1)(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-recommended-scss@14.1.0(postcss@8.5.3)(stylelint@16.15.0(typescript@5.7.3)): dependencies: - postcss-scss: 4.0.9(postcss@8.5.1) - stylelint: 16.14.1(typescript@5.7.3) - stylelint-config-recommended: 14.0.1(stylelint@16.14.1(typescript@5.7.3)) - stylelint-scss: 6.11.0(stylelint@16.14.1(typescript@5.7.3)) + postcss-scss: 4.0.9(postcss@8.5.3) + stylelint: 16.15.0(typescript@5.7.3) + stylelint-config-recommended: 14.0.1(stylelint@16.15.0(typescript@5.7.3)) + stylelint-scss: 6.11.1(stylelint@16.15.0(typescript@5.7.3)) optionalDependencies: - postcss: 8.5.1 + postcss: 8.5.3 - stylelint-config-recommended@14.0.1(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-recommended@14.0.1(stylelint@16.15.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) + stylelint: 16.15.0(typescript@5.7.3) - stylelint-config-standard-scss@14.0.0(postcss@8.5.1)(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-standard-scss@14.0.0(postcss@8.5.3)(stylelint@16.15.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) - stylelint-config-recommended-scss: 14.1.0(postcss@8.5.1)(stylelint@16.14.1(typescript@5.7.3)) - stylelint-config-standard: 36.0.1(stylelint@16.14.1(typescript@5.7.3)) + stylelint: 16.15.0(typescript@5.7.3) + stylelint-config-recommended-scss: 14.1.0(postcss@8.5.3)(stylelint@16.15.0(typescript@5.7.3)) + stylelint-config-standard: 36.0.1(stylelint@16.15.0(typescript@5.7.3)) optionalDependencies: - postcss: 8.5.1 + postcss: 8.5.3 - stylelint-config-standard@36.0.1(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-standard@36.0.1(stylelint@16.15.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) - stylelint-config-recommended: 14.0.1(stylelint@16.14.1(typescript@5.7.3)) + stylelint: 16.15.0(typescript@5.7.3) + stylelint-config-recommended: 14.0.1(stylelint@16.15.0(typescript@5.7.3)) - stylelint-order@6.0.4(stylelint@16.14.1(typescript@5.7.3)): + stylelint-order@6.0.4(stylelint@16.15.0(typescript@5.7.3)): dependencies: - postcss: 8.5.1 - postcss-sorting: 8.0.2(postcss@8.5.1) - stylelint: 16.14.1(typescript@5.7.3) + postcss: 8.5.3 + postcss-sorting: 8.0.2(postcss@8.5.3) + stylelint: 16.15.0(typescript@5.7.3) - stylelint-scss@6.11.0(stylelint@16.14.1(typescript@5.7.3)): + stylelint-scss@6.11.1(stylelint@16.15.0(typescript@5.7.3)): dependencies: css-tree: 3.1.0 is-plain-object: 5.0.0 known-css-properties: 0.35.0 - mdn-data: 2.15.0 + mdn-data: 2.17.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - stylelint: 16.14.1(typescript@5.7.3) + stylelint: 16.15.0(typescript@5.7.3) - stylelint@16.14.1(typescript@5.7.3): + stylelint@16.15.0(typescript@5.7.3): dependencies: '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': 3.0.3 '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 @@ -7991,10 +7991,10 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.1 + postcss: 8.5.3 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.1) - postcss-selector-parser: 7.0.0 + postcss-safe-parser: 7.0.1(postcss@8.5.3) + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -8080,12 +8080,12 @@ snapshots: thenby@1.3.4: {} - three-demo@5.1.3(dat.gui@0.7.9)(three@0.173.0): + three-demo@5.1.3(dat.gui@0.7.9)(three@0.174.0): dependencies: dat.gui: 0.7.9 - three: 0.173.0 + three: 0.174.0 - three@0.173.0: {} + three@0.174.0: {} through2@2.0.5: dependencies: @@ -8162,7 +8162,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -8171,7 +8171,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -8180,10 +8180,10 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 typescript@5.7.3: {} @@ -8204,13 +8204,13 @@ snapshots: undici-types@6.20.0: {} - unicorn-magic@0.1.0: {} + unicorn-magic@0.3.0: {} universalify@0.1.2: {} universalify@2.0.1: {} - update-browserslist-db@1.1.2(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: browserslist: 4.24.4 escalade: 3.2.0 @@ -8290,7 +8290,7 @@ snapshots: available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-tostringtag: 1.0.2 diff --git a/src/effects/ASCIIEffect.js b/src/effects/ASCIIEffect.js new file mode 100644 index 000000000..7d1a91424 --- /dev/null +++ b/src/effects/ASCIIEffect.js @@ -0,0 +1,238 @@ +import { Color, Uniform, Vector2, Vector4 } from "three"; +import { ASCIITexture } from "../textures/ASCIITexture.js"; +import { Effect } from "./Effect.js"; + +import fragmentShader from "./glsl/ascii.frag"; + +/** + * An ASCII effect. + * + * Warning: This effect cannot be merged with convolution effects. + */ + +export class ASCIIEffect extends Effect { + + /** + * Constructs a new ASCII effect. + * + * @param {Object} [options] - The options. + * @param {ASCIITexture} [options.asciiTexture] - An ASCII character lookup texture. + * @param {Number} [options.cellSize=16] - The cell size. It's recommended to use even numbers. + * @param {Number} [options.color=null] - A color to use instead of the scene colors. + * @param {Boolean} [options.inverted=false] - Inverts the effect. + */ + + constructor({ + asciiTexture = new ASCIITexture(), + cellSize = 16, + color = null, + inverted = false + } = {}) { + + super("ASCIIEffect", fragmentShader, { + uniforms: new Map([ + ["asciiTexture", new Uniform(null)], + ["cellCount", new Uniform(new Vector4())], + ["color", new Uniform(new Color())] + ]) + }); + + /** + * @see {@link cellSize} + * @type {Number} + * @private + */ + + this._cellSize = -1; + + /** + * The current resolution. + * + * @type {Vector2} + * @private + */ + + this.resolution = new Vector2(); + + this.asciiTexture = asciiTexture; + this.cellSize = cellSize; + this.color = color; + this.inverted = inverted; + + } + + /** + * The current ASCII lookup texture. + * + * @type {ASCIITexture} + */ + + get asciiTexture() { + + return this.uniforms.get("asciiTexture").value; + + } + + set asciiTexture(value) { + + const currentTexture = this.uniforms.get("asciiTexture").value; + this.uniforms.get("asciiTexture").value = value; + + if(currentTexture !== null && currentTexture !== value) { + + currentTexture.dispose(); + + } + + if(value !== null) { + + const cellCount = value.cellCount; + + this.defines.set("CHAR_COUNT_MINUS_ONE", (value.characterCount - 1).toFixed(1)); + this.defines.set("TEX_CELL_COUNT", cellCount.toFixed(1)); + this.defines.set("INV_TEX_CELL_COUNT", (1.0 / cellCount).toFixed(9)); + + this.setChanged(); + + } + + } + + /** + * A color that overrides the scene colors. + * + * @type {Color | String | Number | null} + */ + + get color() { + + return this.uniforms.get("color").value; + + } + + set color(value) { + + if(value !== null) { + + this.uniforms.get("color").value.set(value); + + } + + if(this.defines.has("USE_COLOR") && value === null) { + + this.defines.delete("USE_COLOR"); + this.setChanged(); + + } else if(!this.defines.has("USE_COLOR") && value !== null) { + + this.defines.set("USE_COLOR", "1"); + this.setChanged(); + + } + + } + + /** + * Controls whether the effect should be inverted. + * + * @type {Boolean} + */ + + get inverted() { + + return this.defines.has("INVERTED"); + + } + + set inverted(value) { + + if(this.inverted !== value) { + + if(value) { + + this.defines.set("INVERTED", "1"); + + } else { + + this.defines.delete("INVERTED"); + + } + + this.setChanged(); + + } + + } + + /** + * The cell size. + * + * @type {Number} + */ + + get cellSize() { + + return this._cellSize; + + } + + set cellSize(value) { + + if(this._cellSize !== value) { + + this._cellSize = value; + this.updateCellCount(); + + } + + } + + /** + * Updates the cell count uniform. + * + * @private + */ + + updateCellCount() { + + const cellCount = this.uniforms.get("cellCount").value; + const resolution = this.resolution; + + cellCount.x = resolution.width / this.cellSize; + cellCount.y = resolution.height / this.cellSize; + cellCount.z = 1.0 / cellCount.x; + cellCount.w = 1.0 / cellCount.y; + + } + + /** + * Updates the size of this pass. + * + * @param {Number} width - The width. + * @param {Number} height - The height. + */ + + setSize(width, height) { + + this.resolution.set(width, height); + this.updateCellCount(); + + } + + /** + * Deletes internal render targets and textures. + */ + + dispose() { + + if(this.asciiTexture !== null) { + + this.asciiTexture.dispose(); + + } + + super.dispose(); + + } + +} diff --git a/src/effects/ScanlineEffect.js b/src/effects/ScanlineEffect.js index 2aae2aba0..e1b25f4c5 100644 --- a/src/effects/ScanlineEffect.js +++ b/src/effects/ScanlineEffect.js @@ -33,7 +33,7 @@ export class ScanlineEffect extends Effect { }); /** - * The original resolution. + * The current resolution. * * @type {Vector2} * @private diff --git a/src/effects/glsl/ascii.frag b/src/effects/glsl/ascii.frag new file mode 100644 index 000000000..fa3174931 --- /dev/null +++ b/src/effects/glsl/ascii.frag @@ -0,0 +1,41 @@ +uniform sampler2D asciiTexture; +uniform vec4 cellCount; // XY = cell count, ZW = inv cell count + +#ifdef USE_COLOR + + uniform vec3 color; + +#endif + +void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) { + + vec2 pixelizedUv = cellCount.zw * (0.5 + floor(uv * cellCount.xy)); + vec4 texel = texture(inputBuffer, pixelizedUv); + + // Use the luminance of the cell as a factor from 0 to 1 to index the character. + float lum = min(luminance(texel.rgb), 1.0); + + #ifdef INVERTED + + lum = 1.0 - lum; + + #endif + + float characterIndex = floor(CHAR_COUNT_MINUS_ONE * lum); + vec2 characterPosition = vec2(mod(characterIndex, TEX_CELL_COUNT), floor(characterIndex * INV_TEX_CELL_COUNT)); + vec2 offset = vec2(characterPosition.x, -characterPosition.y) * INV_TEX_CELL_COUNT; + vec2 characterUv = mod(uv * (cellCount.xy * INV_TEX_CELL_COUNT), INV_TEX_CELL_COUNT); + characterUv = characterUv - vec2(0.0, INV_TEX_CELL_COUNT) + offset; + float asciiCharacter = texture(asciiTexture, characterUv).r; + + #ifdef USE_COLOR + + outputColor = vec4(color * asciiCharacter, inputColor.a); + + #else + + outputColor = vec4(texel.rgb * asciiCharacter, inputColor.a); + + #endif + +} \ No newline at end of file diff --git a/src/effects/index.js b/src/effects/index.js index b0807bcde..aceebb1a5 100644 --- a/src/effects/index.js +++ b/src/effects/index.js @@ -1,5 +1,6 @@ export * from "./blending/index.js"; +export * from "./ASCIIEffect.js"; export * from "./BloomEffect.js"; export * from "./BokehEffect.js"; export * from "./BrightnessContrastEffect.js"; diff --git a/src/textures/ASCIITexture.js b/src/textures/ASCIITexture.js new file mode 100644 index 000000000..1b85a4ad0 --- /dev/null +++ b/src/textures/ASCIITexture.js @@ -0,0 +1,75 @@ +import { CanvasTexture, RepeatWrapping } from "three"; + +/** + * An ASCII character lookup texture. + */ + +export class ASCIITexture extends CanvasTexture { + + /** + * Constructs a new ASCII texture. + * + * @param {Object} [options] - The options. + * @param {String} [options.characters] - The character set to render. Defaults to a common ASCII art charset. + * @param {String} [options.font="Arial"] - The font. + * @param {Number} [options.fontSize=54] - The font size in pixels. + * @param {Number} [options.size=1024] - The texture size. + * @param {Number} [options.cellCount=16] - The cell count along each side of the texture. + */ + + constructor({ + characters = " .:,'-^=*+?!|0#X%WM@", + font = "Arial", + fontSize = 54, + size = 1024, + cellCount = 16 + } = {}) { + + super( + document.createElement("canvas"), + undefined, + RepeatWrapping, + RepeatWrapping + ); + + const canvas = this.image; + canvas.width = canvas.height = size; + + const context = canvas.getContext("2d"); + const cellSize = size / cellCount; + context.font = `${fontSize}px ${font}`; + context.textAlign = "center"; + context.textBaseline = "middle"; + context.fillStyle = "#ffffff"; + + for(let i = 0, l = characters.length; i < l; ++i) { + + const char = characters[i]; + const x = i % cellCount; + const y = Math.floor(i / cellCount); + + context.fillText(char, x * cellSize + cellSize / 2, y * cellSize + cellSize / 2); + + } + + /** + * The amount of characters in this texture. + * + * @type {Number} + * @readonly + */ + + this.characterCount = characters.length; + + /** + * The cell count along each side of the texture. + * + * @type {Number} + * @readonly + */ + + this.cellCount = cellCount; + + } + +} diff --git a/src/textures/index.js b/src/textures/index.js index 87a14a2f4..82e38459a 100644 --- a/src/textures/index.js +++ b/src/textures/index.js @@ -1,5 +1,6 @@ export * from "./lut/index.js"; export * from "./smaa/index.js"; +export * from "./ASCIITexture.js"; export * from "./NoiseTexture.js"; export * from "./RawImageData.js"; diff --git a/test/effects/ASCIIEffect.js b/test/effects/ASCIIEffect.js new file mode 100644 index 000000000..399ffac3e --- /dev/null +++ b/test/effects/ASCIIEffect.js @@ -0,0 +1,11 @@ +import test from "ava"; +import { ASCIIEffect } from "postprocessing"; + +test("can be created and destroyed", t => { + + const object = new ASCIIEffect({ asciiTexture: null }); + object.dispose(); + + t.pass(); + +}); diff --git a/types/index.d.ts b/types/index.d.ts index ab912c33c..d7e351178 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -5184,6 +5184,65 @@ declare module "postprocessing" { } + /** + * An ASCII effect. + * + * Warning: This effect cannot be merged with convolution effects. + */ + export class ASCIIEffect extends Effect { + + /** + * Constructs a new ASCII effect. + * + * @param {Object} [options] - The options. + * @param {ASCIITexture} [options.asciiTexture] - An ASCII character lookup texture. + * @param {Number} [options.cellSize=16] - The cell size. It's recommended to use even numbers. + * @param {Number} [options.color=null] - A color to use instead of the scene colors. + * @param {Boolean} [options.inverted=false] - Inverts the effect. + */ + constructor({ + asciiTexture, + cellSize, + color, + inverted + }?: { + asciiTexture?: ASCIITexture | null; + cellSize?: number; + color?: Color | string | number | null; + inverted?: boolean; + }); + + /** + * The current ASCII lookup texture. + * + * @type {ASCIITexture} + */ + get asciiTexture(): ASCIITexture | null; + set asciiTexture(value: ASCIITexture | null); + /** + * A color that overrides the scene colors. + * + * @type {Color | string | number | null} + */ + get color(): Color; + set color(value: Color | string | number | null); + /** + * Controls whether the effect should be inverted. + * + * @type {Boolean} + */ + get inverted(): boolean; + set inverted(value: boolean); + /** + * The cell size. + * + * @type {Number} + */ + get cellSize(): number; + set cellSize(value: number); + + } + export type BloomEffectOptions = { blendFunction?: BlendFunction; luminanceThreshold?: number; @@ -8960,6 +9019,52 @@ declare module "postprocessing" { } + /** + * An ASCII character lookup texture. + */ + export class ASCIITexture extends CanvasTexture { + + /** + * Constructs a new ASCII texture. + * + * @param {Object} [options] - The options. + * @param {String} [options.characters] - The character set to render. Defaults to a common ASCII art charset. + * @param {String} [options.font="Arial"] - The font. + * @param {Number} [options.fontSize=54] - The font size in pixels. + * @param {Number} [options.size=1024] - The texture size. + * @param {Number} [options.cellCount=16] - The cell count along each side of the texture. + */ + constructor({ + characters, + font, + fontSize, + size, + cellCount + }?: { + characters?: string; + font?: string; + fontSize?: number; + size?: number; + cellCount?: number; + }); + + /** + * The amount of characters in this texture. + * + * @type {Number} + * @readonly + */ + readonly characterCount: number; + /** + * The cell count along each side of the texture. + * + * @type {Number} + * @readonly + */ + readonly cellCount: number; + + } + /** * A container for raw RGBA image data. *