Index: frontend/node_modules/postcss-lab-function/CHANGELOG.md
===================================================================
--- frontend/node_modules/postcss-lab-function/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,136 @@
+# Changes to PostCSS Lab Function
+
+### 4.2.1 (July 8, 2022)
+
+- Fix case insensitive matching.
+
+### 4.2.0 (April 4, 2022)
+
+- Allow percentage and number units in more color components.
+
+```css
+.percentages {
+	color-1: lab(40% 35% 30%);
+	color-2: lch(40% 50% 39);
+
+	/* becomes */
+
+	color-1: rgb(163, 57, 35);
+	color-1: color(display-p3 0.59266 0.25309 0.17075);
+	color-2: rgb(181, 30, 19);
+	color-2: color(display-p3 0.65205 0.18193 0.12753);
+}
+
+.numbers {
+	color-1: lab(40 35 30);
+	color-2: lch(40 50 39);
+
+	/* becomes */
+
+	color-1: rgb(152, 68, 47);
+	color-1: color(display-p3 0.55453 0.28432 0.20788);
+	color-2: rgb(157, 63, 45);
+	color-2: color(display-p3 0.57072 0.27138 0.20109);
+}
+```
+
+### 4.1.2 (March 8, 2022)
+
+- Fix gamut mapping giving overly unsaturated colors.
+- Implement powerless color components in gamut mapping.
+
+### 4.1.1 (February 15, 2022)
+
+- Fix plugin name
+
+### 4.1.0 (February 12, 2022)
+
+- Add gamut mapping for out of gamut colors.
+- Add conversion to `display-p3` as a wider gamut fallback.
+
+[Read more about out of gamut colors](https://github.com/csstools/postcss-plugins/blob/main/plugins/postcss-lab-function/README.md#out-of-gamut-colors)
+
+[Read more about `color(display-p3 0 0 0)`](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color())
+
+```css
+.color-lab {
+	color: lab(40% 56.6 39);
+}
+
+/* with a display-p3 fallback : */
+.color {
+	color: rgb(179, 35, 35);
+	color: color(display-p3 0.64331 0.19245 0.16771);
+}
+```
+
+### 4.0.4 (February 5, 2022)
+
+- Improved `es module` and `commonjs` compatibility
+
+### 4.0.3 (January 2, 2022)
+
+- Removed Sourcemaps from package tarball.
+- Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121).
+
+### 4.0.2 (December 13, 2021)
+
+- Changed: now uses `postcss-value-parser` for parsing.
+- Updated: documentation
+- Added: support for CSS variables with `preserve: true` option.
+- Fixed: Hue values with units in `lch` functions are now correctly handled.
+- Fixed: Rounding of values to match current browser behavior.
+
+### 4.0.1 (November 18, 2021)
+
+- Added: Safeguards against postcss-values-parser potentially throwing an error.
+- Updated: postcss-value-parser to 6.0.1 (patch)
+
+### 4.0.0 (September 17, 2021)
+
+- Updated: Support for PostCS 8+ (major).
+- Updated: Support for Node 12+ (major).
+
+### 3.1.2 (April 25, 2020)
+
+- Updated: Publish
+
+### 3.1.1 (April 25, 2020)
+
+- Updated: Using `walkType` to evade walker bug in `postcss-values-parser`
+
+### 3.1.0 (April 25, 2020)
+
+- Updated: `postcss-values-parser` to 3.2.0 (minor).
+
+### 3.0.1 (April 12, 2020)
+
+- Updated: Ownership moved to CSSTools.
+
+### 3.0.0 (April 12, 2020)
+
+- Updated: `postcss-values-parser` to 3.1.1 (major).
+- Updated: Node support to 10.0.0 (major).
+- Updated: Feature to use new percentage syntax.
+- Removed: Support for the removed `gray()` function.
+
+### 2.0.1 (September 18, 2018)
+
+- Updated: PostCSS Values Parser 2.0.0
+
+### 2.0.0 (September 17, 2018)
+
+- Updated: Support for PostCSS 7+
+- Updated: Support for Node 6+
+
+### 1.1.0 (July 24, 2018)
+
+- Added: Support for `gray(a / b)` as `lab(a 0 0 / b)`
+
+### 1.0.1 (May 11, 2018)
+
+- Fixed: Values beyond the acceptable 0-255 RGB range
+
+### 1.0.0 (May 11, 2018)
+
+- Initial version
Index: frontend/node_modules/postcss-lab-function/LICENSE.md
===================================================================
--- frontend/node_modules/postcss-lab-function/LICENSE.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/LICENSE.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,108 @@
+# CC0 1.0 Universal
+
+## Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator and
+subsequent owner(s) (each and all, an “owner”) of an original work of
+authorship and/or a database (each, a “Work”).
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific works
+(“Commons”) that the public can reliably and without fear of later claims of
+infringement build upon, modify, incorporate in other works, reuse and
+redistribute as freely as possible in any form whatsoever and for any purposes,
+including without limitation commercial purposes. These owners may contribute
+to the Commons to promote the ideal of a free culture and the further
+production of creative, cultural and scientific works, or to gain reputation or
+greater distribution for their Work in part through the use and efforts of
+others.
+
+For these and/or other purposes and motivations, and without any expectation of
+additional consideration or compensation, the person associating CC0 with a
+Work (the “Affirmer”), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and
+publicly distribute the Work under its terms, with knowledge of his or her
+Copyright and Related Rights in the Work and the meaning and intended legal
+effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+   protected by copyright and related or neighboring rights (“Copyright and
+   Related Rights”). Copyright and Related Rights include, but are not limited
+   to, the following:
+   1. the right to reproduce, adapt, distribute, perform, display, communicate,
+      and translate a Work;
+   2. moral rights retained by the original author(s) and/or performer(s);
+   3. publicity and privacy rights pertaining to a person’s image or likeness
+      depicted in a Work;
+   4. rights protecting against unfair competition in regards to a Work,
+      subject to the limitations in paragraph 4(i), below;
+   5. rights protecting the extraction, dissemination, use and reuse of data in
+      a Work;
+   6. database rights (such as those arising under Directive 96/9/EC of the
+      European Parliament and of the Council of 11 March 1996 on the legal
+      protection of databases, and under any national implementation thereof,
+      including any amended or successor version of such directive); and
+   7. other similar, equivalent or corresponding rights throughout the world
+      based on applicable law or treaty, and any national implementations
+      thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+   applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+   unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright
+   and Related Rights and associated claims and causes of action, whether now
+   known or unknown (including existing as well as future claims and causes of
+   action), in the Work (i) in all territories worldwide, (ii) for the maximum
+   duration provided by applicable law or treaty (including future time
+   extensions), (iii) in any current or future medium and for any number of
+   copies, and (iv) for any purpose whatsoever, including without limitation
+   commercial, advertising or promotional purposes (the “Waiver”). Affirmer
+   makes the Waiver for the benefit of each member of the public at large and
+   to the detriment of Affirmer’s heirs and successors, fully intending that
+   such Waiver shall not be subject to revocation, rescission, cancellation,
+   termination, or any other legal or equitable action to disrupt the quiet
+   enjoyment of the Work by the public as contemplated by Affirmer’s express
+   Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+   judged legally invalid or ineffective under applicable law, then the Waiver
+   shall be preserved to the maximum extent permitted taking into account
+   Affirmer’s express Statement of Purpose. In addition, to the extent the
+   Waiver is so judged Affirmer hereby grants to each affected person a
+   royalty-free, non transferable, non sublicensable, non exclusive,
+   irrevocable and unconditional license to exercise Affirmer’s Copyright and
+   Related Rights in the Work (i) in all territories worldwide, (ii) for the
+   maximum duration provided by applicable law or treaty (including future time
+   extensions), (iii) in any current or future medium and for any number of
+   copies, and (iv) for any purpose whatsoever, including without limitation
+   commercial, advertising or promotional purposes (the “License”). The License
+   shall be deemed effective as of the date CC0 was applied by Affirmer to the
+   Work. Should any part of the License for any reason be judged legally
+   invalid or ineffective under applicable law, such partial invalidity or
+   ineffectiveness shall not invalidate the remainder of the License, and in
+   such case Affirmer hereby affirms that he or she will not (i) exercise any
+   of his or her remaining Copyright and Related Rights in the Work or (ii)
+   assert any associated claims and causes of action with respect to the Work,
+   in either case contrary to Affirmer’s express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+   1. No trademark or patent rights held by Affirmer are waived, abandoned,
+      surrendered, licensed or otherwise affected by this document.
+   2. Affirmer offers the Work as-is and makes no representations or warranties
+      of any kind concerning the Work, express, implied, statutory or
+      otherwise, including without limitation warranties of title,
+      merchantability, fitness for a particular purpose, non infringement, or
+      the absence of latent or other defects, accuracy, or the present or
+      absence of errors, whether or not discoverable, all to the greatest
+      extent permissible under applicable law.
+   3. Affirmer disclaims responsibility for clearing rights of other persons
+      that may apply to the Work or any use thereof, including without
+      limitation any person’s Copyright and Related Rights in the Work.
+      Further, Affirmer disclaims responsibility for obtaining any necessary
+      consents, permissions or other rights required for any use of the Work.
+   4. Affirmer understands and acknowledges that Creative Commons is not a
+      party to this document and has no duty or obligation with respect to this
+      CC0 or use of the Work.
+
+For more information, please see
+http://creativecommons.org/publicdomain/zero/1.0/.
Index: frontend/node_modules/postcss-lab-function/README.md
===================================================================
--- frontend/node_modules/postcss-lab-function/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,167 @@
+# PostCSS Lab Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
+
+[<img alt="npm version" src="https://img.shields.io/npm/v/postcss-lab-function.svg" height="20">][npm-url]
+[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/lab-function.svg" height="20">][css-url]
+[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url]
+[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+
+
+[PostCSS Lab Function] lets you use `lab` and `lch` color functions in
+CSS, following the [CSS Color] specification.
+
+```pcss
+.color-lab {
+	color: lab(40% 56.6 39);
+}
+
+.color-lch {
+	color: lch(40% 68.735435 34.568626);
+}
+
+/* becomes */
+
+.color {
+	color: rgb(179, 35, 35);
+	color: color(display-p3 0.64331 0.19245 0.16771);
+}
+
+.color-lch {
+	color: rgb(179, 35, 35);
+	color: color(display-p3 0.64331 0.19245 0.16771);
+}
+```
+
+## Usage
+
+Add [PostCSS Lab Function] to your project:
+
+```bash
+npm install postcss postcss-lab-function --save-dev
+```
+
+Use it as a [PostCSS] plugin:
+
+```js
+const postcss = require('postcss');
+const postcssLabFunction = require('postcss-lab-function');
+
+postcss([
+  postcssLabFunction(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+[PostCSS Lab Function] runs in all Node environments, with special
+instructions for:
+
+| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) |
+| --- | --- | --- | --- | --- | --- |
+
+## Options
+
+### preserve
+
+The `preserve` option determines whether the original functional color notation
+is preserved. By default, it is not preserved.
+
+```js
+postcssLabFunction({ preserve: true })
+```
+
+```pcss
+.color {
+	color: lab(40% 56.6 39);
+}
+
+/* becomes */
+
+.color {
+	color: rgb(179, 35, 35);
+	color: color(display-p3 0.64331 0.19245 0.16771);
+	color: lab(40% 56.6 39);
+}
+```
+
+### enableProgressiveCustomProperties
+
+The `enableProgressiveCustomProperties` option determines whether the original notation
+is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
+
+⚠️ We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+
+```js
+postcssLabFunction({ enableProgressiveCustomProperties: false })
+```
+
+```pcss
+:root {
+	--firebrick: lab(40% 56.6 39);
+}
+
+/* becomes */
+
+:root {
+	--firebrick: rgb(178, 34, 34); /* will never be used, not even in older browser */
+	--firebrick: color(display-p3 0.64331 0.19245 0.16771); /* will never be used, not even in older browser */
+	--firebrick: lab(40% 56.6 39);
+}
+```
+
+### subFeatures
+
+#### displayP3
+
+The `subFeatures.displayP3` option determines if `color(display-p3 ...)` is used as a fallback.<br>
+By default, it is enabled.
+
+`display-p3` can display wider gamut colors than `rgb` on some devices.
+
+```js
+postcssOKLabFunction({
+	subFeatures: {
+		displayP3: false
+	}
+})
+```
+
+```pcss
+.color {
+	color: lab(40% 56.6 39);
+}
+
+/* becomes */
+
+.color {
+	color: rgb(179, 35, 35);
+	color: lab(40% 56.6 39);
+}
+```
+
+## Out of gamut colors
+
+Depending on the browser implementation out of gamut colors may be clipped, resulting in a different color.<br>
+Fallback values generated by [PostCSS Lab Function] are always mapped to a close alternative in sRGB.
+
+When setting `preserve` to `true` the original values will be used by some browsers and these may be clipped.<br>
+Certain browsers will have an incorrect color if this occurs.
+
+If the plugin detects out of gamut colors it will emit a warning :
+
+> "lch(95% 210 285)" is out of gamut for "display-p3". When "preserve: true" is set this will lead to unexpected results in some browsers.
+
+To resolve this warning you can use a color that is in gamut for `display-p3`.
+
+## Copyright : color conversions
+
+This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/tree/main/css-color-4. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+
+[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
+[css-url]: https://cssdb.org/#lab-function
+[discord]: https://discord.gg/bUadyRwkJS
+[npm-url]: https://www.npmjs.com/package/postcss-lab-function
+
+[CSS Color]: https://drafts.csswg.org/css-color/#specifying-lab-lch
+[Gulp PostCSS]: https://github.com/postcss/gulp-postcss
+[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
+[PostCSS]: https://github.com/postcss/postcss
+[PostCSS Loader]: https://github.com/postcss/postcss-loader
+[PostCSS Lab Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-function
Index: frontend/node_modules/postcss-lab-function/dist/convert-lab-to-display-p3.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/convert-lab-to-display-p3.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/convert-lab-to-display-p3.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+declare type color = [number, number, number];
+export declare function labToDisplayP3(labRaw: color): [color, boolean];
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/convert-lab-to-srgb.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/convert-lab-to-srgb.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/convert-lab-to-srgb.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+declare type color = [number, number, number];
+export declare function labToSRgb(labRaw: color): color;
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/convert-lch-to-display-p3.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/convert-lch-to-display-p3.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/convert-lch-to-display-p3.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+declare type color = [number, number, number];
+export declare function lchToDisplayP3(lchRaw: color): [color, boolean];
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/convert-lch-to-srgb.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/convert-lch-to-srgb.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/convert-lch-to-srgb.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+declare type color = [number, number, number];
+export declare function lchToSRgb(lchRaw: color): color;
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/css-color-4/conversions.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/css-color-4/conversions.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/css-color-4/conversions.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,47 @@
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js
+ */
+declare type color = [number, number, number];
+export declare const D50: number[];
+export declare const D65: number[];
+export declare function lin_sRGB(RGB: color): color;
+export declare function gam_sRGB(RGB: color): color;
+export declare function lin_sRGB_to_XYZ(rgb: color): color;
+export declare function XYZ_to_lin_sRGB(XYZ: color): color;
+export declare function lin_P3(RGB: color): color;
+export declare function gam_P3(RGB: color): color;
+export declare function lin_P3_to_XYZ(rgb: color): color;
+export declare function XYZ_to_lin_P3(XYZ: color): color;
+export declare function lin_ProPhoto(RGB: color): color;
+export declare function gam_ProPhoto(RGB: color): color;
+export declare function lin_ProPhoto_to_XYZ(rgb: color): color;
+export declare function XYZ_to_lin_ProPhoto(XYZ: color): color;
+export declare function lin_a98rgb(RGB: color): color;
+export declare function gam_a98rgb(RGB: color): color;
+export declare function lin_a98rgb_to_XYZ(rgb: color): color;
+export declare function XYZ_to_lin_a98rgb(XYZ: color): color;
+export declare function lin_2020(RGB: color): color;
+export declare function gam_2020(RGB: color): color;
+export declare function lin_2020_to_XYZ(rgb: color): color;
+export declare function XYZ_to_lin_2020(XYZ: color): color;
+export declare function D65_to_D50(XYZ: color): color;
+export declare function D50_to_D65(XYZ: color): color;
+export declare function XYZ_to_Lab(XYZ: color): color;
+export declare function Lab_to_XYZ(Lab: color): color;
+export declare function Lab_to_LCH(Lab: color): color;
+export declare function LCH_to_Lab(LCH: color): color;
+export declare function XYZ_to_OKLab(XYZ: color): color;
+export declare function OKLab_to_XYZ(OKLab: color): color;
+export declare function OKLab_to_OKLCH(OKLab: color): color;
+export declare function OKLCH_to_OKLab(OKLCH: color): color;
+export declare function rectangular_premultiply(color: color, alpha: number): color;
+export declare function rectangular_un_premultiply(color: color, alpha: number): color;
+export declare function polar_premultiply(color: color, alpha: number, hueIndex: number): color;
+export declare function polar_un_premultiply(color: color, alpha: number, hueIndex: number): color;
+export declare function hsl_premultiply(color: color, alpha: number): color;
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/css-color-4/deltaEOK.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/css-color-4/deltaEOK.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/css-color-4/deltaEOK.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,11 @@
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js
+ */
+declare type color = [number, number, number];
+export declare function deltaEOK(reference: color, sample: color): number;
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/css-color-4/map-gamut.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/css-color-4/map-gamut.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/css-color-4/map-gamut.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+declare type color = [number, number, number];
+export declare function mapGamut(startOKLCH: color, toDestination: (x: color) => color, fromDestination: (x: color) => color): color;
+export declare function clip(color: color): color;
+export declare function inGamut(x: color): boolean;
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/css-color-4/multiply-matrices.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/css-color-4/multiply-matrices.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/css-color-4/multiply-matrices.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,13 @@
+/**
+ * Simple matrix (and vector) multiplication
+ * Warning: No error handling for incompatible dimensions!
+ * @author Lea Verou 2020 MIT License
+ *
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js
+ */
+export declare function multiplyMatrices(a: Array<Array<number>> | Array<number>, b: Array<Array<number>> | Array<number>): Array<Array<number>> | Array<number>;
Index: frontend/node_modules/postcss-lab-function/dist/css-color-4/utilities.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/css-color-4/utilities.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/css-color-4/utilities.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,25 @@
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js
+ */
+declare type color = [number, number, number];
+export declare function sRGB_to_luminance(RGB: color): number;
+export declare function contrast(RGB1: color, RGB2: color): number;
+export declare function sRGB_to_LCH(RGB: color): color;
+export declare function P3_to_LCH(RGB: color): color;
+export declare function r2020_to_LCH(RGB: color): color;
+export declare function LCH_to_sRGB(LCH: color): color;
+export declare function LCH_to_P3(LCH: color): color;
+export declare function LCH_to_r2020(LCH: color): color;
+export declare function hslToRgb(hsl: color): color;
+export declare function hueToRgb(t1: number, t2: number, hue: number): number;
+export declare function naive_CMYK_to_sRGB(CMYK: [number, number, number, number]): color;
+export declare function naive_sRGB_to_CMYK(RGB: color): [number, number, number, number];
+export declare function XYZ_to_xy(XYZ: color): [number, number];
+export declare function xy_to_uv(xy: [number, number]): [number, number];
+export declare function XYZ_to_uv(XYZ: color): [number, number];
+export {};
Index: frontend/node_modules/postcss-lab-function/dist/has-fallback-decl.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/has-fallback-decl.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/has-fallback-decl.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,2 @@
+import type { Declaration } from 'postcss';
+export declare function hasFallback(node: Declaration): boolean;
Index: frontend/node_modules/postcss-lab-function/dist/has-supports-at-rule-ancestor.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/has-supports-at-rule-ancestor.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/has-supports-at-rule-ancestor.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,2 @@
+import type { Node } from 'postcss';
+export declare function hasSupportsAtRuleAncestor(node: Node): boolean;
Index: frontend/node_modules/postcss-lab-function/dist/index.cjs
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/index.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/index.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,30 @@
+"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),t=require("postcss-value-parser");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e),u=n(t);
+/**
+ * Simple matrix (and vector) multiplication
+ * Warning: No error handling for incompatible dimensions!
+ * @author Lea Verou 2020 MIT License
+ *
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js
+ */
+function a(e,t){const n=e.length;let r,u;r=Array.isArray(e[0])?e:[e],Array.isArray(t[0])||(u=t.map((e=>[e])));const a=u[0].length,o=u[0].map(((e,t)=>u.map((e=>e[t]))));let s=r.map((e=>o.map((t=>Array.isArray(e)?e.reduce(((e,n,r)=>e+n*(t[r]||0)),0):t.reduce(((t,n)=>t+n*e),0)))));return 1===n&&(s=s[0]),1===a?s.map((e=>e[0])):s}
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js
+ */const o=[.3457/.3585,1,.2958/.3585];function s(e){return e.map((function(e){const t=e<0?-1:1,n=Math.abs(e);return n<.04045?e/12.92:t*Math.pow((n+.055)/1.055,2.4)}))}function i(e){return e.map((function(e){const t=e<0?-1:1,n=Math.abs(e);return n>.0031308?t*(1.055*Math.pow(n,1/2.4)-.055):12.92*e}))}function l(e){return a([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],e)}function c(e){return a([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],e)}function f(e){return s(e)}function p(e){return i(e)}function d(e){return a([[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],e)}function h(e){return a([[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],e)}function m(e){return a([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],e)}function v(e){const t=24389/27,n=216/24389,r=[];r[1]=(e[0]+16)/116,r[0]=e[1]/500+r[1],r[2]=r[1]-e[2]/200;return[Math.pow(r[0],3)>n?Math.pow(r[0],3):(116*r[0]-16)/t,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/t,Math.pow(r[2],3)>n?Math.pow(r[2],3):(116*r[2]-16)/t].map(((e,t)=>e*o[t]))}function b(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}function y(e){const t=a([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],e);return a([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],t.map((e=>Math.cbrt(e))))}function M(e){const t=a([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],e);return a([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],t.map((e=>e**3)))}function g(e){const t=180*Math.atan2(e[2],e[1])/Math.PI;return[e[0],Math.sqrt(e[1]**2+e[2]**2),t>=0?t:t+360]}function w(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js
+ */function x(e,t){const[n,r,u]=e,[a,o,s]=t,i=n-a,l=r-o,c=u-s;return Math.sqrt(i**2+l**2+c**2)}function F(e,t,n){return function(e,t,n){let r=0,u=e[1];const a=e;for(;u-r>1e-4;){const e=P(t(a));x(w(a),w(n(e)))-.02<1e-4?r=a[1]:u=a[1],a[1]=(u+r)/2}return P(t([...a]))}(e,t,n)}function P(e){return e.map((e=>e<0?0:e>1?1:e))}function C(e){const[t,n,r]=e;return t>=-1e-4&&t<=1.0001&&n>=-1e-4&&n<=1.0001&&r>=-1e-4&&r<=1.0001}function L(e){const[t,n,r]=e;let u=[Math.max(t,0),Math.min(Math.max(n,-160),160),Math.min(Math.max(r,-160),160)];u=v(u);let a=u.slice();return a=m(a),a=y(a),a=g(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=m(u),u=h(u),u=p(u),C(u)?[P(u),!0]:[F(a,(e=>p(e=h(e=M(e=w(e))))),(e=>g(e=y(e=d(e=f(e)))))),!1]}function I(e){const[t,n,r]=e;let u=[Math.max(t,0),Math.min(Math.max(n,-160),160),Math.min(Math.max(r,-160),160)];u=v(u);let a=u.slice();return a=m(a),a=y(a),a=g(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=m(u),u=c(u),u=i(u),C(u)?P(u).map((e=>Math.round(255*e))):F(a,(e=>i(e=c(e=M(e=w(e))))),(e=>g(e=y(e=l(e=s(e)))))).map((e=>Math.round(255*e)))}function N(e){const[t,n,r]=e;let u=[Math.max(t,0),n,r%360];u=b(u),u=v(u);let a=u.slice();return a=m(a),a=y(a),a=g(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=m(u),u=h(u),u=p(u),C(u)?[P(u),!0]:[F(a,(e=>p(e=h(e=M(e=w(e))))),(e=>g(e=y(e=d(e=f(e)))))),!1]}function S(e){const[t,n,r]=e;let u=[Math.max(t,0),n,r%360];u=b(u),u=v(u);let a=u.slice();return a=m(a),a=y(a),a=g(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=m(u),u=c(u),u=i(u),C(u)?P(u).map((e=>Math.round(255*e))):F(a,(e=>i(e=c(e=M(e=w(e))))),(e=>g(e=y(e=l(e=s(e)))))).map((e=>Math.round(255*e)))}function O(e){const t=e.value.toLowerCase(),n=e.nodes.slice().filter((e=>"comment"!==e.type&&"space"!==e.type));let r=null;if("lab"===t?r=k(n):"lch"===t&&(r=j(n)),!r)return;e.value="rgb",function(e,t,n){if(!t||!n)return;if(e.value="rgba",t.value=",",t.before="",!function(e){if(!e||"word"!==e.type)return!1;if(!H(e))return!1;const t=u.default.unit(e.value);if(!t)return!1;return!!t.number}(n))return;const r=u.default.unit(n.value);if(!r)return;"%"===r.unit&&(r.number=String(parseFloat(r.number)/100),n.value=String(r.number))}(e,r.slash,r.alpha);const[a,o,s]=D(r),[i,l,c]=G(r),f=("lab"===t?I:S)([i.number,l.number,c.number].map((e=>parseFloat(e))));e.nodes.splice(e.nodes.indexOf(a)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),e.nodes.splice(e.nodes.indexOf(o)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),z(e.nodes,a,{...a,value:String(f[0])}),z(e.nodes,o,{...o,value:String(f[1])}),z(e.nodes,s,{...s,value:String(f[2])})}function A(e){if(!e||"word"!==e.type)return!1;if(!H(e))return!1;const t=u.default.unit(e.value);return!!t&&("%"===t.unit||""===t.unit)}function q(e){return e&&"function"===e.type&&"calc"===e.value.toLowerCase()}function B(e){return e&&"function"===e.type&&"var"===e.value.toLowerCase()}function E(e){return e&&"div"===e.type&&"/"===e.value}function j(e){if(!A(e[0]))return null;if(!A(e[1]))return null;if(!function(e){if(!e||"word"!==e.type)return!1;if(!H(e))return!1;const t=u.default.unit(e.value);if(!t)return!1;const n=t.unit.toLowerCase();return!!t.number&&("deg"===n||"grad"===n||"rad"===n||"turn"===n||""===n)}(e[2]))return null;const t={l:u.default.unit(e[0].value),lNode:e[0],c:u.default.unit(e[1].value),cNode:e[1],h:u.default.unit(e[2].value),hNode:e[2]};return function(e){switch(e.unit.toLowerCase()){case"deg":return void(e.unit="");case"rad":return e.unit="",void(e.number=(180*parseFloat(e.number)/Math.PI).toString());case"grad":return e.unit="",void(e.number=(.9*parseFloat(e.number)).toString());case"turn":e.unit="",e.number=(360*parseFloat(e.number)).toString()}}(t.h),""!==t.h.unit?null:(E(e[3])&&(t.slash=e[3]),(A(e[4])||q(e[4])||B(e[4]))&&(t.alpha=e[4]),!(e.length>3)||t.slash&&t.alpha?("%"===t.l.unit&&(t.l.unit=""),"%"===t.c.unit&&(t.c.unit="",t.c.number=(parseFloat(t.c.number)/100*150).toFixed(10)),t):null)}function k(e){if(!A(e[0]))return null;if(!A(e[1]))return null;if(!A(e[2]))return null;const t={l:u.default.unit(e[0].value),lNode:e[0],a:u.default.unit(e[1].value),aNode:e[1],b:u.default.unit(e[2].value),bNode:e[2]};return E(e[3])&&(t.slash=e[3]),(A(e[4])||q(e[4])||B(e[4]))&&(t.alpha=e[4]),!(e.length>3)||t.slash&&t.alpha?("%"===t.l.unit&&(t.l.unit=""),"%"===t.a.unit&&(t.a.unit="",t.a.number=(parseFloat(t.a.number)/100*125).toFixed(10)),"%"===t.b.unit&&(t.b.unit="",t.b.number=(parseFloat(t.b.number)/100*125).toFixed(10)),t):null}function $(e){return void 0!==e.a}function D(e){return $(e)?[e.lNode,e.aNode,e.bNode]:[e.lNode,e.cNode,e.hNode]}function G(e){return $(e)?[e.l,e.a,e.b]:[e.l,e.c,e.h]}function z(e,t,n){const r=e.indexOf(t);e[r]=n}function H(e){if(!e||!e.value)return!1;try{return!1!==u.default.unit(e.value)}catch(e){return!1}}function J(e,t,n,r){let a;try{a=u.default(e)}catch(r){t.warn(n,`Failed to parse value '${e}' as a lab or lch function. Leaving the original value intact.`)}if(void 0===a)return;a.walk((e=>{e.type&&"function"===e.type&&("lab"!==e.value.toLowerCase()&&"lch"!==e.value.toLowerCase()||O(e))}));const o=String(a);if(o===e)return;const s=u.default(e);s.walk((e=>{e.type&&"function"===e.type&&("lab"!==e.value.toLowerCase()&&"lch"!==e.value.toLowerCase()||function(e,t,n,r){const a=u.default.stringify(e),o=e.value.toLowerCase(),s=e.nodes.slice().filter((e=>"comment"!==e.type&&"space"!==e.type));let i=null;if("lab"===o?i=k(s):"lch"===o&&(i=j(s)),!i)return;if(s.length>3&&(!i.slash||!i.alpha))return;e.value="color";const[l,c,f]=D(i),[p,d,h]=G(i),m="lab"===o?L:N,v=[p.number,d.number,h.number].map((e=>parseFloat(e))),[b,y]=m(v);!y&&r&&t.warn(n,`"${a}" is out of gamut for "display-p3". Given "preserve: true" is set, this will lead to unexpected results in some browsers.`),e.nodes.splice(0,0,{sourceIndex:0,sourceEndIndex:10,value:"display-p3",type:"word"}),e.nodes.splice(1,0,{sourceIndex:0,sourceEndIndex:1,value:" ",type:"space"}),z(e.nodes,l,{...l,value:b[0].toFixed(5)}),z(e.nodes,c,{...c,value:b[1].toFixed(5)}),z(e.nodes,f,{...f,value:b[2].toFixed(5)})}(e,t,n,r))}));return{rgb:o,displayP3:String(s)}}const K=e=>({postcssPlugin:"postcss-lab-function",Declaration:(t,{result:n})=>{if(function(e){const t=e.parent;if(!t)return!1;const n=t.index(e);for(let r=0;r<n;r++){const n=t.nodes[r];if("decl"===n.type&&n.prop.toLowerCase()===e.prop.toLowerCase())return!0}return!1}(t))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()){if(-1!==t.params.toLowerCase().indexOf("lab("))return!0;if(-1!==t.params.toLowerCase().indexOf("lch("))return!0}t=t.parent}else t=t.parent;return!1}(t))return;const r=t.value;if(!/(^|[^\w-])(lab|lch)\(/i.test(r.toLowerCase()))return;const u=J(r,t,n,e.preserve);void 0!==u&&(e.preserve?(t.cloneBefore({value:u.rgb}),e.subFeatures.displayP3&&t.cloneBefore({value:u.displayP3})):(t.cloneBefore({value:u.rgb}),e.subFeatures.displayP3&&t.cloneBefore({value:u.displayP3}),t.remove()))}});K.postcss=!0;const Q=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[r.default(),K(t)]}:K(t)};Q.postcss=!0,module.exports=Q;
Index: frontend/node_modules/postcss-lab-function/dist/index.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,10 @@
+import type { PluginCreator } from 'postcss';
+declare type pluginOptions = {
+    enableProgressiveCustomProperties?: boolean;
+    preserve?: boolean;
+    subFeatures?: {
+        displayP3?: boolean;
+    };
+};
+declare const postcssPlugin: PluginCreator<pluginOptions>;
+export default postcssPlugin;
Index: frontend/node_modules/postcss-lab-function/dist/index.mjs
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/index.mjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/index.mjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,30 @@
+import e from"@csstools/postcss-progressive-custom-properties";import t from"postcss-value-parser";
+/**
+ * Simple matrix (and vector) multiplication
+ * Warning: No error handling for incompatible dimensions!
+ * @author Lea Verou 2020 MIT License
+ *
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js
+ */
+function n(e,t){const n=e.length;let r,u;r=Array.isArray(e[0])?e:[e],Array.isArray(t[0])||(u=t.map((e=>[e])));const a=u[0].length,o=u[0].map(((e,t)=>u.map((e=>e[t]))));let s=r.map((e=>o.map((t=>Array.isArray(e)?e.reduce(((e,n,r)=>e+n*(t[r]||0)),0):t.reduce(((t,n)=>t+n*e),0)))));return 1===n&&(s=s[0]),1===a?s.map((e=>e[0])):s}
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js
+ */const r=[.3457/.3585,1,.2958/.3585];function u(e){return e.map((function(e){const t=e<0?-1:1,n=Math.abs(e);return n<.04045?e/12.92:t*Math.pow((n+.055)/1.055,2.4)}))}function a(e){return e.map((function(e){const t=e<0?-1:1,n=Math.abs(e);return n>.0031308?t*(1.055*Math.pow(n,1/2.4)-.055):12.92*e}))}function o(e){return n([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],e)}function s(e){return n([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],e)}function i(e){return u(e)}function l(e){return a(e)}function c(e){return n([[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],e)}function p(e){return n([[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],e)}function f(e){return n([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],e)}function d(e){const t=24389/27,n=216/24389,u=[];u[1]=(e[0]+16)/116,u[0]=e[1]/500+u[1],u[2]=u[1]-e[2]/200;return[Math.pow(u[0],3)>n?Math.pow(u[0],3):(116*u[0]-16)/t,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/t,Math.pow(u[2],3)>n?Math.pow(u[2],3):(116*u[2]-16)/t].map(((e,t)=>e*r[t]))}function h(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}function m(e){const t=n([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],e);return n([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],t.map((e=>Math.cbrt(e))))}function v(e){const t=n([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],e);return n([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],t.map((e=>e**3)))}function b(e){const t=180*Math.atan2(e[2],e[1])/Math.PI;return[e[0],Math.sqrt(e[1]**2+e[2]**2),t>=0?t:t+360]}function y(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}
+/**
+ * @license W3C
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).
+ *
+ * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js
+ */function M(e,t){const[n,r,u]=e,[a,o,s]=t,i=n-a,l=r-o,c=u-s;return Math.sqrt(i**2+l**2+c**2)}function g(e,t,n){return function(e,t,n){let r=0,u=e[1];const a=e;for(;u-r>1e-4;){const e=w(t(a));M(y(a),y(n(e)))-.02<1e-4?r=a[1]:u=a[1],a[1]=(u+r)/2}return w(t([...a]))}(e,t,n)}function w(e){return e.map((e=>e<0?0:e>1?1:e))}function x(e){const[t,n,r]=e;return t>=-1e-4&&t<=1.0001&&n>=-1e-4&&n<=1.0001&&r>=-1e-4&&r<=1.0001}function F(e){const[t,n,r]=e;let u=[Math.max(t,0),Math.min(Math.max(n,-160),160),Math.min(Math.max(r,-160),160)];u=d(u);let a=u.slice();return a=f(a),a=m(a),a=b(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=f(u),u=p(u),u=l(u),x(u)?[w(u),!0]:[g(a,(e=>l(e=p(e=v(e=y(e))))),(e=>b(e=m(e=c(e=i(e)))))),!1]}function P(e){const[t,n,r]=e;let i=[Math.max(t,0),Math.min(Math.max(n,-160),160),Math.min(Math.max(r,-160),160)];i=d(i);let l=i.slice();return l=f(l),l=m(l),l=b(l),l[0]<1e-6&&(l=[0,0,0]),l[0]>.999999&&(l=[1,0,0]),i=f(i),i=s(i),i=a(i),x(i)?w(i).map((e=>Math.round(255*e))):g(l,(e=>a(e=s(e=v(e=y(e))))),(e=>b(e=m(e=o(e=u(e)))))).map((e=>Math.round(255*e)))}function C(e){const[t,n,r]=e;let u=[Math.max(t,0),n,r%360];u=h(u),u=d(u);let a=u.slice();return a=f(a),a=m(a),a=b(a),a[0]<1e-6&&(a=[0,0,0]),a[0]>.999999&&(a=[1,0,0]),u=f(u),u=p(u),u=l(u),x(u)?[w(u),!0]:[g(a,(e=>l(e=p(e=v(e=y(e))))),(e=>b(e=m(e=c(e=i(e)))))),!1]}function L(e){const[t,n,r]=e;let i=[Math.max(t,0),n,r%360];i=h(i),i=d(i);let l=i.slice();return l=f(l),l=m(l),l=b(l),l[0]<1e-6&&(l=[0,0,0]),l[0]>.999999&&(l=[1,0,0]),i=f(i),i=s(i),i=a(i),x(i)?w(i).map((e=>Math.round(255*e))):g(l,(e=>a(e=s(e=v(e=y(e))))),(e=>b(e=m(e=o(e=u(e)))))).map((e=>Math.round(255*e)))}function I(e){const n=e.value.toLowerCase(),r=e.nodes.slice().filter((e=>"comment"!==e.type&&"space"!==e.type));let u=null;if("lab"===n?u=E(r):"lch"===n&&(u=B(r)),!u)return;e.value="rgb",function(e,n,r){if(!n||!r)return;if(e.value="rgba",n.value=",",n.before="",!function(e){if(!e||"word"!==e.type)return!1;if(!D(e))return!1;const n=t.unit(e.value);if(!n)return!1;return!!n.number}(r))return;const u=t.unit(r.value);if(!u)return;"%"===u.unit&&(u.number=String(parseFloat(u.number)/100),r.value=String(u.number))}(e,u.slash,u.alpha);const[a,o,s]=k(u),[i,l,c]=q(u),p=("lab"===n?P:L)([i.number,l.number,c.number].map((e=>parseFloat(e))));e.nodes.splice(e.nodes.indexOf(a)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),e.nodes.splice(e.nodes.indexOf(o)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),$(e.nodes,a,{...a,value:String(p[0])}),$(e.nodes,o,{...o,value:String(p[1])}),$(e.nodes,s,{...s,value:String(p[2])})}function N(e){if(!e||"word"!==e.type)return!1;if(!D(e))return!1;const n=t.unit(e.value);return!!n&&("%"===n.unit||""===n.unit)}function S(e){return e&&"function"===e.type&&"calc"===e.value.toLowerCase()}function O(e){return e&&"function"===e.type&&"var"===e.value.toLowerCase()}function A(e){return e&&"div"===e.type&&"/"===e.value}function B(e){if(!N(e[0]))return null;if(!N(e[1]))return null;if(!function(e){if(!e||"word"!==e.type)return!1;if(!D(e))return!1;const n=t.unit(e.value);if(!n)return!1;const r=n.unit.toLowerCase();return!!n.number&&("deg"===r||"grad"===r||"rad"===r||"turn"===r||""===r)}(e[2]))return null;const n={l:t.unit(e[0].value),lNode:e[0],c:t.unit(e[1].value),cNode:e[1],h:t.unit(e[2].value),hNode:e[2]};return function(e){switch(e.unit.toLowerCase()){case"deg":return void(e.unit="");case"rad":return e.unit="",void(e.number=(180*parseFloat(e.number)/Math.PI).toString());case"grad":return e.unit="",void(e.number=(.9*parseFloat(e.number)).toString());case"turn":e.unit="",e.number=(360*parseFloat(e.number)).toString()}}(n.h),""!==n.h.unit?null:(A(e[3])&&(n.slash=e[3]),(N(e[4])||S(e[4])||O(e[4]))&&(n.alpha=e[4]),!(e.length>3)||n.slash&&n.alpha?("%"===n.l.unit&&(n.l.unit=""),"%"===n.c.unit&&(n.c.unit="",n.c.number=(parseFloat(n.c.number)/100*150).toFixed(10)),n):null)}function E(e){if(!N(e[0]))return null;if(!N(e[1]))return null;if(!N(e[2]))return null;const n={l:t.unit(e[0].value),lNode:e[0],a:t.unit(e[1].value),aNode:e[1],b:t.unit(e[2].value),bNode:e[2]};return A(e[3])&&(n.slash=e[3]),(N(e[4])||S(e[4])||O(e[4]))&&(n.alpha=e[4]),!(e.length>3)||n.slash&&n.alpha?("%"===n.l.unit&&(n.l.unit=""),"%"===n.a.unit&&(n.a.unit="",n.a.number=(parseFloat(n.a.number)/100*125).toFixed(10)),"%"===n.b.unit&&(n.b.unit="",n.b.number=(parseFloat(n.b.number)/100*125).toFixed(10)),n):null}function j(e){return void 0!==e.a}function k(e){return j(e)?[e.lNode,e.aNode,e.bNode]:[e.lNode,e.cNode,e.hNode]}function q(e){return j(e)?[e.l,e.a,e.b]:[e.l,e.c,e.h]}function $(e,t,n){const r=e.indexOf(t);e[r]=n}function D(e){if(!e||!e.value)return!1;try{return!1!==t.unit(e.value)}catch(e){return!1}}function G(e,n,r,u){let a;try{a=t(e)}catch(t){n.warn(r,`Failed to parse value '${e}' as a lab or lch function. Leaving the original value intact.`)}if(void 0===a)return;a.walk((e=>{e.type&&"function"===e.type&&("lab"!==e.value.toLowerCase()&&"lch"!==e.value.toLowerCase()||I(e))}));const o=String(a);if(o===e)return;const s=t(e);s.walk((e=>{e.type&&"function"===e.type&&("lab"!==e.value.toLowerCase()&&"lch"!==e.value.toLowerCase()||function(e,n,r,u){const a=t.stringify(e),o=e.value.toLowerCase(),s=e.nodes.slice().filter((e=>"comment"!==e.type&&"space"!==e.type));let i=null;if("lab"===o?i=E(s):"lch"===o&&(i=B(s)),!i)return;if(s.length>3&&(!i.slash||!i.alpha))return;e.value="color";const[l,c,p]=k(i),[f,d,h]=q(i),m="lab"===o?F:C,v=[f.number,d.number,h.number].map((e=>parseFloat(e))),[b,y]=m(v);!y&&u&&n.warn(r,`"${a}" is out of gamut for "display-p3". Given "preserve: true" is set, this will lead to unexpected results in some browsers.`),e.nodes.splice(0,0,{sourceIndex:0,sourceEndIndex:10,value:"display-p3",type:"word"}),e.nodes.splice(1,0,{sourceIndex:0,sourceEndIndex:1,value:" ",type:"space"}),$(e.nodes,l,{...l,value:b[0].toFixed(5)}),$(e.nodes,c,{...c,value:b[1].toFixed(5)}),$(e.nodes,p,{...p,value:b[2].toFixed(5)})}(e,n,r,u))}));return{rgb:o,displayP3:String(s)}}const z=e=>({postcssPlugin:"postcss-lab-function",Declaration:(t,{result:n})=>{if(function(e){const t=e.parent;if(!t)return!1;const n=t.index(e);for(let r=0;r<n;r++){const n=t.nodes[r];if("decl"===n.type&&n.prop.toLowerCase()===e.prop.toLowerCase())return!0}return!1}(t))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()){if(-1!==t.params.toLowerCase().indexOf("lab("))return!0;if(-1!==t.params.toLowerCase().indexOf("lch("))return!0}t=t.parent}else t=t.parent;return!1}(t))return;const r=t.value;if(!/(^|[^\w-])(lab|lch)\(/i.test(r.toLowerCase()))return;const u=G(r,t,n,e.preserve);void 0!==u&&(e.preserve?(t.cloneBefore({value:u.rgb}),e.subFeatures.displayP3&&t.cloneBefore({value:u.displayP3})):(t.cloneBefore({value:u.rgb}),e.subFeatures.displayP3&&t.cloneBefore({value:u.displayP3}),t.remove()))}});z.postcss=!0;const H=t=>{const n=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},t);return n.subFeatures=Object.assign({displayP3:!0},n.subFeatures),n.enableProgressiveCustomProperties&&(n.preserve||n.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[e(),z(n)]}:z(n)};H.postcss=!0;export{H as default};
Index: frontend/node_modules/postcss-lab-function/dist/modified-values.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/modified-values.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/modified-values.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+import type { Declaration, Result } from 'postcss';
+export declare function modifiedValues(originalValue: string, decl: Declaration, result: Result, preserve: boolean): {
+    rgb: string;
+    displayP3: string;
+} | undefined;
Index: frontend/node_modules/postcss-lab-function/dist/on-css-function.d.ts
===================================================================
--- frontend/node_modules/postcss-lab-function/dist/on-css-function.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/dist/on-css-function.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+import type { FunctionNode } from 'postcss-value-parser';
+import { Declaration, Result } from 'postcss';
+export declare function onCSSFunctionSRgb(node: FunctionNode): void;
+export declare function onCSSFunctionDisplayP3(node: FunctionNode, decl: Declaration, result: Result, preserve: boolean): void;
Index: frontend/node_modules/postcss-lab-function/package.json
===================================================================
--- frontend/node_modules/postcss-lab-function/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/postcss-lab-function/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,81 @@
+{
+	"name": "postcss-lab-function",
+	"description": "Use lab() and lch() color functions in CSS",
+	"version": "4.2.1",
+	"author": "Jonathan Neal <jonathantneal@hotmail.com>",
+	"license": "CC0-1.0",
+	"funding": {
+		"type": "opencollective",
+		"url": "https://opencollective.com/csstools"
+	},
+	"engines": {
+		"node": "^12 || ^14 || >=16"
+	},
+	"main": "dist/index.cjs",
+	"module": "dist/index.mjs",
+	"types": "./dist/index.d.ts",
+	"exports": {
+		".": {
+			"import": "./dist/index.mjs",
+			"require": "./dist/index.cjs",
+			"default": "./dist/index.mjs"
+		}
+	},
+	"files": [
+		"CHANGELOG.md",
+		"LICENSE.md",
+		"README.md",
+		"dist"
+	],
+	"dependencies": {
+		"@csstools/postcss-progressive-custom-properties": "^1.1.0",
+		"postcss-value-parser": "^4.2.0"
+	},
+	"peerDependencies": {
+		"postcss": "^8.2"
+	},
+	"scripts": {
+		"build": "rollup -c ../../rollup/default.js",
+		"clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
+		"docs": "node ../../.github/bin/generate-docs/install.mjs",
+		"lint": "npm run lint:eslint && npm run lint:package-json",
+		"lint:eslint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
+		"lint:package-json": "node ../../.github/bin/format-package-json.mjs",
+		"prepublishOnly": "npm run clean && npm run build && npm run test",
+		"test": "node .tape.mjs && npm run test:exports",
+		"test:exports": "node ./test/_import.mjs && node ./test/_require.cjs",
+		"test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
+	},
+	"homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-function#readme",
+	"repository": {
+		"type": "git",
+		"url": "https://github.com/csstools/postcss-plugins.git",
+		"directory": "plugins/postcss-lab-function"
+	},
+	"bugs": "https://github.com/csstools/postcss-plugins/issues",
+	"keywords": [
+		"color",
+		"colors",
+		"comma",
+		"css",
+		"design",
+		"functional",
+		"lab",
+		"lch",
+		"notation",
+		"postcss",
+		"postcss-plugin",
+		"rgb",
+		"rgba",
+		"space",
+		"syntax"
+	],
+	"csstools": {
+		"cssdb": "lab-function",
+		"exportName": "postcssLabFunction",
+		"humanReadableName": "PostCSS Lab Function"
+	},
+	"volta": {
+		"extends": "../../package.json"
+	}
+}
