From 6d7096af78dbbc8c373089c8afdcbb25483f6e10 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Fri, 3 Dec 2021 15:36:37 +0100 Subject: [PATCH 01/25] Update packages & general housekeeping --- package-lock.json | 1068 ++++++++++++++++++++++++--------------------- package.json | 20 +- 2 files changed, 584 insertions(+), 504 deletions(-) diff --git a/package-lock.json b/package-lock.json index d35a5da..40272ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,27 +5,27 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.0" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -50,6 +50,27 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -62,28 +83,28 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, @@ -94,9 +115,9 @@ "dev": true }, "@supple-kit/stylelint-config-supple": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@supple-kit/stylelint-config-supple/-/stylelint-config-supple-4.0.0.tgz", - "integrity": "sha512-6kxjHDwnOVWG98tr6udrnOX0YL462ALmSJGQ8lnovmWrfZRnCP+3xZh3zNQmtS1wmudyrTrx8LPrG4TENaZvSA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@supple-kit/stylelint-config-supple/-/stylelint-config-supple-4.0.1.tgz", + "integrity": "sha512-tepVoXqS1XFo9FMdXkIo+S5TR4kFkfLug3WbceCVLwQRtKw+q5iNNkDm1hTbHAPvZsg9ZmZXwIUtlYnc1P5giQ==", "dev": true }, "@szmarczak/http-timer": { @@ -115,15 +136,15 @@ "dev": true }, "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, "@types/parse-json": { @@ -155,9 +176,9 @@ "dev": true }, "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -204,9 +225,9 @@ } }, "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true }, "arraybuffer.slice": { @@ -336,9 +357,9 @@ } }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "chalk": { @@ -351,27 +372,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -554,14 +554,23 @@ "dev": true }, "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz", + "integrity": "sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^6.2.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "dependencies": { + "camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true + } } }, "caniuse-api": { @@ -681,18 +690,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colord": { @@ -732,9 +741,9 @@ "dev": true }, "concurrently": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.3.0.tgz", - "integrity": "sha512-k4k1jQGHHKsfbqzkUszVf29qECBrkvBKkcPJEUDTyVR7tZd1G/JOfnst4g1sYbFvJ4UjHZisj1aWQR8yLKpGPw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", + "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -777,27 +786,6 @@ } } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -901,12 +889,6 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, - "css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true - }, "css-declaration-sorter": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", @@ -952,21 +934,21 @@ "dev": true }, "cssnano": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.9.tgz", - "integrity": "sha512-Y4olTKBKsPKl5izpcXHRDiB/1rVdbIDM4qVXgEKBt466kYT42SEEsnCYOQFFXzEkUYV8pJNCII9JKzb8KfDk+g==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.12.tgz", + "integrity": "sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.5", + "cssnano-preset-default": "^5.1.8", "is-resolvable": "^1.1.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.5.tgz", - "integrity": "sha512-fF00UI+d3PWkGfMd62geqmoUe5h+LOhGE2GH4Fqq3beNKdCU1LWwLUyIcu4/A72lWv0737cHey5zhhWw3rW0sA==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz", + "integrity": "sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg==", "dev": true, "requires": { "css-declaration-sorter": "^6.0.3", @@ -978,11 +960,11 @@ "postcss-discard-duplicates": "^5.0.1", "postcss-discard-empty": "^5.0.1", "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", + "postcss-merge-longhand": "^5.0.4", + "postcss-merge-rules": "^5.0.3", "postcss-minify-font-values": "^5.0.1", "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.1", + "postcss-minify-params": "^5.0.2", "postcss-minify-selectors": "^5.1.0", "postcss-normalize-charset": "^5.0.1", "postcss-normalize-display-values": "^5.0.1", @@ -991,13 +973,13 @@ "postcss-normalize-string": "^5.0.1", "postcss-normalize-timing-functions": "^5.0.1", "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", + "postcss-normalize-url": "^5.0.3", "postcss-normalize-whitespace": "^5.0.1", "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-initial": "^5.0.2", "postcss-reduce-transforms": "^5.0.1", "postcss-svgo": "^5.0.3", - "postcss-unique-selectors": "^5.0.1" + "postcss-unique-selectors": "^5.0.2" } }, "cssnano-utils": { @@ -1016,9 +998,9 @@ } }, "date-fns": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", - "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", + "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==", "dev": true }, "debug": { @@ -1132,9 +1114,9 @@ "dev": true }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "requires": { "domelementtype": "^2.2.0" @@ -1363,17 +1345,6 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "fastest-levenshtein": { @@ -1383,9 +1354,9 @@ "dev": true }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -1456,9 +1427,9 @@ } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "follow-redirects": { @@ -1516,9 +1487,9 @@ "dev": true }, "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true }, "get-stream": { @@ -1544,6 +1515,15 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -1593,20 +1573,6 @@ "ignore": "^5.1.8", "merge2": "^1.4.1", "slash": "^4.0.0" - }, - "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } } }, "globjoin": { @@ -1641,23 +1607,24 @@ "dev": true }, "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", "dev": true, "requires": { "duplexer": "^0.1.2" } }, "gzip-size-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gzip-size-cli/-/gzip-size-cli-5.0.0.tgz", - "integrity": "sha512-MS3H6owUIXUr5rZZh4cScfLV7kPFQQcE/a2T8xr44MYJIhP8lccrJraVANGWut53KlH9c8a53NxnxL5UllLU+Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gzip-size-cli/-/gzip-size-cli-5.1.0.tgz", + "integrity": "sha512-XBC1Ia0IWm0/cbiU33fPfNL6uFCq7IjngRkFCelullMBcEna9Re4DNPfpsRgREDpOR5FGNupBfdb377uI5o7iQ==", "dev": true, "requires": { - "chalk": "^4.1.1", - "gzip-size": "^6.0.0", - "meow": "^9.0.0", + "chalk": "^4.1.2", + "get-stdin": "^9.0.0", + "gzip-size": "^7.0.0", + "meow": "^10.1.2", "pretty-bytes": "^5.6.0" }, "dependencies": { @@ -1671,36 +1638,15 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1752,9 +1698,9 @@ "dev": true }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-yarn": { @@ -1764,10 +1710,13 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "html-tags": { "version": "3.1.0", @@ -1823,9 +1772,9 @@ } }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "ignore-by-default": { @@ -1889,9 +1838,9 @@ "dev": true }, "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true }, "indexof": { @@ -1953,9 +1902,9 @@ } }, "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" @@ -2143,9 +2092,9 @@ } }, "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", "dev": true }, "limiter": { @@ -2155,9 +2104,9 @@ "dev": true }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "localtunnel": { @@ -2219,12 +2168,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", @@ -2312,9 +2255,9 @@ } }, "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, "mathml-tag-names": { @@ -2330,59 +2273,35 @@ "dev": true }, "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", + "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", "dev": true, "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" }, "dependencies": { - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } @@ -2501,20 +2420,20 @@ "dev": true }, "nodemon": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz", - "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", "dev": true, "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", + "undefsafe": "^2.0.5", "update-notifier": "^5.1.0" }, "dependencies": { @@ -2527,12 +2446,24 @@ "ms": "^2.1.1" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -2554,14 +2485,14 @@ } }, "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" } }, @@ -2773,14 +2704,14 @@ } }, "postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", - "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "requires": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" + "source-map-js": "^1.0.1" } }, "postcss-calc": { @@ -2794,9 +2725,9 @@ } }, "postcss-cli": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.1.tgz", - "integrity": "sha512-zO160OBaAZBFUWO+QZIzEKMjnPIc5c61dMg1d7xafblh9cxbNb6s16ahJuP91PcVsu//gqr7BKllJxRiRDsSYw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.2.tgz", + "integrity": "sha512-08Wujoy7YGhKCFrGsT9OXqWjtHlGQ+JmyaD/4McjCiwor2IUTRVzXiJd+xmLTGdSWjceS6/TePaJQwBlkVWHiw==", "dev": true, "requires": { "chokidar": "^3.3.0", @@ -2804,7 +2735,7 @@ "fs-extra": "^10.0.0", "get-stdin": "^9.0.0", "globby": "^12.0.0", - "nanocolors": "^0.2.11", + "picocolors": "^1.0.0", "postcss-load-config": "^3.0.0", "postcss-reporter": "^7.0.0", "pretty-hrtime": "^1.0.3", @@ -2813,6 +2744,12 @@ "yargs": "^17.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -2824,12 +2761,6 @@ "universalify": "^2.0.0" } }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -2840,17 +2771,25 @@ "universalify": "^2.0.0" } }, - "nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", - "dev": true + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } }, "universalify": { "version": "2.0.0", @@ -2859,19 +2798,25 @@ "dev": true }, "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true } } }, @@ -2929,14 +2874,6 @@ "import-cwd": "^3.0.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" - }, - "dependencies": { - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } } }, "postcss-media-query-parser": { @@ -2946,27 +2883,25 @@ "dev": true }, "postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", + "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", "dev": true, "requires": { - "css-color-names": "^1.0.1", "postcss-value-parser": "^4.1.0", "stylehacks": "^5.0.1" } }, "postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", + "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" + "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { @@ -2990,16 +2925,15 @@ } }, "postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", + "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" + "postcss-value-parser": "^4.1.0" } }, "postcss-minify-selectors": { @@ -3077,9 +3011,9 @@ } }, "postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", + "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", "dev": true, "requires": { "is-absolute-url": "^3.0.3", @@ -3107,12 +3041,12 @@ } }, "postcss-reduce-initial": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", - "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", + "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", "dev": true, "requires": { - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "caniuse-api": "^3.0.0" } }, @@ -3138,14 +3072,6 @@ "lodash.groupby": "^4.6.0", "lodash.sortby": "^4.7.0", "picocolors": "^1.0.0" - }, - "dependencies": { - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - } } }, "postcss-resolve-nested-selector": { @@ -3187,14 +3113,13 @@ } }, "postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", + "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" + "postcss-selector-parser": "^6.0.5" } }, "postcss-value-parser": { @@ -3258,10 +3183,16 @@ "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, "range-parser": { @@ -3312,34 +3243,65 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "readdirp": { @@ -3352,13 +3314,13 @@ } }, "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" } }, "registry-auth-token": { @@ -3465,10 +3427,13 @@ } }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } }, "rx": { "version": "4.1.0", @@ -3492,19 +3457,31 @@ "dev": true }, "sass": { - "version": "1.43.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", - "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", "dev": true, "requires": { - "chokidar": ">=3.0.0 <4.0.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + }, + "dependencies": { + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + } } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-diff": { "version": "3.1.1", @@ -3672,15 +3649,15 @@ "dev": true }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true }, "slice-ansi": { @@ -3702,21 +3679,6 @@ "requires": { "color-convert": "^2.0.1" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true } } }, @@ -3811,9 +3773,9 @@ "dev": true }, "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, "spawn-command": { @@ -3849,9 +3811,9 @@ } }, "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "specificity": { @@ -3920,12 +3882,12 @@ } }, "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "requires": { - "min-indent": "^1.0.0" + "min-indent": "^1.0.1" } }, "strip-json-comments": { @@ -3951,9 +3913,9 @@ } }, "stylelint": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.0.1.tgz", - "integrity": "sha512-ZcAkmFLVCultmwkQUjxKzxW/o5+CzNmDk6TPJj/d4Y7ipTGGrewIWmNm+InjdSr04PR5/yynsAJeYJY/wisdMg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", + "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", "dev": true, "requires": { "balanced-match": "^2.0.0", @@ -3968,7 +3930,7 @@ "globby": "^11.0.4", "globjoin": "^0.1.4", "html-tags": "^3.1.0", - "ignore": "^5.1.8", + "ignore": "^5.1.9", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", @@ -3991,7 +3953,7 @@ "strip-ansi": "^6.0.1", "style-search": "^0.1.0", "svg-tags": "^1.0.0", - "table": "^6.7.2", + "table": "^6.7.3", "v8-compile-cache": "^2.3.0", "write-file-atomic": "^3.0.3" }, @@ -4002,21 +3964,44 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" } }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, "globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -4031,18 +4016,129 @@ "slash": "^3.0.0" } }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -4062,6 +4158,27 @@ "requires": { "ansi-regex": "^5.0.1" } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true } } }, @@ -4072,33 +4189,33 @@ "dev": true }, "stylelint-config-recommended-scss": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.1.tgz", - "integrity": "sha512-kVI5lX8jtaw9uNnnxxziw+LhW59m0x/JzGj8zVepeFQJ56eM4HazN4gMyCRQQSLr/8CXlIHGOW34CV5hIMr3FQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", "dev": true, "requires": { - "postcss-scss": "^4.0.1", + "postcss-scss": "^4.0.2", "stylelint-config-recommended": "^6.0.0", "stylelint-scss": "^4.0.0" } }, "stylelint-config-standard": { - "version": "23.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-23.0.0.tgz", - "integrity": "sha512-8PDlk+nWuc1T66nVaODTdVodN0pjuE5TBlopi39Lt9EM36YJsRhqttMyUhnS78oc/59Q6n8iw2GJB4QcoFqtRg==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-24.0.0.tgz", + "integrity": "sha512-+RtU7fbNT+VlNbdXJvnjc3USNPZRiRVp/d2DxOF/vBDDTi0kH5RX2Ny6errdtZJH3boO+bmqIYEllEmok4jiuw==", "dev": true, "requires": { "stylelint-config-recommended": "^6.0.0" } }, "stylelint-config-standard-scss": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-2.0.1.tgz", - "integrity": "sha512-TW5NLquUSS0mg2N31zzaSbYRbV/CMifSVLdpgo6VdGvjysgYqJOcKM/5bmXucTOsdfqomcPXetFZ3adC7nD+cg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-3.0.0.tgz", + "integrity": "sha512-zt3ZbzIbllN1iCmc94e4pDxqpkzeR6CJo5DDXzltshuXr+82B8ylHyMMARNnUYrZH80B7wgY7UkKTYCFM0UUyw==", "dev": true, "requires": { - "stylelint-config-recommended-scss": "^5.0.0", - "stylelint-config-standard": "^23.0.0" + "stylelint-config-recommended-scss": "^5.0.2", + "stylelint-config-standard": "^24.0.0" } }, "stylelint-scss": { @@ -4156,13 +4273,12 @@ "dev": true }, "table": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", - "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", @@ -4256,9 +4372,9 @@ "dev": true }, "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", "dev": true }, "tslib": { @@ -4268,9 +4384,9 @@ "dev": true }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true }, "typedarray-to-buffer": { @@ -4294,12 +4410,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -4362,36 +4472,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4449,12 +4529,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -4694,6 +4768,12 @@ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 24cac0b..d344bb5 100644 --- a/package.json +++ b/package.json @@ -41,18 +41,18 @@ "defaults" ], "devDependencies": { - "@supple-kit/stylelint-config-supple": "^4.0.0", + "@supple-kit/stylelint-config-supple": "^4.0.1", "autoprefixer": "^10.4.0", "browser-sync": "^2.27.7", - "concurrently": "^6.3.0", - "cssnano": "^5.0.9", + "concurrently": "^6.4.0", + "cssnano": "^5.0.12", "glob": "^7.2.0", - "gzip-size-cli": "^5.0.0", - "nodemon": "^2.0.14", - "postcss": "^8.3.11", - "postcss-cli": "^9.0.1", - "sass": "^1.43.4", - "stylelint": "^14.0.1", - "stylelint-config-standard-scss": "^2.0.1" + "gzip-size-cli": "^5.1.0", + "nodemon": "^2.0.15", + "postcss": "^8.4.4", + "postcss-cli": "^9.0.2", + "sass": "^1.44.0", + "stylelint": "^14.1.0", + "stylelint-config-standard-scss": "^3.0.0" } } From b1bed2e269fb5cdf03b5dd97c40592b4984d4eae Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Fri, 3 Dec 2021 15:57:04 +0100 Subject: [PATCH 02/25] change settings from spaces to tabs --- .editorconfig | 2 +- .stylelintrc | 7 +++++-- package-lock.json | 5 +++++ package.json | 1 + postcss.config.js | 12 ++++++------ prettier.config.js | 4 ++++ 6 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 prettier.config.js diff --git a/.editorconfig b/.editorconfig index a867f4b..3222fa9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,4 +9,4 @@ charset = utf-8 end_of_line = lf insert_final_newline = true indent_size = 2 -indent_style = space +indent_style = tab diff --git a/.stylelintrc b/.stylelintrc index faa26c1..734f169 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,4 +1,7 @@ { - "extends": "@supple-kit/stylelint-config-supple", - "ignoreFiles": ["_test/css/*", "vendor/**/*"] + "extends": "@supple-kit/stylelint-config-supple", + "ignoreFiles": ["_test/css/*", "vendor/**/*"], + "rules": { + "indentation": "tab" + } } diff --git a/package-lock.json b/package-lock.json index 40272ac..732aac6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -114,6 +114,11 @@ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, + "@supple-kit/prettier-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@supple-kit/prettier-config/-/prettier-config-1.0.1.tgz", + "integrity": "sha512-+dL50YUuv0gcB/3dE3FoekJJ6ZuFY+vbyMVM9o9Icrd6nSIIvHaUIK55344tKHEoFpyAz3t7GszmvrPQpyY+nw==" + }, "@supple-kit/stylelint-config-supple": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@supple-kit/stylelint-config-supple/-/stylelint-config-supple-4.0.1.tgz", diff --git a/package.json b/package.json index d344bb5..899ede4 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "defaults" ], "devDependencies": { + "@supple-kit/prettier-config": "^1.0.1", "@supple-kit/stylelint-config-supple": "^4.0.1", "autoprefixer": "^10.4.0", "browser-sync": "^2.27.7", diff --git a/postcss.config.js b/postcss.config.js index 0bb6d72..c36a1e0 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,8 @@ module.exports = { - plugins: [ - // require("autoprefixer"), - require("cssnano")({ - preset: "default", - }), - ], + plugins: [ + // require("autoprefixer"), + require('cssnano')({ + preset: 'default', + }), + ], }; diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..d48d5b8 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,4 @@ +module.exports = { + ...require('@supple-kit/prettier-config'), + useTabs: true, +}; From d5ae5ea0cbab6e4440ed2e7d6f3d47b3c7f58891 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Fri, 3 Dec 2021 16:24:00 +0100 Subject: [PATCH 03/25] use prettier config --- .stylelintrc | 5 +- .vscode/settings.json | 5 - package-lock.json | 6475 ++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 4 files changed, 6467 insertions(+), 19 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.stylelintrc b/.stylelintrc index 734f169..758d470 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,5 +1,8 @@ { - "extends": "@supple-kit/stylelint-config-supple", + "extends": [ + "@supple-kit/stylelint-config-supple", + "stylelint-config-prettier" + ], "ignoreFiles": ["_test/css/*", "vendor/**/*"], "rules": { "indentation": "tab" diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 412bd1b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "[scss]": { - "editor.formatOnSave": false - } -} diff --git a/package-lock.json b/package-lock.json index 732aac6..d826c79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,6438 @@ { "name": "@supple-kit/supple-css", "version": "5.3.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@supple-kit/supple-css", + "version": "5.3.0", + "funding": [ + { + "type": "github", + "url": "https://www.github.com/sponsors/bramsmulders" + }, + { + "type": "paypal", + "url": "https://www.paypal.me/smuldersbram/EUR" + } + ], + "license": "MIT", + "devDependencies": { + "@supple-kit/prettier-config": "^1.0.1", + "@supple-kit/stylelint-config-supple": "^4.0.1", + "autoprefixer": "^10.4.0", + "browser-sync": "^2.27.7", + "concurrently": "^6.4.0", + "cssnano": "^5.0.12", + "glob": "^7.2.0", + "gzip-size-cli": "^5.1.0", + "nodemon": "^2.0.15", + "postcss": "^8.4.4", + "postcss-cli": "^9.0.2", + "sass": "^1.44.0", + "stylelint": "^14.1.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard-scss": "^3.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@supple-kit/prettier-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@supple-kit/prettier-config/-/prettier-config-1.0.1.tgz", + "integrity": "sha512-+dL50YUuv0gcB/3dE3FoekJJ6ZuFY+vbyMVM9o9Icrd6nSIIvHaUIK55344tKHEoFpyAz3t7GszmvrPQpyY+nw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://www.github.com/sponsors/bramsmulders" + }, + { + "type": "paypal", + "url": "https://www.paypal.me/smuldersbram/EUR" + } + ] + }, + "node_modules/@supple-kit/stylelint-config-supple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@supple-kit/stylelint-config-supple/-/stylelint-config-supple-4.0.1.tgz", + "integrity": "sha512-tepVoXqS1XFo9FMdXkIo+S5TR4kFkfLug3WbceCVLwQRtKw+q5iNNkDm1hTbHAPvZsg9ZmZXwIUtlYnc1P5giQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://www.github.com/sponsors/bramsmulders" + }, + { + "type": "paypal", + "url": "https://www.paypal.me/smuldersbram/EUR" + } + ], + "peerDependencies": { + "stylelint": "^14.1.0", + "stylelint-config-standard-scss": "^3.0.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", + "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "dev": true, + "dependencies": { + "browserslist": "^4.17.5", + "caniuse-lite": "^1.0.30001272", + "fraction.js": "^4.1.1", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync": { + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.7.tgz", + "integrity": "sha512-9ElnnA/u+s2Jd+IgY+2SImB+sAEIteHsMG0NR96m7Ph/wztpvJCUpyC2on1KqmG9iAp941j+5jfmd34tEguGbg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.27.7", + "browser-sync-ui": "^2.27.7", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "3.1.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.1.1", + "qs": "6.2.3", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "2.4.0", + "ua-parser-js": "1.0.2", + "yargs": "^15.4.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.7.tgz", + "integrity": "sha512-wKg9UP9a4sCIkBBAXUdbkdWFJzfSAQizGh+nC19W9y9zOo9s5jqeYRFUUbs7x5WKhjtspT+xetVp9AtBJ6BmWg==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3", + "rxjs": "^5.5.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.27.7", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.7.tgz", + "integrity": "sha512-Bt4OQpx9p18OIzk0KKyu7jqlvmjacasUlk8ARY3uuIyiFWSBiRgr2i6XY8dEMF14DtbooaEBOpHEu9VCYvMcCw==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^2.4.0", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browserslist": { + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", + "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001274", + "electron-to-chromium": "^1.3.886", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "node_modules/bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz", + "integrity": "sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA==", + "dev": true, + "dependencies": { + "camelcase": "^6.2.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001275", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001275.tgz", + "integrity": "sha512-ihJVvj8RX0kn9GgP43HKhb5q9s2XQn4nEQhdldEJvZhCsuiB2XOq6fAMYQZaN6FPWfsr2qU0cdL0CSbETwbJAg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", + "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concurrently": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", + "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" + }, + "bin": { + "concurrently": "bin/concurrently.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", + "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "dev": true, + "dependencies": { + "timsort": "^0.3.0" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.12.tgz", + "integrity": "sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.1.8", + "is-resolvable": "^1.1.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz", + "integrity": "sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.2.1", + "postcss-convert-values": "^5.0.2", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.4", + "postcss-merge-rules": "^5.0.3", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.3", + "postcss-minify-params": "^5.0.2", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.3", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.2", + "postcss-reduce-initial": "^5.0.2", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.3", + "postcss-unique-selectors": "^5.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/date-fns": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", + "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==", + "dev": true, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", + "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "dev": true, + "dependencies": { + "tfunk": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.887", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.887.tgz", + "integrity": "sha512-QQUumrEjFDKSVYVdaeBmFdyQGoaV+fCSMyWHvfx/u22bRHSTeBQYt6P4jMY+gFd4kgKB9nqk7RMtWkDB49OYPA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", + "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "~7.4.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz", + "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fraction.js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", + "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/globby": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", + "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.8", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gzip-size-cli": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gzip-size-cli/-/gzip-size-cli-5.1.0.tgz", + "integrity": "sha512-XBC1Ia0IWm0/cbiU33fPfNL6uFCq7IjngRkFCelullMBcEna9Re4DNPfpsRgREDpOR5FGNupBfdb377uI5o7iQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "get-stdin": "^9.0.0", + "gzip-size": "^7.0.0", + "meow": "^10.1.2", + "pretty-bytes": "^5.6.0" + }, + "bin": { + "gzip-size": "cli.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gzip-size-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/gzip-size-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gzip-size-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", + "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", + "dev": true + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/localtunnel/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "node_modules/lodash.forown": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-4.4.0.tgz", + "integrity": "sha1-hRFc8E9z75ZuztUlEdOJPMRmg68=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/meow": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", + "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dev": true, + "dependencies": { + "mime-db": "1.50.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "dependencies": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-cli": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.2.tgz", + "integrity": "sha512-08Wujoy7YGhKCFrGsT9OXqWjtHlGQ+JmyaD/4McjCiwor2IUTRVzXiJd+xmLTGdSWjceS6/TePaJQwBlkVWHiw==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/postcss-cli/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-colormin": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz", + "integrity": "sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", + "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "dependencies": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", + "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", + "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", + "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", + "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.6", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "dependencies": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "dependencies": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", + "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", + "dev": true, + "dependencies": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", + "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", + "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "dependencies": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.4.tgz", + "integrity": "sha512-jY/fnpGSin7kwJeunXbY35STp5O3VIxSFdjee5JkoPQ+FfGH5JW3N+Xe9oAPcL9UkjWjkK+JC72o8XH4XXKdhw==", + "dev": true, + "dependencies": { + "lodash.difference": "^4.5.0", + "lodash.forown": "^4.4.0", + "lodash.get": "^4.4.2", + "lodash.groupby": "^4.6.0", + "lodash.sortby": "^4.7.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", + "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", + "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", + "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "node_modules/rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "dependencies": { + "symbol-observable": "1.0.1" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/socket.io": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz", + "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.5.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.4.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-parser": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", + "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/socket.io/node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true, + "bin": { + "specificity": "bin/specificity" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "node_modules/stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylelint": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", + "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", + "dev": true, + "dependencies": { + "balanced-match": "^2.0.0", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", + "execall": "^2.0.0", + "fast-glob": "^3.2.7", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.1.9", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.23.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "normalize-selector": "^0.2.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "svg-tags": "^1.0.0", + "table": "^6.7.3", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^3.0.3" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-24.0.0.tgz", + "integrity": "sha512-+RtU7fbNT+VlNbdXJvnjc3USNPZRiRVp/d2DxOF/vBDDTi0kH5RX2Ny6errdtZJH3boO+bmqIYEllEmok4jiuw==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^6.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-3.0.0.tgz", + "integrity": "sha512-zt3ZbzIbllN1iCmc94e4pDxqpkzeR6CJo5DDXzltshuXr+82B8ylHyMMARNnUYrZH80B7wgY7UkKTYCFM0UUyw==", + "dev": true, + "dependencies": { + "stylelint-config-recommended-scss": "^5.0.2", + "stylelint-config-standard": "^24.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.0.0.tgz", + "integrity": "sha512-lIRhPqtI6I065EJ6aI4mWKsmQt8Krnu6aF9XSL9s8Nd2f/cDKImST0T9TfjnUul3ReKYWozkG9dlpNTZH2FB9w==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/stylelint/node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/stylelint/node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/stylelint/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/stylelint/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/stylelint/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/table": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tfunk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", + "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "dlv": "^1.1.3" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.6", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", + "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/yargs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/yargs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.16.0", @@ -117,13 +6547,15 @@ "@supple-kit/prettier-config": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@supple-kit/prettier-config/-/prettier-config-1.0.1.tgz", - "integrity": "sha512-+dL50YUuv0gcB/3dE3FoekJJ6ZuFY+vbyMVM9o9Icrd6nSIIvHaUIK55344tKHEoFpyAz3t7GszmvrPQpyY+nw==" + "integrity": "sha512-+dL50YUuv0gcB/3dE3FoekJJ6ZuFY+vbyMVM9o9Icrd6nSIIvHaUIK55344tKHEoFpyAz3t7GszmvrPQpyY+nw==", + "dev": true }, "@supple-kit/stylelint-config-supple": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@supple-kit/stylelint-config-supple/-/stylelint-config-supple-4.0.1.tgz", "integrity": "sha512-tepVoXqS1XFo9FMdXkIo+S5TR4kFkfLug3WbceCVLwQRtKw+q5iNNkDm1hTbHAPvZsg9ZmZXwIUtlYnc1P5giQ==", - "dev": true + "dev": true, + "requires": {} }, "@szmarczak/http-timer": { "version": "1.1.2", @@ -991,7 +7423,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", - "dev": true + "dev": true, + "requires": {} }, "csso": { "version": "4.2.0", @@ -2850,25 +9283,29 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-duplicates": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-empty": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-overridden": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", - "dev": true + "dev": true, + "requires": {} }, "postcss-load-config": { "version": "3.1.0", @@ -2955,7 +9392,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-normalize-display-values": { "version": "5.0.1", @@ -3089,13 +9527,15 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-scss": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-parser": { "version": "6.0.6", @@ -4187,11 +10627,19 @@ } } }, + "stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "requires": {} + }, "stylelint-config-recommended": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", - "dev": true + "dev": true, + "requires": {} }, "stylelint-config-recommended-scss": { "version": "5.0.2", @@ -4632,7 +11080,8 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true + "dev": true, + "requires": {} }, "xdg-basedir": { "version": "4.0.0", diff --git a/package.json b/package.json index 899ede4..7185963 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "postcss-cli": "^9.0.2", "sass": "^1.44.0", "stylelint": "^14.1.0", + "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard-scss": "^3.0.0" } } From e436977b270aef81f4dbe5d0d00eff08f0f7ce07 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Fri, 3 Dec 2021 16:24:14 +0100 Subject: [PATCH 04/25] converted tools to spaces --- tools/README.md | 138 +++++++-------- tools/_a11y.scss | 39 +++-- tools/_internal/_functions.scss | 192 +++++++++++---------- tools/_rem.scss | 54 +++--- tools/_responsive.scss | 295 ++++++++++++++++---------------- tools/_space.scss | 29 ++-- tools/_typography.scss | 122 +++++++------ 7 files changed, 432 insertions(+), 437 deletions(-) diff --git a/tools/README.md b/tools/README.md index 42d26d3..24cbe53 100644 --- a/tools/README.md +++ b/tools/README.md @@ -22,13 +22,13 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). Supple’s tools are categorised so you only need to `@use` the tools you want: ```scss -@use "node_modules/@supple-kit/supple-css/tools/space"; -@use "node_modules/@supple-kit/supple-css/tools/responsive"; +@use 'node_modules/@supple-kit/supple-css/tools/space'; +@use 'node_modules/@supple-kit/supple-css/tools/responsive'; .your-module { - @include responsive.mq("lap") { - margin-inline-start: space.get("tiny"); - } + @include responsive.mq('lap') { + margin-inline-start: space.get('tiny'); + } } ``` @@ -37,7 +37,7 @@ Supple’s tools are categorised so you only need to `@use` the tools you want: This layer contains everything space related. You can `@use` this tool in your own component like this: ```scss -@use "node_modules/@supple-kit/supple-css/tools/space"; +@use 'node_modules/@supple-kit/supple-css/tools/space'; ``` ### function: `space.get()` @@ -54,13 +54,13 @@ Returns the spacing value converted to `rem` units. The `$name` must be present ```scss .selector { - margin-inline-start: space.get("tiny"); - margin-inline-end: space.get("large"); + margin-inline-start: space.get('tiny'); + margin-inline-end: space.get('large'); } // with default settings becomes .selector { - margin-inline-start: 0.5rem; - margin-inline-end: 3rem; + margin-inline-start: 0.5rem; + margin-inline-end: 3rem; } ``` @@ -78,13 +78,13 @@ Returns the spacing-factor value. The `$name` must be present in `defaults.$spac ```scss .selector { - margin-inline-start: calc( - #{space.get-factor("small")} * #{defaults.$baseline} - ); + margin-inline-start: calc( + #{space.get-factor('small')} * #{defaults.$baseline} + ); } // with default settings becomes .selector { - margin-inline-start: calc(2 * 8px); + margin-inline-start: calc(2 * 8px); } ``` @@ -93,7 +93,7 @@ Returns the spacing-factor value. The `$name` must be present in `defaults.$spac This layer is used to convert any `px` value to `rem`. You can `@use` this tool in your own component like this: ```scss -@use "node_modules/@supple-kit/supple-css/tools/rem"; +@use 'node_modules/@supple-kit/supple-css/tools/rem'; ``` ### function: `rem.convert()` @@ -110,15 +110,15 @@ Converts `px` values to `rem`. If you pass in another format instead of `px` it ```scss .selector { - margin-block-start: rem.convert(24px); - margin-block: rem.convert(24px 0.5vw); - margin-inline: rem.convert(24px auto 12px 50%); + margin-block-start: rem.convert(24px); + margin-block: rem.convert(24px 0.5vw); + margin-inline: rem.convert(24px auto 12px 50%); } // with default settings becomes: .selector { - margin-block-start: 1.5rem; - margin-block: 1.5rem 0.5vw; - margin-inline: 1.5rem auto 0.75rem 50%; + margin-block-start: 1.5rem; + margin-block: 1.5rem 0.5vw; + margin-inline: 1.5rem auto 0.75rem 50%; } ``` @@ -127,7 +127,7 @@ Converts `px` values to `rem`. If you pass in another format instead of `px` it This layer contains some accessibility helper mixins. You can `@use` this tool in your own component like this: ```scss -@use "node_modules/@supple-kit/supple-css/tools/a11y"; +@use 'node_modules/@supple-kit/supple-css/tools/a11y'; ``` ### Mixin: `a11y.visually-hidden` @@ -138,20 +138,20 @@ Hides an element visually while still allowing the content to be accessible to a ```scss .selector { - @include a11y.visually-hidden; + @include a11y.visually-hidden; } // becomes: .selector { - border: 0 !important; - clip: rect(0 0 0 0) !important; - clip-path: inset(50%) !important; - block-size: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - inline-size: 1px !important; + border: 0 !important; + clip: rect(0 0 0 0) !important; + clip-path: inset(50%) !important; + block-size: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + inline-size: 1px !important; } ``` @@ -161,7 +161,7 @@ This layer contains all the functions & mixins regarding to typography. You can `@use` this tool in your own component like this: ```scss -@use "node_modules/@supple-kit/supple-css/tools/typography"; +@use 'node_modules/@supple-kit/supple-css/tools/typography'; ``` ### Mixin `typography.font-size` @@ -181,29 +181,29 @@ Generates a rem font-size and a baseline-compatible unitless line-height from a ```scss .selector { - @include typography.font-size($font-size: 18px); + @include typography.font-size($font-size: 18px); } // add 2 lines of `$baseline` .selector-modifier { - @include typography.font-size($font-size: 18px, $modifier: +2); + @include typography.font-size($font-size: 18px, $modifier: +2); } // Self define line-height .selector-line-height { - @include typography.font-size($font-size: 18px, $line-height: 1); + @include typography.font-size($font-size: 18px, $line-height: 1); } // with default settings becomes: .selector { - font-size: 1.125rem; - line-height: 1.7777777778; // 32px + font-size: 1.125rem; + line-height: 1.7777777778; // 32px } .selector-modifier { - font-size: 1.125rem; - line-height: 2.6666666667; // 48px + font-size: 1.125rem; + line-height: 2.6666666667; // 48px } .selector-line-height { - font-size: 1.125rem; - line-height: 1; // 18px + font-size: 1.125rem; + line-height: 1; // 18px } ``` @@ -213,7 +213,7 @@ This layer contains all the tools for responsive web design. You can `@use` this tool in your own component like this: ```scss -@use "node_modules/@supple-kit/supple-css/tools/responsive"; +@use 'node_modules/@supple-kit/supple-css/tools/responsive'; ``` ### Mixin: `responsive.color-scheme()` @@ -225,13 +225,13 @@ way that supports a toggle component. ```scss :root { - // Light theme colors - --color-slate: #cccccc; + // Light theme colors + --color-slate: #cccccc; - @include responsive.color-scheme() { - // Dark theme colors - --color-slate: #000000; - } + @include responsive.color-scheme() { + // Dark theme colors + --color-slate: #000000; + } } ``` @@ -245,15 +245,15 @@ Apply a media query defined in `defaults.$queries`. ```scss .selector { - @include responsive.mq("lap") { - outline: 1px solid #ff0000; - } + @include responsive.mq('lap') { + outline: 1px solid #ff0000; + } } // with default settings becomes: @media (min-width: 40em) { - .selector { - margin-block-end: 0 !important; - } + .selector { + margin-block-end: 0 !important; + } } ``` @@ -275,20 +275,20 @@ The property will start scaling and stop scaling exactly where you want. ```scss .selector { - font-size: responsive.lock(18px, 24px); + font-size: responsive.lock(18px, 24px); } // You can also redefine the min- and max breakpoints like this .selector-defined-breakpoints { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } // with default settings becomes: .selector { - font-size: clamp(1.125rem, 0.375rem + 1.875vw, 1.5rem); + font-size: clamp(1.125rem, 0.375rem + 1.875vw, 1.5rem); } .selector-defined-breakpoints { - font-size: clamp(1.25rem, -0.625rem + 3.125vw, 1.875rem); + font-size: clamp(1.25rem, -0.625rem + 3.125vw, 1.875rem); } ``` @@ -308,20 +308,20 @@ The mixin's `@content` will be also applied to the parent selector. ```scss $YOURMODULE-in-query: (lap, desk); .your-selector { - @include responsive.in-query($YOURMODULE-in-query) { - outline: 1px solid #ff0000; - } + @include responsive.in-query($YOURMODULE-in-query) { + outline: 1px solid #ff0000; + } } // becomes: @media (min-width: 40em) { - .your-selector\@lap { - outline: 1px solid #ff0000; - } + .your-selector\@lap { + outline: 1px solid #ff0000; + } } @media (min-width: 60em) { - .your-selector\@desk { - outline: 1px solid #ff0000; - } + .your-selector\@desk { + outline: 1px solid #ff0000; + } } ``` diff --git a/tools/_a11y.scss b/tools/_a11y.scss index 01cddc3..51b0af2 100644 --- a/tools/_a11y.scss +++ b/tools/_a11y.scss @@ -1,23 +1,24 @@ -/* ========================================================================= - tools.a11y - Helpers to create more accessible sites - ========================================================================= */ +/* ========================================================================== + tools.a11y + Helpers to create more accessible sites +/ =========================================================================== */ -/* Visually-hidden - Hides an element visually while still allowing the content to be accessible - to assistive technology, e.g. screen readers. - Usage: @include visually-hidden(); - ========================================================================= */ +/* -------------------------------------------------------------------------- + Visually-hidden + Hides an element visually while still allowing the content to be accessible + to assistive technology, e.g. screen readers. + Usage: @include visually-hidden(); +/ --------------------------------------------------------------------------- */ @mixin visually-hidden { - border: 0 !important; - clip: rect(0 0 0 0) !important; - clip-path: inset(50%) !important; - block-size: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - inline-size: 1px !important; + border: 0 !important; + clip: rect(0 0 0 0) !important; + clip-path: inset(50%) !important; + block-size: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + inline-size: 1px !important; } diff --git a/tools/_internal/_functions.scss b/tools/_internal/_functions.scss index 9d9f05f..78fb488 100644 --- a/tools/_internal/_functions.scss +++ b/tools/_internal/_functions.scss @@ -1,6 +1,6 @@ -/* ========================================================================= - tools.functions -/ ========================================================================= */ +/* ========================================================================== + tools.functions +/ =========================================================================== */ @use 'sass:list'; @use 'sass:math'; @@ -9,16 +9,15 @@ @use 'sass:string'; @use '../../settings/defaults'; - - -/* Functions -/ ========================================================================= */ +/* -------------------------------------------------------------------------- + Functions +/ --------------------------------------------------------------------------- */ /** * A small, internally-used function to remove the units from a given value. */ @function strip-units($value) { - @return math.div($value, ($value * 0 + 1)); + @return math.div($value, ($value * 0 + 1)); } /** @@ -26,10 +25,10 @@ * Converts pixels to em based on context */ @function value-to-em($value, $context: 16px) { - @if $value == 0 { - @return 0; - } - @return math.div($value, $context) * 1em; + @if $value == 0 { + @return 0; + } + @return math.div($value, $context) * 1em; } /** @@ -37,103 +36,114 @@ * Implode a list into a string */ @function implode($list, $glue: ' ') { - $res: null; - $len: list.length($list); - - @for $i from 1 through $len { - $e: list.nth($list, $i); - @if $i == $len { - $res: string.unquote('#{$res}#{$e}'); - } @else { - $res: string.unquote('#{$res}#{$e}#{$glue}'); - } - } - - @return $res; + $res: null; + $len: list.length($list); + + @for $i from 1 through $len { + $e: list.nth($list, $i); + @if $i == $len { + $res: string.unquote('#{$res}#{$e}'); + } @else { + $res: string.unquote('#{$res}#{$e}#{$glue}'); + } + } + + @return $res; } - -/* Responsive functions -/ ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive functions +/ --------------------------------------------------------------------------- */ @function get-breakpoints($query) { - $media-string: (); - $media-map: parse-breakpoints($query); - - @each $key, $value in $media-map { - @if $value and $value != 0 { - @if $media-string == (()) { - $media-string: list.append($media-string, string.unquote('(#{$key}: #{$value})')); - } @else { - $media-string: list.append($media-string, string.unquote('and (#{$key}: #{$value})')); - } - } - } - - @return implode($media-string); + $media-string: (); + $media-map: parse-breakpoints($query); + + @each $key, $value in $media-map { + @if $value and $value != 0 { + @if $media-string == (()) { + $media-string: list.append( + $media-string, + string.unquote('(#{$key}: #{$value})') + ); + } @else { + $media-string: list.append( + $media-string, + string.unquote('and (#{$key}: #{$value})') + ); + } + } + } + + @return implode($media-string); } @function parse-breakpoints($query) { - $breakpoints: defaults.$breakpoints; - $return: (); - $i: 1; - $min-w: null; - - // contains map - @if meta.type-of($query) == map { - @each $key, $value in $query { - @if $key == min or $key == min-width { - $return: add-query($return, min-width, $value); - } @else if $key == max or $key == max-width { - $return: add-query($return, max-width, $value); - } @else if $key == min-height { - $return: add-query($return, min-height, $value); - } @else if $key == max-height { - $return: add-query($return, max-height, $value); - } @else { - @error 'No valid query key has been given'; - } - } - } - - // single value - @else if meta.type-of($query) == string or meta.type-of($query) == number { - $return: add-query($return, min-width, $query); - } - - @return $return; + $breakpoints: defaults.$breakpoints; + $return: (); + $i: 1; + $min-w: null; + + // contains map + @if meta.type-of($query) == map { + @each $key, $value in $query { + @if $key == min or $key == min-width { + $return: add-query($return, min-width, $value); + } @else if $key == max or $key == max-width { + $return: add-query($return, max-width, $value); + } @else if $key == min-height { + $return: add-query($return, min-height, $value); + } @else if $key == max-height { + $return: add-query($return, max-height, $value); + } @else { + @error 'No valid query key has been given'; + } + } + } + + // single value + @else if meta.type-of($query) == string or meta.type-of($query) == number { + $return: add-query($return, min-width, $query); + } + + @return $return; } @function add-query($media-map, $key, $value) { - $return: $media-map; - $parsed-value: validate-query($value); + $return: $media-map; + $parsed-value: validate-query($value); - @if $parsed-value { - $resolved-value: $parsed-value; + @if $parsed-value { + $resolved-value: $parsed-value; - @if math.unit($parsed-value) == 'px' { - @if $key == max-width or $key == max-height { - $parsed-value: $parsed-value - 1px; - } + @if math.unit($parsed-value) == 'px' { + @if $key == max-width or $key == max-height { + $parsed-value: $parsed-value - 1px; + } - $resolved-value: value-to-em($parsed-value); - } + $resolved-value: value-to-em($parsed-value); + } - $return: map.merge($return, ($key: $resolved-value)); - } + $return: map.merge( + $return, + ( + $key: $resolved-value, + ) + ); + } - @return $return; + @return $return; } @function validate-query($query) { - $breakpoints: defaults.$breakpoints; - $return: null; + $breakpoints: defaults.$breakpoints; + $return: null; - @if meta.type-of($query) == string and map.has-key($breakpoints, $query) { - @return map.get($breakpoints, $query); - } @else if meta.type-of($query) == number { - $return: $query; - } + @if meta.type-of($query) == string and map.has-key($breakpoints, $query) { + @return map.get($breakpoints, $query); + } @else if meta.type-of($query) == number { + $return: $query; + } - @return $return; + @return $return; } diff --git a/tools/_rem.scss b/tools/_rem.scss index fd249f5..537ed84 100644 --- a/tools/_rem.scss +++ b/tools/_rem.scss @@ -1,51 +1,43 @@ -/* ========================================================================= - tools.rem - functions an mixins to make life with `rem` units easy - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + tools.rem + functions an mixins to make life with `rem` units easy +/ =========================================================================== */ @use 'sass:math'; @use 'sass:meta'; @use 'sass:list'; @use '../settings/defaults'; - - -/* Module - ========================================================================= */ - /** * to-rem * Converts a single px value to a rem unit based on the current browser context */ @function to-rem($value) { - @if meta.type-of($value) == string or math.is-unitless($value) == true or math.unit($value) != 'px' { - @return $value; - } @else { - @return (math.div($value, defaults.$font-size) * 1rem); - } + @if (meta.type-of($value) == string) or + (math.is-unitless($value) == true) or + (math.unit($value) != 'px') + { + @return $value; + } @else { + @return (math.div($value, defaults.$font-size) * 1rem); + } } - /** * Rem * Converts all `px` values in a set of values to `rem` values. * Usage: - rem.convert(0 auto 300px); - rem.convert(26px); +rem.convert(0 auto 300px); +rem.convert(26px); */ @function convert($value) { - @if meta.type-of($value) == list { - $all: (); - @for $i from 1 through list.length($value) { - $all: list.append($all, to-rem(list.nth($value, $i))); - } - @return $all; - } @else { - @return to-rem($value); - } + @if meta.type-of($value) == list { + $all: (); + @for $i from 1 through list.length($value) { + $all: list.append($all, to-rem(list.nth($value, $i))); + } + @return $all; + } @else { + @return to-rem($value); + } } diff --git a/tools/_responsive.scss b/tools/_responsive.scss index 2170882..625980c 100644 --- a/tools/_responsive.scss +++ b/tools/_responsive.scss @@ -1,12 +1,7 @@ -/* ========================================================================= - tools.responsive - As per: https://web.dev/new-responsive/#conclusion -/ ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. -/ ========================================================================= */ +/* ========================================================================== + tools.responsive + As per: https://web.dev/new-responsive/#conclusion +/ =========================================================================== */ @use 'sass:list'; @use 'sass:math'; @@ -17,157 +12,165 @@ @use '_internal/functions'; @use 'rem'; - -/* ========================================================================= - User preference -/ ========================================================================= */ - -/* Mixin: color-scheme - A little wrapper that lets you define your dark mode custom - properties in a way that supports a toggle component. - Usage: - - :root { - // Light theme colors - --color-slate: #cccccc; - - @include responsive.color-scheme() { - // Dark theme colors - --color-slate: #000000; - } - } -/ ========================================================================= */ - +/* -------------------------------------------------------------------------- + User preference +/ --------------------------------------------------------------------------- */ + +/** + * Mixin: color-scheme + * A little wrapper that lets you define your dark mode custom + * properties in a way that supports a toggle component. + * Usage: +:root { + // Light theme colors + --color-slate: #cccccc; + + @include responsive.color-scheme() { + // Dark theme colors + --color-slate: #000000; + } +} + */ @mixin color-scheme($dark: true, $attribute: data-user-color-scheme) { - $mode: 'dark'; - @if $dark == true { - --color-mode: 'light'; - } @else { - $mode: 'light'; - - --color-mode: 'dark'; - } - - @media (prefers-color-scheme: #{$mode}) { - --color-mode: '#{$mode}'; - - &:not([#{$attribute}]) { - @content; - } - } - - &[#{$attribute}='#{$mode}'] { - @content; - } + $mode: 'dark'; + @if $dark == true { + --color-mode: 'light'; + } @else { + $mode: 'light'; + + --color-mode: 'dark'; + } + + @media (prefers-color-scheme: #{$mode}) { + --color-mode: '#{$mode}'; + + &:not([#{$attribute}]) { + @content; + } + } + + &[#{$attribute}='#{$mode}'] { + @content; + } } -/* ========================================================================= - Viewport & formfactor -/ ========================================================================= */ - -/* Query - Apply a media query defined in `defaults.$queries`. +/* -------------------------------------------------------------------------- + Viewport & formfactor +/ --------------------------------------------------------------------------- */ - Example usage: - @include responsive.mq(wall) { - outline: 1px solid #ff0000; - } - - Or you can pass in a type: - @include responsive.mq(wall, print) { - outline: 1px solid #ff0000; - } -/ ========================================================================= */ +/** + * Query + * Apply a media query defined in `defaults.$queries`. + * Example usage: +@include responsive.mq(wall) { + outline: 1px solid #ff0000; +} +// Or you can pass in a type: +@include responsive.mq(wall, print) { + outline: 1px solid #ff0000; +} + */ @mixin mq($name, $type: all) { - @if not map.has-key(defaults.$queries, $name) { - @error '"defaults.$queries" does not contain "#{$name}", expects one of the following: #{map.keys(defaults.$queries)}'; // stylelint-disable-line max-line-length - } + @if not map.has-key(defaults.$queries, $name) { + @error '"defaults.$queries" does not contain "#{$name}", expects one of the following: #{map.keys(defaults.$queries)}'; // stylelint-disable-line max-line-length + } - @media #{$type} and #{functions.get-breakpoints(map.get(defaults.$queries, $name))} { - @content; - } + @media #{$type} and #{functions.get-breakpoints(map.get(defaults.$queries, $name))} { + @content; + } } -/* in-query - A little helper mixin to quickly create responsive variants of a certain - selector. The mixin's `@content` will be also applied to the parent selector. - - Example usage: - $in-query-YOURMODULE: (lap, desk); - .your-module { - @include responsive.in-query($in-query-YOURMODULE) { - outline: 1px solid #ff0000; - } - } -/ ========================================================================= */ - +/** + * in-query + * A little helper mixin to quickly create responsive variants of a certain + * selector. The mixin's `@content` will be also applied to the parent selector. + * Example usage: +$in-query-YOURMODULE: (lap, desk); +.your-module { + @include responsive.in-query($in-query-YOURMODULE) { + outline: 1px solid #ff0000; + } +} + */ @mixin in-query($queries) { - @content; - - @if meta.type-of($queries) == list { - @each $query in $queries { - @include mq($query) { - &#{defaults.$responsive-modifier}#{$query} { - @content; - } - } - } - } @else if meta.type-of($queries) == string { - @include mq($queries) { - &#{defaults.$responsive-modifier}#{$queries} { - @content; - } - } - } + @content; + + @if meta.type-of($queries) == list { + @each $query in $queries { + @include mq($query) { + &#{defaults.$responsive-modifier}#{$query} { + @content; + } + } + } + } @else if meta.type-of($queries) == string { + @include mq($queries) { + &#{defaults.$responsive-modifier}#{$queries} { + @content; + } + } + } } -/* Lock - Basic usage: - - font-size: responsive.lock(18px, 24px); - - This will scale the property perfectly and smooth from 18px - on `lap` breakpoint to 24px on `desk` breakpoint. +/** + * Lock + * Basic usage: +font-size: responsive.lock(18px, 24px); - You can also redefine the min- and max breakpoints like this: +// This will scale the property perfectly and smooth from 18px +// on `lap` breakpoint to 24px on `desk` breakpoint. - padding: responsive.lock(18px, 24px, desk, wall); -/ ========================================================================= */ +// You can also redefine the min- and max breakpoints like this: +padding: responsive.lock(18px, 24px, desk, wall); + */ @function lock($size-min: 16px, $size-max: 20px, $min-bp: lap, $max-bp: desk) { - $return: $size-min; - - @if map.has-key(defaults.$breakpoints, $min-bp) and map.has-key(defaults.$breakpoints, $max-bp) { - @if math.unit($size-min) == 'px' and math.unit($size-max) == 'px' and math.unit(map.get(defaults.$breakpoints, $min-bp)) == 'px' and math.unit(map.get(defaults.$breakpoints, $max-bp)) == 'px' { // stylelint-disable-line max-line-length - $min-bp-value: map.get(defaults.$breakpoints, $min-bp); - $max-bp-value: map.get(defaults.$breakpoints, $max-bp); - - // Breakpoints - $min-bp-rem-unitless: functions.strip-units(rem.convert($min-bp-value)); - $max-bp-rem-unitless: functions.strip-units(rem.convert($max-bp-value)); - - // Sizes - $size-min-rem: rem.convert($size-min); - $size-min-rem-unitless: functions.strip-units($size-min-rem); - $size-max-rem: rem.convert($size-max); - $size-max-rem-unitless: functions.strip-units($size-max-rem); - - // Calculations - $slope: math.div( - ($size-max-rem-unitless - $size-min-rem-unitless), - ($max-bp-rem-unitless - $min-bp-rem-unitless) - ); - $y-axis-intersection: -($min-bp-rem-unitless) * $slope + $size-min-rem-unitless; - - // fill up return - $return: clamp(#{$size-min-rem}, #{$y-axis-intersection * 1rem} + #{($slope * 100) * 1vw}, #{$size-max-rem}); - } @else { - @error '$size-min, $size-max, $min-bp and $max-bp should be defined in px.'; - } - } @else { - @error '`$min-bp: #{$min-bp}` or `$max-bp: #{$max-bp}` should be defined in `defaults.$breakpoints`'; - } - - @return $return; + $return: $size-min; + + @if map.has-key(defaults.$breakpoints, $min-bp) and + map.has-key(defaults.$breakpoints, $max-bp) + { + @if (math.unit($size-min) == 'px') and + (math.unit($size-max) == 'px') and + (math.unit(map.get(defaults.$breakpoints, $min-bp)) == 'px') and + (math.unit(map.get(defaults.$breakpoints, $max-bp)) == 'px') + { + // stylelint-disable-line max-line-length + $min-bp-value: map.get(defaults.$breakpoints, $min-bp); + $max-bp-value: map.get(defaults.$breakpoints, $max-bp); + + // Breakpoints + $min-bp-rem-unitless: functions.strip-units(rem.convert($min-bp-value)); + $max-bp-rem-unitless: functions.strip-units(rem.convert($max-bp-value)); + + // Sizes + $size-min-rem: rem.convert($size-min); + $size-min-rem-unitless: functions.strip-units($size-min-rem); + $size-max-rem: rem.convert($size-max); + $size-max-rem-unitless: functions.strip-units($size-max-rem); + + // Calculations + $slope: math.div( + ($size-max-rem-unitless - $size-min-rem-unitless), + ($max-bp-rem-unitless - $min-bp-rem-unitless) + ); + $y-axis-intersection: ( + (-($min-bp-rem-unitless) * $slope) + $size-min-rem-unitless + ); + + // fill up return + $return: clamp( + #{$size-min-rem}, + #{$y-axis-intersection * 1rem} + #{($slope * 100) * 1vw}, + #{$size-max-rem} + ); + } @else { + @error '$size-min, $size-max, $min-bp and $max-bp should be defined in px.'; + } + } @else { + @error '`$min-bp: #{$min-bp}` or `$max-bp: #{$max-bp}` should be defined in `defaults.$breakpoints`'; + } + + @return $return; } diff --git a/tools/_space.scss b/tools/_space.scss index 9d0c4b4..e53df71 100644 --- a/tools/_space.scss +++ b/tools/_space.scss @@ -1,35 +1,28 @@ -/* ========================================================================= - tools.space - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + tools.space +/ =========================================================================== */ @use 'sass:map'; @use '../settings/defaults'; @use './rem'; - - -/* Functions - ========================================================================= */ +/* -------------------------------------------------------------------------- + Functions +/ --------------------------------------------------------------------------- */ /** * Get space-factor */ @function get-factor($name: 'base') { - @if map.has-key(defaults.$space-factors, $name) == false { - @error '`#{$name}` is not present in `defaults.$space-factors`.'; - } - @return map.get(defaults.$space-factors, $name); + @if map.has-key(defaults.$space-factors, $name) == false { + @error '`#{$name}` is not present in `defaults.$space-factors`.'; + } + @return map.get(defaults.$space-factors, $name); } - /** * Get `rem`mified space */ @function get($name: 'base') { - @return rem.convert(defaults.$baseline * get-factor($name)); + @return rem.convert(defaults.$baseline * get-factor($name)); } diff --git a/tools/_typography.scss b/tools/_typography.scss index d79cbbd..b23e8fe 100644 --- a/tools/_typography.scss +++ b/tools/_typography.scss @@ -1,73 +1,69 @@ -/* ========================================================================= - tools.typography - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + tools.typography +/ =========================================================================== */ @use 'sass:meta'; @use 'sass:math'; @use '../settings/defaults'; @use 'rem'; +/** + * Font size + * Generates a rem font-size and a baseline-compatible unitless line-height + * from a pixel font-size value. Basic usage is simply: +@include typography.font-size(18px); + * You can force a specific line-height by passing it as the second argument: +@include typography.font-size(16px, 1); + * You can also modify the line-height by increments, while staying in the + * baseline grid, by setting the `$modifier` parameter. It takes a positive + * or negative integer, and it will add or remove 'lines' to the generated + * line-height. This is the recomended way to do it, unless you really need + * an absolute value. i.e.: +// add 2 lines: +@include typography.font-size(24px, $modifier: +2); +// subtract 1 line: +@include typography.font-size(24px, $modifier: -1); + */ +@mixin font-size( + $font-size, + $line-height: auto, + $modifier: 0, + $important: false +) { + @if meta.type-of($font-size) == number { + @if math.unit($font-size) != 'px' { + @error '`#{$font-size}` needs to be a pixel value.'; + } + } @else { + @error '`#{$font-size}` needs to be a number.'; + } -/* Font size - Generates a rem font-size and a baseline-compatible unitless line-height - from a pixel font-size value. Basic usage is simply: - - @include typography.font-size(18px); - - You can force a specific line-height by passing it as the second argument: - - @include typography.font-size(16px, 1); - - You can also modify the line-height by increments, while staying in the - baseline grid, by setting the `$modifier` parameter. It takes a positive - or negative integer, and it will add or remove 'lines' to the generated - line-height. This is the recomended way to do it, unless you really need - an absolute value. i.e.: - - // add 2 lines: - @include typography.font-size(24px, $modifier: +2); - - // subtract 1 line: - @include typography.font-size(24px, $modifier: -1); - ========================================================================= */ - -@mixin font-size($font-size, $line-height: auto, $modifier: 0, $important: false) { - @if meta.type-of($font-size) == number { - @if math.unit($font-size) != 'px' { - @error '`#{$font-size}` needs to be a pixel value.'; - } - } @else { - @error '`#{$font-size}` needs to be a number.'; - } - - @if $important == true { - $important: '!important'; - } @else if $important == false { - $important: null; - } @else { - @error '`#{$important}` needs to be `true` or `false`.'; - } - font-size: rem.convert($font-size); + @if $important == true { + $important: '!important'; + } @else if $important == false { + $important: null; + } @else { + @error '`#{$important}` needs to be `true` or `false`.'; + } + font-size: rem.convert($font-size); - @if $line-height == 'auto' { - // Define how many grid lines each text line should span. - // By default, we set it to the minimum number of lines necessary - // in order to contain the defined font-size, +1 for some breathing room. - // This can be modified with the `$modifier` parameter. - $lines: math.ceil(math.div($font-size, defaults.$baseline)) + $modifier + 1; - $line-height: $lines * defaults.$baseline; - line-height: math.div($line-height, $font-size) $important; - } @else { - @if meta.type-of($line-height) == number or $line-height == 'inherit' or $line-height == 'normal' { - line-height: $line-height $important; - } @else if $line-height != 'none' and $line-height != false { - @error 'Oh noes! `#{$line-height}` is not a valid value for `$line-height`.'; - } - } + @if $line-height == 'auto' { + // Define how many grid lines each text line should span. + // By default, we set it to the minimum number of lines necessary + // in order to contain the defined font-size, +1 for some breathing room. + // This can be modified with the `$modifier` parameter. + $lines: math.ceil(math.div($font-size, defaults.$baseline)) + $modifier + 1; + $line-height: $lines * defaults.$baseline; + line-height: math.div($line-height, $font-size) $important; + } @else { + @if (meta.type-of($line-height) == number) or + ($line-height == 'inherit') or + ($line-height == 'normal') + { + line-height: $line-height $important; + } @else if $line-height != 'none' and $line-height != false { + @error 'Oh noes! `#{$line-height}` is not a valid value for `$line-height`.'; + } + } } From 7dfab1ba500947bba9e8ff0bab66a1d7cce2e277 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 09:47:03 +0100 Subject: [PATCH 05/25] Generic to tabs --- generic/reset/_index.scss | 92 ++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 54 deletions(-) diff --git a/generic/reset/_index.scss b/generic/reset/_index.scss index ca87abb..c2a13c3 100644 --- a/generic/reset/_index.scss +++ b/generic/reset/_index.scss @@ -1,34 +1,26 @@ -/* ========================================================================= - generic.reset - A thin layer on top of `@csstools/normalize.css` that provides a starting - point more suitable for web applications. - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + generic.reset + A reset of sensible defaults, roughly based on Andy Bell's excellent + Modern CSS Reset(https://hankchizljaw.com/wrote/a-modern-css-reset/). +/ =========================================================================== */ @use 'sass:math'; @use '../../settings/defaults'; @use '../../tools/space'; - - /** * Set the global `box-sizing` state to `border-box`. As per: * paulirish.com/2012/box-sizing-border-box-ftw */ * { - box-sizing: border-box; + box-sizing: border-box; - &::before, - &::after { - box-sizing: inherit; - } + &::before, + &::after { + box-sizing: inherit; + } } - /** * 1. Ensure the page always fills at least the entire height of the viewport. * 2. Always add the vertical scrollbar to prevent layout shifting @@ -36,14 +28,13 @@ * 4. Apply the `$font-size` & `$line-height-ratio` */ html { - min-block-size: 100vh; /* [1] */ - overflow-y: scroll; /* [2] */ - scroll-behavior: smooth; /* [3] */ - font-size: #{math.div(defaults.$font-size, 16px) * 1em}; /* [4] */ - line-height: #{defaults.$line-height-ratio}; /* [4] */ + min-block-size: 100vh; /* [1] */ + overflow-y: scroll; /* [2] */ + scroll-behavior: smooth; /* [3] */ + font-size: #{math.div(defaults.$font-size, 16px) * 1em}; /* [4] */ + line-height: #{defaults.$line-height-ratio}; /* [4] */ } - /** * Remove default margins from elements */ @@ -70,42 +61,39 @@ hr, dl, dd, input { - margin: 0; + margin: 0; } - /** * Default indentation value for lists */ ul, ol { - padding-inline-start: space.get(); + padding-inline-start: space.get(); } dd { - margin-inline-start: space.get(); + margin-inline-start: space.get(); } - /** * Strip unwanted paddings & styling from elements */ button { - background: transparent; + background: transparent; } button, fieldset { - padding: 0; + padding: 0; } button, iframe, fieldset { - border: 0; + border: 0; } - /** * 1. Change the font styles in all browsers. * 2. Remove the margin in Firefox and Safari. @@ -114,40 +102,37 @@ button, input, select, textarea { - font: inherit; + font: inherit; } - /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { - font-family: monospace, monospace; /* 1 */ /* stylelint-disable-line font-family-no-duplicate-names */ - font-size: 1em; /* 2 */ + font-family: monospace, monospace; /* 1 */ /* stylelint-disable-line font-family-no-duplicate-names */ + font-size: 1em; /* 2 */ } - /** * Suppress the focus outline on links that cannot be accessed via keyboard. * This prevents an unwanted focus outline from appearing around elements that * might still respond to pointer events. */ [tabindex='-1']:focus { - outline: none !important; + outline: none !important; } - /** * Gets rid of the annoying outline for mouse users but preserves it for * keyboard users, and is ignored by browsers that don’t support :focus-visible. * As per: https://twitter.com/LeaVerou/status/1045768279753666562 */ -:focus:not(:focus-visible) { // stylelint-disable-line selector-pseudo-class-no-unknown - outline: none; +:focus:not(:focus-visible) { + // stylelint-disable-line selector-pseudo-class-no-unknown + outline: none; } - /** * Image * @@ -155,13 +140,12 @@ pre { * 2. Render `alt` visually offset when images don't load */ img { - display: block; - max-inline-size: 100%; /* [1] */ - block-size: auto; /* [1] */ - font-style: italic; /* [2] */ + display: block; + max-inline-size: 100%; /* [1] */ + block-size: auto; /* [1] */ + font-style: italic; /* [2] */ } - /** * Remove all animations and transitions for people that prefer not to see them * 1. Do not remove the animation altogether, but make it super-fast. This has @@ -172,10 +156,10 @@ img { * 2. Only one animation cycle */ @media (prefers-reduced-motion: reduce) { - * { - animation-duration: 0.01ms !important; /* [1] */ - animation-iteration-count: 1 !important; /* [2] */ - transition-duration: 0.01ms !important; /* [1] */ - scroll-behavior: auto !important; - } + * { + animation-duration: 0.01ms !important; /* [1] */ + animation-iteration-count: 1 !important; /* [2] */ + transition-duration: 0.01ms !important; /* [1] */ + scroll-behavior: auto !important; + } } From 7c0a86c6cbbe64060f8a3fe69440e9f039b3415c Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 10:39:21 +0100 Subject: [PATCH 06/25] object.aspect-ratio to tabs --- objects/aspect-ratio/README.md | 84 +++++++------ objects/aspect-ratio/_index.scss | 83 ++++++------ objects/aspect-ratio/_variables.scss | 28 ++--- objects/aspect-ratio/test.html | 182 ++++++++++++++++----------- 4 files changed, 205 insertions(+), 172 deletions(-) diff --git a/objects/aspect-ratio/README.md b/objects/aspect-ratio/README.md index 6194a73..0db0062 100644 --- a/objects/aspect-ratio/README.md +++ b/objects/aspect-ratio/README.md @@ -6,37 +6,39 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Features -* Fluid multi-media embeds. -* Retains to a specific aspect ratio. -* Configurable with custom properties. - +- Fluid multi-media embeds. +- Retains to a specific aspect ratio. +- Configurable with custom properties. ## Use + By default the aspect ratio container has a ratio of 1:1, a perfect square. **Note** `.o-aspect-ratio` only accepts `.o-aspect-ratio__item` as direct descendant. ```html
- +
``` ### Modifiers on `.o-aspect-ratio` ```html -
- +
+
``` @@ -44,7 +46,7 @@ By default the aspect ratio container has a ratio of 1:1, a perfect square. ```html
- +
``` @@ -54,60 +56,64 @@ By default the aspect ratio container has a ratio of 1:1, a perfect square. **On the `.o-aspect-ratio` block** -* `.o-aspect-ratio`: core aspect ratio block -* `.o-aspect-ratio--4by3`: creates a embed with an aspect ratio of 4 by 3 (configurable in `$ratios` SCSS variable) -* `.o-aspect-ratio--16by9`: creates a embed with an aspect ratio of 16 by 9 (configurable in `$ratios` SCSS variable) -* `.o-aspect-ratio--2by1`: creates a embed with an aspect ratio of 2 by 1 (configurable in `$ratios` SCSS variable) +- `.o-aspect-ratio`: core aspect ratio block +- `.o-aspect-ratio--4by3`: creates a embed with an aspect ratio of 4 by 3 (configurable in `$ratios` SCSS variable) +- `.o-aspect-ratio--16by9`: creates a embed with an aspect ratio of 16 by 9 (configurable in `$ratios` SCSS variable) +- `.o-aspect-ratio--2by1`: creates a embed with an aspect ratio of 2 by 1 (configurable in `$ratios` SCSS variable) ## Configurable variables + There are multiple ways to configure the aspect-ratio object. The Custom properties are calculated at run-time, the SCSS variables will allow you to change things at build-time. ### Custom properties **On the `.o-aspect-ratio` block** -* `--ratio`: The aspect ratio you want to have, defaults to `(1:1)` +- `--ratio`: The aspect ratio you want to have, defaults to `(1:1)` ### SCSS variables -* `$ratios`: a list of ratios where `.o-aspect-ratio--XbyX` is generated for, defaults to: `((2:1), (4:3), (16:9))` +- `$ratios`: a list of ratios where `.o-aspect-ratio--XbyX` is generated for, defaults to: `((2:1), (4:3), (16:9))` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio' with ( - $ratios: ( - (4:3), - (16:9), - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio' with + ( + $ratios: ( + (4: 3), + (16: 9), + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio/variables' with ( - $ratios: ( - (4:3), - (16:9), - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio/variables' with + ( + $ratios: ( + (4: 3), + (16: 9), + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/aspect-ratio/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/aspect-ratio/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/aspect-ratio/_index.scss b/objects/aspect-ratio/_index.scss index 6f1bdae..b3d0806 100644 --- a/objects/aspect-ratio/_index.scss +++ b/objects/aspect-ratio/_index.scss @@ -1,21 +1,15 @@ -/* ========================================================================= - objects.aspect-ratio - For use with multi-media embeds such as videos, images or slideshows, - that need to retain a specific aspect ratio but adapt to elements - of variable widths. - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.aspect-ratio + For use with multi-media embeds such as videos, images or slideshows, + that need to retain a specific aspect ratio but adapt to elements + of variable widths. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -23,53 +17,50 @@ @use './variables'; @use '../../settings/defaults'; - - -/* Internal variables - ========================================================================= */ +/* -------------------------------------------------------------------------- + Internal variables +/ --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ /** * 1. Default cropping is a perfect square, in you own modules you can override * the ratio like this: (16/9) */ .o-aspect-ratio { - --ratio: (1 / 1); /* [1] */ - position: relative; - display: block; - block-size: 0; - padding-block-end: calc(100% / var(--ratio)); - - #{$selector} { - position: absolute; - inline-size: 100%; - block-size: 100%; - } + --ratio: (1 / 1); /* [1] */ + position: relative; + display: block; + block-size: 0; + padding-block-end: calc(100% / var(--ratio)); + + #{$selector} { + position: absolute; + inline-size: 100%; + block-size: 100%; + } } - - -/* Common ratio modifiers, for use in browsers without - custom-property support - ========================================================================= */ +/* -------------------------------------------------------------------------- + Common ratio modifiers, for use in browsers without + custom-property support +/ --------------------------------------------------------------------------- */ @each $ratio in variables.$ratios { - @each $a, $b in $ratio { - @if meta.type-of($a) != number or meta.type-of($b) != number { - @error '`#{$a}` and `#{$b}` need to be numbers.'; - } - - .o-aspect-ratio--#{$a}by#{$b} { - --ratio: (#{$a}/#{$b}); - } - } + @each $a, $b in $ratio { + @if meta.type-of($a) != number or meta.type-of($b) != number { + @error '`#{$a}` and `#{$b}` need to be numbers.'; + } + + .o-aspect-ratio--#{$a}by#{$b} { + --ratio: (#{$a}/#{$b}); + } + } } diff --git a/objects/aspect-ratio/_variables.scss b/objects/aspect-ratio/_variables.scss index e48b870..d756123 100644 --- a/objects/aspect-ratio/_variables.scss +++ b/objects/aspect-ratio/_variables.scss @@ -1,19 +1,9 @@ -/* ========================================================================= - objects.aspect-ratio.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.aspect-ratio.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Ratio's * Define ’em like this: @@ -24,7 +14,13 @@ * ); */ $ratios: ( - (2:1), - (4:3), - (16:9) + ( + 2: 1, + ), + ( + 4: 3, + ), + ( + 16: 9, + ) ) !default; diff --git a/objects/aspect-ratio/test.html b/objects/aspect-ratio/test.html index a9a4299..7ba704d 100644 --- a/objects/aspect-ratio/test.html +++ b/objects/aspect-ratio/test.html @@ -1,84 +1,124 @@ - - - - Test objects.aspect-ratio - Supple CSS - - - + + + + Test objects.aspect-ratio - Supple CSS + + + +
+

Supple CSS: objects.aspect-ratio tests

-
-

Supple CSS: objects.aspect-ratio tests

+

.o-aspect-ratio

-

.o-aspect-ratio

+

renders 1:1 (iframe)

+
+
+ +
+
+ -

renders 1:1 (iframe)

-
-
- -
-
+

renders 1:1 (img)

+
+
+ +
+
+ -

renders 1:1 (img)

-
-
- -
-
+

+ supports aspect ratio custom proptery (eg.: --ratio: (560/315)) +

+
+
+ +
+
+ -

supports aspect ratio custom proptery (eg.: --ratio: (560/315))

-
-
- -
-
+

.o-aspect-ratio--4by3

+

renders 4:3 (iframe)

+
+
+ +
+
+ -

.o-aspect-ratio--4by3

-

renders 4:3 (iframe)

-
-
- -
-
+

renders 4:3 (img)

+
+
+ +
+
+ -

renders 4:3 (img)

-
-
- -
-
+

.o-aspect-ratio--16by9

+

renders 16:9 (iframe)

+
+
+ +
+
+ -

.o-aspect-ratio--16by9

-

renders 16:9 (iframe)

-
-
- -
-
+

renders 16:9 (img)

+
+
+ +
+
+ -

renders 16:9 (img)

-
-
- -
-
+

.o-aspect-ratio--2by1

+

renders 2:1 (iframe)

+
+
+ +
+
+ -

.o-aspect-ratio--2by1

-

renders 2:1 (iframe)

-
-
- -
-
- -

renders 2:1 (img)

-
-
- -
-
- -
- +

renders 2:1 (img)

+
+
+ +
+
+ +
+ + From 1694891421441852ca1f7ed6f455d0ad3336b6ba Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 10:50:10 +0100 Subject: [PATCH 07/25] object.aspect-ratio to tabs --- objects/aspect-ratio/_variables.scss | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/objects/aspect-ratio/_variables.scss b/objects/aspect-ratio/_variables.scss index d756123..dd001c7 100644 --- a/objects/aspect-ratio/_variables.scss +++ b/objects/aspect-ratio/_variables.scss @@ -7,11 +7,11 @@ /** * Ratio's * Define ’em like this: - * $ratios: ( - * (2:1), - * (4:3), - * (16:9), - * ); +$ratios: ( + (2:1), + (4:3), + (16:9), +); */ $ratios: ( ( From 931467d6c6bdfd006cf48d11724fb0529fa7d280 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 10:50:23 +0100 Subject: [PATCH 08/25] object.flow to tabs --- objects/flow/README.md | 81 ++++++++++++----------- objects/flow/_index.scss | 58 ++++++----------- objects/flow/_variables.scss | 20 ++---- objects/flow/test.html | 121 ++++++++++++++++++++--------------- 4 files changed, 140 insertions(+), 140 deletions(-) diff --git a/objects/flow/README.md b/objects/flow/README.md index c0b8bfa..511748f 100644 --- a/objects/flow/README.md +++ b/objects/flow/README.md @@ -6,28 +6,35 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use ```html
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda temporibus numquam repellendus repellat eaque - illum, praesentium facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut doloribus - adipisci.

-

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus asperiores minima porro nemo, perferendis magni - molestias rem illum, inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus rerum eveniet sint?

- -
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium facere iure + fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut + doloribus adipisci. +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus + asperiores minima porro nemo, perferendis magni molestias rem illum, + inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus rerum + eveniet sint? +

+ +
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
``` @@ -35,25 +42,28 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). **On the `.o-flow` block** -* `.o-flow`: core flow object -* `.o-flow--[GAP-SIZE]`: size modifier, generated by `$gap-sizes` SCSS variable. +- `.o-flow`: core flow object +- `.o-flow--[GAP-SIZE]`: size modifier, generated by `$gap-sizes` SCSS variable. ## Configurable variables + There are multiple ways to configure the flow object. The Custom properties are calculated at run-time, the SCSS variables will allow you to change things at build-time. ### Custom properties **On the `.o-flow` block** -* `--gap`: Amount of space you want to have, defaults to `space.get('base')`. -* `--flow-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. +- `--gap`: Amount of space you want to have, defaults to `space.get('base')`. +- `--flow-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. ### SCSS variables #### `$gap` + The mount of spacing you want to generate on the main block axis. **Defaults to:** + ```scss $gap: 'base'; ``` @@ -63,12 +73,13 @@ $gap: 'base'; And which size modifiers you want to generate? **Example:** + ```scss -$gap-sizes: ( - 'tiny' -); +$gap-sizes: ('tiny'); ``` + **Defaults to:** + ```scss $gap-sizes: (); ``` @@ -77,32 +88,30 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/flow' with ( - $gap: 'tiny', -); +@use 'node_modules/@supple-kit/supple-css/objects/flow' with ($gap: 'tiny'); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/flow/variables' with ( - $gap: 'tiny', -); +@use 'node_modules/@supple-kit/supple-css/objects/flow/variables' with + ($gap: 'tiny'); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/flow'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/flow/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/flow/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/flow/_index.scss b/objects/flow/_index.scss index bb76fe2..9fc00de 100644 --- a/objects/flow/_index.scss +++ b/objects/flow/_index.scss @@ -1,20 +1,14 @@ -/* ========================================================================= - objects.flow - Create a rule that sibling elements apply a common margin that is either - globally defined or contextually set. - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + objects.flow + Create a rule that sibling elements apply a common margin that is either + globally defined or contextually set. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -22,38 +16,26 @@ @use '../../settings/defaults'; @use '../../tools/space'; - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ .o-flow { - $selector: '> * + *'; - @if defaults.$css-modules { - $selector: ':global(#{$selector})'; - } + $selector: '> * + *'; + @if defaults.$css-modules { + $selector: ':global(#{$selector})'; + } - --gap: #{space.get(variables.$gap)}; - --flow-gap: var(--gap); + --gap: #{space.get(variables.$gap)}; + --flow-gap: var(--gap); - #{$selector} { - margin-block-start: var(--flow-gap); - } + #{$selector} { + margin-block-start: var(--flow-gap); + } } - @each $gap in variables.$gaps { - .o-flow--#{$gap} { - --flow-gap: #{space.get($gap)}; - } + .o-flow--#{$gap} { + --flow-gap: #{space.get($gap)}; + } } diff --git a/objects/flow/_variables.scss b/objects/flow/_variables.scss index b119c2d..ea8c939 100644 --- a/objects/flow/_variables.scss +++ b/objects/flow/_variables.scss @@ -1,16 +1,9 @@ -/* ========================================================================= - objects.flow.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.flow.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - /* Variables ========================================================================= */ @@ -20,14 +13,13 @@ */ $gap: 'base' !default; - /** * Which gap modifiers you want to generate? * * Example - $gap-sizes: ( - 'tiny' - ); +$gap-sizes: ( + 'tiny' +); * * By default the map is empty */ diff --git a/objects/flow/test.html b/objects/flow/test.html index 58dc9b6..1f5bb2d 100644 --- a/objects/flow/test.html +++ b/objects/flow/test.html @@ -1,58 +1,75 @@ - - - - Test object.flow - Supple CSS - - - + + + + Test object.flow - Supple CSS + + + +
+

Supple CSS: object.flow tests

-
-

Supple CSS: object.flow tests

+

.u-flow

-

.u-flow

+

renders consistent margins between elements

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia + excepturi totam obcaecati quibusdam repellat, magni iusto, + laboriosam assumenda nam porro veritatis tenetur quas explicabo + neque quasi sequi numquam. Quasi, reprehenderit! +

+
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
  • + List item 4 +
      +
    • List item 1
    • +
    • List item 2
    • +
    +
  • +
+

Lorem ipsum dolor sit amet consectetur adipisicing elit.

+
+
+ -

renders consistent margins between elements

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia excepturi totam obcaecati quibusdam repellat, magni iusto, laboriosam assumenda nam porro veritatis tenetur quas explicabo neque quasi sequi numquam. Quasi, reprehenderit!

-
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
  • - List item 4 -
      -
    • List item 1
    • -
    • List item 2
    • -
    -
  • -
-

Lorem ipsum dolor sit amet consectetur adipisicing elit.

-
-
- -

Accepts `--flow-gap` custom property to adjust spacings, eg. `--flow-gap: 3rem`

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia excepturi totam obcaecati quibusdam repellat, magni iusto, laboriosam assumenda nam porro veritatis tenetur quas explicabo neque quasi sequi numquam. Quasi, reprehenderit!

-
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
  • - List item 4 -
      -
    • List item 1
    • -
    • List item 2
    • -
    -
  • -
-

Lorem ipsum dolor sit amet consectetur adipisicing elit.

-
-
- -
- +

+ Accepts `--flow-gap` custom property to adjust spacings, eg. + `--flow-gap: 3rem` +

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia + excepturi totam obcaecati quibusdam repellat, magni iusto, + laboriosam assumenda nam porro veritatis tenetur quas explicabo + neque quasi sequi numquam. Quasi, reprehenderit! +

+
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
  • + List item 4 +
      +
    • List item 1
    • +
    • List item 2
    • +
    +
  • +
+

Lorem ipsum dolor sit amet consectetur adipisicing elit.

+
+
+ +
+ + From 29a3d874e7f5527bc9ab79bd9bee2a99022d4bef Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:00:59 +0100 Subject: [PATCH 09/25] object.layout to tabs --- objects/layout/README.md | 212 ++++----- objects/layout/_index.scss | 200 ++++---- objects/layout/_variables.scss | 25 +- objects/layout/test.html | 840 +++++++++++++++++++-------------- 4 files changed, 682 insertions(+), 595 deletions(-) diff --git a/objects/layout/README.md b/objects/layout/README.md index 125c9d7..d207bd1 100644 --- a/objects/layout/README.md +++ b/objects/layout/README.md @@ -1,6 +1,6 @@ # Supple CSS | objects.layout -Layout makes use of `flexbox` & Custom Properties to provide for a flexible, fluid & extensible layout system. You can horizontally(on the inline axis) arrange items or even use it as a full fledged traditional grid system. +Layout makes use of `flexbox` & Custom Properties to provide for a flexible, fluid & extensible layout system. You can horizontally(on the inline axis) arrange items or even use it as a full fledged traditional grid system. If you want to arrange items over 2 dimensions (horizontal & vertical) we recommend using [objects.mesh](../mesh). @@ -8,25 +8,24 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Features -* Configurable with custom properties. -* Fluid layout. -* Intelligent cell wrapping. -* Evenly fill cell spacing. -* Equal height columns. -* Horizontal/vertical centering of cells. -* Cell width is controlled independently of layout gap. -* Infinite nesting. - +- Configurable with custom properties. +- Fluid layout. +- Intelligent cell wrapping. +- Evenly fill cell spacing. +- Equal height columns. +- Horizontal/vertical centering of cells. +- Cell width is controlled independently of layout gap. +- Infinite nesting. ## Use @@ -34,10 +33,10 @@ A simple layout is easy to create. A layout container can have any number of chi ```html
-
-
-
-
+
+
+
+
``` @@ -46,11 +45,13 @@ For more granular control over layout make use of modifiers, custom properties o ### Modifiers on `o-layout` ```html -
-
-
-
-
+
+
+
+
+
``` @@ -58,9 +59,9 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Fit to content
-
Take up remaining space
-
Center align a single cell
+
Fit to content
+
Take up remaining space
+
Center align a single cell
``` @@ -68,7 +69,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Spans 5 of 10 columns
+
Spans 5 of 10 columns
``` @@ -76,7 +77,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Spans 5 of 12 columns
+
Spans 5 of 12 columns
``` @@ -84,7 +85,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Offsets 4 of 12 columns
+
Offsets 4 of 12 columns
``` @@ -92,21 +93,15 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
- Spans 4 of 10 columns -
+
Spans 4 of 10 columns
-
- Spans 1 of 10 columns -
+
Spans 1 of 10 columns
-
- Spans 3 of 10 columns -
+
Spans 3 of 10 columns
-
- Spans 2 of 10 columns and offsets 2 of 10 columns -
+
+ Spans 2 of 10 columns and offsets 2 of 10 columns +
``` @@ -118,126 +113,133 @@ You can nest layouts in any context. Keep in mind that the dimensions will be re ```html
-
-
-
-
-
+
+
+
+
+
``` ### responsive elements + When you set queries in `$fill-in-query` or `$fit-in-query` you can use them like this: ```html
-
- 100% and from lap breakpoint it will fit to content -
-
- 100% and from lap breakpoint it will fill remaining space -
+
+ 100% and from lap breakpoint it will fit to content +
+
+ 100% and from lap breakpoint it will fill remaining space +
``` ### If anything in the above fails + By default, the cell styling is applied to the direct child. If for any reason that doesn't work, wrap the direct child in an `o-layout__cell` and apply the `o-layout__[fit|fill], u-colspan, u-offset, etc.` logic there. Stuff should start working. ```html
-
- // your component -
-
- // your component -
+
// your component
+
// your component
``` - ## Available classes **On the `.o-layout` block** -* `.o-layout`: core layout block -* `.o-layout--align-inline-center`: center align _all_ layout cells over the inline axis -* `.o-layout--align-inline-end`: align all layout cells to the end of the inline axis -* `.o-layout--align-block-center`: center-align layout cells on the block axis -* `.o-layout--align-block-end`: end-align layout cells on the block axis -* `.o-layout--reverse`: reverse all cells in order -* `.o-layout--fill`: evenly distribute space amongst all child cells -* `.o-layout--fit`: fit all cells to their content -* `.o-layout--stretch`: All cells match the size of tallest cell in a row on the block axis -* `.o-layout--gap-[SPACE]`: adds a base gutter between cells +- `.o-layout`: core layout block +- `.o-layout--align-inline-center`: center align _all_ layout cells over the inline axis +- `.o-layout--align-inline-end`: align all layout cells to the end of the inline axis +- `.o-layout--align-block-center`: center-align layout cells on the block axis +- `.o-layout--align-block-end`: end-align layout cells on the block axis +- `.o-layout--reverse`: reverse all cells in order +- `.o-layout--fill`: evenly distribute space amongst all child cells +- `.o-layout--fit`: fit all cells to their content +- `.o-layout--stretch`: All cells match the size of tallest cell in a row on the block axis +- `.o-layout--gap-[SPACE]`: adds a base gutter between cells **On the flex item** -* `.o-layout__align-inline-center`: Center one cell on the inline axis -* `.o-layout__fit`: Make a cell shrink wrap its content -* `.o-layout__fill`: Make a cell fill the remaining space. -* `.o-layout__[fit|fill]@[QUERY-NAME]`: applies `fit` or `fill` at the given media query. (available in `$[fit|fill]-in-query` SCSS setting) -* `.o-layout__cell`: Wrap the child component to fix some super specific bugs. Only use this when all of the above somehow not works. +- `.o-layout__align-inline-center`: Center one cell on the inline axis +- `.o-layout__fit`: Make a cell shrink wrap its content +- `.o-layout__fill`: Make a cell fill the remaining space. +- `.o-layout__[fit|fill]@[QUERY-NAME]`: applies `fit` or `fill` at the given media query. (available in `$[fit|fill]-in-query` SCSS setting) +- `.o-layout__cell`: Wrap the child component to fix some super specific bugs. Only use this when all of the above somehow not works. ## Configurable variables + There are multiple ways to configure the layout object. The Custom properties are calculated at run-time, the SCSS variables will allow you to change things at build-time. ### Custom properties **On the `.o-layout` block** -* `--columns`: The number of columns you want to have, defaults to `12` -* `--gap`: The width of the gutter applied between the cells, defaults to `0` -* `--layout-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. +- `--columns`: The number of columns you want to have, defaults to `12` +- `--gap`: The width of the gutter applied between the cells, defaults to `0` +- `--layout-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. **On the flex item element** -* `--colspan`: The amount of columns this cell will span, defaults to `--columns` -* `--offset`: The amount of columns this cell will offset, defaults to `0` +- `--colspan`: The amount of columns this cell will span, defaults to `--columns` +- `--offset`: The amount of columns this cell will offset, defaults to `0` ### SCSS variables -* `$gaps`: a list of gaps where possible `.o-layout--gap-X` are generated from, defaults to `('base')` -* `$fit-in-query`: a list of queries where `o-layout__fit` is generated for, defaults to `()` -* `$fill-in-query`: a list of queries where `o-layout__fill` is generated for, defaults to `()` +- `$gaps`: a list of gaps where possible `.o-layout--gap-X` are generated from, defaults to `('base')` +- `$fit-in-query`: a list of queries where `o-layout__fit` is generated for, defaults to `()` +- `$fill-in-query`: a list of queries where `o-layout__fill` is generated for, defaults to `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/layout' with ( - $fit-in-query: (lap, desk), - $gaps: ( - 'base', - 'tiny', - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/layout' with + ( + $fit-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/layout/variables' with ( - $fit-in-query: (lap, desk), - $gaps: ( - 'tiny', - 'huge', - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/layout/variables' with + ( + $fit-in-query: ( + lap, + desk, + ), + $gaps: ( + 'tiny', + 'huge', + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/layout'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/layout/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/layout/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/layout/_index.scss b/objects/layout/_index.scss index f510777..8aa859e 100644 --- a/objects/layout/_index.scss +++ b/objects/layout/_index.scss @@ -1,19 +1,13 @@ -/* ========================================================================= - objects.layout - Fluid and nestable layout system based on flexbox. - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.layout + Fluid and nestable layout system based on flexbox. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -22,20 +16,18 @@ @use '../../tools/space'; @use '../../tools/responsive'; - - -/* Internal variables - ========================================================================= */ +/* -------------------------------------------------------------------------- + Internal variables +/ --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } - - -/* Module code - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module code +/ --------------------------------------------------------------------------- */ /** * Block: layout @@ -45,129 +37,125 @@ $selector: '> *'; * 2. Negative margin for the gap */ .o-layout { - --columns: #{variables.$columns}; - --gap: 0px; // stylelint-disable-line - --layout-gap: var(--gap); - --layout-block-gap: var(--layout-gap); - --layout-inline-gap: var(--layout-gap); - display: flex; - flex-flow: row wrap; - align-items: flex-start; - padding: 0; /* [1] */ - margin-block-start: calc(-1 * var(--layout-block-gap)); - margin-inline-start: calc(-1 * var(--layout-inline-gap)); /* [1,2] */ - list-style: none; /* [1] */ - - /** - * Flex item - * No explicit width by default. Rely on combining the item with a - * dimension utility or a component class that extends 'layout'. - * - * 1. Set flex items to full width by default, minus the gap - * 2. Fix issue where elements with overflow extend past the - * item's container. As per: - * http://weblog.west-wind.com/posts/2016/Feb/15/Flexbox-Containers-PRE-tags-and-managing-Overflow - * 3. Calculate the offset + the layout gap - * 4. We need to reset our margins if the direct child is `o-layout__cell` - * but our gap variables need to be available. So we map our variables to - * internal variables. - */ - #{$selector} { - --colspan: var(--columns); - --offset: 0; - --layout-inline-gap-internal: var(--layout-inline-gap); /* [4] */ - --layout-block-gap-internal: var(--layout-block-gap); /* [4] */ - flex-basis: calc((100% / var(--columns) * var(--colspan)) - var(--layout-inline-gap-internal)); /* [1] */ - min-inline-size: 0; /* [2] */ - margin-block-start: var(--layout-block-gap-internal); - margin-inline-start: calc(100% / var(--columns) * var(--offset) + var(--layout-inline-gap-internal)); /* [3] */ - } + --columns: #{variables.$columns}; + --gap: 0px; // stylelint-disable-line + --layout-gap: var(--gap); + --layout-block-gap: var(--layout-gap); + --layout-inline-gap: var(--layout-gap); + display: flex; + flex-flow: row wrap; + align-items: flex-start; + padding: 0; /* [1] */ + margin-block-start: calc(-1 * var(--layout-block-gap)); + margin-inline-start: calc(-1 * var(--layout-inline-gap)); /* [1,2] */ + list-style: none; /* [1] */ + + /** + * Flex item + * No explicit width by default. Rely on combining the item with a + * dimension utility or a component class that extends 'layout'. + * + * 1. Set flex items to full width by default, minus the gap + * 2. Fix issue where elements with overflow extend past the + * item's container. As per: + * http://weblog.west-wind.com/posts/2016/Feb/15/Flexbox-Containers-PRE-tags-and-managing-Overflow + * 3. Calculate the offset + the layout gap + * 4. We need to reset our margins if the direct child is `o-layout__cell` + * but our gap variables need to be available. So we map our variables to + * internal variables. + */ + #{$selector} { + --colspan: var(--columns); + --offset: 0; + --layout-igi: var(--layout-inline-gap); /* [4] */ + --layout-bgi: var(--layout-block-gap); /* [4] */ + flex-basis: calc( + (100% / var(--columns) * var(--colspan)) - var(--layout-igi) + ); /* [1] */ + min-inline-size: 0; /* [2] */ + margin-block-start: var(--layout-bgi); + margin-inline-start: calc( + 100% / var(--columns) * var(--offset) + var(--layout-igi) + ); /* [3] */ + } } - /** * Modifier: inline-center * center align all layout cells over the inline axis */ .o-layout--align-inline-center { - justify-content: center; + justify-content: center; } - /** * Modifier: align-inline-end * align all layout cells to the end of the inline axis */ .o-layout--align-inline-end { - justify-content: flex-end; + justify-content: flex-end; } - /** * Modifier: align-block-center * center-align layout cells on the block axis */ .o-layout--align-block-center { - align-items: center; + align-items: center; } - /** * Modifier: align-block-end * end-align layout cells on the block axis */ .o-layout--align-block-end { - align-items: flex-end; + align-items: flex-end; } - /** * Modifier: stretch * All cells match the size of tallest cell in a row */ .o-layout--stretch { - align-items: stretch; + align-items: stretch; } - /** * Modifier: reverse * reverse all cells */ .o-layout--reverse { - flex-direction: row-reverse; + flex-direction: row-reverse; } - /** * Element: cell * Only use cell wrapper element when everything else fails 😅 */ .o-layout__cell { - --layout-inline-gap-internal: 0px; // stylelint-disable-line - --layout-block-gap-internal: 0px; // stylelint-disable-line - padding-block-start: var(--layout-block-gap); - padding-inline-start: var(--layout-inline-gap); - - // Old way to stretch inner items - .o-layout--stretch > & { - display: flex; - - #{$selector} { - inline-size: 100%; /* [1] */ - } - } + --layout-igi: 0px; // stylelint-disable-line + --layout-bgi: 0px; // stylelint-disable-line + padding-block-start: var(--layout-block-gap); + padding-inline-start: var(--layout-inline-gap); + + // Old way to stretch inner items + .o-layout--stretch > & { + display: flex; + + #{$selector} { + inline-size: 100%; /* [1] */ + } + } } - /** * Modifier: fill * allow cells to equal distribute width */ .o-layout--fill { - #{$selector} { - flex: 1; - } + #{$selector} { + flex: 1; + } } /** @@ -175,36 +163,34 @@ $selector: '> *'; * fit all cells to their content */ .o-layout--fit { - #{$selector} { - flex-basis: auto; - } + #{$selector} { + flex-basis: auto; + } } - /** * Modifier: gap-X */ @each $gap in variables.$gaps { - .o-layout--gap-#{$gap} { - --layout-gap: #{space.get($gap)}; - } + .o-layout--gap-#{$gap} { + --layout-gap: #{space.get($gap)}; + } } - -/* Elements - ========================================================================= */ +/* -------------------------------------------------------------------------- + Elements +/ --------------------------------------------------------------------------- */ /** * Element: fit * Make an item shrink wrap its content. */ .o-layout__fit { - @include responsive.in-query(variables.$fit-in-query) { - flex-basis: auto; - } + @include responsive.in-query(variables.$fit-in-query) { + flex-basis: auto; + } } - /** * Element: fill * Make an item fill the remaining space. @@ -213,19 +199,17 @@ $selector: '> *'; * container has no explicit width. */ .o-layout__fill { - @include responsive.in-query(variables.$fill-in-query) { - flex: auto; - inline-size: 0%; /* [1] */ - } + @include responsive.in-query(variables.$fill-in-query) { + flex: auto; + inline-size: 0%; /* [1] */ + } } - /** * Element: align-inline-center * Center one flex item on the inline axis */ .o-layout__align-inline-center { - margin-inline-start: auto; - margin-inline-end: auto; + margin-inline-start: auto; + margin-inline-end: auto; } - diff --git a/objects/layout/_variables.scss b/objects/layout/_variables.scss index 096d6d8..787449d 100644 --- a/objects/layout/_variables.scss +++ b/objects/layout/_variables.scss @@ -1,33 +1,19 @@ -/* ========================================================================= - objects.layout.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.layout.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Number of default columns, can be overwritten per component with custom * properties. */ $columns: defaults.$columns !default; - /** * The `gap` map */ -$gaps: ( - 'base', -) !default; - +$gaps: ('base') !default; /** * Define which namespaced queries you would like to generate @@ -35,8 +21,7 @@ $gaps: ( * This is handy if you only need `fit` on, say, desk, or you only need `fill` * at mobile sizes. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will: - * - * $X-in-query: (lap, desk); +$X-in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` * in `settings/responsive` diff --git a/objects/layout/test.html b/objects/layout/test.html index a3896a9..00d4e7b 100644 --- a/objects/layout/test.html +++ b/objects/layout/test.html @@ -1,365 +1,481 @@ - - - - Test objects.layout - Supple CSS - - - - -
-

Supple CSS: objects.layout tests

- -

.o-layout

- -

renders cells at full-width by default

-
-
-
1
-
2
-
-
- -

removes inter-cell whitespace

-
-
-
1
-
2
-
3
-
4
-
-
- -

handles overflowing elements

-
-
-
-
This is some really long content that should be scrolled when the container is too small.
-
-
-
- -

automatically wraps cells across multiple lines when they don't fit a single row

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
- -

arranges cells of different heights into clear rows

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
- -

supports nested layouts

-
-
-
- 1 -
-
1
-
2
-
3
-
4
-
-
-
-
- -

supports .o-layout__fill on cells with no width

-
-
-
1/4
-
fill
-
- -
-
2/12
-
fill
-
2/12
-
-
- -

supports o-layout__fit and o-layout__fill

-
-
-
shrink to content width
-
fill remaining space: This is some really long content that should be wrapped when the container is too small.
-
-
- -

supports u-columns-X

-
-
-
colspan 2 of 10
-
colspan 3 of 10
-
colspan 5 of 10
-
colspan 2 of 10
-
-
- -

supports u-colspan-X

-
-
-
colspan 2
-
colspan 3
-
colspan 5
-
colspan 2
-
-
- -

supports u-offset-X

-
-
-
colspan 2, offset 3
-
colspan 3, offset 1
-
colspan 5, offset 2
-
colspan 2
-
-
- -

.o-layout--align-inline-center

-

center-aligns all cells on the inline axis but not their content

-
-
-
1
-
2
-
3
-
-
-
- -

.o-layout--align-inline-end

-

end-aligns all cells on the inline axis but not their content

-
-
-
1
-
2
-
3
-
-
- -

.o-layout--align-block-center

-

centers-aligns all cells on the block axis

-
-
-
1
-
2
-
3
-
3
-
-
- -

.o-layout--align-block-end

-

end-aligns all cells on the block axis

-
-
-
1
-
2
-
3
-
3
-
-
- -

.o-layout--fill

-

evenly distribute space between cells without sizing classes or colspan properties

-
-
-
1
-
2
-
3
-
-
-
1
-
2 This is some really long content that should be scrolled when the container is too small.
-
3
-
4
-
5
-
6
-
-
- -

.o-layout--fit

-

fit all cells to their content

-
-
-
1
-
2
-
3
-
-
-
1
-
2 a bit longer
-
3
-
4
-
5
-
6
-
-
- -

.o-layout--stretch

-

equal size columns based on the talles cell in the block axis

-
-
-
1
-
2
line 2
-
3
-
-
- -

also with .layout__cell child elements

-
-
-
-
1
-
-
-
2
line 2
-
-
-
3
-
-
-
- -

.o-layout__align-inline-center

-

centers an individual layout cell on the inline axis but not its content

-
-
-
1
-
2
-
3: centered cell
-
-
- - -

.o-layout--gap-X

-

supports gap (.o-layout--gap-base)

-
-
-
1
-
2
-
3
-
4
-
5
-
-
- -

doesn't apply gaps to nested layouts

-
-
-
- 1 -
-
1
-
2
-
-
-
- 2 -
-
1
-
2
-
-
-
-
- -

correctly aligns gaps within nested layouts

-
-
-
- 1 -
-
1
-
2
-
-
-
- 2 -
-
1
-
2
-
-
-
-
- -

correctly adds gaps with o-layout--fill

-
-
-
1
-
2
-
3
-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
- -

correctly adds gaps with o-layout__fit and o-layout__fill

-
-
-
shrink to content width
-
fill remaining space: This is some really long content that should be wrapped when the container is too small.
-
-
- -

correctly adds gaps with u-colspan-X and o-layout__fill

-
-
-
shrink to content width
-
fill remaining space: This is some really long content that should be wrapped when the container is too small.
-
-
- -

Correctly calculates cell alignment when a .o-layout__fit is used in a .o-layout__fit when using .o-layout__cell

-
-
-
-
-
-
Item 1
-
-
-
Item 2
-
-
-
Item 3
-
-
-
Item 4
-
-
-
Item 5
-
-
-
-
-
- -
- + + + + Test objects.layout - Supple CSS + + + +
+

Supple CSS: objects.layout tests

+ +

.o-layout

+ +

renders cells at full-width by default

+
+
+
1
+
2
+
+
+ + +

removes inter-cell whitespace

+
+
+
1
+
2
+
3
+
4
+
+
+ + +

handles overflowing elements

+
+
+
+
+This is some really long content that should be scrolled when the container is too small.
+
+
+
+ + +

+ automatically wraps cells across multiple lines when they don't fit a + single row +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
+
+ + +

+ arranges cells of different heights into clear rows +

+
+
+
+ 1 +
+
2
+
+ 3 +
+
4
+
5
+
+ 6 +
+
7
+
+ 8 +
+
+
+ + +

supports nested layouts

+
+
+
+ 1 +
+
1
+
2
+
3
+
4
+
+
+
+
+ + +

+ supports .o-layout__fill on cells with no width +

+
+
+
1/4
+
fill
+
+ +
+
2/12
+
fill
+
2/12
+
+
+ + +

supports o-layout__fit and o-layout__fill

+
+
+
+ shrink to content width +
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ + +

supports u-columns-X

+
+
+
colspan 2 of 10
+
colspan 3 of 10
+
colspan 5 of 10
+
colspan 2 of 10
+
+
+ + +

supports u-colspan-X

+
+
+
colspan 2
+
colspan 3
+
colspan 5
+
colspan 2
+
+
+ + +

supports u-offset-X

+
+
+
+ colspan 2, offset 3 +
+
+ colspan 3, offset 1 +
+
+ colspan 5, offset 2 +
+
colspan 2
+
+
+ + +

.o-layout--align-inline-center

+

+ center-aligns all cells on the inline axis but not their content +

+
+
+
1
+
2
+
3
+
+
+ + +

.o-layout--align-inline-end

+

+ end-aligns all cells on the inline axis but not their content +

+
+
+
1
+
2
+
3
+
+
+ + +

.o-layout--align-block-center

+

centers-aligns all cells on the block axis

+
+
+
1
+
+ 2 +
+
3
+
3
+
+
+ + +

.o-layout--align-block-end

+

end-aligns all cells on the block axis

+
+
+
1
+
+ 2 +
+
3
+
3
+
+
+ + +

.o-layout--fill

+

+ evenly distribute space between cells without sizing classes or colspan + properties +

+
+
+
1
+
2
+
3
+
+
+
1
+
+
+2 This is some really long content that should be scrolled when the container is too small.
+
+
3
+
4
+
5
+
6
+
+
+ + +

.o-layout--fit

+

fit all cells to their content

+
+
+
1
+
2
+
3
+
+
+
1
+
2 a bit longer
+
3
+
4
+
5
+
6
+
+
+ + +

.o-layout--stretch

+

+ equal size columns based on the talles cell in the block axis +

+
+
+
1
+
2
line 2
+
3
+
+
+ + +

+ also with .layout__cell child elements +

+
+
+
+
1
+
+
+
2
line 2
+
+
+
3
+
+
+
+ + +

.o-layout__align-inline-center

+

+ centers an individual layout cell on the inline axis but not its content +

+
+
+
1
+
2
+
+ 3: centered cell +
+
+
+ + +

.o-layout--gap-X

+

supports gap (.o-layout--gap-base)

+
+
+
1
+
2
+
3
+
4
+
5
+
+
+ + +

doesn't apply gaps to nested layouts

+
+
+
+ 1 +
+
1
+
2
+
+
+
+ 2 +
+
1
+
2
+
+
+
+
+ + +

correctly aligns gaps within nested layouts

+
+
+
+ 1 +
+
1
+
2
+
+
+
+ 2 +
+
1
+
2
+
+
+
+
+ + +

correctly adds gaps with o-layout--fill

+
+
+
1
+
2
+
3
+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ + +

+ correctly adds gaps with o-layout__fit and o-layout__fill +

+
+
+
shrink to content width
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ + +

+ correctly adds gaps with u-colspan-X and o-layout__fill +

+
+
+
shrink to content width
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ + +

+ Correctly calculates cell alignment when a + .o-layout__fit is used in a + .o-layout__fit when using .o-layout__cell +

+
+
+
+
+
+
Item 1
+
+
+
Item 2
+
+
+
Item 3
+
+
+
Item 4
+
+
+
Item 5
+
+
+
+
+
+ +
+ + From 7408a5fed2c2686b037dbc6b0954e400dea1fe29 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:02:06 +0100 Subject: [PATCH 10/25] object.list-clean to tabs --- objects/list-clean/README.md | 24 +++++++++++------------- objects/list-clean/_index.scss | 25 +++++++------------------ 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/objects/list-clean/README.md b/objects/list-clean/README.md index a196821..66ebee3 100644 --- a/objects/list-clean/README.md +++ b/objects/list-clean/README.md @@ -6,32 +6,30 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Installation](#installation) -* [Browser support](#browser-support) - +- [Use](#use) +- [Available classes](#available-classes) +- [Installation](#installation) +- [Browser support](#browser-support) ## Use ```html
    -
  • +
``` ## Available classes -* `.o-list-clean`: core list clean block -* `.o-list-clean__item`: cleans list style properties from a single item - +- `.o-list-clean`: core list clean block +- `.o-list-clean__item`: cleans list style properties from a single item ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/list-clean/_index.scss b/objects/list-clean/_index.scss index 783a6f4..4567d43 100644 --- a/objects/list-clean/_index.scss +++ b/objects/list-clean/_index.scss @@ -1,28 +1,17 @@ -/* ========================================================================= - objects.list-clean - Strip appearance from lists by removing their bullets and indents - ========================================================================= */ - -/* Variables - ========================================================================= */ - - - - - -/* Module - ========================================================================= */ +/* ========================================================================== + objects.list-clean + Strip appearance from lists by removing their bullets and indents +/ =========================================================================== */ .o-list-clean { - list-style: none; - padding-inline-start: 0; + list-style: none; + padding-inline-start: 0; } - /** * Item specific class * declaring this might for instance only be necessary on `dd` childs */ .o-list-clean__item { - margin-inline-start: 0; + margin-inline-start: 0; } From fe6cd86b17fcd5a1b30bfa3dbeec9e5bdcf16049 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:09:48 +0100 Subject: [PATCH 11/25] object.mesh to tabs --- objects/mesh/README.md | 166 +++++------ objects/mesh/_index.scss | 88 +++--- objects/mesh/_variables.scss | 26 +- objects/mesh/test.html | 526 ++++++++++++++++++++++++----------- 4 files changed, 487 insertions(+), 319 deletions(-) diff --git a/objects/mesh/README.md b/objects/mesh/README.md index fc78475..74dfc43 100644 --- a/objects/mesh/README.md +++ b/objects/mesh/README.md @@ -8,23 +8,22 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Features -* Configurable with custom properties. -* Fluid grid system. -* Intelligent cell wrapping. -* Evenly fill cell spacing. -* Fluid width columns that break into more or less columns as space is available. -* Masonry layout - +- Configurable with custom properties. +- Fluid grid system. +- Intelligent cell wrapping. +- Evenly fill cell spacing. +- Fluid width columns that break into more or less columns as space is available. +- Masonry layout ## Use @@ -32,10 +31,10 @@ A simple mesh is easy to create. A mesh container can have any number of child c ```html
-
-
-
-
+
+
+
+
``` @@ -45,10 +44,10 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
-
-
-
+
+
+
+
``` @@ -56,7 +55,7 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans 5 of 10 columns
+
Spans 5 of 10 columns
``` @@ -64,7 +63,7 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans a full row
+
Spans a full row
``` @@ -72,7 +71,9 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans 5 of 12 columns and starts at column 2
+
+ Spans 5 of 12 columns and starts at column 2 +
``` @@ -80,21 +81,15 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
- Spans 4 of 10 columns -
+
Spans 4 of 10 columns
-
- Spans 1 of 10 columns starts at column 5 -
+
+ Spans 1 of 10 columns starts at column 5 +
-
- Spans 3 of 10 columns -
+
Spans 3 of 10 columns
-
- Spans 2 of 10 columns -
+
Spans 2 of 10 columns
``` @@ -106,104 +101,113 @@ You can nest mesh in any context. Keep in mind that the dimensions will be relat ```html
-
-
-
-
+
+
+
``` ### responsive modifiers + When you set breakpoints in `$row-in-query` you can use it like this: ```html
-
- spans 1 column and from lap breakpoint it will span 12 columns (full row). -
+
+ spans 1 column and from lap breakpoint it will span 12 columns (full row). +
``` - ## Available classes **On the `.o-mesh` block** -* `.o-mesh`: core mesh block -* `.o-mesh--flow`: Fluid width columns that break into more or less columns as space is available, with no media queries. -* `.o-mesh--dense`: Attempt to fill in holes earlier in the grid if smaller items come up later. -* `.o-mesh--gap-base`: adds a base gutter between cells +- `.o-mesh`: core mesh block +- `.o-mesh--flow`: Fluid width columns that break into more or less columns as space is available, with no media queries. +- `.o-mesh--dense`: Attempt to fill in holes earlier in the grid if smaller items come up later. +- `.o-mesh--gap-base`: adds a base gutter between cells **On the grid item element** -* `.o-mesh__row`: Spans a full row -* `.o-mesh__row@[QUERY-NAME]`: Spans full row on a certain media query (available in `$row-in-query` SCSS setting) +- `.o-mesh__row`: Spans a full row +- `.o-mesh__row@[QUERY-NAME]`: Spans full row on a certain media query (available in `$row-in-query` SCSS setting) ## Configurable variables + There are multiple ways to configure the mesh object. The Custom properties are calculated at run-time, the SCSS variables will allow you to change things at build-time. ### Custom properties **On the `.o-mesh` block** -* `--columns`: The number of columns you want to have, defaults to `12` -* `--gap`: The width of the gutter applied between the cells, defaults to `0` -* `--layout-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. -* `--block-gap`: The space of the gutter applied between the cells on the block axis, defaults to `var(--layout-gap)` -* `--inline-gap`: The space of the gutter applied between the cells on the inline axis, defaults to `var(--layout-gap)` +- `--columns`: The number of columns you want to have, defaults to `12` +- `--gap`: The width of the gutter applied between the cells, defaults to `0` +- `--layout-gap`: Actual gap variable to be used when in conflict with other objects, defaults to `var(--gap)`. +- `--block-gap`: The space of the gutter applied between the cells on the block axis, defaults to `var(--layout-gap)` +- `--inline-gap`: The space of the gutter applied between the cells on the inline axis, defaults to `var(--layout-gap)` **On the `.o-mesh--flow` modifier** -* `--min-inline-size`: minimum size that a cell needs to have +- `--min-inline-size`: minimum size that a cell needs to have **On the grid item element** -* `--colspan`: The amount of columns this cell will span, defaults to `--columns` -* `--colstart`: Startpoint of the cell +- `--colspan`: The amount of columns this cell will span, defaults to `--columns` +- `--colstart`: Startpoint of the cell ### SCSS variables -* `$gaps`: a list of gaps where possible `.o-mesh--gap-X` are generated from, defaults to `('base')` -* `$row-in-query`: a list of queries where `o-mesh__row` is generated for, defaults to `()` +- `$gaps`: a list of gaps where possible `.o-mesh--gap-X` are generated from, defaults to `('base')` +- `$row-in-query`: a list of queries where `o-mesh__row` is generated for, defaults to `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/mesh' with ( - $row-in-query: (lap, desk), - $gaps: ( - 'base', - 'tiny', - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/mesh' with + ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with ( - $row-in-query: (lap, desk), - $gaps: ( - 'tiny', - 'huge', - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with + ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'tiny', + 'huge', + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/mesh'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/mesh/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/mesh/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/mesh/_index.scss b/objects/mesh/_index.scss index 55c8786..3f981cc 100644 --- a/objects/mesh/_index.scss +++ b/objects/mesh/_index.scss @@ -1,18 +1,12 @@ -/* ========================================================================= - objects.mesh - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + objects.mesh +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -22,20 +16,18 @@ @use '../../tools/rem'; @use '../../tools/responsive'; - - -/* Internal variables - ========================================================================= */ +/* -------------------------------------------------------------------------- + Internal variables +/ --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ /** * Block: mesh @@ -44,63 +36,59 @@ $selector: '> *'; * the component. */ .o-mesh { - --columns: #{variables.$columns}; - --gap: 0; - --mesh-gap: var(--gap); - --block-gap: var(--mesh-gap); - --inline-gap: var(--mesh-gap); - display: grid; - grid-template-columns: repeat(var(--columns), 1fr); - gap: var(--block-gap) var(--inline-gap); - padding: 0; /* [1] */ - margin-inline-start: 0; /* [1] */ - list-style: none; /* [1] */ - - #{$selector} { - --colstart: 0; - --colspan: 1; - grid-column-start: var(--colstart); - grid-column-end: span var(--colspan); - } + --columns: #{variables.$columns}; + --gap: 0; + --mesh-gap: var(--gap); + --block-gap: var(--mesh-gap); + --inline-gap: var(--mesh-gap); + display: grid; + grid-template-columns: repeat(var(--columns), 1fr); + gap: var(--block-gap) var(--inline-gap); + padding: 0; /* [1] */ + margin-inline-start: 0; /* [1] */ + list-style: none; /* [1] */ + + #{$selector} { + --colstart: 0; + --colspan: 1; + grid-column-start: var(--colstart); + grid-column-end: span var(--colspan); + } } - /** * Modifier: flow * Fluid width columns that break into more or less columns as space is available, with no media queries */ .o-mesh--flow { - --min-inline-size: #{rem.convert(variables.$flow-min-inline-size)}; - grid-template-columns: repeat(auto-fill, minmax(var(--min-inline-size), 1fr)); + --min-inline-size: #{rem.convert(variables.$flow-min-inline-size)}; + grid-template-columns: repeat(auto-fill, minmax(var(--min-inline-size), 1fr)); } - /** * Modifier: dense * Attempt to fill in holes earlier in the grid if smaller items come up later */ .o-mesh--dense { - grid-auto-flow: dense; + grid-auto-flow: dense; } - /** * Modifier: gap-X */ @each $gap in variables.$gaps { - .o-mesh--gap-#{$gap} { - --mesh-gap: #{space.get($gap)}; - } + .o-mesh--gap-#{$gap} { + --mesh-gap: #{space.get($gap)}; + } } - /** * Element modifier: row * 1. Overwrite any previously set column start */ .o-mesh__row { - @include responsive.in-query(variables.$row-in-query) { - --colstart: 0; /* [1] */ - --colspan: 12; - } + @include responsive.in-query(variables.$row-in-query) { + --colstart: 0; /* [1] */ + --colspan: 12; + } } diff --git a/objects/mesh/_variables.scss b/objects/mesh/_variables.scss index 64ca91e..4a8dd3c 100644 --- a/objects/mesh/_variables.scss +++ b/objects/mesh/_variables.scss @@ -1,47 +1,31 @@ -/* ========================================================================= - objects.mesh.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.mesh.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Number of default columns, can be overwritten per component with custom * properties. */ $columns: defaults.$columns !default; - /** * The `gap` map */ -$gaps: ( - 'base', -) !default; - +$gaps: ('base') !default; /** * Flow inline-size */ $flow-min-inline-size: 200px !default; - /** * Define which namespaced queries you would like to generate for `row`. * This is handy if you only need `row` on, say, desk, or you only need `row` * at mobile sizes. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will: - * - * $row-in-query: (lap, desk); +$row-in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` * in `settings/responsive` diff --git a/objects/mesh/test.html b/objects/mesh/test.html index f195918..35c7576 100644 --- a/objects/mesh/test.html +++ b/objects/mesh/test.html @@ -1,180 +1,372 @@ - - - - Test objects.mesh - Supple CSS - - - + + + + Test objects.mesh - Supple CSS + + + +
+

Supple CSS: objects.mesh tests

-
-

Supple CSS: objects.mesh tests

+

.o-mesh

+

renders cells at 1 column by default

+
+
+
1
+
2
+
+
+ -

.o-mesh

-

renders cells at 1 column by default

-
-
-
1
-
2
-
-
+

+ Accepts --columns custom property (ie. + --columns: 2;) +

+
+
+
1
+
2
+
+
+ -

Accepts --columns custom property (ie. --columns: 2;)

-
-
-
1
-
2
-
-
+

.o-mesh--flow

+

+ Fluid width columns that break into more or less columns as space is + available, with no media queries +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ -

.o-mesh--flow

-

Fluid width columns that break into more or less columns as space is available, with no media queries

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
+

+ Accepts --min-inline-size custom property. +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ -

Accepts --min-inline-size custom property.

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
+

Plays nicely with .u-colspan-X

+
+
+
1
+
2
+
+ 3 +
+
4
+
5
+
6
+
+
+ -

Plays nicely with .u-colspan-X

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
+

.o-mesh--dense

+

+ Fills in holes earlier in the grid if smaller items come up later +

+
+
+
1
+
2
+
+ 3 +
+
4
+
5
+
6
+
+ 7 +
+
8
+
+ 9 +
+
+ 10 +
+
+
+ -

.o-mesh--dense

-

Fills in holes earlier in the grid if smaller items come up later

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
-
+

.o-mesh--gap-X

+

supports gap

+
+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+ -

.o-mesh--gap-X

-

supports gap

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
+

+ supports --block-gap & --inline-gap custom + properties +

+
+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+ -

supports --block-gap & --inline-gap custom properties

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
+

doesn't apply gaps directly to nested meshes

+
+
+
+ 1 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+ 2 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+
+ -

doesn't apply gaps directly to nested meshes

-
-
-
- 1 -
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
-
- 2 -
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
-
-
- -

correctly aligns gaps within nested meshes

-
-
-
- 1 -
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
-
- 2 -
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
-
-
- -
- +

correctly aligns gaps within nested meshes

+
+
+
+ 1 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+ 2 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+
+ +
+ + From 3b2c8a5b9def1690cf4ec0e7c67b4dcc93be66ed Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:12:03 +0100 Subject: [PATCH 12/25] object.retain to tabs --- objects/retain/README.md | 90 ++++++++++++------------ objects/retain/_index.scss | 52 ++++++-------- objects/retain/_variables.scss | 23 ++----- objects/retain/test.html | 121 ++++++++++++++++----------------- 4 files changed, 134 insertions(+), 152 deletions(-) diff --git a/objects/retain/README.md b/objects/retain/README.md index 33906cd..70f3263 100644 --- a/objects/retain/README.md +++ b/objects/retain/README.md @@ -6,44 +6,45 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Features -* Creates a wrapper -* Multiple sizes -* Configurable with custom properties +- Creates a wrapper +- Multiple sizes +- Configurable with custom properties ## Use + By default the retain container has a width of 100% and is padded on both sides. ```html
- +
``` - ### Modifiers on `.o-retain` ```html -
- +
+
``` - ### Custom properties ```html
- +
``` @@ -51,63 +52,66 @@ By default the retain container has a width of 100% and is padded on both sides. ## Available classes -* `.o-retain`: core retain block -* `.o-retain--no-padding`: removes the padding -* `.o-retain--lap`: retains the size to the `lap` size in `defaults.$breakpoints` -* `.o-retain--desk`: retains the size to the `desk` size in `defaults.$breakpoints` -* `.o-retain--wall`: retains the size to the `wall` size in `defaults.$breakpoints` +- `.o-retain`: core retain block +- `.o-retain--no-padding`: removes the padding +- `.o-retain--lap`: retains the size to the `lap` size in `defaults.$breakpoints` +- `.o-retain--desk`: retains the size to the `desk` size in `defaults.$breakpoints` +- `.o-retain--wall`: retains the size to the `wall` size in `defaults.$breakpoints` ## Configurable variables + There are multiple ways to configure the retain object. The Custom properties are calculated at run-time, the SCSS variables will allow you to change things at build-time. ### Custom properties **On the `.o-retain` block** -* `--size`: The size where you want to retain to, defaults to `100%` - +- `--size`: The size where you want to retain to, defaults to `100%` ### SCSS variables -* `$space`: wich spacing name you want to use for the padding, defaults to `base` -* `$sizes`: list of sizes you want to create `o-retain--X` for, defaults to `(lap: 640px, desk: 960px, wall: 1280px)` +- `$space`: wich spacing name you want to use for the padding, defaults to `base` +- `$sizes`: list of sizes you want to create `o-retain--X` for, defaults to `(lap: 640px, desk: 960px, wall: 1280px)` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/retain' with ( - $sizes: ( - lap: 640px, - desk: 960px, - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/retain' with + ( + $sizes: ( + lap: 640px, + desk: 960px, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/retain/variables' with ( - $sizes: ( - lap: 640px, - desk: 960px, - ), -); +@use 'node_modules/@supple-kit/supple-css/objects/retain/variables' with + ( + $sizes: ( + lap: 640px, + desk: 960px, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/retain'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/retain/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/objects/retain/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/objects/retain/_index.scss b/objects/retain/_index.scss index 5f50a89..c678c42 100644 --- a/objects/retain/_index.scss +++ b/objects/retain/_index.scss @@ -1,19 +1,13 @@ -/* ========================================================================= - objects.retain - Page-level constraining and wrapping elements. - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.retain + Page-level constraining and wrapping elements. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -21,41 +15,37 @@ @use '../../tools/space'; @use '../../tools/rem'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ /** * Block: retain * 1. Center align */ .o-retain { - --size: 100%; - max-inline-size: var(--size); - padding-inline-start: space.get(variables.$space); - padding-inline-end: space.get(variables.$space); - margin-inline-end: auto; /* [1] */ - margin-inline-start: auto; /* [1] */ + --size: 100%; + max-inline-size: var(--size); + padding-inline-start: space.get(variables.$space); + padding-inline-end: space.get(variables.$space); + margin-inline-end: auto; /* [1] */ + margin-inline-start: auto; /* [1] */ } - /** * Modifier: no-padding */ .o-retain--no-padding { - padding-inline-end: 0; - padding-inline-start: 0; + padding-inline-end: 0; + padding-inline-start: 0; } - - -/* Common width modifiers, for use in browsers without - custom-property support - ========================================================================= */ +/* -------------------------------------------------------------------------- + Common width modifiers +/ --------------------------------------------------------------------------- */ @each $key, $value in variables.$sizes { - .o-retain--#{$key} { - --size: #{rem.convert($value)}; - } + .o-retain--#{$key} { + --size: #{rem.convert($value)}; + } } diff --git a/objects/retain/_variables.scss b/objects/retain/_variables.scss index 7f64de3..00cd3a1 100644 --- a/objects/retain/_variables.scss +++ b/objects/retain/_variables.scss @@ -1,27 +1,16 @@ -/* ========================================================================= - objects.retain.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + objects.retain.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - $space: 'base' !default; - /** * Sizes */ $sizes: ( - lap: 640px, - desk: 960px, - wall: 1280px + lap: 640px, + desk: 960px, + wall: 1280px, ) !default; diff --git a/objects/retain/test.html b/objects/retain/test.html index a923c8b..ada1e26 100644 --- a/objects/retain/test.html +++ b/objects/retain/test.html @@ -1,64 +1,63 @@ - - - - Test objects.retain - Supple CSS - - - - -
-

Supple CSS: objects.retain tests

- -

.o-retain

- -

Is padded at both sides

-
-
-
Retained
-
-
- -

supports dynamic sizes (eg.: --size: 30em)

-
-
-
Retained 30em
-
-
- -

.o-retain--no-padding

-

Is not padded at both sides

-
-
-
Retained
-
-
- -

.o-retain--lap

-

Is retained at 640px

-
-
-
Retained
-
-
- -

.o-retain--desk

-

Is retained at 960px

-
-
-
Retained
-
-
- -

.o-retain--wall

-

Is retained at 1280px

-
-
-
Retained
-
-
- -
- + + + + Test objects.retain - Supple CSS + + + +
+

Supple CSS: objects.retain tests

+ +

.o-retain

+ +

Is padded at both sides

+
+
+
Retained
+
+
+ +

supports dynamic sizes (eg.: --size: 30em)

+
+
+
Retained 30em
+
+
+ +

.o-retain--no-padding

+

Is not padded at both sides

+
+
+
Retained
+
+
+ +

.o-retain--lap

+

Is retained at 640px

+
+
+
Retained
+
+
+ +

.o-retain--desk

+

Is retained at 960px

+
+
+
Retained
+
+
+ +

.o-retain--wall

+

Is retained at 1280px

+
+
+
Retained
+
+
+
+ + From 54857fa73d31cb4d25cd3929d2049ff8c394cc57 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:16:15 +0100 Subject: [PATCH 13/25] settings.defaults to tabs --- settings/defaults/README.md | 163 ++++++++++++++++------------ settings/defaults/_index.scss | 193 ++++++++++++++++------------------ 2 files changed, 190 insertions(+), 166 deletions(-) diff --git a/settings/defaults/README.md b/settings/defaults/README.md index 3812a36..4b921b8 100644 --- a/settings/defaults/README.md +++ b/settings/defaults/README.md @@ -6,25 +6,27 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Configurable SCSS variables](#configurable-scss-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Use](#use) +- [Configurable SCSS variables](#configurable-scss-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use + You can override the default variables like this: ```scss // in you own settings file eg. `_vars.scss` or from you manifest file eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( - $columns: 10, - $baseline: 6px, - $space-factors: ( - 'base': 3, - 'tiny': 1, - ), -); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with + ( + $columns: 10, + $baseline: 6px, + $space-factors: ( + 'base': 3, + 'tiny': 1, + ) + ); ``` And when you need the variables in your own module you can use them like this: @@ -34,7 +36,7 @@ And when you need the variables in your own module you can use them like this: @use 'node_modules/@supple-kit/supple-css/settings/defaults'; .your-module { - --columns: #{defaults.$columns}; + --columns: #{defaults.$columns}; } // or in combination with tools @@ -45,50 +47,66 @@ And when you need the variables in your own module you can use them like this: @use 'node_modules/@supple-kit/supple-css/tools/rem'; .your-module__element { - @include rem.convert(margin-inline-start, defaults.$baseline); + @include rem.convert(margin-inline-start, defaults.$baseline); } ``` - ## Configurable SCSS variables ### `$baseline` + By default supple creates an 8 point baseline to create vertical (and horizontal) rhythm. Everything is spaced by this baseline: margins, paddings and gaps in `objects.mesh` and `objects.layout`. More information: -* [https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632](https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632) -* [https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc](https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc) + +- [https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632](https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632) +- [https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc](https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc) **example:** + ```scss $baseline: 6px; // Creates 6px baseline ``` **defaults to:** + ```scss $baseline: 8px !default; ``` ### `$space-factors` + The following map keys multiply the `$baseline` to consistent and transparent spacing rules. **example:** + ```scss $space-factors: ( - 'base': 4, // 4*8px = 32px - 'tiny': 2, // 2*8px = 16px - 'small': 3, // 3*8px = 24px - 'large': 6, // 6*8px = 48px - 'huge': 12, // 12*8px = 96px + 'base': 4, + // 4*8px = 32px + 'tiny': 2, + // 2*8px = 16px + 'small': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ); ``` **defaults to:** + ```scss $space-factors: ( - 'tiny': 1, // 1*8px = 8px - 'small': 2, // 2*8px = 16px - 'base': 3, // 3*8px = 24px - 'large': 6, // 6*8px = 48px - 'huge': 12, // 12*8px = 96px + 'tiny': 1, + // 1*8px = 8px + 'small': 2, + // 2*8px = 16px + 'base': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ) !default; ``` @@ -98,37 +116,44 @@ These multiplication factors are converted to a `rem` value and available throug @use 'node_modules/@supple-kit/supple-css/tools/space'; .your-selector { - margin-block-end: space.get('base'); + margin-block-end: space.get('base'); } ``` + This map is used throughout supple to ensure a consistent vertical rhythm. You can also use `space.get()` inside your own modules. **Note** `$space-factors` needs to contain atleast one entry named 'base' since supple-css internally relies on this. ### Typography + You can set the base font-size and line-height of the application: **example:** + ```scss $font-size: 20px; $line-height: 4 * $baseline; // 4 * 8px = 32px ``` **defaults to:** + ```scss $font-size: 16px !default; $line-height: map.get($space-factors, 'base') * $baseline !default; // 3 * 8px = 24px ``` ### Grid + You can set a global `$columns` variable which is used in `objects.layout`, `objects.mesh`, `utilities.colspan` & `utilities.colstart`. **example:** + ```scss $columns: 24; ``` **defaults to:** + ```scss $columns: 12; ``` @@ -136,89 +161,97 @@ $columns: 12; **Note** this is only a global columns setting shared across modules, you can override module specific columns in their own `_variable.scss` file. ### Responsive + Working with breakpoints is pretty straightforward. You can add as many breakpoints as you want. You can show the breakpoints for debug purposes. And even disable responsive mode altogether. **example:** + ```scss // Breakpoint list // Name your breakpoints in a way that creates a ubiquitous language across team members. // It will improve communication between stakeholders, designers, developers, and testers. $breakpoints: ( - palm: 320px, - lap: 640px, - desk: 960px, - wall: 1280px + palm: 320px, + lap: 640px, + desk: 960px, + wall: 1280px, ); - // Query list, which is used by the `responsive.mq()` mixin. // Name your queries in a way that creates a ubiquitous language across team members. // You can reference `$breakpoints` by name or you can enter a `px` or `em` value // You can create complex media queries like this: $queries: ( - // min-width - palm: palm, - lap: lap, - desk: desk, - wall: wall, - // max-width - until-desk: ( - max: desk - ), - // min-width & max-width - lap-until-desk: ( - min: lap, - max: desk - ), - // min-width & max-width with generic px value - lap-until-generic: ( - min-width: lap, - max-width: 1024px - ), - // You can also apply height queries - height-large-until-huge: ( - min-height: 640px, - max-height: 1024px - ) + // min-width + palm: palm, + lap: lap, + desk: desk, + wall: wall, + // max-width + until-desk: + ( + max: desk, + ), + // min-width & max-width + lap-until-desk: + ( + min: lap, + max: desk, + ), + // min-width & max-width with generic px value + lap-until-generic: + ( + min-width: lap, + max-width: 1024px, + ), + // You can also apply height queries + height-large-until-huge: + ( + min-height: 640px, + max-height: 1024px, + ) ); - ``` ### Namespace + By default all responsive classes are prefixed with `@`. This way it is clear that, for example, `u-colspan-8@from-palm` is a responsive modifier. You can however change the `@` to anything you like: **Example:** + ```scss $responsive-modifier: '--'; ``` **Defaults:** + ```scss $responsive-modifier: unquote('\\@') !default; ``` - ### Technology + Sometimes 3rd party technologies don't play nice with some supple modules. The settings you find in this category enables us to use supple with technologies like css-modules. **Example:** + ```scss $css-modules: true; ``` **Defaults:** + ```scss $css-modules: false !default; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/settings/defaults/_index.scss b/settings/defaults/_index.scss index ef3c32e..839dd1b 100644 --- a/settings/defaults/_index.scss +++ b/settings/defaults/_index.scss @@ -1,179 +1,170 @@ -/* ========================================================================= - settings.defaults - Supple default variables. Redefine and override them with your - application-level variables. - ========================================================================= */ - -/* @use statements - ========================================================================= */ +/* ========================================================================== + settings.defaults + Supple default variables. Redefine and override them with your + application-level variables. +/ =========================================================================== */ @use 'sass:map'; @use 'sass:math'; @use 'sass:meta'; @use 'sass:string'; - - -/* Baseline - As per: - https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632 - https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc - ========================================================================= */ +/* -------------------------------------------------------------------------- + Baseline + As per: + https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632 + https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc +/ --------------------------------------------------------------------------- */ $baseline: 8px !default; - - -/* Spacing - Multiply our `$baseline` to new spacing variables for - more transparency & consistency. - ========================================================================= */ +/* -------------------------------------------------------------------------- + Spacing + Multiply our `$baseline` to new spacing variables for + more transparency & consistency. +/ --------------------------------------------------------------------------- */ /** * How many lines should our spacing units span? * Each value should be an unitless integer. */ $space-factors: ( - 'tiny': 1, // 1*8px = 8px - 'small': 2, // 2*8px = 16px - 'base': 3, // 3*8px = 24px - 'large': 6, // 6*8px = 48px - 'huge': 12, // 12*8px = 96px + 'tiny': 1, + // 1*8px = 8px + 'small': 2, + // 2*8px = 16px + 'base': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ) !default; - - -/* Typography - ========================================================================= */ +/* -------------------------------------------------------------------------- + Typography +/ --------------------------------------------------------------------------- */ $font-size: 16px !default; $line-height: map.get($space-factors, 'base') * $baseline !default; $line-height-ratio: math.div($line-height, $font-size); - - -/* Grid - ========================================================================= */ +/* -------------------------------------------------------------------------- + Grid +/ --------------------------------------------------------------------------- */ $columns: 12 !default; - - -/* Responsive -/ ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ /** * Breakpoints sass map */ $breakpoints: ( - palm: 320px, - lap: 640px, - desk: 960px, - wall: 1280px + palm: 320px, + lap: 640px, + desk: 960px, + wall: 1280px, ) !default; /** * Queries sass map */ $queries: ( - palm: palm, - lap: lap, - desk: desk, - wall: wall + palm: palm, + lap: lap, + desk: desk, + wall: wall, ) !default; - - -/* Namespace - Would you like supple classes to be used with a different namespace? - ========================================================================= */ +/* -------------------------------------------------------------------------- + Namespace + Would you like supple classes to be used with a different namespace? +/ --------------------------------------------------------------------------- */ $responsive-modifier: string.unquote('\\@') !default; - - -/* Technology - Allows us to use supple alongside other technologies like css-modules etc. - ========================================================================= */ +/* -------------------------------------------------------------------------- + Technology + Allows us to use supple alongside other technologies like css-modules etc. +/ --------------------------------------------------------------------------- */ $css-modules: false !default; - - -/* Checks - A couple of checks for correct formatting of variables in this file - ========================================================================= */ +/* -------------------------------------------------------------------------- + Checks + A couple of checks for correct formatting of variables in this file +/ --------------------------------------------------------------------------- */ /** * Check that the chosen font rules are pixel numbers. */ $should-be-pixel-values: ( - 'baseline': $baseline, - 'font-size': $font-size, - 'line-height': $line-height + 'baseline': $baseline, + 'font-size': $font-size, + 'line-height': $line-height, ); @each $key, $value in $should-be-pixel-values { - @if type-of($value) == number { - @if math.unit($value) != 'px' { - @error '`#{$key}: #{$value}` needs to be a pixel unit.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.unit($value) != 'px' { + @error '`#{$key}: #{$value}` needs to be a pixel unit.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } /** * check that breakpoints are defined in px or em */ @each $key, $value in $breakpoints { - @if type-of($value) == number { - @if math.unit($value) != 'px' and math.unit($value) != 'em' { - @error 'Breakpoint `#{$key}: #{$value}` needs to be a pixel or em unit.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.unit($value) != 'px' and math.unit($value) != 'em' { + @error 'Breakpoint `#{$key}: #{$value}` needs to be a pixel or em unit.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } - /** * Check that the chosen size factors are unitless, integer numbers. */ $should-be-unitless-integers: ( - 'columns': $columns + 'columns': $columns, ); @each $key, $value in map.merge($space-factors, $should-be-unitless-integers) { - @if type-of($value) == number { - @if math.is-unitless($value) == false { - @error '`#{$key}: #{$value}` needs to be unitless.'; - } - @if $value != math.ceil($value) { - @error '`#{$key}: #{$value}` needs to be an integer.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.is-unitless($value) == false { + @error '`#{$key}: #{$value}` needs to be unitless.'; + } + @if $value != math.ceil($value) { + @error '`#{$key}: #{$value}` needs to be an integer.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } - /** * Check if `$space-factors` has the mandatory `base` entry */ @if not map.has-key($space-factors, 'base') { - @error '`$space-factors` needs to contain atleast one entry named 'base' since supple-css internally relies on this.'; + @error '`$space-factors` needs to contain atleast one entry named 'base' since supple-css internally relies on this.'; } - /** * Check if $queries is in the right format */ @each $key, $value in $queries { - @if meta.type-of($value) == map { - @if map.has-key($value, min) and map.has-key($value, min-width) { - @error 'defaults.$queries: "min" and "min-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length - } - @if map.has-key($value, max) and map.has-key($value, max-width) { - @error 'defaults.$queries: "max" and "max-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length - } - } + @if meta.type-of($value) == map { + @if map.has-key($value, min) and map.has-key($value, min-width) { + @error 'defaults.$queries: "min" and "min-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length + } + @if map.has-key($value, max) and map.has-key($value, max-width) { + @error 'defaults.$queries: "max" and "max-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length + } + } } From 5305aa51b48fbc04e29849f097ee34f27523dc2b Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:35:58 +0100 Subject: [PATCH 14/25] test to tabs --- test/scss/components/_css-lock.scss | 34 +--- test/scss/components/_fixture-box.scss | 46 ++--- test/scss/components/_preformatted.scss | 32 +--- test/scss/components/_test.scss | 106 +++++------- test/scss/elements/_toplevel.scss | 33 +--- test/scss/settings/_theme.scss | 40 ++--- test/scss/test.scss | 214 +++++++++++++----------- 7 files changed, 204 insertions(+), 301 deletions(-) diff --git a/test/scss/components/_css-lock.scss b/test/scss/components/_css-lock.scss index 50bc822..63462c6 100644 --- a/test/scss/components/_css-lock.scss +++ b/test/scss/components/_css-lock.scss @@ -1,39 +1,19 @@ -/* ========================================================================= - components.css-lock - Test for creating fluid typography with CSS-lock mixin. - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + test.components.lock + Test for creating fluid typography with CSS-lock mixin. +/ =========================================================================== */ @use '../../../tools/responsive'; - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ - .c-css-lock { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } .selector { - font-size: responsive.lock(18px, 24px); + font-size: responsive.lock(18px, 24px); } // You can also redefine the min- and max breakpoints like this .selector-defined-breakpoints { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } diff --git a/test/scss/components/_fixture-box.scss b/test/scss/components/_fixture-box.scss index 36ede24..d840a52 100644 --- a/test/scss/components/_fixture-box.scss +++ b/test/scss/components/_fixture-box.scss @@ -1,45 +1,25 @@ -/* ========================================================================= - components.fixture-box - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + test.components.fixture-box +/ =========================================================================== */ @use '../../../tools/space'; @use '../../../settings/defaults'; - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ - .c-fixture-box { - padding-inline-start: space.get('small'); - padding-inline-end: space.get('small'); - border: 1px solid #000000; - background: #ee4266; - line-height: 3rem; - text-indent: 0; - color: #ffffff; + padding-inline-start: space.get('small'); + padding-inline-end: space.get('small'); + border: 1px solid #000000; + background: #ee4266; + line-height: 3rem; + text-indent: 0; + color: #ffffff; } .c-fixture-box--double-height { - line-height: space.get('huge'); + line-height: space.get('huge'); } .c-fixture-box--wrap { - border: 1px solid #000000; - background: rgba(238 66 102 / 30%); + border: 1px solid #000000; + background: rgba(238 66 102 / 30%); } diff --git a/test/scss/components/_preformatted.scss b/test/scss/components/_preformatted.scss index de674de..844b2d6 100644 --- a/test/scss/components/_preformatted.scss +++ b/test/scss/components/_preformatted.scss @@ -1,29 +1,9 @@ -/* ========================================================================= - components.preformatted - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ - - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ +/* ========================================================================== + components.preformatted +/ =========================================================================== */ .c-preformatted { - overflow: auto; - white-space: pre; - word-wrap: normal; + overflow: auto; + white-space: pre; + word-wrap: normal; } diff --git a/test/scss/components/_test.scss b/test/scss/components/_test.scss index 05bfd38..7ad7792 100644 --- a/test/scss/components/_test.scss +++ b/test/scss/components/_test.scss @@ -1,94 +1,72 @@ -/* ========================================================================= - components.test - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - Variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + test.components.test +/ =========================================================================== */ @use '../../../tools/space'; @use '../../../tools/typography'; @use '../../../settings/defaults'; - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ - .c-test { - counter-reset: test__describe; + counter-reset: test__describe; } .c-test__title { - @include typography.font-size(40px); - margin-block-start: space.get('base'); - margin-block-end: space.get('base'); - padding: space.get('base'); - color: #999999; - background: #eeeeee; + @include typography.font-size(40px); + margin-block-start: space.get('base'); + margin-block-end: space.get('base'); + padding: space.get('base'); + color: #999999; + background: #eeeeee; } .c-test__describe, .c-test__it { - padding-block-start: space.get('small'); - padding-block-end: space.get('small'); - padding-inline-start: space.get('base'); - padding-inline-end: space.get('base'); - border-left: 5px solid #666666; - font-weight: bold; - color: #666666; - background: #eeeeee; + padding-block-start: space.get('small'); + padding-block-end: space.get('small'); + padding-inline-start: space.get('base'); + padding-inline-end: space.get('base'); + border-left: 5px solid #666666; + font-weight: bold; + color: #666666; + background: #eeeeee; } .c-test__describe { - @include typography.font-size(32px); - margin-block-start: space.get('large'); - margin-block-end: space.get('base'); - counter-reset: test__it; - - &::before { - content: counter(test__describe); - counter-increment: test__describe; - } + @include typography.font-size(32px); + margin-block-start: space.get('large'); + margin-block-end: space.get('base'); + counter-reset: test__it; + + &::before { + content: counter(test__describe); + counter-increment: test__describe; + } } .c-test__it { - @include typography.font-size(24px); - margin-block-start: space.get('base'); - margin-block-end: space.get('base'); - - &::before { - content: counter(test__describe) '.' counter(test__it); - counter-increment: test__it; - } + @include typography.font-size(24px); + margin-block-start: space.get('base'); + margin-block-end: space.get('base'); + + &::before { + content: counter(test__describe) '.' counter(test__it); + counter-increment: test__it; + } } - .c-test__describe::before, .c-test__it::before { - display: inline-block; - margin-inline-end: space.get('base'); - min-inline-size: space.get('large'); - text-transform: uppercase; - color: #999999; + display: inline-block; + margin-inline-end: space.get('base'); + min-inline-size: space.get('large'); + text-transform: uppercase; + color: #999999; } - .c-test__run { - // empty for reference + // empty for reference } .c-test__run--retained { - max-inline-size: space.get('base') * 21; + max-inline-size: space.get('base') * 21; } diff --git a/test/scss/elements/_toplevel.scss b/test/scss/elements/_toplevel.scss index 5f9aded..4ff10bf 100644 --- a/test/scss/elements/_toplevel.scss +++ b/test/scss/elements/_toplevel.scss @@ -1,35 +1,16 @@ -/* ========================================================================= - elements.toplevel - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + test.elements.toplevel +/ =========================================================================== */ @use '../../../tools/space'; @use '../../../settings/defaults'; - - -/* Variables - ========================================================================= */ - - - -/* Functions/Mixins - ========================================================================= */ - - - -/* Module - ========================================================================= */ - html { - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; // stylelint-disable-line max-line-length + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, + Ubuntu, Cantarell, Helvetica Neue, sans-serif; } body { - padding-inline-start: space.get('base'); - padding-inline-end: space.get('base'); + padding-inline-start: space.get('base'); + padding-inline-end: space.get('base'); } diff --git a/test/scss/settings/_theme.scss b/test/scss/settings/_theme.scss index b4379f3..e83ed1c 100644 --- a/test/scss/settings/_theme.scss +++ b/test/scss/settings/_theme.scss @@ -1,39 +1,19 @@ -/* ========================================================================= - test.settings.theme -/ ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. -/ ========================================================================= */ +/* ========================================================================== + test.settings.theme +/ =========================================================================== */ @use '../../../tools/responsive'; - - -/* Variables -/ ========================================================================= */ - - - -/* Functions/Mixins -/ ========================================================================= */ - - - -/* Module -/ ========================================================================= */ - :root { - // Light theme colors - --color-slate: #cccccc; + // Light theme colors + --color-slate: #cccccc; - @include responsive.color-scheme(dark) { - // Dark theme colors - --color-slate: #000000; - } + @include responsive.color-scheme(dark) { + // Dark theme colors + --color-slate: #000000; + } } .c-color-scheme { - background-color: var(--color-slate); + background-color: var(--color-slate); } diff --git a/test/scss/test.scss b/test/scss/test.scss index 371b9db..2bdf645 100644 --- a/test/scss/test.scss +++ b/test/scss/test.scss @@ -1,120 +1,144 @@ -/* ========================================================================= - Supple - In-browser CSS framework; Fluid, Variable, supple if you will - ========================================================================= */ +/* ========================================================================== + Supple test file +/ =========================================================================== */ -/* Settings - ========================================================================= */ +/* -------------------------------------------------------------------------- + Settings +/ --------------------------------------------------------------------------- */ @use '../../settings/defaults'; +/* -------------------------------------------------------------------------- + Tools +/ --------------------------------------------------------------------------- */ - -/* Tools - ========================================================================= */ - -// @import '../../tools/functions'; -// @use '../../tools/mixins'; @use '../../tools/responsive'; - - -/* Generic - ========================================================================= */ +/* -------------------------------------------------------------------------- + Generic +/ --------------------------------------------------------------------------- */ @use '../../generic/reset'; - - -/* Elements - ========================================================================= */ +/* -------------------------------------------------------------------------- + Elements +/ --------------------------------------------------------------------------- */ @use 'elements/toplevel'; - - -/* Objects - ========================================================================= */ +/* -------------------------------------------------------------------------- + Objects +/ --------------------------------------------------------------------------- */ @use '../../objects/list-clean'; -@use '../../objects/layout' with ( - $fit-in-query: (lap, desk), - $fill-in-query: lap, - $gaps: ( - 'base', - 'tiny' - ) -); -@use '../../objects/mesh' with ( - $row-in-query: (lap, desk), - $gaps: ( - 'base', - 'tiny' - ) -); -@use '../../objects/retain' with ( - $sizes: ( - lap: 640px, - desk: 960px, - wall: 1280px, - billboard: 1440px - ) -); -@use '../../objects/aspect-ratio' with ( - $ratios: ( - (2:1), - (4:3), - (16:9), - (21:9) - ) -); -@use '../../objects/flow' with ( - $gaps: ( - 'tiny' - ) -); - - - -/* Components - ========================================================================= */ +@use '../../objects/layout' with + ( + $fit-in-query: ( + lap, + desk, + ), + $fill-in-query: lap, + $gaps: ( + 'base', + 'tiny', + ) + ); +@use '../../objects/mesh' with + ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) + ); +@use '../../objects/retain' with + ( + $sizes: ( + lap: 640px, + desk: 960px, + wall: 1280px, + billboard: 1440px, + ) + ); +@use '../../objects/aspect-ratio' with + ( + $ratios: ( + (2: 1), + (4: 3), + (16: 9), + (21: 9), + ) + ); +@use '../../objects/flow' with + ( + $gaps: ( + 'tiny', + ) + ); + +/* -------------------------------------------------------------------------- + Components +/ --------------------------------------------------------------------------- */ @use 'components/test'; @use 'components/fixture-box'; @use 'components/preformatted'; @use 'components/css-lock'; - - -/* Theme -/ ========================================================================= */ +/* -------------------------------------------------------------------------- + Theme +/ --------------------------------------------------------------------------- */ @use 'settings/theme'; - - -/* Utilities - ========================================================================= */ - -@use '../../utilities/columns' with ( - $in-query: (lap, desk), -); -@use '../../utilities/colspan' with ( - $in-query: lap, -); -@use '../../utilities/colstart' with ( - $in-query: (lap, desk), -); -@use '../../utilities/offset' with ( - $in-query: (lap, desk), -); +/* -------------------------------------------------------------------------- + Utilities +/ --------------------------------------------------------------------------- */ + +@use '../../utilities/columns' with + ( + $in-query: ( + lap, + desk, + ) + ); +@use '../../utilities/colspan' with ($in-query: lap); +@use '../../utilities/colstart' with + ( + $in-query: ( + lap, + desk, + ) + ); +@use '../../utilities/offset' with + ( + $in-query: ( + lap, + desk, + ) + ); @use '../../utilities/clearfix'; -@use '../../utilities/spacing' with ( - $in-query: (lap, desk) -); -@use '../../utilities/visually-hidden' with ( - $in-query: (lap, desk), -); -@use '../../utilities/hidden' with ( - $in-query: (lap, desk), -); +@use '../../utilities/spacing' with + ( + $in-query: ( + lap, + desk, + ) + ); +@use '../../utilities/visually-hidden' with + ( + $in-query: ( + lap, + desk, + ) + ); +@use '../../utilities/hidden' with + ( + $in-query: ( + lap, + desk, + ) + ); From 8d20c72095eddcd1e76882a9fd9b5976304e5389 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:39:25 +0100 Subject: [PATCH 15/25] utilities.clearfix to tabs --- utilities/clearfix/README.md | 32 ++++++++++--------- utilities/clearfix/_index.scss | 13 +++----- utilities/clearfix/test.html | 56 ++++++++++++++++++++-------------- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/utilities/clearfix/README.md b/utilities/clearfix/README.md index 8214de8..2e74634 100644 --- a/utilities/clearfix/README.md +++ b/utilities/clearfix/README.md @@ -6,18 +6,23 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Use](#use) +- [Available classes](#available-classes) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use ```html
- -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda temporibus numquam repellendus repellat eaque illum, praesentium facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut doloribus adipisci.

+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium facere iure + fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut + doloribus adipisci. +

``` @@ -25,19 +30,18 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). **On the `.u-clearfix` block** -* `.u-clearfix`: core visually hidden block - +- `.u-clearfix`: core visually hidden block ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/clearfix/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/clearfix/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/clearfix/_index.scss b/utilities/clearfix/_index.scss index 8a741b3..c9c0bae 100644 --- a/utilities/clearfix/_index.scss +++ b/utilities/clearfix/_index.scss @@ -1,15 +1,12 @@ -/* ========================================================================= - utilities.clearfix - Clears floats. - ========================================================================= */ - -/* Module - ========================================================================= */ +/* ========================================================================== + utilities.clearfix + Clears floats. +/ =========================================================================== */ /** * Make an element expand to contain floated children. * As per: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context#Using_display_flow-root */ .u-clearfix { - display: flow-root; + display: flow-root; } diff --git a/utilities/clearfix/test.html b/utilities/clearfix/test.html index e9fce14..fcd3e5c 100644 --- a/utilities/clearfix/test.html +++ b/utilities/clearfix/test.html @@ -1,27 +1,37 @@ - - - - Test utilities.clearfix - Supple CSS - - - + + + + Test utilities.clearfix - Supple CSS + + + +
+

Supple CSS: utilities.clearfix tests

-
-

Supple CSS: utilities.clearfix tests

- -

.u-clearfix

-

the container should clear the floated images

-
-
- -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda temporibus numquam repellendus repellat eaque illum, praesentium facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut doloribus adipisci.

- -

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus asperiores minima porro nemo, perferendis magni molestias rem illum, inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus rerum eveniet sint?

-
-
- -
- +

.u-clearfix

+

the container should clear the floated images

+
+
+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium + facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae + ea numquam id ut doloribus adipisci. +

+ +

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus + asperiores minima porro nemo, perferendis magni molestias rem illum, + inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus + rerum eveniet sint? +

+
+
+ +
+ + From c7e93133e34ff35f5f8b732f57315f7b83bfc13c Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:41:35 +0100 Subject: [PATCH 16/25] utilities.colspan to tabs --- utilities/colspan/README.md | 77 +++++++++++++++---------------- utilities/colspan/_index.scss | 48 +++++++++---------- utilities/colspan/_tools.scss | 36 ++++----------- utilities/colspan/_variables.scss | 20 ++------ 4 files changed, 72 insertions(+), 109 deletions(-) diff --git a/utilities/colspan/README.md b/utilities/colspan/README.md index 9c92936..0c89ccc 100644 --- a/utilities/colspan/README.md +++ b/utilities/colspan/README.md @@ -6,85 +6,84 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Browser support](#browser-support) ## Features -* Easy & flexible colspans in your objects & components -* Works nicely with `objects.layout` and `objects.mesh` +- Easy & flexible colspans in your objects & components +- Works nicely with `objects.layout` and `objects.mesh` ## Use ```html
-
- spans 7 of 12 columns -
-
- spans 5 of 12 columns -
+
spans 7 of 12 columns
+
spans 5 of 12 columns
``` ```html
-
- spans 7 of 12 columns -
-
- spans 5 of 12 columns -
+
spans 7 of 12 columns
+
spans 5 of 12 columns
``` - ## Available classes -By default we generate classes for 12 columns but it can be configured with the `$columns` setting. -* `.u-colspan-X`, spans over the designated number of columns -* `.u-colspan-X@[QUERY-NAME]`: applies colspan at the given media query. (available in `$in-query` SCSS setting) +By default we generate classes for 12 columns but it can be configured with the `$columns` setting. +- `.u-colspan-X`, spans over the designated number of columns +- `.u-colspan-X@[QUERY-NAME]`: applies colspan at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables - ### SCSS variables -* `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` -* `$in-query`: a list of queries where `.u-colspan-X@[QUERY-NAME]` is generated for, defaults to: `()` +- `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` +- `$in-query`: a list of queries where `.u-colspan-X@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colspan' with ( - $columns: 10, - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/colspan' with + ( + $columns: 10, + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colspan/variables' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/colspan/variables' with + ( + $in-query: ( + lap, + desk, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/colspan'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/colspan/_index.scss b/utilities/colspan/_index.scss index fadeceb..4372f88 100644 --- a/utilities/colspan/_index.scss +++ b/utilities/colspan/_index.scss @@ -1,20 +1,14 @@ -/* ========================================================================= - utilities.colspan - Classes provide a colspan custom property for use in objects or - components which can handle colspans eg. `object.layout` or `object.mesh`. - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + utilities.colspan + Classes provide a colspan custom property for use in objects or + components which can handle colspans eg. `object.layout` or `object.mesh`. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -25,26 +19,26 @@ @use '../../tools/responsive'; @use './tools'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ @include tools.build; - - -/* Responsive - ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build('#{defaults.$responsive-modifier}#{variables.$in-query}'); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/colspan/_tools.scss b/utilities/colspan/_tools.scss index feea200..944da53 100644 --- a/utilities/colspan/_tools.scss +++ b/utilities/colspan/_tools.scss @@ -1,32 +1,14 @@ -/* ========================================================================= - utilities.colspan.tools - Functions and/or mixins used in this module - ========================================================================= */ +/* ========================================================================== + utilities.colspan.tools + Functions and/or mixins used in this module +/ =========================================================================== */ -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ - -/** - * Use the settings & tools in this sheet - */ @use './variables'; - - -/* Functions - ========================================================================= */ - - - -/* Mixins - ========================================================================= */ - @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-colspan-#{$i}#{$modifier} { - --colspan: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-colspan-#{$i}#{$modifier} { + --colspan: #{$i}; + } + } } diff --git a/utilities/colspan/_variables.scss b/utilities/colspan/_variables.scss index d5f79ac..7e313f7 100644 --- a/utilities/colspan/_variables.scss +++ b/utilities/colspan/_variables.scss @@ -1,31 +1,19 @@ -/* ========================================================================= - utilities.colspan.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.colspan.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Columns, makes it easy to create several proportional columns */ $columns: defaults.$columns !default; - /** * Define which namespaced queries you would like to generate for each * of the colspans. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will. - * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` * in `settings/defaults` From 4ba66b65d147f99df3fa23f5565b0d063aed2a8f Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:43:30 +0100 Subject: [PATCH 17/25] utilities.colstart to tabs --- utilities/colstart/README.md | 69 ++++++++++++++++-------------- utilities/colstart/_index.scss | 48 +++++++++------------ utilities/colstart/_tools.scss | 36 ++++------------ utilities/colstart/_variables.scss | 20 ++------- 4 files changed, 70 insertions(+), 103 deletions(-) diff --git a/utilities/colstart/README.md b/utilities/colstart/README.md index 49d5be0..fb8ed65 100644 --- a/utilities/colstart/README.md +++ b/utilities/colstart/README.md @@ -6,74 +6,77 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Browser support](#browser-support) ## Features -* Easy & flexible column starts in your objects & components -* Works nicely with `objects.mesh` +- Easy & flexible column starts in your objects & components +- Works nicely with `objects.mesh` ## Use ```html
-
- starts at column 3 -
-
- starts at column 7 -
+
starts at column 3
+
starts at column 7
``` - ## Available classes -By default we generate classes for 12 columns but it can be configured with the `$columns` setting. -* `.u-colstart-X`, spans over the designated number of columns -* `.u-colstart-X@[QUERY-NAME]`: applies colstart at the given media query. (available in `$in-query` SCSS setting) +By default we generate classes for 12 columns but it can be configured with the `$columns` setting. +- `.u-colstart-X`, spans over the designated number of columns +- `.u-colstart-X@[QUERY-NAME]`: applies colstart at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables - ### SCSS variables -* `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` -* `$in-query`: a list of breakpoints where `.u-colstart-X@[QUERY-NAME]` is generated for, defaults to: `()` +- `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` +- `$in-query`: a list of breakpoints where `.u-colstart-X@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colstart' with ( - $columns: 10, - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/colstart' with + ( + $columns: 10, + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colstart/variables' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/colstart/variables' with + ( + $in-query: ( + lap, + desk, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/colstart'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/colstart/_index.scss b/utilities/colstart/_index.scss index 8827c70..7e5459c 100644 --- a/utilities/colstart/_index.scss +++ b/utilities/colstart/_index.scss @@ -1,20 +1,14 @@ -/* ========================================================================= - utilities.colstart - Classes provide a column-start custom property for use in objects - or components which can handle column-starts eg. `object.mesh`. - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + utilities.colstart + Classes provide a column-start custom property for use in objects + or components which can handle column-starts eg. `object.mesh`. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -25,26 +19,26 @@ @use '../../tools/responsive'; @use './tools'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ @include tools.build; - - -/* Responsive - ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build('#{defaults.$responsive-modifier}#{variables.$in-query}'); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/colstart/_tools.scss b/utilities/colstart/_tools.scss index a4f3cd6..a535af0 100644 --- a/utilities/colstart/_tools.scss +++ b/utilities/colstart/_tools.scss @@ -1,32 +1,14 @@ -/* ========================================================================= - utilities.colstart.tools - Functions and/or mixins used in this module - ========================================================================= */ +/* ========================================================================== + utilities.colstart.tools + Functions and/or mixins used in this module +/ =========================================================================== */ -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ - -/** - * Use the settings & tools in this sheet - */ @use './variables'; - - -/* Functions - ========================================================================= */ - - - -/* Mixins - ========================================================================= */ - @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-colstart-#{$i}#{$modifier} { - --colstart: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-colstart-#{$i}#{$modifier} { + --colstart: #{$i}; + } + } } diff --git a/utilities/colstart/_variables.scss b/utilities/colstart/_variables.scss index fbf7a6c..6d20b1b 100644 --- a/utilities/colstart/_variables.scss +++ b/utilities/colstart/_variables.scss @@ -1,31 +1,19 @@ -/* ========================================================================= - utilities.colstart.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.colstart.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Columns, makes it easy to create several proportional columns */ $columns: defaults.$columns !default; - /** * Define which namespaced queries you would like to generate for each * of the colstarts. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will. - * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` * in `settings/defaults` From f30c29ee1e5077f102c45df3773c5f19d460bd4a Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:56:27 +0100 Subject: [PATCH 18/25] issues to tabs --- .github/FUNDING.yml | 2 +- .github/ISSUE_TEMPLATE/bug-report.md | 12 +++++++----- .github/ISSUE_TEMPLATE/feature-request.md | 6 ++++-- .github/ISSUE_TEMPLATE/support-request.md | 12 ++++++------ 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index ea5b6f5..a283798 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ github: [bramsmulders] -custom: ["https://www.paypal.me/smuldersbram/EUR"] +custom: ['https://www.paypal.me/smuldersbram/EUR'] diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index 9fc1b89..bbbf788 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -4,25 +4,27 @@ about: Create a report to help us improve title: '' labels: bug assignees: '' - --- **Describe The Bug:** + **To Reproduce:** + **Expected behavior:** + **Environment:** -* **Supple CSS Version**: -* **Node.js Version**: -* **NPM Version**: -* **Browser**: +- **Supple CSS Version**: +- **Node.js Version**: +- **NPM Version**: +- **Browser**: diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index f974b3b..8b86230 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -4,20 +4,22 @@ about: Suggest an idea for this project title: '' labels: enhancement assignees: '' - --- **Is your feature request related to a problem? Please describe:** + **Describe the solution you'd like:** + **Describe alternatives you've considered:** + **Additional context:** - + diff --git a/.github/ISSUE_TEMPLATE/support-request.md b/.github/ISSUE_TEMPLATE/support-request.md index e2af2bd..0cddf64 100644 --- a/.github/ISSUE_TEMPLATE/support-request.md +++ b/.github/ISSUE_TEMPLATE/support-request.md @@ -4,23 +4,23 @@ about: Need help? title: '' labels: question assignees: '' - --- **Describe Your Problem:** - + **Screenshots:** + **Environment:** -* **Supple CSS Version**: -* **Node.js Version**: -* **NPM Version**: -* **Browser**: +- **Supple CSS Version**: +- **Node.js Version**: +- **NPM Version**: +- **Browser**: From 25d2be8a03c95d2a535df081d9a8ca9620810c23 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:56:47 +0100 Subject: [PATCH 19/25] utilities to tabs --- utilities/columns/README.md | 69 ++++++------- utilities/columns/_index.scss | 50 +++++----- utilities/columns/_tools.scss | 36 ++----- utilities/columns/_variables.scss | 20 +--- utilities/hidden/README.md | 65 +++++++----- utilities/hidden/_index.scss | 27 ++--- utilities/hidden/_variables.scss | 12 +-- utilities/hidden/test.html | 40 ++++---- utilities/offset/README.md | 69 ++++++------- utilities/offset/_index.scss | 48 ++++----- utilities/offset/_tools.scss | 36 ++----- utilities/offset/_variables.scss | 20 +--- utilities/spacing/README.md | 114 +++++++++++++--------- utilities/spacing/_index.scss | 54 +++++----- utilities/spacing/_tools.scss | 40 +++----- utilities/spacing/_variables.scss | 50 ++++------ utilities/visually-hidden/README.md | 67 ++++++++----- utilities/visually-hidden/_index.scss | 30 ++---- utilities/visually-hidden/_variables.scss | 11 +-- utilities/visually-hidden/test.html | 42 ++++---- 20 files changed, 412 insertions(+), 488 deletions(-) diff --git a/utilities/columns/README.md b/utilities/columns/README.md index 398d31c..181ef88 100644 --- a/utilities/columns/README.md +++ b/utilities/columns/README.md @@ -6,74 +6,77 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Browser support](#browser-support) ## Features -* Easy & flexible columns in your objects & components -* Works nicely with `objects.mesh` and `objects.layout` +- Easy & flexible columns in your objects & components +- Works nicely with `objects.mesh` and `objects.layout` ## Use ```html
-
- spans 3 of 10 columns -
-
- spans 7 of 10 columns -
+
spans 3 of 10 columns
+
spans 7 of 10 columns
``` - ## Available classes -By default we generate classes for 12 columns but it can be configured with the `$columns` setting. -* `.u-columns-X`, spans over the designated number of columns -* `.u-columns-X@[QUERY-NAME]`: applies colums at the given media query. (available in `$in-query` SCSS setting) +By default we generate classes for 12 columns but it can be configured with the `$columns` setting. +- `.u-columns-X`, spans over the designated number of columns +- `.u-columns-X@[QUERY-NAME]`: applies colums at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables - ### SCSS variables -* `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` -* `$in-query`: a list of breakpoints where `.u-columns-X@[QUERY-NAME]` is generated for, defaults to: `()` +- `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` +- `$in-query`: a list of breakpoints where `.u-columns-X@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/columns' with ( - $columns: 10, - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/columns' with + ( + $columns: 10, + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/columns/variables' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/columns/variables' with + ( + $in-query: ( + lap, + desk, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/columns'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/columns/_index.scss b/utilities/columns/_index.scss index 2b3c1a4..0d2d556 100644 --- a/utilities/columns/_index.scss +++ b/utilities/columns/_index.scss @@ -1,21 +1,15 @@ -/* ========================================================================= - utilities.columns - Classes provide a column custom property for use in objects - or components which can handle columns eg. `object.mesh` and - `objects.layout`. - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + utilities.columns + Classes provide a column custom property for use in objects + or components which can handle columns eg. `object.mesh` and + `objects.layout`. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -26,26 +20,26 @@ @use '../../tools/responsive'; @use './tools'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ @include tools.build; - - -/* Responsive - ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build('#{defaults.$responsive-modifier}#{variables.$in-query}'); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/columns/_tools.scss b/utilities/columns/_tools.scss index 884be78..31f3742 100644 --- a/utilities/columns/_tools.scss +++ b/utilities/columns/_tools.scss @@ -1,32 +1,14 @@ -/* ========================================================================= - utilities.colums.tools - Functions and/or mixins used in this module - ========================================================================= */ +/* ========================================================================== + utilities.colums.tools + Functions and/or mixins used in this module +/ =========================================================================== */ -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ - -/** - * Use the settings & tools in this sheet - */ @use './variables'; - - -/* Functions - ========================================================================= */ - - - -/* Mixins - ========================================================================= */ - @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-columns-#{$i}#{$modifier} { - --columns: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-columns-#{$i}#{$modifier} { + --columns: #{$i}; + } + } } diff --git a/utilities/columns/_variables.scss b/utilities/columns/_variables.scss index 4715420..4e9e773 100644 --- a/utilities/columns/_variables.scss +++ b/utilities/columns/_variables.scss @@ -1,31 +1,19 @@ -/* ========================================================================= - utilities.columns.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.columns.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Columns, makes it easy to create several proportional columns */ $columns: defaults.$columns !default; - /** * Define which namespaced queries you would like to generate for each * of the colstarts. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will. - * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` * in `settings/defaults` diff --git a/utilities/hidden/README.md b/utilities/hidden/README.md index a18b0da..3770888 100644 --- a/utilities/hidden/README.md +++ b/utilities/hidden/README.md @@ -6,29 +6,34 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use ```html ``` ### responsive modifiers + When you set media queries in `$in-query` you can use them like this: ```html ``` @@ -36,47 +41,53 @@ When you set media queries in `$in-query` you can use them like this: **On the `.u-hidden` block** -* `.u-hidden`: core visually hidden block -* `.u-hidden@[QUERY-NAME]`: applies hidden at the given media query. (available in `$in-query` SCSS setting) +- `.u-hidden`: core visually hidden block +- `.u-hidden@[QUERY-NAME]`: applies hidden at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables ### SCSS variables -* `$in-query`: a list of media queries where `.u-hidden@[QUERY-NAME]` is generated for, defaults to: `()` +- `$in-query`: a list of media queries where `.u-hidden@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/hidden' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/hidden' with + ( + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/hidden/variables' with ( - $in-query: ( - lap - ), -); +@use 'node_modules/@supple-kit/supple-css/utilities/hidden/variables' with + ( + $in-query: ( + lap, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/hidden'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/hidden/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/hidden/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/hidden/_index.scss b/utilities/hidden/_index.scss index fded823..934400c 100644 --- a/utilities/hidden/_index.scss +++ b/utilities/hidden/_index.scss @@ -1,32 +1,25 @@ -/* ========================================================================= - utilities.hidden - Completely remove from the flow and hide it from screenreaders - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.hidden + Completely remove from the flow and hide it from screenreaders +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @use './variables'; @use '../../tools/responsive'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ .u-hidden { - @include responsive.in-query(variables.$in-query) { - display: none !important; - } + @include responsive.in-query(variables.$in-query) { + display: none !important; + } } diff --git a/utilities/hidden/_variables.scss b/utilities/hidden/_variables.scss index dd4394a..a5cedfe 100644 --- a/utilities/hidden/_variables.scss +++ b/utilities/hidden/_variables.scss @@ -1,17 +1,13 @@ -/* ========================================================================= - utilities.hidden.variables - ========================================================================= */ - -/* Variables - ========================================================================= */ +/* ========================================================================== + utilities.hidden.variables +/ =========================================================================== */ /** * Define which namespaced queries you would like to generate for `hidden`. * This is handy if you only need `hidden` on, say, desk, or you only need it * at mobile sizes. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will. - * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` * in `settings/defaults` diff --git a/utilities/hidden/test.html b/utilities/hidden/test.html index 74b2884..48d223f 100644 --- a/utilities/hidden/test.html +++ b/utilities/hidden/test.html @@ -1,23 +1,27 @@ - - - - Test utilities.hidden - Supple CSS - - - + + + + Test utilities.hidden - Supple CSS + + + +
+

Supple CSS: utilities.hidden tests

-
-

Supple CSS: utilities.hidden tests

+

.u-hidden

-

.u-hidden

- -

renders "with some hidden text" as totally hidden.

-
- -
- -
- +

+ renders "with some hidden text" as totally hidden. +

+
+ +
+ +
+ + diff --git a/utilities/offset/README.md b/utilities/offset/README.md index fab18e7..96ae001 100644 --- a/utilities/offset/README.md +++ b/utilities/offset/README.md @@ -6,74 +6,77 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Features](#features) -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Browser support](#browser-support) +- [Features](#features) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Browser support](#browser-support) ## Features -* Easy & flexible offsets in your objects & components -* Works nicely with `objects.layout` +- Easy & flexible offsets in your objects & components +- Works nicely with `objects.layout` ## Use ```html
-
- starts a column 3 -
-
- starts a column 7 -
+
starts a column 3
+
starts a column 7
``` - ## Available classes -By default we generate classes for 12 columns but it can be configured with the `$columns` setting. -* `.u-offset-X`, spans over the designated number of columns -* `.u-offset-X@[QUERY-NAME]`: applies offset at the given media query. (available in `$in-query` SCSS setting) +By default we generate classes for 12 columns but it can be configured with the `$columns` setting. +- `.u-offset-X`, spans over the designated number of columns +- `.u-offset-X@[QUERY-NAME]`: applies offset at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables - ### SCSS variables -* `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` -* `$in-query`: a list of media queries where `.u-offset-X@[QUERY-NAME]` is generated for, defaults to: `()` +- `$columns`, number of columns we generate classes for, defaults to `defaults.$columns` +- `$in-query`: a list of media queries where `.u-offset-X@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/offset' with ( - $columns: 10, - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/offset' with + ( + $columns: 10, + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/offset/variables' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/offset/variables' with + ( + $in-query: ( + lap, + desk, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/offset'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/offset/_index.scss b/utilities/offset/_index.scss index cdfe76f..94d7510 100644 --- a/utilities/offset/_index.scss +++ b/utilities/offset/_index.scss @@ -1,20 +1,14 @@ -/* ========================================================================= - utilities.offset - Classes provide a offset custom property for use in objects - or components which can handle offsets eg. `object.layout`. - ========================================================================= */ - -/* Use/Forward rules - `@use` or `@forward` everything you need here from other files. - These can include variables, mixins & other includes. - ========================================================================= */ +/* ========================================================================== + utilities.offset + Classes provide a offset custom property for use in objects + or components which can handle offsets eg. `object.layout`. +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -25,26 +19,26 @@ @use '../../tools/responsive'; @use './tools'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ @include tools.build; - - -/* Responsive - ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build('#{defaults.$responsive-modifier}#{variables.$in-query}'); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/offset/_tools.scss b/utilities/offset/_tools.scss index 58672fd..ba984cf 100644 --- a/utilities/offset/_tools.scss +++ b/utilities/offset/_tools.scss @@ -1,32 +1,14 @@ -/* ========================================================================= - utilities.offset.tools - Functions and/or mixins used in this module - ========================================================================= */ +/* ========================================================================== + utilities.offset.tools + Functions and/or mixins used in this module +/ =========================================================================== */ -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ - -/** - * Use the settings & tools in this sheet - */ @use './variables'; - - -/* Functions - ========================================================================= */ - - - -/* Mixins - ========================================================================= */ - @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-offset-#{$i}#{$modifier} { - --offset: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-offset-#{$i}#{$modifier} { + --offset: #{$i}; + } + } } diff --git a/utilities/offset/_variables.scss b/utilities/offset/_variables.scss index 6ae93db..aa289d9 100644 --- a/utilities/offset/_variables.scss +++ b/utilities/offset/_variables.scss @@ -1,31 +1,19 @@ -/* ========================================================================= - utilities.offset.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.offset.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * Columns, makes it easy to create several proportional columns */ $columns: defaults.$columns !default; - /** * Define which namespaced queries you would like to generate for each * of the offsets. It allows you to only compile as much CSS as you need. * All are empty by default, but you can add queries at will. - * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` * in `settings/defaults` diff --git a/utilities/spacing/README.md b/utilities/spacing/README.md index 2553047..21a748c 100644 --- a/utilities/spacing/README.md +++ b/utilities/spacing/README.md @@ -6,47 +6,54 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Browser support](#browser-support) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Browser support](#browser-support) ## Use + This utility generates set of classes mostly used by Supple's users. You can add classes to your liking by adding them to the configuration variables. Below you find some examples of how you can use this utility. ```html
- Applies margin on all sides with the value of `space.get('base')` + Applies margin on all sides with the value of `space.get('base')`
- Applies margin at the start of the inline axis with the value of `space.get('base')` + Applies margin at the start of the inline axis with the value of + `space.get('base')`
- Applies margin at the start of the inline axis with the value of `space.get('large')` + Applies margin at the start of the inline axis with the value of + `space.get('large')`
- Applies padding at the start and end of the block axis with the value of `space.get('base')` + Applies padding at the start and end of the block axis with the value of + `space.get('base')`
``` + The are a lot more combinations possible, please check [the variables SCSS file](./_variables.scss) for more options. ### responsive modifiers + When you set media queries in `$in-query` you can use them like this: ```html
- Applies padding at the start of the block axis with the `tiny` spacing value until `palm` breakpoint. - Applies padding at the start of the block axis with the value of `base` spacing value from `palm` breakpoint. + Applies padding at the start of the block axis with the `tiny` spacing value + until `palm` breakpoint. Applies padding at the start of the block axis with + the value of `base` spacing value from `palm` breakpoint.
``` ## Available classes -* `.u-[PROPERTY]--[SIZE]`: core spacing block +- `.u-[PROPERTY]--[SIZE]`: core spacing block ## Configurable variables @@ -57,24 +64,32 @@ When you set media queries in `$in-query` you can use them like this: The properties that you want to generate spacings for. `key` is the classname, `value` is the property name. **example:** + ```scss $properties: ( - 'padding': 'padding', // generates `u-padding` - 'margin': 'margin', // generates `u-margin` + 'padding': 'padding', + // generates `u-padding` + 'margin': 'margin', + // generates `u-margin` ); // or $properties: ( - 'p': 'padding', // generates `u-p` - 'm': 'margin', // generates `u-m` - 'i': 'inset', // generates `u-i` + 'p': 'padding', + // generates `u-p` + 'm': 'margin', + // generates `u-m` + 'i': 'inset', + // generates `u-i` ); ``` + **defaults to:** + ```scss $properties: ( - 'margin-block-end': 'margin-block-end', + 'margin-block-end': 'margin-block-end', ); ``` @@ -83,59 +98,64 @@ $properties: ( And which sizes you want to generate? The names must be present in `defaults.$space-factors` in `settings/_defaults.scss`. **Example:** + ```scss -$sizes: ( - 'tiny', - 'base' -); +$sizes: ('tiny', 'base'); ``` + **Defaults to:** + ```scss -$sizes: ( - 'base' -); +$sizes: ('base'); ``` #### `$in-query` + a list of media queries where `.u-[PROPERTY]--[SIZE]@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/spacing' with ( - $in-query: (lap, desk), - $properties: ( - 'm': 'margin', - 'p': 'padding', - ), - $sizes: ( - 'base', - ) -); +@use 'node_modules/@supple-kit/supple-css/utilities/spacing' with + ( + $in-query: ( + lap, + desk, + ), + $properties: ( + 'm': 'margin', + 'p': 'padding', + ), + $sizes: ( + 'base', + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/spacing/variables' with ( - $in-query: lap, - $sizes: ( - 'tiny', - 'large', - ) -); +@use 'node_modules/@supple-kit/supple-css/utilities/spacing/variables' with + ( + $in-query: lap, + $sizes: ( + 'tiny', + 'large', + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/spacing'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/spacing/_index.scss b/utilities/spacing/_index.scss index 6374e8c..00be0d7 100644 --- a/utilities/spacing/_index.scss +++ b/utilities/spacing/_index.scss @@ -1,24 +1,18 @@ -/* ========================================================================= - utilities.spacing - Utility classes to put specific spacing values onto elements. - The loop can generate us a suite of classes like: +/* ========================================================================== + utilities.spacing + Utility classes to put specific spacing values onto elements. + The loop can generate us a suite of classes like: - .u-padding-inline-start--large {} - .u-margin-inline-end--small {} - .u-padding-block--base {} - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ + .u-padding-inline-start--large {} + .u-margin-inline-end--small {} + .u-padding-block--base {} +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -29,26 +23,26 @@ @use '../../tools/responsive'; @use './tools'; - - -/* Module - ========================================================================= */ +/* -------------------------------------------------------------------------- + Module +/ --------------------------------------------------------------------------- */ @include tools.build; - - -/* Responsive - ========================================================================= */ +/* -------------------------------------------------------------------------- + Responsive +/ --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build('#{defaults.$responsive-modifier}#{variables.$in-query}'); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/spacing/_tools.scss b/utilities/spacing/_tools.scss index b2306fc..e519197 100644 --- a/utilities/spacing/_tools.scss +++ b/utilities/spacing/_tools.scss @@ -1,35 +1,17 @@ -/* ========================================================================= - utilities.spacing.tools - Functions and/or mixins used in this module - ========================================================================= */ +/* ========================================================================== + utilities.spacing.tools + Functions and/or mixins used in this module +/ =========================================================================== */ -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ - -/** - * Use the settings & tools in this sheet - */ @use './variables'; @use '../../tools/space'; - - -/* Functions - ========================================================================= */ - - - -/* Mixins - ========================================================================= */ - @mixin build($modifier: '') { - @each $property-namespace, $property in variables.$properties { - @each $size in variables.$sizes { - .u-#{$property-namespace}--#{$size}#{$modifier} { - #{$property}: space.get($size); - } - } - } + @each $property-namespace, $property in variables.$properties { + @each $size in variables.$sizes { + .u-#{$property-namespace}--#{$size}#{$modifier} { + #{$property}: space.get($size); + } + } + } } diff --git a/utilities/spacing/_variables.scss b/utilities/spacing/_variables.scss index f4fa4e3..666155e 100644 --- a/utilities/spacing/_variables.scss +++ b/utilities/spacing/_variables.scss @@ -1,63 +1,49 @@ -/* ========================================================================= - utilities.spacing.variables - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.spacing.variables +/ =========================================================================== */ @use '../../settings/defaults'; - - -/* Variables - ========================================================================= */ - /** * The properties that you want to generate spacings for * `key` is the classname, `value` is the property name * * Example - $properties: ( - 'padding': 'padding', // generates `u-padding` - 'margin': 'margin', // generates `u-margin` - ); +$properties: ( + 'padding': 'padding', // generates `u-padding` + 'margin': 'margin', // generates `u-margin` +); * * or - $properties: ( - 'p': 'padding', // generates `u-p` - 'm': 'margin', // generates `u-m` - 'i': 'inset', // generates `u-i` - ); +$properties: ( + 'p': 'padding', // generates `u-p` + 'm': 'margin', // generates `u-m` + 'i': 'inset', // generates `u-i` +); * By default it's only margins we generate */ $properties: ( - 'margin-block-end': 'margin-block-end', + 'margin-block-end': 'margin-block-end', ) !default; - /** * And which sizes you want to generate? * * Example - $sizes: ( - 'tiny', - ); +$sizes: ( + 'tiny', +); * * By default it's only `base` we generate */ -$sizes: ( - 'base', -) !default; - +$sizes: ('base') !default; /** * Define which namespaced queries you would like to generate for * your spacings. * All are empty by default, but you can add queries at will. * - $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the media query must exist in the list of `$queries` * in `settings/defaults` diff --git a/utilities/visually-hidden/README.md b/utilities/visually-hidden/README.md index 12817f8..d2d34e2 100644 --- a/utilities/visually-hidden/README.md +++ b/utilities/visually-hidden/README.md @@ -6,29 +6,35 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Use](#use) -* [Available classes](#available-classes) -* [Configurable variables](#configurable-variables) -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Use](#use) +- [Available classes](#available-classes) +- [Configurable variables](#configurable-variables) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use ```html ``` ### responsive modifiers + When you set media queries in `$in-query` you can use them like this: ```html ``` @@ -36,47 +42,54 @@ When you set media queries in `$in-query` you can use them like this: **On the `.u-visually-hidden` block** -* `.u-visually-hidden`: core visually hidden block -* `.u-visually-hidden@[QUERY-NAME]`: applies visually-hidden at the given media query. (available in `$in-query` SCSS setting) +- `.u-visually-hidden`: core visually hidden block +- `.u-visually-hidden@[QUERY-NAME]`: applies visually-hidden at the given media query. (available in `$in-query` SCSS setting) ## Configurable variables ### SCSS variables -* `$in-query`: a list of breakpoints where `.u-visually-hidden@[QUERY-NAME]` is generated for, defaults to: `()` +- `$in-query`: a list of breakpoints where `.u-visually-hidden@[QUERY-NAME]` is generated for, defaults to: `()` You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden' with ( - $in-query: (lap, desk), -); +@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden' with + ( + $in-query: ( + lap, + desk, + ) + ); ``` + or + ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden/variables' with ( - $in-query: ( - lap - ), -); +@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden/variables' + with + ( + $in-query: ( + lap, + ) + ); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/visually-hidden/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/utilities/visually-hidden/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/utilities/visually-hidden/_index.scss b/utilities/visually-hidden/_index.scss index 7b619cf..f19b96f 100644 --- a/utilities/visually-hidden/_index.scss +++ b/utilities/visually-hidden/_index.scss @@ -1,21 +1,15 @@ -/* ========================================================================= - utilities.visually-hidden - Hides an element visually while still allowing the content to be accessible - to assistive technology, e.g. screen readers. - As per: https://a11yproject.com/posts/how-to-hide-content - ========================================================================= */ - -/* Use rules - `@use` everything you need here from other files. Variables, mixins & - other includes. - ========================================================================= */ +/* ========================================================================== + utilities.visually-hidden + Hides an element visually while still allowing the content to be accessible + to assistive technology, e.g. screen readers. + As per: https://a11yproject.com/posts/how-to-hide-content +/ =========================================================================== */ /** * Forward the variables to the parent stylesheet */ @forward './variables'; - /** * Use the settings & tools in this sheet */ @@ -23,14 +17,8 @@ @use '../../tools/a11y'; @use '../../tools/responsive'; - - - -/* Module - ========================================================================= */ - .u-visually-hidden { - @include responsive.in-query(variables.$in-query) { - @include a11y.visually-hidden; - } + @include responsive.in-query(variables.$in-query) { + @include a11y.visually-hidden; + } } diff --git a/utilities/visually-hidden/_variables.scss b/utilities/visually-hidden/_variables.scss index cee6fa1..e2219c0 100644 --- a/utilities/visually-hidden/_variables.scss +++ b/utilities/visually-hidden/_variables.scss @@ -1,9 +1,6 @@ -/* ========================================================================= - utilities.visually-hidden.variables - ========================================================================= */ - -/* Variables - ========================================================================= */ +/* ========================================================================== + utilities.visually-hidden.variables +/ =========================================================================== */ /** * Define which namespaced queries you would like to generate for @@ -12,7 +9,7 @@ * as much CSS as you need. * All are empty by default, but you can add queries at will. * - * $in-query: (lap, desk); +$in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` * in `settings/defaults` diff --git a/utilities/visually-hidden/test.html b/utilities/visually-hidden/test.html index a3c5d66..e62885e 100644 --- a/utilities/visually-hidden/test.html +++ b/utilities/visually-hidden/test.html @@ -1,23 +1,29 @@ - - - - Test utilities.visually-hidden - Supple CSS - - - + + + + Test utilities.visually-hidden - Supple CSS + + + +
+

Supple CSS: utilities.visually-hidden tests

-
-

Supple CSS: utilities.visually-hidden tests

+

.u-visually-hidden

-

.u-visually-hidden

- -

renders "with some hidden text" as hidden visually but available for assistive technology.

-
- -
- -
- +

+ renders "with some hidden text" as hidden visually but available for + assistive technology. +

+
+ +
+ +
+ + From f6838e3a33d2481f77b45e6e36c17404b060e926 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 11:56:58 +0100 Subject: [PATCH 20/25] The rest to tabs --- CONTRIBUTING.md | 19 +++--- LICENSE | 2 +- README.md | 146 ++++++++++++++++++++++++--------------------- index.scss | 55 ++++++++--------- package.json | 116 +++++++++++++++++------------------ prettier.config.js | 4 +- supple-logo.svg | 2 +- test.html | 36 +++++------ 8 files changed, 192 insertions(+), 188 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6f0f22c..f0d64c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,20 +8,19 @@ the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. - ## Using the issue tracker The issue tracker is the preferred channel for [bug reports](#bugs), [features requests](#features) and [submitting pull requests](#pull-requests), but please respect the following restrictions: -* Please **do not** use the issue tracker for personal support requests. +- Please **do not** use the issue tracker for personal support requests. -* Please **do not** derail or troll issues. Keep the discussion on topic and +- Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. - + ## Bug reports A bug is a _demonstrable problem_ that is caused by the code in the repository. @@ -63,17 +62,17 @@ Example: > causing the bug, and potential solutions (and your opinions on their > merits). - + ## Feature requests Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to *you* to make a strong +fits with the scope and aims of the project. It's up to _you_ to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. - + ## Pull requests Good pull requests - patches, improvements, new features - are a fantastic @@ -134,14 +133,14 @@ project: git push origin ``` -10. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) - with a clear title and description. +7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) + with a clear title and description. **IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. - + ## Maintainers If you have commit access, please follow this process for merging patches and diff --git a/LICENSE b/LICENSE index d08166a..94a451f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Bram Smulders +Copyright (c) 2017 - today Bram Smulders Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index b0418d0..1610adf 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ Supple CSS is a reliable and testable [Sass](https://sass-lang.com/) framework i ## Table of contents -* [Why use Supple](#why-use-supple) -* [Features](#features) -* [Browser support](#browser-support) -* [Installation](#installation) -* [Getting started](#getting-started) +- [Why use Supple](#why-use-supple) +- [Features](#features) +- [Browser support](#browser-support) +- [Installation](#installation) +- [Getting started](#getting-started) ## Why use Supple @@ -20,35 +20,36 @@ Supple CSS is a reliable and testable [Sass](https://sass-lang.com/) framework i Supple provides little to no design. This means that the style and design of your site are left entirely up to you. Because Supple gives you lots of customizable foundations you only need to add the final layer: **UI**. - ## Features + A grasp of Supple's features: -* Sensible, powerful [CSS reset](https://hankchizljaw.com/wrote/a-modern-css-reset/) for web applications. -* Suite of functions and mixins for speedy development. -* CSS Grid & Flexbox objects for creating layouts. -* Objects for reusable solutions to common features. -* Variety of utility classes for the most common needs like visually hiding, spacing, and more. +- Sensible, powerful [CSS reset](https://hankchizljaw.com/wrote/a-modern-css-reset/) for web applications. +- Suite of functions and mixins for speedy development. +- CSS Grid & Flexbox objects for creating layouts. +- Objects for reusable solutions to common features. +- Variety of utility classes for the most common needs like visually hiding, spacing, and more. ### Size The framework including all modules weighs less than **1.6kB** (GZIP-ed). With this small payload, you have the power to build an entire website without even writing a single line of CSS. You can reduce the payload even further by only including the modules you need, and configure those modules to your needs. ## Browser support + Supple supports all major browsers which can render the following features: -* [CSS Variables (Custom Properties)](https://caniuse.com/css-variables) -* [CSS Logical Properties](https://caniuse.com/css-logical-props) -* [CSS Grid Layout](https://caniuse.com/css-grid) -* [CSS Flexible Box Layout (Flexbox)](https://caniuse.com/flexbox) +- [CSS Variables (Custom Properties)](https://caniuse.com/css-variables) +- [CSS Logical Properties](https://caniuse.com/css-logical-props) +- [CSS Grid Layout](https://caniuse.com/css-grid) +- [CSS Flexible Box Layout (Flexbox)](https://caniuse.com/flexbox) Basically that comes down to: -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) -**Note**: Internet Explorer is *not* supported. Supple relies mostly on CSS Custom Properties, which are not supported and cannot be polyfilled. +**Note**: Internet Explorer is _not_ supported. Supple relies mostly on CSS Custom Properties, which are not supported and cannot be polyfilled. ## Installation @@ -58,7 +59,7 @@ Supple is built with the latest version of [Sass](https://sass-lang.com/) so you ### Install -* npm: `npm install @supple-kit/supple-css` +- npm: `npm install @supple-kit/supple-css` ## Getting started @@ -78,18 +79,18 @@ Below are some examples of how to use and structure the framework: ```scss // settings/_your-own-vars.scss -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( - $font-size: 20px, - $columns: 10, - $breakpoints: ( - lap: 320px, - desk: 960px, - ), -); - -@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with ( - $columns: 24, -); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with + ( + $font-size: 20px, + $columns: 10, + $breakpoints: ( + lap: 320px, + desk: 960px, + ) + ); + +@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with + ($columns: 24); ``` ```scss @@ -99,9 +100,9 @@ Below are some examples of how to use and structure the framework: @use 'settings/your-own-vars'; .your-own-component { - margin-inline-start: space.get('base'); - transition-timing-function: your-own-vars.$animation-timing-function; - font-size: defaults.$font-size; + margin-inline-start: space.get('base'); + transition-timing-function: your-own-vars.$animation-timing-function; + font-size: defaults.$font-size; } ``` @@ -109,14 +110,15 @@ Below are some examples of how to use and structure the framework: ```scss // settings/_your-own-vars.scss -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( - $font-size: 20px, - $columns: 10, - $breakpoints: ( - lap: 320px, - desk: 960px, - ), -); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with + ( + $font-size: 20px, + $columns: 10, + $breakpoints: ( + lap: 320px, + desk: 960px, + ) + ); ``` ```javascript @@ -132,8 +134,8 @@ import './index.scss'; @use 'node_modules/@supple-kit/supple-css/tools/space'; .your-own-component { - margin-inline-start: space.get('base'); - transition-timing-function: your-own-vars.$animation-timing-function; + margin-inline-start: space.get('base'); + transition-timing-function: your-own-vars.$animation-timing-function; } ``` @@ -142,25 +144,29 @@ import './index.scss'; All Supple's modules are created based on the [ITCSS](https://www.creativebloq.com/web-design/manage-large-css-projects-itcss-101517528) methodology. It is advised you to read ITCSS documentation to fully grasp the ideas about the methodology. ### Settings + This layer is the first layer and holds any global settings for your project. It should only house settings that need to be accessed from anywhere. -* [settings/defaults](settings/defaults), Supple's core settings. +- [settings/defaults](settings/defaults), Supple's core settings. **Note**: Any variable that does not need to be accessed globally should belong in the module to which it relates. ### Tools + The tools layer houses your globally available tooling, mixins, and functions. -* [tools](tools). +- [tools](tools). **Note**: Any mixin or function that does not need to be accessed globally should belong in the module template to which it relates. ### Generic + It contains ground-zero styles like global box-sizing rules, CSS resets, and so on. -* [generic/reset](generic/reset), a reset of sensible defaults suitable for web applications. +- [generic/reset](generic/reset), a reset of sensible defaults suitable for web applications. ### Elements + These are bare, unclassed HTML elements. The Elements layer binds onto HTML element (or 'type') selectors only. Elements are most likely the last layer in which we'd find element-based selectors, and is very rarely added to or changed after initial setup. Once we have defined element-level styles, all additions and deviations should be implemented using classes. @@ -168,18 +174,20 @@ Elements are most likely the last layer in which we'd find element-based selecto **Note**: Because Supple is a design-free framework this layer is empty. ### Objects + This layer is concerned with styling non-cosmetic design patterns, or 'objects'. -* [objects/list-clean](objects/list-clean), strip appearance from lists by removing their bullets and indents -* [objects/retain](objects/retain), page-level constraining and wrapping elements -* [objects/layout](objects/layout), arrange items horizontally on the inline-axis with flexbox. -* [objects/mesh](objects/mesh), fluid & extensible grid system based on CSS grid. -* [objects/aspect-ratio](objects/aspect-ratio), retain a specific aspect ratio but adapt to elements of variable widths -* [objects/flow](objects/flow), create flow and rhythm between elements. +- [objects/list-clean](objects/list-clean), strip appearance from lists by removing their bullets and indents +- [objects/retain](objects/retain), page-level constraining and wrapping elements +- [objects/layout](objects/layout), arrange items horizontally on the inline-axis with flexbox. +- [objects/mesh](objects/mesh), fluid & extensible grid system based on CSS grid. +- [objects/aspect-ratio](objects/aspect-ratio), retain a specific aspect ratio but adapt to elements of variable widths +- [objects/flow](objects/flow), create flow and rhythm between elements. All Objects are prefixed with `o-`. ### Components + This layer contains our recognizable components, chunks of UI. All Components are prefixed with `c-`. @@ -187,20 +195,22 @@ All Components are prefixed with `c-`. **Note**: Because Supple is a design-free framework this layer is empty. You can add your own components to your project. ### Utilities + This layer contains some handy helpers & overrides. This is the most specific layer of the application which overrides everything defined before. -* [utilities/columns](utilities/columns), provides a columns custom property for use in objects or components. -* [utilities/colspan](utilities/colspan), provides a colspan custom property for use in objects or components. -* [utilities/colstart](utilities/colstart), provides a column start custom property for use in objects or components. -* [utilities/offset](utilities/offset), provides a offset custom property for use in objects or components. -* [utilities/clearfix](utilities/clearfix), clears floats. -* [utilities/spacing](utilities/spacing), utility classes to put specific spacing values onto elements. -* [utilities/visually-hidden](utilities/visually-hidden), hides an element visually while still allowing the content to be accessible. -* [utilities/hidden](utilities/hidden), completely remove from the flow and hide it from screenreaders. +- [utilities/columns](utilities/columns), provides a columns custom property for use in objects or components. +- [utilities/colspan](utilities/colspan), provides a colspan custom property for use in objects or components. +- [utilities/colstart](utilities/colstart), provides a column start custom property for use in objects or components. +- [utilities/offset](utilities/offset), provides a offset custom property for use in objects or components. +- [utilities/clearfix](utilities/clearfix), clears floats. +- [utilities/spacing](utilities/spacing), utility classes to put specific spacing values onto elements. +- [utilities/visually-hidden](utilities/visually-hidden), hides an element visually while still allowing the content to be accessible. +- [utilities/hidden](utilities/hidden), completely remove from the flow and hide it from screenreaders. All Utilities are prefixed with `u-`. ## Browserstack + Every feature in Supple is extensively tested in Browserstack: [browserstack logo](https://www.browserstack.com/) @@ -209,11 +219,11 @@ Every feature in Supple is extensively tested in Browserstack: Supple is derived from the ideas of many other developers: -* [Harry Roberts](https://twitter.com/csswizardry) for his awesome ideas with ITCSS and numerous other CSS stuff. -* [Nicole Sullivan](https://twitter.com/stubbornella) for her work on OOCSS. -* [Jonathan Snook](https://twitter.com/snookca) for his work on SMACSS. -* [Nicolas Gallagher](https://twitter.com/necolas) for his work on numerous CSS things. -* [Machiel Hulsbosch](http://www.hulsbos.ch/) for the supple logo. -* [Joris Hulsbosch](https://me.portfolioris.nl/) for general advice and in-field testing. +- [Harry Roberts](https://twitter.com/csswizardry) for his awesome ideas with ITCSS and numerous other CSS stuff. +- [Nicole Sullivan](https://twitter.com/stubbornella) for her work on OOCSS. +- [Jonathan Snook](https://twitter.com/snookca) for his work on SMACSS. +- [Nicolas Gallagher](https://twitter.com/necolas) for his work on numerous CSS things. +- [Machiel Hulsbosch](http://www.hulsbos.ch/) for the supple logo. +- [Joris Hulsbosch](https://me.portfolioris.nl/) for general advice and in-field testing. And probably more… diff --git a/index.scss b/index.scss index 405affb..4075190 100644 --- a/index.scss +++ b/index.scss @@ -1,38 +1,35 @@ -/* ========================================================================= - Supple - In-browser CSS framework; Fluid, Variable, supple if you will - ========================================================================= */ +/* ========================================================================== + Supple + In-browser CSS framework; Fluid, Variable, supple if you will +/ =========================================================================== */ -/* Settings - ========================================================================= */ +/* -------------------------------------------------------------------------- + Settings +/ --------------------------------------------------------------------------- */ @use 'settings/defaults'; - - -/* Tools - ========================================================================= */ +/* -------------------------------------------------------------------------- + Tools +/ --------------------------------------------------------------------------- */ // Import your tools in the modules you need them - - -/* Generic - ========================================================================= */ +/* -------------------------------------------------------------------------- + Generic +/ --------------------------------------------------------------------------- */ @use 'generic/reset'; - - -/* Elements - ========================================================================= */ +/* -------------------------------------------------------------------------- + Elements +/ --------------------------------------------------------------------------- */ /* Add your own, yo */ - - -/* Objects - ========================================================================= */ +/* -------------------------------------------------------------------------- + Objects +/ --------------------------------------------------------------------------- */ @use 'objects/list-clean'; @use 'objects/layout'; @@ -41,17 +38,15 @@ @use 'objects/aspect-ratio'; @use 'objects/flow'; - - -/* Components - ========================================================================= */ +/* -------------------------------------------------------------------------- + Components +/ --------------------------------------------------------------------------- */ /* Add your own, yo */ - - -/* Utilities - ========================================================================= */ +/* -------------------------------------------------------------------------- + Utilities +/ --------------------------------------------------------------------------- */ @use 'utilities/columns'; @use 'utilities/colspan'; diff --git a/package.json b/package.json index 7185963..e257dab 100644 --- a/package.json +++ b/package.json @@ -1,60 +1,60 @@ { - "name": "@supple-kit/supple-css", - "version": "5.3.0", - "description": "Reliable and testable Sass framework. Fluid, Variable, supple if you will", - "main": "index.scss", - "repository": "https://github.com/supple-kit/supple-css.git", - "author": "Bram Smulders ", - "funding": [ - { - "type": "github", - "url": "https://www.github.com/sponsors/bramsmulders" - }, - { - "type": "paypal", - "url": "https://www.paypal.me/smuldersbram/EUR" - } - ], - "license": "MIT", - "keywords": [ - "supple", - "supple kit", - "css", - "scss", - "itcss", - "grid", - "framework", - "bem" - ], - "scripts": { - "test": "npm run lint && npm run build && npm run gzip", - "lint": "stylelint \"**/*.scss\"", - "gzip": "gzip-size test/css/index.css", - "postcss": "postcss test/css/**/*.css --replace", - "sass": "sass index.scss:test/css/index.css test/scss/test.scss:test/css/test.css --no-source-map", - "build": "npm run sass && npm run postcss", - "serve": "browser-sync start --server --files 'test/css/*.css, ./**/*.html' --index 'test.html'", - "watch": "nodemon -e scss -x \"npm run test\"", - "start": "concurrently 'npm run serve' 'npm run watch'" - }, - "browserslist": [ - "defaults" - ], - "devDependencies": { - "@supple-kit/prettier-config": "^1.0.1", - "@supple-kit/stylelint-config-supple": "^4.0.1", - "autoprefixer": "^10.4.0", - "browser-sync": "^2.27.7", - "concurrently": "^6.4.0", - "cssnano": "^5.0.12", - "glob": "^7.2.0", - "gzip-size-cli": "^5.1.0", - "nodemon": "^2.0.15", - "postcss": "^8.4.4", - "postcss-cli": "^9.0.2", - "sass": "^1.44.0", - "stylelint": "^14.1.0", - "stylelint-config-prettier": "^9.0.3", - "stylelint-config-standard-scss": "^3.0.0" - } + "name": "@supple-kit/supple-css", + "version": "5.3.0", + "description": "Reliable and testable Sass framework. Fluid, Variable, supple if you will", + "main": "index.scss", + "repository": "https://github.com/supple-kit/supple-css.git", + "author": "Bram Smulders ", + "funding": [ + { + "type": "github", + "url": "https://www.github.com/sponsors/bramsmulders" + }, + { + "type": "paypal", + "url": "https://www.paypal.me/smuldersbram/EUR" + } + ], + "license": "MIT", + "keywords": [ + "supple", + "supple kit", + "css", + "scss", + "itcss", + "grid", + "framework", + "bem" + ], + "scripts": { + "test": "npm run lint && npm run build && npm run gzip", + "lint": "stylelint \"**/*.scss\"", + "gzip": "gzip-size test/css/index.css", + "postcss": "postcss test/css/**/*.css --replace", + "sass": "sass index.scss:test/css/index.css test/scss/test.scss:test/css/test.css --no-source-map", + "build": "npm run sass && npm run postcss", + "serve": "browser-sync start --server --files 'test/css/*.css, ./**/*.html' --index 'test.html'", + "watch": "nodemon -e scss -x \"npm run test\"", + "start": "concurrently 'npm run serve' 'npm run watch'" + }, + "browserslist": [ + "defaults" + ], + "devDependencies": { + "@supple-kit/prettier-config": "^1.0.1", + "@supple-kit/stylelint-config-supple": "^4.0.1", + "autoprefixer": "^10.4.0", + "browser-sync": "^2.27.7", + "concurrently": "^6.4.0", + "cssnano": "^5.0.12", + "glob": "^7.2.0", + "gzip-size-cli": "^5.1.0", + "nodemon": "^2.0.15", + "postcss": "^8.4.4", + "postcss-cli": "^9.0.2", + "sass": "^1.44.0", + "stylelint": "^14.1.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard-scss": "^3.0.0" + } } diff --git a/prettier.config.js b/prettier.config.js index d48d5b8..94e0090 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,4 @@ module.exports = { - ...require('@supple-kit/prettier-config'), - useTabs: true, + ...require('@supple-kit/prettier-config'), + useTabs: true, }; diff --git a/supple-logo.svg b/supple-logo.svg index 47fa203..d5716df 100644 --- a/supple-logo.svg +++ b/supple-logo.svg @@ -1 +1 @@ -supple-logo +supple-logo diff --git a/test.html b/test.html index 2817c6e..e80ca98 100644 --- a/test.html +++ b/test.html @@ -1,24 +1,24 @@ - + Supple CSS test suite - - + + From 5550958953165d13d257d4e6a71c754fb7e27600 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 14:18:32 +0100 Subject: [PATCH 21/25] Move back to spaces because of issues in markdown files --- .editorconfig | 2 +- .stylelintrc | 13 +- README.md | 51 +- generic/reset/README.md | 18 +- generic/reset/_index.scss | 72 +- generic/reset/test.html | 223 +++--- index.scss | 18 +- objects/aspect-ratio/README.md | 34 +- objects/aspect-ratio/_index.scss | 54 +- objects/aspect-ratio/_variables.scss | 20 +- objects/aspect-ratio/test.html | 222 +++--- objects/flow/README.md | 45 +- objects/flow/_index.scss | 32 +- objects/flow/_variables.scss | 2 +- objects/flow/test.html | 138 ++-- objects/layout/README.md | 110 ++- objects/layout/_index.scss | 142 ++-- objects/layout/_variables.scss | 4 +- objects/layout/test.html | 894 +++++++++++----------- objects/list-clean/README.md | 2 +- objects/list-clean/_index.scss | 10 +- objects/mesh/README.md | 92 ++- objects/mesh/_index.scss | 62 +- objects/mesh/_variables.scss | 4 +- objects/mesh/test.html | 718 ++++++++--------- objects/retain/README.md | 34 +- objects/retain/_index.scss | 30 +- objects/retain/_variables.scss | 8 +- objects/retain/test.html | 106 +-- package-lock.json | 19 + package.json | 119 +-- postcss.config.js | 12 +- prettier.config.js | 3 +- settings/defaults/README.md | 127 ++- settings/defaults/_index.scss | 148 ++-- test.html | 30 +- test/scss/components/_css-lock.scss | 10 +- test/scss/components/_fixture-box.scss | 22 +- test/scss/components/_preformatted.scss | 8 +- test/scss/components/_test.scss | 76 +- test/scss/elements/_toplevel.scss | 10 +- test/scss/settings/_theme.scss | 16 +- test/scss/test.scss | 189 +++-- tools/README.md | 124 +-- tools/_a11y.scss | 32 +- tools/_internal/_functions.scss | 190 ++--- tools/_rem.scss | 38 +- tools/_responsive.scss | 194 ++--- tools/_space.scss | 14 +- tools/_typography.scss | 76 +- utilities/clearfix/README.md | 14 +- utilities/clearfix/_index.scss | 6 +- utilities/clearfix/test.html | 66 +- utilities/colspan/README.md | 36 +- utilities/colspan/_index.scss | 30 +- utilities/colspan/_tools.scss | 14 +- utilities/colspan/_variables.scss | 4 +- utilities/colstart/README.md | 32 +- utilities/colstart/_index.scss | 30 +- utilities/colstart/_tools.scss | 14 +- utilities/colstart/_variables.scss | 4 +- utilities/columns/README.md | 32 +- utilities/columns/_index.scss | 32 +- utilities/columns/_tools.scss | 14 +- utilities/columns/_variables.scss | 4 +- utilities/hidden/README.md | 40 +- utilities/hidden/_index.scss | 12 +- utilities/hidden/_variables.scss | 4 +- utilities/hidden/test.html | 44 +- utilities/offset/README.md | 32 +- utilities/offset/_index.scss | 30 +- utilities/offset/_tools.scss | 14 +- utilities/offset/_variables.scss | 4 +- utilities/spacing/README.md | 84 +- utilities/spacing/_index.scss | 36 +- utilities/spacing/_tools.scss | 18 +- utilities/spacing/_variables.scss | 6 +- utilities/visually-hidden/README.md | 42 +- utilities/visually-hidden/_index.scss | 14 +- utilities/visually-hidden/_variables.scss | 4 +- utilities/visually-hidden/test.html | 48 +- 81 files changed, 2697 insertions(+), 2684 deletions(-) diff --git a/.editorconfig b/.editorconfig index 3222fa9..a867f4b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,4 +9,4 @@ charset = utf-8 end_of_line = lf insert_final_newline = true indent_size = 2 -indent_style = tab +indent_style = space diff --git a/.stylelintrc b/.stylelintrc index 758d470..b13d6e4 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,10 +1,7 @@ { - "extends": [ - "@supple-kit/stylelint-config-supple", - "stylelint-config-prettier" - ], - "ignoreFiles": ["_test/css/*", "vendor/**/*"], - "rules": { - "indentation": "tab" - } + "extends": [ + "@supple-kit/stylelint-config-supple", + "stylelint-config-prettier" + ], + "ignoreFiles": ["_test/css/*", "vendor/**/*"] } diff --git a/README.md b/README.md index 1610adf..03489c7 100644 --- a/README.md +++ b/README.md @@ -79,18 +79,18 @@ Below are some examples of how to use and structure the framework: ```scss // settings/_your-own-vars.scss -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with - ( - $font-size: 20px, - $columns: 10, - $breakpoints: ( - lap: 320px, - desk: 960px, - ) - ); - -@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with - ($columns: 24); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( + $font-size: 20px, + $columns: 10, + $breakpoints: ( + lap: 320px, + desk: 960px, + ) +); + +@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with ( + $columns: 24 +); ``` ```scss @@ -100,9 +100,9 @@ Below are some examples of how to use and structure the framework: @use 'settings/your-own-vars'; .your-own-component { - margin-inline-start: space.get('base'); - transition-timing-function: your-own-vars.$animation-timing-function; - font-size: defaults.$font-size; + margin-inline-start: space.get('base'); + transition-timing-function: your-own-vars.$animation-timing-function; + font-size: defaults.$font-size; } ``` @@ -110,15 +110,14 @@ Below are some examples of how to use and structure the framework: ```scss // settings/_your-own-vars.scss -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with - ( - $font-size: 20px, - $columns: 10, - $breakpoints: ( - lap: 320px, - desk: 960px, - ) - ); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( + $font-size: 20px, + $columns: 10, + $breakpoints: ( + lap: 320px, + desk: 960px, + ) +); ``` ```javascript @@ -134,8 +133,8 @@ import './index.scss'; @use 'node_modules/@supple-kit/supple-css/tools/space'; .your-own-component { - margin-inline-start: space.get('base'); - transition-timing-function: your-own-vars.$animation-timing-function; + margin-inline-start: space.get('base'); + transition-timing-function: your-own-vars.$animation-timing-function; } ``` diff --git a/generic/reset/README.md b/generic/reset/README.md index 45b587d..d734698 100644 --- a/generic/reset/README.md +++ b/generic/reset/README.md @@ -6,28 +6,28 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ## Table of contents -* [Installation](#installation) -* [Testing](#testing) -* [Browser support](#browser-support) +- [Installation](#installation) +- [Testing](#testing) +- [Browser support](#browser-support) ## Use + Import this reset before any other stylesheets that generate CSS like this: ```scss @use 'node_modules/@supple-kit/supple-css/generic/reset'; ``` - ## Installation -Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) +Make sure you've installed/downloaded the Supple CSS library: [Supple CSS installation](../../#installation) ## Testing -Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/generic/reset/test.html). +Basic visual tests are in [test.html](https://supple-kit.github.io/supple-css/generic/reset/test.html). ## Browser support -* Chromium-based browsers (Chrome, Edge, Brave, Opera) -* WebKit-based browsers (Safari, iOS Safari) -* Firefox (Gecko) +- Chromium-based browsers (Chrome, Edge, Brave, Opera) +- WebKit-based browsers (Safari, iOS Safari) +- Firefox (Gecko) diff --git a/generic/reset/_index.scss b/generic/reset/_index.scss index c2a13c3..09e0088 100644 --- a/generic/reset/_index.scss +++ b/generic/reset/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - generic.reset - A reset of sensible defaults, roughly based on Andy Bell's excellent - Modern CSS Reset(https://hankchizljaw.com/wrote/a-modern-css-reset/). + generic.reset + A reset of sensible defaults, roughly based on Andy Bell's excellent + Modern CSS Reset(https://hankchizljaw.com/wrote/a-modern-css-reset/). / =========================================================================== */ @use 'sass:math'; @@ -13,12 +13,12 @@ * paulirish.com/2012/box-sizing-border-box-ftw */ * { - box-sizing: border-box; + box-sizing: border-box; - &::before, - &::after { - box-sizing: inherit; - } + &::before, + &::after { + box-sizing: inherit; + } } /** @@ -28,11 +28,11 @@ * 4. Apply the `$font-size` & `$line-height-ratio` */ html { - min-block-size: 100vh; /* [1] */ - overflow-y: scroll; /* [2] */ - scroll-behavior: smooth; /* [3] */ - font-size: #{math.div(defaults.$font-size, 16px) * 1em}; /* [4] */ - line-height: #{defaults.$line-height-ratio}; /* [4] */ + min-block-size: 100vh; /* [1] */ + overflow-y: scroll; /* [2] */ + scroll-behavior: smooth; /* [3] */ + font-size: #{math.div(defaults.$font-size, 16px) * 1em}; /* [4] */ + line-height: #{defaults.$line-height-ratio}; /* [4] */ } /** @@ -61,7 +61,7 @@ hr, dl, dd, input { - margin: 0; + margin: 0; } /** @@ -69,29 +69,29 @@ input { */ ul, ol { - padding-inline-start: space.get(); + padding-inline-start: space.get(); } dd { - margin-inline-start: space.get(); + margin-inline-start: space.get(); } /** * Strip unwanted paddings & styling from elements */ button { - background: transparent; + background: transparent; } button, fieldset { - padding: 0; + padding: 0; } button, iframe, fieldset { - border: 0; + border: 0; } /** @@ -102,7 +102,7 @@ button, input, select, textarea { - font: inherit; + font: inherit; } /** @@ -110,8 +110,8 @@ textarea { * 2. Correct the odd `em` font sizing in all browsers. */ pre { - font-family: monospace, monospace; /* 1 */ /* stylelint-disable-line font-family-no-duplicate-names */ - font-size: 1em; /* 2 */ + font-family: monospace, monospace; /* 1 */ /* stylelint-disable-line font-family-no-duplicate-names */ + font-size: 1em; /* 2 */ } /** @@ -120,7 +120,7 @@ pre { * might still respond to pointer events. */ [tabindex='-1']:focus { - outline: none !important; + outline: none !important; } /** @@ -129,8 +129,8 @@ pre { * As per: https://twitter.com/LeaVerou/status/1045768279753666562 */ :focus:not(:focus-visible) { - // stylelint-disable-line selector-pseudo-class-no-unknown - outline: none; + // stylelint-disable-line selector-pseudo-class-no-unknown + outline: none; } /** @@ -140,10 +140,10 @@ pre { * 2. Render `alt` visually offset when images don't load */ img { - display: block; - max-inline-size: 100%; /* [1] */ - block-size: auto; /* [1] */ - font-style: italic; /* [2] */ + display: block; + max-inline-size: 100%; /* [1] */ + block-size: auto; /* [1] */ + font-style: italic; /* [2] */ } /** @@ -152,14 +152,14 @@ img { * several benefits: * - Preserves the end state of an animation/transition * - Preserves the possibility to listen to `animationend` and - * `transitionend` events. + * `transitionend` events. * 2. Only one animation cycle */ @media (prefers-reduced-motion: reduce) { - * { - animation-duration: 0.01ms !important; /* [1] */ - animation-iteration-count: 1 !important; /* [2] */ - transition-duration: 0.01ms !important; /* [1] */ - scroll-behavior: auto !important; - } + * { + animation-duration: 0.01ms !important; /* [1] */ + animation-iteration-count: 1 !important; /* [2] */ + transition-duration: 0.01ms !important; /* [1] */ + scroll-behavior: auto !important; + } } diff --git a/generic/reset/test.html b/generic/reset/test.html index 6089930..998e124 100644 --- a/generic/reset/test.html +++ b/generic/reset/test.html @@ -1,111 +1,136 @@ - - - - Test generic.reset - Supple CSS - - - + + + + Test generic.reset - Supple CSS + + + +
+

Supple CSS: generic.reset tests

-
-

Supple CSS: generic.reset tests

- -

h1-h6

-

have no margin

-
-

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
-
- -

hgroup, ul, ol, dl, blockquote, p, address, table, fieldset, figure, pre, hr

-

have no margin-bottom

-
-
hgroup
-
    -
  • Unordered list: item 1
  • -
  • Unordered list: item 2
  • -
  • - Unordered list: nested -
      -
    • Unordered list: nested item 1
    • -
    • Unordered list: nested item 2
    • -
    -
  • -
-
    -
  1. Ordered list: item 1
  2. -
  3. Ordered list: item 2
  4. -
  5. - Ordered list: nested -
      -
    1. Ordered list: nested item 1
    2. -
    3. Ordered list: nested item 2
    4. -
    -
  6. -
-
-
Definition list: Term
-
Definition list: Description
-
-
Blockquote content
-

Paragraph

-
Address
- - - - - - -
Table
-
Fieldset
-
Figure
-
Preformatted text
-
-
+

h1-h6

+

have no margin

+
+

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+
Heading 6
+
+ -

button

-

has no background, border, or padding

-
-

- -

-
+

+ hgroup, ul, ol, dl, blockquote, p, address, table, fieldset, figure, + pre, hr +

+

have no margin-bottom

+
+
hgroup
+
    +
  • Unordered list: item 1
  • +
  • Unordered list: item 2
  • +
  • + Unordered list: nested +
      +
    • Unordered list: nested item 1
    • +
    • Unordered list: nested item 2
    • +
    +
  • +
+
    +
  1. Ordered list: item 1
  2. +
  3. Ordered list: item 2
  4. +
  5. + Ordered list: nested +
      +
    1. Ordered list: nested item 1
    2. +
    3. Ordered list: nested item 2
    4. +
    +
  6. +
+
+
Definition list: Term
+
Definition list: Description
+
+
Blockquote content
+

Paragraph

+
Address
+ + + + + + +
Table
+
Fieldset
+
Figure
+
Preformatted text
+
+
+ -

has focus styles (in Firefox and IE)

-
-

- -

-
+

button

+

has no background, border, or padding

+
+

+ +

+
+ -

[tabindex="-1"]:focus

-

has no focus outline (try clicking to trigger focus)

-
- Link content - -
+

has focus styles (in Firefox and IE)

+
+

+ +

+
+ -

CSS-Lock

-

scales perfectly between 20px & 30px between desk & wall breakpoints

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias labore fugiat, placeat doloribus ea rerum debitis reiciendis molestiae in impedit dolores natus iure ducimus a odio soluta dignissimos consequuntur perspiciatis?

+

[tabindex="-1"]:focus

+

+ has no focus outline (try clicking to trigger focus) +

+
+ Link content +
-
+ -

Color scheme

-

Switches between dark and light modes based on user preference

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias labore fugiat, placeat doloribus ea rerum debitis reiciendis molestiae in impedit dolores natus iure ducimus a odio soluta dignissimos consequuntur perspiciatis?

+

CSS-Lock

+

+ scales perfectly between 20px & 30px between desk & wall breakpoints +

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias + labore fugiat, placeat doloribus ea rerum debitis reiciendis + molestiae in impedit dolores natus iure ducimus a odio soluta + dignissimos consequuntur perspiciatis? +

+
-
+ -
- +

Color scheme

+

+ Switches between dark and light modes based on user preference +

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias + labore fugiat, placeat doloribus ea rerum debitis reiciendis + molestiae in impedit dolores natus iure ducimus a odio soluta + dignissimos consequuntur perspiciatis? +

+
+
+ +
+ + diff --git a/index.scss b/index.scss index 4075190..de0c42f 100644 --- a/index.scss +++ b/index.scss @@ -1,34 +1,34 @@ /* ========================================================================== - Supple - In-browser CSS framework; Fluid, Variable, supple if you will + Supple + In-browser CSS framework; Fluid, Variable, supple if you will / =========================================================================== */ /* -------------------------------------------------------------------------- - Settings + Settings / --------------------------------------------------------------------------- */ @use 'settings/defaults'; /* -------------------------------------------------------------------------- - Tools + Tools / --------------------------------------------------------------------------- */ // Import your tools in the modules you need them /* -------------------------------------------------------------------------- - Generic + Generic / --------------------------------------------------------------------------- */ @use 'generic/reset'; /* -------------------------------------------------------------------------- - Elements + Elements / --------------------------------------------------------------------------- */ /* Add your own, yo */ /* -------------------------------------------------------------------------- - Objects + Objects / --------------------------------------------------------------------------- */ @use 'objects/list-clean'; @@ -39,13 +39,13 @@ @use 'objects/flow'; /* -------------------------------------------------------------------------- - Components + Components / --------------------------------------------------------------------------- */ /* Add your own, yo */ /* -------------------------------------------------------------------------- - Utilities + Utilities / --------------------------------------------------------------------------- */ @use 'utilities/columns'; diff --git a/objects/aspect-ratio/README.md b/objects/aspect-ratio/README.md index 0db0062..74bd18b 100644 --- a/objects/aspect-ratio/README.md +++ b/objects/aspect-ratio/README.md @@ -28,7 +28,7 @@ By default the aspect ratio container has a ratio of 1:1, a perfect square. ```html
- +
``` @@ -36,9 +36,9 @@ By default the aspect ratio container has a ratio of 1:1, a perfect square. ```html
- +
``` @@ -46,7 +46,7 @@ By default the aspect ratio container has a ratio of 1:1, a perfect square. ```html
- +
``` @@ -79,26 +79,24 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio' with - ( - $ratios: ( - (4: 3), - (16: 9), - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio' with ( + $ratios: ( + (4: 3), + (16: 9), + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio/variables' with - ( - $ratios: ( - (4: 3), - (16: 9), - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio/variables' with ( + $ratios: ( + (4: 3), + (16: 9), + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/aspect-ratio'; diff --git a/objects/aspect-ratio/_index.scss b/objects/aspect-ratio/_index.scss index b3d0806..c9b4a77 100644 --- a/objects/aspect-ratio/_index.scss +++ b/objects/aspect-ratio/_index.scss @@ -1,8 +1,8 @@ /* ========================================================================== - objects.aspect-ratio - For use with multi-media embeds such as videos, images or slideshows, - that need to retain a specific aspect ratio but adapt to elements - of variable widths. + objects.aspect-ratio + For use with multi-media embeds such as videos, images or slideshows, + that need to retain a specific aspect ratio but adapt to elements + of variable widths. / =========================================================================== */ /** @@ -18,16 +18,16 @@ @use '../../settings/defaults'; /* -------------------------------------------------------------------------- - Internal variables + Internal variables / --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ /** @@ -35,32 +35,32 @@ $selector: '> *'; * the ratio like this: (16/9) */ .o-aspect-ratio { - --ratio: (1 / 1); /* [1] */ - position: relative; - display: block; - block-size: 0; - padding-block-end: calc(100% / var(--ratio)); + --ratio: (1 / 1); /* [1] */ + position: relative; + display: block; + block-size: 0; + padding-block-end: calc(100% / var(--ratio)); - #{$selector} { - position: absolute; - inline-size: 100%; - block-size: 100%; - } + #{$selector} { + position: absolute; + inline-size: 100%; + block-size: 100%; + } } /* -------------------------------------------------------------------------- - Common ratio modifiers, for use in browsers without - custom-property support + Common ratio modifiers, for use in browsers without + custom-property support / --------------------------------------------------------------------------- */ @each $ratio in variables.$ratios { - @each $a, $b in $ratio { - @if meta.type-of($a) != number or meta.type-of($b) != number { - @error '`#{$a}` and `#{$b}` need to be numbers.'; - } + @each $a, $b in $ratio { + @if meta.type-of($a) != number or meta.type-of($b) != number { + @error '`#{$a}` and `#{$b}` need to be numbers.'; + } - .o-aspect-ratio--#{$a}by#{$b} { - --ratio: (#{$a}/#{$b}); - } - } + .o-aspect-ratio--#{$a}by#{$b} { + --ratio: (#{$a}/#{$b}); + } + } } diff --git a/objects/aspect-ratio/_variables.scss b/objects/aspect-ratio/_variables.scss index dd001c7..1af2f69 100644 --- a/objects/aspect-ratio/_variables.scss +++ b/objects/aspect-ratio/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.aspect-ratio.variables + objects.aspect-ratio.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -14,13 +14,13 @@ $ratios: ( ); */ $ratios: ( - ( - 2: 1, - ), - ( - 4: 3, - ), - ( - 16: 9, - ) + ( + 2: 1, + ), + ( + 4: 3, + ), + ( + 16: 9, + ) ) !default; diff --git a/objects/aspect-ratio/test.html b/objects/aspect-ratio/test.html index 7ba704d..8685a4c 100644 --- a/objects/aspect-ratio/test.html +++ b/objects/aspect-ratio/test.html @@ -1,124 +1,124 @@ - - - - Test objects.aspect-ratio - Supple CSS - - - -
-

Supple CSS: objects.aspect-ratio tests

+ + + + Test objects.aspect-ratio - Supple CSS + + + +
+

Supple CSS: objects.aspect-ratio tests

-

.o-aspect-ratio

+

.o-aspect-ratio

-

renders 1:1 (iframe)

-
-
- -
-
- +

renders 1:1 (iframe)

+
+
+ +
+
+ -

renders 1:1 (img)

-
-
- -
-
- +

renders 1:1 (img)

+
+
+ +
+
+ -

- supports aspect ratio custom proptery (eg.: --ratio: (560/315)) -

-
-
- -
-
- +

+ supports aspect ratio custom proptery (eg.: --ratio: (560/315)) +

+
+
+ +
+
+ -

.o-aspect-ratio--4by3

-

renders 4:3 (iframe)

-
-
- -
-
- +

.o-aspect-ratio--4by3

+

renders 4:3 (iframe)

+
+
+ +
+
+ -

renders 4:3 (img)

-
-
- -
-
- +

renders 4:3 (img)

+
+
+ +
+
+ -

.o-aspect-ratio--16by9

-

renders 16:9 (iframe)

-
-
- -
-
- +

.o-aspect-ratio--16by9

+

renders 16:9 (iframe)

+
+
+ +
+
+ -

renders 16:9 (img)

-
-
- -
-
- +

renders 16:9 (img)

+
+
+ +
+
+ -

.o-aspect-ratio--2by1

-

renders 2:1 (iframe)

-
-
- -
-
- +

.o-aspect-ratio--2by1

+

renders 2:1 (iframe)

+
+
+ +
+
+ -

renders 2:1 (img)

-
-
- -
-
- -
- - +

renders 2:1 (img)

+
+
+ +
+
+ +
+ + diff --git a/objects/flow/README.md b/objects/flow/README.md index 511748f..7ae19f8 100644 --- a/objects/flow/README.md +++ b/objects/flow/README.md @@ -17,24 +17,24 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
-

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda - temporibus numquam repellendus repellat eaque illum, praesentium facere iure - fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut - doloribus adipisci. -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus - asperiores minima porro nemo, perferendis magni molestias rem illum, - inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus rerum - eveniet sint? -

- -
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium facere iure + fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut + doloribus adipisci. +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus + asperiores minima porro nemo, perferendis magni molestias rem illum, + inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus rerum + eveniet sint? +

+ +
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
``` @@ -88,15 +88,18 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/flow' with ($gap: 'tiny'); +@use 'node_modules/@supple-kit/supple-css/objects/flow' with ( + $gap: 'tiny' +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/flow/variables' with - ($gap: 'tiny'); +@use 'node_modules/@supple-kit/supple-css/objects/flow/variables' with ( + $gap: 'tiny' +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/flow'; diff --git a/objects/flow/_index.scss b/objects/flow/_index.scss index 9fc00de..84bf401 100644 --- a/objects/flow/_index.scss +++ b/objects/flow/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - objects.flow - Create a rule that sibling elements apply a common margin that is either - globally defined or contextually set. + objects.flow + Create a rule that sibling elements apply a common margin that is either + globally defined or contextually set. / =========================================================================== */ /** @@ -17,25 +17,25 @@ @use '../../tools/space'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ .o-flow { - $selector: '> * + *'; - @if defaults.$css-modules { - $selector: ':global(#{$selector})'; - } + $selector: '> * + *'; + @if defaults.$css-modules { + $selector: ':global(#{$selector})'; + } - --gap: #{space.get(variables.$gap)}; - --flow-gap: var(--gap); + --gap: #{space.get(variables.$gap)}; + --flow-gap: var(--gap); - #{$selector} { - margin-block-start: var(--flow-gap); - } + #{$selector} { + margin-block-start: var(--flow-gap); + } } @each $gap in variables.$gaps { - .o-flow--#{$gap} { - --flow-gap: #{space.get($gap)}; - } + .o-flow--#{$gap} { + --flow-gap: #{space.get($gap)}; + } } diff --git a/objects/flow/_variables.scss b/objects/flow/_variables.scss index ea8c939..eb1ea9c 100644 --- a/objects/flow/_variables.scss +++ b/objects/flow/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.flow.variables + objects.flow.variables / =========================================================================== */ @use '../../settings/defaults'; diff --git a/objects/flow/test.html b/objects/flow/test.html index 1f5bb2d..c74f788 100644 --- a/objects/flow/test.html +++ b/objects/flow/test.html @@ -1,75 +1,75 @@ - - - - Test object.flow - Supple CSS - - - -
-

Supple CSS: object.flow tests

+ + + + Test object.flow - Supple CSS + + + +
+

Supple CSS: object.flow tests

-

.u-flow

+

.u-flow

-

renders consistent margins between elements

-
-
-

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia - excepturi totam obcaecati quibusdam repellat, magni iusto, - laboriosam assumenda nam porro veritatis tenetur quas explicabo - neque quasi sequi numquam. Quasi, reprehenderit! -

-
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
  • - List item 4 -
      -
    • List item 1
    • -
    • List item 2
    • -
    -
  • -
-

Lorem ipsum dolor sit amet consectetur adipisicing elit.

-
-
- +

renders consistent margins between elements

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia + excepturi totam obcaecati quibusdam repellat, magni iusto, + laboriosam assumenda nam porro veritatis tenetur quas explicabo + neque quasi sequi numquam. Quasi, reprehenderit! +

+
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
  • + List item 4 +
      +
    • List item 1
    • +
    • List item 2
    • +
    +
  • +
+

Lorem ipsum dolor sit amet consectetur adipisicing elit.

+
+
+ -

- Accepts `--flow-gap` custom property to adjust spacings, eg. - `--flow-gap: 3rem` -

-
-
-

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia - excepturi totam obcaecati quibusdam repellat, magni iusto, - laboriosam assumenda nam porro veritatis tenetur quas explicabo - neque quasi sequi numquam. Quasi, reprehenderit! -

-
    -
  • List item 1
  • -
  • List item 2
  • -
  • List item 3
  • -
  • - List item 4 -
      -
    • List item 1
    • -
    • List item 2
    • -
    -
  • -
-

Lorem ipsum dolor sit amet consectetur adipisicing elit.

-
-
- -
- - +

+ Accepts `--flow-gap` custom property to adjust spacings, eg. + `--flow-gap: 3rem` +

+
+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia + excepturi totam obcaecati quibusdam repellat, magni iusto, + laboriosam assumenda nam porro veritatis tenetur quas explicabo + neque quasi sequi numquam. Quasi, reprehenderit! +

+
    +
  • List item 1
  • +
  • List item 2
  • +
  • List item 3
  • +
  • + List item 4 +
      +
    • List item 1
    • +
    • List item 2
    • +
    +
  • +
+

Lorem ipsum dolor sit amet consectetur adipisicing elit.

+
+
+ +
+ + diff --git a/objects/layout/README.md b/objects/layout/README.md index d207bd1..4619bd0 100644 --- a/objects/layout/README.md +++ b/objects/layout/README.md @@ -33,10 +33,10 @@ A simple layout is easy to create. A layout container can have any number of chi ```html
-
-
-
-
+
+
+
+
``` @@ -46,12 +46,12 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
-
-
-
+
+
+
+
``` @@ -59,9 +59,9 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Fit to content
-
Take up remaining space
-
Center align a single cell
+
Fit to content
+
Take up remaining space
+
Center align a single cell
``` @@ -69,7 +69,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Spans 5 of 10 columns
+
Spans 5 of 10 columns
``` @@ -77,7 +77,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Spans 5 of 12 columns
+
Spans 5 of 12 columns
``` @@ -85,7 +85,7 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Offsets 4 of 12 columns
+
Offsets 4 of 12 columns
``` @@ -93,15 +93,15 @@ For more granular control over layout make use of modifiers, custom properties o ```html
-
Spans 4 of 10 columns
+
Spans 4 of 10 columns
-
Spans 1 of 10 columns
+
Spans 1 of 10 columns
-
Spans 3 of 10 columns
+
Spans 3 of 10 columns
-
- Spans 2 of 10 columns and offsets 2 of 10 columns -
+
+ Spans 2 of 10 columns and offsets 2 of 10 columns +
``` @@ -113,11 +113,11 @@ You can nest layouts in any context. Keep in mind that the dimensions will be re ```html
-
-
-
-
-
+
+
+
+
+
``` @@ -127,12 +127,12 @@ When you set queries in `$fill-in-query` or `$fit-in-query` you can use them lik ```html
-
- 100% and from lap breakpoint it will fit to content -
-
- 100% and from lap breakpoint it will fill remaining space -
+
+ 100% and from lap breakpoint it will fit to content +
+
+ 100% and from lap breakpoint it will fill remaining space +
``` @@ -142,8 +142,8 @@ By default, the cell styling is applied to the direct child. If for any reason t ```html
-
// your component
-
// your component
+
// your component
+
// your component
``` @@ -197,34 +197,32 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/layout' with - ( - $fit-in-query: ( - lap, - desk, - ), - $gaps: ( - 'base', - 'tiny', - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/layout' with ( + $fit-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/layout/variables' with - ( - $fit-in-query: ( - lap, - desk, - ), - $gaps: ( - 'tiny', - 'huge', - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/layout/variables' with ( + $fit-in-query: ( + lap, + desk, + ), + $gaps: ( + 'tiny', + 'huge', + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/layout'; diff --git a/objects/layout/_index.scss b/objects/layout/_index.scss index 8aa859e..10a7013 100644 --- a/objects/layout/_index.scss +++ b/objects/layout/_index.scss @@ -1,6 +1,6 @@ /* ========================================================================== - objects.layout - Fluid and nestable layout system based on flexbox. + objects.layout + Fluid and nestable layout system based on flexbox. / =========================================================================== */ /** @@ -17,16 +17,16 @@ @use '../../tools/responsive'; /* -------------------------------------------------------------------------- - Internal variables + Internal variables / --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } /* -------------------------------------------------------------------------- - Module code + Module code / --------------------------------------------------------------------------- */ /** @@ -37,20 +37,20 @@ $selector: '> *'; * 2. Negative margin for the gap */ .o-layout { - --columns: #{variables.$columns}; - --gap: 0px; // stylelint-disable-line - --layout-gap: var(--gap); - --layout-block-gap: var(--layout-gap); - --layout-inline-gap: var(--layout-gap); - display: flex; - flex-flow: row wrap; - align-items: flex-start; - padding: 0; /* [1] */ - margin-block-start: calc(-1 * var(--layout-block-gap)); - margin-inline-start: calc(-1 * var(--layout-inline-gap)); /* [1,2] */ - list-style: none; /* [1] */ - - /** + --columns: #{variables.$columns}; + --gap: 0px; // stylelint-disable-line + --layout-gap: var(--gap); + --layout-block-gap: var(--layout-gap); + --layout-inline-gap: var(--layout-gap); + display: flex; + flex-flow: row wrap; + align-items: flex-start; + padding: 0; /* [1] */ + margin-block-start: calc(-1 * var(--layout-block-gap)); + margin-inline-start: calc(-1 * var(--layout-inline-gap)); /* [1,2] */ + list-style: none; /* [1] */ + + /** * Flex item * No explicit width by default. Rely on combining the item with a * dimension utility or a component class that extends 'layout'. @@ -64,20 +64,20 @@ $selector: '> *'; * but our gap variables need to be available. So we map our variables to * internal variables. */ - #{$selector} { - --colspan: var(--columns); - --offset: 0; - --layout-igi: var(--layout-inline-gap); /* [4] */ - --layout-bgi: var(--layout-block-gap); /* [4] */ - flex-basis: calc( - (100% / var(--columns) * var(--colspan)) - var(--layout-igi) - ); /* [1] */ - min-inline-size: 0; /* [2] */ - margin-block-start: var(--layout-bgi); - margin-inline-start: calc( - 100% / var(--columns) * var(--offset) + var(--layout-igi) - ); /* [3] */ - } + #{$selector} { + --colspan: var(--columns); + --offset: 0; + --layout-igi: var(--layout-inline-gap); /* [4] */ + --layout-bgi: var(--layout-block-gap); /* [4] */ + flex-basis: calc( + (100% / var(--columns) * var(--colspan)) - var(--layout-igi) + ); /* [1] */ + min-inline-size: 0; /* [2] */ + margin-block-start: var(--layout-bgi); + margin-inline-start: calc( + 100% / var(--columns) * var(--offset) + var(--layout-igi) + ); /* [3] */ + } } /** @@ -85,7 +85,7 @@ $selector: '> *'; * center align all layout cells over the inline axis */ .o-layout--align-inline-center { - justify-content: center; + justify-content: center; } /** @@ -93,7 +93,7 @@ $selector: '> *'; * align all layout cells to the end of the inline axis */ .o-layout--align-inline-end { - justify-content: flex-end; + justify-content: flex-end; } /** @@ -101,7 +101,7 @@ $selector: '> *'; * center-align layout cells on the block axis */ .o-layout--align-block-center { - align-items: center; + align-items: center; } /** @@ -109,7 +109,7 @@ $selector: '> *'; * end-align layout cells on the block axis */ .o-layout--align-block-end { - align-items: flex-end; + align-items: flex-end; } /** @@ -117,7 +117,7 @@ $selector: '> *'; * All cells match the size of tallest cell in a row */ .o-layout--stretch { - align-items: stretch; + align-items: stretch; } /** @@ -125,7 +125,7 @@ $selector: '> *'; * reverse all cells */ .o-layout--reverse { - flex-direction: row-reverse; + flex-direction: row-reverse; } /** @@ -133,19 +133,19 @@ $selector: '> *'; * Only use cell wrapper element when everything else fails 😅 */ .o-layout__cell { - --layout-igi: 0px; // stylelint-disable-line - --layout-bgi: 0px; // stylelint-disable-line - padding-block-start: var(--layout-block-gap); - padding-inline-start: var(--layout-inline-gap); - - // Old way to stretch inner items - .o-layout--stretch > & { - display: flex; - - #{$selector} { - inline-size: 100%; /* [1] */ - } - } + --layout-igi: 0px; // stylelint-disable-line + --layout-bgi: 0px; // stylelint-disable-line + padding-block-start: var(--layout-block-gap); + padding-inline-start: var(--layout-inline-gap); + + // Old way to stretch inner items + .o-layout--stretch > & { + display: flex; + + #{$selector} { + inline-size: 100%; /* [1] */ + } + } } /** @@ -153,9 +153,9 @@ $selector: '> *'; * allow cells to equal distribute width */ .o-layout--fill { - #{$selector} { - flex: 1; - } + #{$selector} { + flex: 1; + } } /** @@ -163,22 +163,22 @@ $selector: '> *'; * fit all cells to their content */ .o-layout--fit { - #{$selector} { - flex-basis: auto; - } + #{$selector} { + flex-basis: auto; + } } /** * Modifier: gap-X */ @each $gap in variables.$gaps { - .o-layout--gap-#{$gap} { - --layout-gap: #{space.get($gap)}; - } + .o-layout--gap-#{$gap} { + --layout-gap: #{space.get($gap)}; + } } /* -------------------------------------------------------------------------- - Elements + Elements / --------------------------------------------------------------------------- */ /** @@ -186,9 +186,9 @@ $selector: '> *'; * Make an item shrink wrap its content. */ .o-layout__fit { - @include responsive.in-query(variables.$fit-in-query) { - flex-basis: auto; - } + @include responsive.in-query(variables.$fit-in-query) { + flex-basis: auto; + } } /** @@ -199,10 +199,10 @@ $selector: '> *'; * container has no explicit width. */ .o-layout__fill { - @include responsive.in-query(variables.$fill-in-query) { - flex: auto; - inline-size: 0%; /* [1] */ - } + @include responsive.in-query(variables.$fill-in-query) { + flex: auto; + inline-size: 0%; /* [1] */ + } } /** @@ -210,6 +210,6 @@ $selector: '> *'; * Center one flex item on the inline axis */ .o-layout__align-inline-center { - margin-inline-start: auto; - margin-inline-end: auto; + margin-inline-start: auto; + margin-inline-end: auto; } diff --git a/objects/layout/_variables.scss b/objects/layout/_variables.scss index 787449d..af8bb46 100644 --- a/objects/layout/_variables.scss +++ b/objects/layout/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.layout.variables + objects.layout.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -24,7 +24,7 @@ $gaps: ('base') !default; $X-in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` - * in `settings/responsive` + * in `settings/responsive` */ $fit-in-query: () !default; $fill-in-query: () !default; diff --git a/objects/layout/test.html b/objects/layout/test.html index 00d4e7b..484ae1a 100644 --- a/objects/layout/test.html +++ b/objects/layout/test.html @@ -1,481 +1,481 @@ - - - - Test objects.layout - Supple CSS - - - -
-

Supple CSS: objects.layout tests

+ + + + Test objects.layout - Supple CSS + + + +
+

Supple CSS: objects.layout tests

-

.o-layout

+

.o-layout

-

renders cells at full-width by default

-
-
-
1
-
2
-
-
- +

renders cells at full-width by default

+
+
+
1
+
2
+
+
+ -

removes inter-cell whitespace

-
-
-
1
-
2
-
3
-
4
-
-
- +

removes inter-cell whitespace

+
+
+
1
+
2
+
3
+
4
+
+
+ -

handles overflowing elements

-
-
-
-
+      

handles overflowing elements

+
+
+
+
 This is some really long content that should be scrolled when the container is too small.
-
-
-
- + > +
+
+
+ -

- automatically wraps cells across multiple lines when they don't fit a - single row -

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
-
- +

+ automatically wraps cells across multiple lines when they don't fit a + single row +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
+
+ -

- arranges cells of different heights into clear rows -

-
-
-
- 1 -
-
2
-
- 3 -
-
4
-
5
-
- 6 -
-
7
-
- 8 -
-
-
- +

+ arranges cells of different heights into clear rows +

+
+
+
+ 1 +
+
2
+
+ 3 +
+
4
+
5
+
+ 6 +
+
7
+
+ 8 +
+
+
+ -

supports nested layouts

-
-
-
- 1 -
-
1
-
2
-
3
-
4
-
-
-
-
- +

supports nested layouts

+
+
+
+ 1 +
+
1
+
2
+
3
+
4
+
+
+
+
+ -

- supports .o-layout__fill on cells with no width -

-
-
-
1/4
-
fill
-
+

+ supports .o-layout__fill on cells with no width +

+
+
+
1/4
+
fill
+
-
-
2/12
-
fill
-
2/12
-
-
- +
+
2/12
+
fill
+
2/12
+
+
+ -

supports o-layout__fit and o-layout__fill

-
-
-
- shrink to content width -
-
- fill remaining space: This is some really long content that should - be wrapped when the container is too small. -
-
-
- +

supports o-layout__fit and o-layout__fill

+
+
+
+ shrink to content width +
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ -

supports u-columns-X

-
-
-
colspan 2 of 10
-
colspan 3 of 10
-
colspan 5 of 10
-
colspan 2 of 10
-
-
- +

supports u-columns-X

+
+
+
colspan 2 of 10
+
colspan 3 of 10
+
colspan 5 of 10
+
colspan 2 of 10
+
+
+ -

supports u-colspan-X

-
-
-
colspan 2
-
colspan 3
-
colspan 5
-
colspan 2
-
-
- +

supports u-colspan-X

+
+
+
colspan 2
+
colspan 3
+
colspan 5
+
colspan 2
+
+
+ -

supports u-offset-X

-
-
-
- colspan 2, offset 3 -
-
- colspan 3, offset 1 -
-
- colspan 5, offset 2 -
-
colspan 2
-
-
- +

supports u-offset-X

+
+
+
+ colspan 2, offset 3 +
+
+ colspan 3, offset 1 +
+
+ colspan 5, offset 2 +
+
colspan 2
+
+
+ -

.o-layout--align-inline-center

-

- center-aligns all cells on the inline axis but not their content -

-
-
-
1
-
2
-
3
-
-
- +

.o-layout--align-inline-center

+

+ center-aligns all cells on the inline axis but not their content +

+
+
+
1
+
2
+
3
+
+
+ -

.o-layout--align-inline-end

-

- end-aligns all cells on the inline axis but not their content -

-
-
-
1
-
2
-
3
-
-
- +

.o-layout--align-inline-end

+

+ end-aligns all cells on the inline axis but not their content +

+
+
+
1
+
2
+
3
+
+
+ -

.o-layout--align-block-center

-

centers-aligns all cells on the block axis

-
-
-
1
-
- 2 -
-
3
-
3
-
-
- +

.o-layout--align-block-center

+

centers-aligns all cells on the block axis

+
+
+
1
+
+ 2 +
+
3
+
3
+
+
+ -

.o-layout--align-block-end

-

end-aligns all cells on the block axis

-
-
-
1
-
- 2 -
-
3
-
3
-
-
- +

.o-layout--align-block-end

+

end-aligns all cells on the block axis

+
+
+
1
+
+ 2 +
+
3
+
3
+
+
+ -

.o-layout--fill

-

- evenly distribute space between cells without sizing classes or colspan - properties -

-
-
-
1
-
2
-
3
-
-
-
1
-
-
+      

.o-layout--fill

+

+ evenly distribute space between cells without sizing classes or colspan + properties +

+
+
+
1
+
2
+
3
+
+
+
1
+
+
 2 This is some really long content that should be scrolled when the container is too small.
-
-
3
-
4
-
5
-
6
-
-
- + > +
+
3
+
4
+
5
+
6
+
+
+ -

.o-layout--fit

-

fit all cells to their content

-
-
-
1
-
2
-
3
-
-
-
1
-
2 a bit longer
-
3
-
4
-
5
-
6
-
-
- +

.o-layout--fit

+

fit all cells to their content

+
+
+
1
+
2
+
3
+
+
+
1
+
2 a bit longer
+
3
+
4
+
5
+
6
+
+
+ -

.o-layout--stretch

-

- equal size columns based on the talles cell in the block axis -

-
-
-
1
-
2
line 2
-
3
-
-
- +

.o-layout--stretch

+

+ equal size columns based on the talles cell in the block axis +

+
+
+
1
+
2
line 2
+
3
+
+
+ -

- also with .layout__cell child elements -

-
-
-
-
1
-
-
-
2
line 2
-
-
-
3
-
-
-
- +

+ also with .layout__cell child elements +

+
+
+
+
1
+
+
+
2
line 2
+
+
+
3
+
+
+
+ -

.o-layout__align-inline-center

-

- centers an individual layout cell on the inline axis but not its content -

-
-
-
1
-
2
-
- 3: centered cell -
-
-
- +

.o-layout__align-inline-center

+

+ centers an individual layout cell on the inline axis but not its content +

+
+
+
1
+
2
+
+ 3: centered cell +
+
+
+ -

.o-layout--gap-X

-

supports gap (.o-layout--gap-base)

-
-
-
1
-
2
-
3
-
4
-
5
-
-
- +

.o-layout--gap-X

+

supports gap (.o-layout--gap-base)

+
+
+
1
+
2
+
3
+
4
+
5
+
+
+ -

doesn't apply gaps to nested layouts

-
-
-
- 1 -
-
1
-
2
-
-
-
- 2 -
-
1
-
2
-
-
-
-
- +

doesn't apply gaps to nested layouts

+
+
+
+ 1 +
+
1
+
2
+
+
+
+ 2 +
+
1
+
2
+
+
+
+
+ -

correctly aligns gaps within nested layouts

-
-
-
- 1 -
-
1
-
2
-
-
-
- 2 -
-
1
-
2
-
-
-
-
- +

correctly aligns gaps within nested layouts

+
+
+
+ 1 +
+
1
+
2
+
+
+
+ 2 +
+
1
+
2
+
+
+
+
+ -

correctly adds gaps with o-layout--fill

-
-
-
1
-
2
-
3
-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
- +

correctly adds gaps with o-layout--fill

+
+
+
1
+
2
+
3
+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ -

- correctly adds gaps with o-layout__fit and o-layout__fill -

-
-
-
shrink to content width
-
- fill remaining space: This is some really long content that should - be wrapped when the container is too small. -
-
-
- +

+ correctly adds gaps with o-layout__fit and o-layout__fill +

+
+
+
shrink to content width
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ -

- correctly adds gaps with u-colspan-X and o-layout__fill -

-
-
-
shrink to content width
-
- fill remaining space: This is some really long content that should - be wrapped when the container is too small. -
-
-
- +

+ correctly adds gaps with u-colspan-X and o-layout__fill +

+
+
+
shrink to content width
+
+ fill remaining space: This is some really long content that should + be wrapped when the container is too small. +
+
+
+ -

- Correctly calculates cell alignment when a - .o-layout__fit is used in a - .o-layout__fit when using .o-layout__cell -

-
-
-
-
-
-
Item 1
-
-
-
Item 2
-
-
-
Item 3
-
-
-
Item 4
-
-
-
Item 5
-
-
-
-
-
- -
- - +

+ Correctly calculates cell alignment when a + .o-layout__fit is used in a + .o-layout__fit when using .o-layout__cell +

+
+
+
+
+
+
Item 1
+
+
+
Item 2
+
+
+
Item 3
+
+
+
Item 4
+
+
+
Item 5
+
+
+
+
+
+ +
+ + diff --git a/objects/list-clean/README.md b/objects/list-clean/README.md index 66ebee3..c5a3322 100644 --- a/objects/list-clean/README.md +++ b/objects/list-clean/README.md @@ -15,7 +15,7 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
    -
  • +
``` diff --git a/objects/list-clean/_index.scss b/objects/list-clean/_index.scss index 4567d43..f6f9e05 100644 --- a/objects/list-clean/_index.scss +++ b/objects/list-clean/_index.scss @@ -1,11 +1,11 @@ /* ========================================================================== - objects.list-clean - Strip appearance from lists by removing their bullets and indents + objects.list-clean + Strip appearance from lists by removing their bullets and indents / =========================================================================== */ .o-list-clean { - list-style: none; - padding-inline-start: 0; + list-style: none; + padding-inline-start: 0; } /** @@ -13,5 +13,5 @@ * declaring this might for instance only be necessary on `dd` childs */ .o-list-clean__item { - margin-inline-start: 0; + margin-inline-start: 0; } diff --git a/objects/mesh/README.md b/objects/mesh/README.md index 74dfc43..97ef5a4 100644 --- a/objects/mesh/README.md +++ b/objects/mesh/README.md @@ -31,10 +31,10 @@ A simple mesh is easy to create. A mesh container can have any number of child c ```html
-
-
-
-
+
+
+
+
``` @@ -44,10 +44,10 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
-
-
-
+
+
+
+
``` @@ -55,7 +55,7 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans 5 of 10 columns
+
Spans 5 of 10 columns
``` @@ -63,7 +63,7 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans a full row
+
Spans a full row
``` @@ -71,9 +71,9 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
- Spans 5 of 12 columns and starts at column 2 -
+
+ Spans 5 of 12 columns and starts at column 2 +
``` @@ -81,15 +81,15 @@ For more granular control over mesh make use of modifiers, custom properties or ```html
-
Spans 4 of 10 columns
+
Spans 4 of 10 columns
-
- Spans 1 of 10 columns starts at column 5 -
+
+ Spans 1 of 10 columns starts at column 5 +
-
Spans 3 of 10 columns
+
Spans 3 of 10 columns
-
Spans 2 of 10 columns
+
Spans 2 of 10 columns
``` @@ -101,9 +101,9 @@ You can nest mesh in any context. Keep in mind that the dimensions will be relat ```html
-
-
-
+
+
+
``` @@ -113,9 +113,9 @@ When you set breakpoints in `$row-in-query` you can use it like this: ```html
-
- spans 1 column and from lap breakpoint it will span 12 columns (full row). -
+
+ spans 1 column and from lap breakpoint it will span 12 columns (full row). +
``` @@ -165,34 +165,32 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/mesh' with - ( - $row-in-query: ( - lap, - desk, - ), - $gaps: ( - 'base', - 'tiny', - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/mesh' with ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with - ( - $row-in-query: ( - lap, - desk, - ), - $gaps: ( - 'tiny', - 'huge', - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/mesh/variables' with ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'tiny', + 'huge', + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/mesh'; diff --git a/objects/mesh/_index.scss b/objects/mesh/_index.scss index 3f981cc..5b26414 100644 --- a/objects/mesh/_index.scss +++ b/objects/mesh/_index.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.mesh + objects.mesh / =========================================================================== */ /** @@ -17,16 +17,16 @@ @use '../../tools/responsive'; /* -------------------------------------------------------------------------- - Internal variables + Internal variables / --------------------------------------------------------------------------- */ $selector: '> *'; @if defaults.$css-modules { - $selector: ':global(#{$selector})'; + $selector: ':global(#{$selector})'; } /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ /** @@ -36,24 +36,24 @@ $selector: '> *'; * the component. */ .o-mesh { - --columns: #{variables.$columns}; - --gap: 0; - --mesh-gap: var(--gap); - --block-gap: var(--mesh-gap); - --inline-gap: var(--mesh-gap); - display: grid; - grid-template-columns: repeat(var(--columns), 1fr); - gap: var(--block-gap) var(--inline-gap); - padding: 0; /* [1] */ - margin-inline-start: 0; /* [1] */ - list-style: none; /* [1] */ + --columns: #{variables.$columns}; + --gap: 0; + --mesh-gap: var(--gap); + --block-gap: var(--mesh-gap); + --inline-gap: var(--mesh-gap); + display: grid; + grid-template-columns: repeat(var(--columns), 1fr); + gap: var(--block-gap) var(--inline-gap); + padding: 0; /* [1] */ + margin-inline-start: 0; /* [1] */ + list-style: none; /* [1] */ - #{$selector} { - --colstart: 0; - --colspan: 1; - grid-column-start: var(--colstart); - grid-column-end: span var(--colspan); - } + #{$selector} { + --colstart: 0; + --colspan: 1; + grid-column-start: var(--colstart); + grid-column-end: span var(--colspan); + } } /** @@ -61,8 +61,8 @@ $selector: '> *'; * Fluid width columns that break into more or less columns as space is available, with no media queries */ .o-mesh--flow { - --min-inline-size: #{rem.convert(variables.$flow-min-inline-size)}; - grid-template-columns: repeat(auto-fill, minmax(var(--min-inline-size), 1fr)); + --min-inline-size: #{rem.convert(variables.$flow-min-inline-size)}; + grid-template-columns: repeat(auto-fill, minmax(var(--min-inline-size), 1fr)); } /** @@ -70,16 +70,16 @@ $selector: '> *'; * Attempt to fill in holes earlier in the grid if smaller items come up later */ .o-mesh--dense { - grid-auto-flow: dense; + grid-auto-flow: dense; } /** * Modifier: gap-X */ @each $gap in variables.$gaps { - .o-mesh--gap-#{$gap} { - --mesh-gap: #{space.get($gap)}; - } + .o-mesh--gap-#{$gap} { + --mesh-gap: #{space.get($gap)}; + } } /** @@ -87,8 +87,8 @@ $selector: '> *'; * 1. Overwrite any previously set column start */ .o-mesh__row { - @include responsive.in-query(variables.$row-in-query) { - --colstart: 0; /* [1] */ - --colspan: 12; - } + @include responsive.in-query(variables.$row-in-query) { + --colstart: 0; /* [1] */ + --colspan: 12; + } } diff --git a/objects/mesh/_variables.scss b/objects/mesh/_variables.scss index 4a8dd3c..b715fb3 100644 --- a/objects/mesh/_variables.scss +++ b/objects/mesh/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.mesh.variables + objects.mesh.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -28,6 +28,6 @@ $flow-min-inline-size: 200px !default; $row-in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` - * in `settings/responsive` + * in `settings/responsive` */ $row-in-query: () !default; diff --git a/objects/mesh/test.html b/objects/mesh/test.html index 35c7576..ebc1923 100644 --- a/objects/mesh/test.html +++ b/objects/mesh/test.html @@ -1,372 +1,372 @@ - - - - Test objects.mesh - Supple CSS - - - -
-

Supple CSS: objects.mesh tests

+ + + + Test objects.mesh - Supple CSS + + + +
+

Supple CSS: objects.mesh tests

-

.o-mesh

-

renders cells at 1 column by default

-
-
-
1
-
2
-
-
- +

.o-mesh

+

renders cells at 1 column by default

+
+
+
1
+
2
+
+
+ -

- Accepts --columns custom property (ie. - --columns: 2;) -

-
-
-
1
-
2
-
-
- +

+ Accepts --columns custom property (ie. + --columns: 2;) +

+
+
+
1
+
2
+
+
+ -

.o-mesh--flow

-

- Fluid width columns that break into more or less columns as space is - available, with no media queries -

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
- +

.o-mesh--flow

+

+ Fluid width columns that break into more or less columns as space is + available, with no media queries +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ -

- Accepts --min-inline-size custom property. -

-
-
-
1
-
2
-
3
-
4
-
5
-
6
-
-
- +

+ Accepts --min-inline-size custom property. +

+
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+ -

Plays nicely with .u-colspan-X

-
-
-
1
-
2
-
- 3 -
-
4
-
5
-
6
-
-
- +

Plays nicely with .u-colspan-X

+
+
+
1
+
2
+
+ 3 +
+
4
+
5
+
6
+
+
+ -

.o-mesh--dense

-

- Fills in holes earlier in the grid if smaller items come up later -

-
-
-
1
-
2
-
- 3 -
-
4
-
5
-
6
-
- 7 -
-
8
-
- 9 -
-
- 10 -
-
-
- +

.o-mesh--dense

+

+ Fills in holes earlier in the grid if smaller items come up later +

+
+
+
1
+
2
+
+ 3 +
+
4
+
5
+
6
+
+ 7 +
+
8
+
+ 9 +
+
+ 10 +
+
+
+ -

.o-mesh--gap-X

-

supports gap

-
-
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
- +

.o-mesh--gap-X

+

supports gap

+
+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+ -

- supports --block-gap & --inline-gap custom - properties -

-
-
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
- +

+ supports --block-gap & --inline-gap custom + properties +

+
+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+ -

doesn't apply gaps directly to nested meshes

-
-
-
- 1 -
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
-
- 2 -
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
-
-
- +

doesn't apply gaps directly to nested meshes

+
+
+
+ 1 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+ 2 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+
+ -

correctly aligns gaps within nested meshes

-
-
-
- 1 -
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
-
- 2 -
-
- 1 -
-
- 2 -
-
- 3 -
-
- 4 -
-
- 5 -
-
- 6 -
-
- 7 -
-
- 8 -
-
-
-
-
- -
- - +

correctly aligns gaps within nested meshes

+
+
+
+ 1 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+ 2 +
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+ 5 +
+
+ 6 +
+
+ 7 +
+
+ 8 +
+
+
+
+
+ +
+ + diff --git a/objects/retain/README.md b/objects/retain/README.md index 70f3263..bbb3b09 100644 --- a/objects/retain/README.md +++ b/objects/retain/README.md @@ -26,7 +26,7 @@ By default the retain container has a width of 100% and is padded on both sides. ```html
- +
``` @@ -34,9 +34,9 @@ By default the retain container has a width of 100% and is padded on both sides. ```html
- +
``` @@ -44,7 +44,7 @@ By default the retain container has a width of 100% and is padded on both sides. ```html
- +
``` @@ -77,26 +77,24 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/objects/retain' with - ( - $sizes: ( - lap: 640px, - desk: 960px, - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/retain' with ( + $sizes: ( + lap: 640px, + desk: 960px, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/objects/retain/variables' with - ( - $sizes: ( - lap: 640px, - desk: 960px, - ) - ); +@use 'node_modules/@supple-kit/supple-css/objects/retain/variables' with ( + $sizes: ( + lap: 640px, + desk: 960px, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/objects/retain'; diff --git a/objects/retain/_index.scss b/objects/retain/_index.scss index c678c42..f109d8b 100644 --- a/objects/retain/_index.scss +++ b/objects/retain/_index.scss @@ -1,6 +1,6 @@ /* ========================================================================== - objects.retain - Page-level constraining and wrapping elements. + objects.retain + Page-level constraining and wrapping elements. / =========================================================================== */ /** @@ -16,7 +16,7 @@ @use '../../tools/rem'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ /** @@ -24,28 +24,28 @@ * 1. Center align */ .o-retain { - --size: 100%; - max-inline-size: var(--size); - padding-inline-start: space.get(variables.$space); - padding-inline-end: space.get(variables.$space); - margin-inline-end: auto; /* [1] */ - margin-inline-start: auto; /* [1] */ + --size: 100%; + max-inline-size: var(--size); + padding-inline-start: space.get(variables.$space); + padding-inline-end: space.get(variables.$space); + margin-inline-end: auto; /* [1] */ + margin-inline-start: auto; /* [1] */ } /** * Modifier: no-padding */ .o-retain--no-padding { - padding-inline-end: 0; - padding-inline-start: 0; + padding-inline-end: 0; + padding-inline-start: 0; } /* -------------------------------------------------------------------------- - Common width modifiers + Common width modifiers / --------------------------------------------------------------------------- */ @each $key, $value in variables.$sizes { - .o-retain--#{$key} { - --size: #{rem.convert($value)}; - } + .o-retain--#{$key} { + --size: #{rem.convert($value)}; + } } diff --git a/objects/retain/_variables.scss b/objects/retain/_variables.scss index 00cd3a1..543db3f 100644 --- a/objects/retain/_variables.scss +++ b/objects/retain/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - objects.retain.variables + objects.retain.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -10,7 +10,7 @@ $space: 'base' !default; * Sizes */ $sizes: ( - lap: 640px, - desk: 960px, - wall: 1280px, + lap: 640px, + desk: 960px, + wall: 1280px, ) !default; diff --git a/objects/retain/test.html b/objects/retain/test.html index ada1e26..68016c4 100644 --- a/objects/retain/test.html +++ b/objects/retain/test.html @@ -1,63 +1,63 @@ - - - - Test objects.retain - Supple CSS - - - -
-

Supple CSS: objects.retain tests

+ + + + Test objects.retain - Supple CSS + + + +
+

Supple CSS: objects.retain tests

-

.o-retain

+

.o-retain

-

Is padded at both sides

-
-
-
Retained
-
-
+

Is padded at both sides

+
+
+
Retained
+
+
-

supports dynamic sizes (eg.: --size: 30em)

-
-
-
Retained 30em
-
-
+

supports dynamic sizes (eg.: --size: 30em)

+
+
+
Retained 30em
+
+
-

.o-retain--no-padding

-

Is not padded at both sides

-
-
-
Retained
-
-
+

.o-retain--no-padding

+

Is not padded at both sides

+
+
+
Retained
+
+
-

.o-retain--lap

-

Is retained at 640px

-
-
-
Retained
-
-
+

.o-retain--lap

+

Is retained at 640px

+
+
+
Retained
+
+
-

.o-retain--desk

-

Is retained at 960px

-
-
-
Retained
-
-
+

.o-retain--desk

+

Is retained at 960px

+
+
+
Retained
+
+
-

.o-retain--wall

-

Is retained at 1280px

-
-
-
Retained
-
-
-
- - +

.o-retain--wall

+

Is retained at 1280px

+
+
+
Retained
+
+
+
+ + diff --git a/package-lock.json b/package-lock.json index d826c79..2f95a83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "nodemon": "^2.0.15", "postcss": "^8.4.4", "postcss-cli": "^9.0.2", + "prettier": "^2.5.1", "sass": "^1.44.0", "stylelint": "^14.1.0", "stylelint-config-prettier": "^9.0.3", @@ -4264,6 +4265,18 @@ "node": ">=4" } }, + "node_modules/prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -9579,6 +9592,12 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true + }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", diff --git a/package.json b/package.json index e257dab..cebd249 100644 --- a/package.json +++ b/package.json @@ -1,60 +1,63 @@ { - "name": "@supple-kit/supple-css", - "version": "5.3.0", - "description": "Reliable and testable Sass framework. Fluid, Variable, supple if you will", - "main": "index.scss", - "repository": "https://github.com/supple-kit/supple-css.git", - "author": "Bram Smulders ", - "funding": [ - { - "type": "github", - "url": "https://www.github.com/sponsors/bramsmulders" - }, - { - "type": "paypal", - "url": "https://www.paypal.me/smuldersbram/EUR" - } - ], - "license": "MIT", - "keywords": [ - "supple", - "supple kit", - "css", - "scss", - "itcss", - "grid", - "framework", - "bem" - ], - "scripts": { - "test": "npm run lint && npm run build && npm run gzip", - "lint": "stylelint \"**/*.scss\"", - "gzip": "gzip-size test/css/index.css", - "postcss": "postcss test/css/**/*.css --replace", - "sass": "sass index.scss:test/css/index.css test/scss/test.scss:test/css/test.css --no-source-map", - "build": "npm run sass && npm run postcss", - "serve": "browser-sync start --server --files 'test/css/*.css, ./**/*.html' --index 'test.html'", - "watch": "nodemon -e scss -x \"npm run test\"", - "start": "concurrently 'npm run serve' 'npm run watch'" - }, - "browserslist": [ - "defaults" - ], - "devDependencies": { - "@supple-kit/prettier-config": "^1.0.1", - "@supple-kit/stylelint-config-supple": "^4.0.1", - "autoprefixer": "^10.4.0", - "browser-sync": "^2.27.7", - "concurrently": "^6.4.0", - "cssnano": "^5.0.12", - "glob": "^7.2.0", - "gzip-size-cli": "^5.1.0", - "nodemon": "^2.0.15", - "postcss": "^8.4.4", - "postcss-cli": "^9.0.2", - "sass": "^1.44.0", - "stylelint": "^14.1.0", - "stylelint-config-prettier": "^9.0.3", - "stylelint-config-standard-scss": "^3.0.0" - } + "name": "@supple-kit/supple-css", + "version": "5.3.0", + "description": "Reliable and testable Sass framework. Fluid, Variable, supple if you will", + "main": "index.scss", + "repository": "https://github.com/supple-kit/supple-css.git", + "author": "Bram Smulders ", + "funding": [ + { + "type": "github", + "url": "https://www.github.com/sponsors/bramsmulders" + }, + { + "type": "paypal", + "url": "https://www.paypal.me/smuldersbram/EUR" + } + ], + "license": "MIT", + "keywords": [ + "supple", + "supple kit", + "css", + "scss", + "itcss", + "grid", + "framework", + "bem" + ], + "scripts": { + "test": "npm run lint && npm run build && npm run gzip", + "lint": "stylelint \"**/*.scss\"", + "prettier:fix": "prettier --write .", + "prettier:check": "prettier --check .", + "gzip": "gzip-size test/css/index.css", + "postcss": "postcss test/css/**/*.css --replace", + "sass": "sass index.scss:test/css/index.css test/scss/test.scss:test/css/test.css --no-source-map", + "build": "npm run sass && npm run postcss", + "serve": "browser-sync start --server --files 'test/css/*.css, ./**/*.html' --index 'test.html'", + "watch": "nodemon -e scss -x \"npm run test\"", + "start": "concurrently 'npm run serve' 'npm run watch'" + }, + "browserslist": [ + "defaults" + ], + "devDependencies": { + "@supple-kit/prettier-config": "^1.0.1", + "@supple-kit/stylelint-config-supple": "^4.0.1", + "autoprefixer": "^10.4.0", + "browser-sync": "^2.27.7", + "concurrently": "^6.4.0", + "cssnano": "^5.0.12", + "glob": "^7.2.0", + "gzip-size-cli": "^5.1.0", + "nodemon": "^2.0.15", + "postcss": "^8.4.4", + "postcss-cli": "^9.0.2", + "prettier": "^2.5.1", + "sass": "^1.44.0", + "stylelint": "^14.1.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard-scss": "^3.0.0" + } } diff --git a/postcss.config.js b/postcss.config.js index c36a1e0..ee6e7a5 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,8 @@ module.exports = { - plugins: [ - // require("autoprefixer"), - require('cssnano')({ - preset: 'default', - }), - ], + plugins: [ + // require("autoprefixer"), + require('cssnano')({ + preset: 'default', + }), + ], }; diff --git a/prettier.config.js b/prettier.config.js index 94e0090..7cab94a 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,3 @@ module.exports = { - ...require('@supple-kit/prettier-config'), - useTabs: true, + ...require('@supple-kit/prettier-config'), }; diff --git a/settings/defaults/README.md b/settings/defaults/README.md index 4b921b8..69f1f61 100644 --- a/settings/defaults/README.md +++ b/settings/defaults/README.md @@ -18,15 +18,14 @@ You can override the default variables like this: ```scss // in you own settings file eg. `_vars.scss` or from you manifest file eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/settings/defaults' with - ( - $columns: 10, - $baseline: 6px, - $space-factors: ( - 'base': 3, - 'tiny': 1, - ) - ); +@use 'node_modules/@supple-kit/supple-css/settings/defaults' with ( + $columns: 10, + $baseline: 6px, + $space-factors: ( + 'base': 3, + 'tiny': 1, + ) +); ``` And when you need the variables in your own module you can use them like this: @@ -36,7 +35,7 @@ And when you need the variables in your own module you can use them like this: @use 'node_modules/@supple-kit/supple-css/settings/defaults'; .your-module { - --columns: #{defaults.$columns}; + --columns: #{defaults.$columns}; } // or in combination with tools @@ -47,7 +46,7 @@ And when you need the variables in your own module you can use them like this: @use 'node_modules/@supple-kit/supple-css/tools/rem'; .your-module__element { - @include rem.convert(margin-inline-start, defaults.$baseline); + @include rem.convert(margin-inline-start, defaults.$baseline); } ``` @@ -80,16 +79,16 @@ The following map keys multiply the `$baseline` to consistent and transparent sp ```scss $space-factors: ( - 'base': 4, - // 4*8px = 32px - 'tiny': 2, - // 2*8px = 16px - 'small': 3, - // 3*8px = 24px - 'large': 6, - // 6*8px = 48px - 'huge': 12, - // 12*8px = 96px + 'base': 4, + // 4*8px = 32px + 'tiny': 2, + // 2*8px = 16px + 'small': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ); ``` @@ -97,16 +96,16 @@ $space-factors: ( ```scss $space-factors: ( - 'tiny': 1, - // 1*8px = 8px - 'small': 2, - // 2*8px = 16px - 'base': 3, - // 3*8px = 24px - 'large': 6, - // 6*8px = 48px - 'huge': 12, - // 12*8px = 96px + 'tiny': 1, + // 1*8px = 8px + 'small': 2, + // 2*8px = 16px + 'base': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ) !default; ``` @@ -116,7 +115,7 @@ These multiplication factors are converted to a `rem` value and available throug @use 'node_modules/@supple-kit/supple-css/tools/space'; .your-selector { - margin-block-end: space.get('base'); + margin-block-end: space.get('base'); } ``` @@ -171,10 +170,10 @@ Working with breakpoints is pretty straightforward. You can add as many breakpoi // Name your breakpoints in a way that creates a ubiquitous language across team members. // It will improve communication between stakeholders, designers, developers, and testers. $breakpoints: ( - palm: 320px, - lap: 640px, - desk: 960px, - wall: 1280px, + palm: 320px, + lap: 640px, + desk: 960px, + wall: 1280px, ); // Query list, which is used by the `responsive.mq()` mixin. @@ -182,34 +181,34 @@ $breakpoints: ( // You can reference `$breakpoints` by name or you can enter a `px` or `em` value // You can create complex media queries like this: $queries: ( - // min-width - palm: palm, - lap: lap, - desk: desk, - wall: wall, - // max-width - until-desk: - ( - max: desk, - ), - // min-width & max-width - lap-until-desk: - ( - min: lap, - max: desk, - ), - // min-width & max-width with generic px value - lap-until-generic: - ( - min-width: lap, - max-width: 1024px, - ), - // You can also apply height queries - height-large-until-huge: - ( - min-height: 640px, - max-height: 1024px, - ) + // min-width + palm: palm, + lap: lap, + desk: desk, + wall: wall, + // max-width + until-desk: + ( + max: desk, + ), + // min-width & max-width + lap-until-desk: + ( + min: lap, + max: desk, + ), + // min-width & max-width with generic px value + lap-until-generic: + ( + min-width: lap, + max-width: 1024px, + ), + // You can also apply height queries + height-large-until-huge: + ( + min-height: 640px, + max-height: 1024px, + ) ); ``` diff --git a/settings/defaults/_index.scss b/settings/defaults/_index.scss index 839dd1b..ec7aca5 100644 --- a/settings/defaults/_index.scss +++ b/settings/defaults/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - settings.defaults - Supple default variables. Redefine and override them with your - application-level variables. + settings.defaults + Supple default variables. Redefine and override them with your + application-level variables. / =========================================================================== */ @use 'sass:map'; @@ -10,18 +10,18 @@ @use 'sass:string'; /* -------------------------------------------------------------------------- - Baseline - As per: - https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632 - https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc + Baseline + As per: + https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632 + https://medium.freecodecamp.org/8-point-grid-typography-on-the-web-be5dc97db6bc / --------------------------------------------------------------------------- */ $baseline: 8px !default; /* -------------------------------------------------------------------------- - Spacing - Multiply our `$baseline` to new spacing variables for - more transparency & consistency. + Spacing + Multiply our `$baseline` to new spacing variables for + more transparency & consistency. / --------------------------------------------------------------------------- */ /** @@ -29,20 +29,20 @@ $baseline: 8px !default; * Each value should be an unitless integer. */ $space-factors: ( - 'tiny': 1, - // 1*8px = 8px - 'small': 2, - // 2*8px = 16px - 'base': 3, - // 3*8px = 24px - 'large': 6, - // 6*8px = 48px - 'huge': 12, - // 12*8px = 96px + 'tiny': 1, + // 1*8px = 8px + 'small': 2, + // 2*8px = 16px + 'base': 3, + // 3*8px = 24px + 'large': 6, + // 6*8px = 48px + 'huge': 12, + // 12*8px = 96px ) !default; /* -------------------------------------------------------------------------- - Typography + Typography / --------------------------------------------------------------------------- */ $font-size: 16px !default; @@ -50,121 +50,121 @@ $line-height: map.get($space-factors, 'base') * $baseline !default; $line-height-ratio: math.div($line-height, $font-size); /* -------------------------------------------------------------------------- - Grid + Grid / --------------------------------------------------------------------------- */ $columns: 12 !default; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ /** * Breakpoints sass map */ $breakpoints: ( - palm: 320px, - lap: 640px, - desk: 960px, - wall: 1280px, + palm: 320px, + lap: 640px, + desk: 960px, + wall: 1280px, ) !default; /** * Queries sass map */ $queries: ( - palm: palm, - lap: lap, - desk: desk, - wall: wall, + palm: palm, + lap: lap, + desk: desk, + wall: wall, ) !default; /* -------------------------------------------------------------------------- - Namespace - Would you like supple classes to be used with a different namespace? + Namespace + Would you like supple classes to be used with a different namespace? / --------------------------------------------------------------------------- */ $responsive-modifier: string.unquote('\\@') !default; /* -------------------------------------------------------------------------- - Technology - Allows us to use supple alongside other technologies like css-modules etc. + Technology + Allows us to use supple alongside other technologies like css-modules etc. / --------------------------------------------------------------------------- */ $css-modules: false !default; /* -------------------------------------------------------------------------- - Checks - A couple of checks for correct formatting of variables in this file + Checks + A couple of checks for correct formatting of variables in this file / --------------------------------------------------------------------------- */ /** * Check that the chosen font rules are pixel numbers. */ $should-be-pixel-values: ( - 'baseline': $baseline, - 'font-size': $font-size, - 'line-height': $line-height, + 'baseline': $baseline, + 'font-size': $font-size, + 'line-height': $line-height, ); @each $key, $value in $should-be-pixel-values { - @if type-of($value) == number { - @if math.unit($value) != 'px' { - @error '`#{$key}: #{$value}` needs to be a pixel unit.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.unit($value) != 'px' { + @error '`#{$key}: #{$value}` needs to be a pixel unit.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } /** * check that breakpoints are defined in px or em */ @each $key, $value in $breakpoints { - @if type-of($value) == number { - @if math.unit($value) != 'px' and math.unit($value) != 'em' { - @error 'Breakpoint `#{$key}: #{$value}` needs to be a pixel or em unit.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.unit($value) != 'px' and math.unit($value) != 'em' { + @error 'Breakpoint `#{$key}: #{$value}` needs to be a pixel or em unit.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } /** * Check that the chosen size factors are unitless, integer numbers. */ $should-be-unitless-integers: ( - 'columns': $columns, + 'columns': $columns, ); @each $key, $value in map.merge($space-factors, $should-be-unitless-integers) { - @if type-of($value) == number { - @if math.is-unitless($value) == false { - @error '`#{$key}: #{$value}` needs to be unitless.'; - } - @if $value != math.ceil($value) { - @error '`#{$key}: #{$value}` needs to be an integer.'; - } - } @else { - @error '`#{$key}: #{$value}` needs to be a number.'; - } + @if type-of($value) == number { + @if math.is-unitless($value) == false { + @error '`#{$key}: #{$value}` needs to be unitless.'; + } + @if $value != math.ceil($value) { + @error '`#{$key}: #{$value}` needs to be an integer.'; + } + } @else { + @error '`#{$key}: #{$value}` needs to be a number.'; + } } /** * Check if `$space-factors` has the mandatory `base` entry */ @if not map.has-key($space-factors, 'base') { - @error '`$space-factors` needs to contain atleast one entry named 'base' since supple-css internally relies on this.'; + @error '`$space-factors` needs to contain atleast one entry named 'base' since supple-css internally relies on this.'; } /** * Check if $queries is in the right format */ @each $key, $value in $queries { - @if meta.type-of($value) == map { - @if map.has-key($value, min) and map.has-key($value, min-width) { - @error 'defaults.$queries: "min" and "min-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length - } - @if map.has-key($value, max) and map.has-key($value, max-width) { - @error 'defaults.$queries: "max" and "max-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length - } - } + @if meta.type-of($value) == map { + @if map.has-key($value, min) and map.has-key($value, min-width) { + @error 'defaults.$queries: "min" and "min-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length + } + @if map.has-key($value, max) and map.has-key($value, max-width) { + @error 'defaults.$queries: "max" and "max-width" keys are both compiled to "min-width" queries. Use one or the other.'; // stylelint-disable-line max-line-length + } + } } diff --git a/test.html b/test.html index e80ca98..5373a49 100644 --- a/test.html +++ b/test.html @@ -5,20 +5,20 @@ diff --git a/test/scss/components/_css-lock.scss b/test/scss/components/_css-lock.scss index 63462c6..8f4929b 100644 --- a/test/scss/components/_css-lock.scss +++ b/test/scss/components/_css-lock.scss @@ -1,19 +1,19 @@ /* ========================================================================== - test.components.lock - Test for creating fluid typography with CSS-lock mixin. + test.components.lock + Test for creating fluid typography with CSS-lock mixin. / =========================================================================== */ @use '../../../tools/responsive'; .c-css-lock { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } .selector { - font-size: responsive.lock(18px, 24px); + font-size: responsive.lock(18px, 24px); } // You can also redefine the min- and max breakpoints like this .selector-defined-breakpoints { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } diff --git a/test/scss/components/_fixture-box.scss b/test/scss/components/_fixture-box.scss index d840a52..008adfa 100644 --- a/test/scss/components/_fixture-box.scss +++ b/test/scss/components/_fixture-box.scss @@ -1,25 +1,25 @@ /* ========================================================================== - test.components.fixture-box + test.components.fixture-box / =========================================================================== */ @use '../../../tools/space'; @use '../../../settings/defaults'; .c-fixture-box { - padding-inline-start: space.get('small'); - padding-inline-end: space.get('small'); - border: 1px solid #000000; - background: #ee4266; - line-height: 3rem; - text-indent: 0; - color: #ffffff; + padding-inline-start: space.get('small'); + padding-inline-end: space.get('small'); + border: 1px solid #000000; + background: #ee4266; + line-height: 3rem; + text-indent: 0; + color: #ffffff; } .c-fixture-box--double-height { - line-height: space.get('huge'); + line-height: space.get('huge'); } .c-fixture-box--wrap { - border: 1px solid #000000; - background: rgba(238 66 102 / 30%); + border: 1px solid #000000; + background: rgba(238 66 102 / 30%); } diff --git a/test/scss/components/_preformatted.scss b/test/scss/components/_preformatted.scss index 844b2d6..6f6b46e 100644 --- a/test/scss/components/_preformatted.scss +++ b/test/scss/components/_preformatted.scss @@ -1,9 +1,9 @@ /* ========================================================================== - components.preformatted + components.preformatted / =========================================================================== */ .c-preformatted { - overflow: auto; - white-space: pre; - word-wrap: normal; + overflow: auto; + white-space: pre; + word-wrap: normal; } diff --git a/test/scss/components/_test.scss b/test/scss/components/_test.scss index 7ad7792..14d0b80 100644 --- a/test/scss/components/_test.scss +++ b/test/scss/components/_test.scss @@ -1,5 +1,5 @@ /* ========================================================================== - test.components.test + test.components.test / =========================================================================== */ @use '../../../tools/space'; @@ -7,66 +7,66 @@ @use '../../../settings/defaults'; .c-test { - counter-reset: test__describe; + counter-reset: test__describe; } .c-test__title { - @include typography.font-size(40px); - margin-block-start: space.get('base'); - margin-block-end: space.get('base'); - padding: space.get('base'); - color: #999999; - background: #eeeeee; + @include typography.font-size(40px); + margin-block-start: space.get('base'); + margin-block-end: space.get('base'); + padding: space.get('base'); + color: #999999; + background: #eeeeee; } .c-test__describe, .c-test__it { - padding-block-start: space.get('small'); - padding-block-end: space.get('small'); - padding-inline-start: space.get('base'); - padding-inline-end: space.get('base'); - border-left: 5px solid #666666; - font-weight: bold; - color: #666666; - background: #eeeeee; + padding-block-start: space.get('small'); + padding-block-end: space.get('small'); + padding-inline-start: space.get('base'); + padding-inline-end: space.get('base'); + border-left: 5px solid #666666; + font-weight: bold; + color: #666666; + background: #eeeeee; } .c-test__describe { - @include typography.font-size(32px); - margin-block-start: space.get('large'); - margin-block-end: space.get('base'); - counter-reset: test__it; + @include typography.font-size(32px); + margin-block-start: space.get('large'); + margin-block-end: space.get('base'); + counter-reset: test__it; - &::before { - content: counter(test__describe); - counter-increment: test__describe; - } + &::before { + content: counter(test__describe); + counter-increment: test__describe; + } } .c-test__it { - @include typography.font-size(24px); - margin-block-start: space.get('base'); - margin-block-end: space.get('base'); + @include typography.font-size(24px); + margin-block-start: space.get('base'); + margin-block-end: space.get('base'); - &::before { - content: counter(test__describe) '.' counter(test__it); - counter-increment: test__it; - } + &::before { + content: counter(test__describe) '.' counter(test__it); + counter-increment: test__it; + } } .c-test__describe::before, .c-test__it::before { - display: inline-block; - margin-inline-end: space.get('base'); - min-inline-size: space.get('large'); - text-transform: uppercase; - color: #999999; + display: inline-block; + margin-inline-end: space.get('base'); + min-inline-size: space.get('large'); + text-transform: uppercase; + color: #999999; } .c-test__run { - // empty for reference + // empty for reference } .c-test__run--retained { - max-inline-size: space.get('base') * 21; + max-inline-size: space.get('base') * 21; } diff --git a/test/scss/elements/_toplevel.scss b/test/scss/elements/_toplevel.scss index 4ff10bf..19c0b96 100644 --- a/test/scss/elements/_toplevel.scss +++ b/test/scss/elements/_toplevel.scss @@ -1,16 +1,16 @@ /* ========================================================================== - test.elements.toplevel + test.elements.toplevel / =========================================================================== */ @use '../../../tools/space'; @use '../../../settings/defaults'; html { - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, - Ubuntu, Cantarell, Helvetica Neue, sans-serif; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, + Ubuntu, Cantarell, Helvetica Neue, sans-serif; } body { - padding-inline-start: space.get('base'); - padding-inline-end: space.get('base'); + padding-inline-start: space.get('base'); + padding-inline-end: space.get('base'); } diff --git a/test/scss/settings/_theme.scss b/test/scss/settings/_theme.scss index e83ed1c..e5733e7 100644 --- a/test/scss/settings/_theme.scss +++ b/test/scss/settings/_theme.scss @@ -1,19 +1,19 @@ /* ========================================================================== - test.settings.theme + test.settings.theme / =========================================================================== */ @use '../../../tools/responsive'; :root { - // Light theme colors - --color-slate: #cccccc; + // Light theme colors + --color-slate: #cccccc; - @include responsive.color-scheme(dark) { - // Dark theme colors - --color-slate: #000000; - } + @include responsive.color-scheme(dark) { + // Dark theme colors + --color-slate: #000000; + } } .c-color-scheme { - background-color: var(--color-slate); + background-color: var(--color-slate); } diff --git a/test/scss/test.scss b/test/scss/test.scss index 2bdf645..ef5beed 100644 --- a/test/scss/test.scss +++ b/test/scss/test.scss @@ -1,86 +1,81 @@ /* ========================================================================== - Supple test file + Supple test file / =========================================================================== */ /* -------------------------------------------------------------------------- - Settings + Settings / --------------------------------------------------------------------------- */ @use '../../settings/defaults'; /* -------------------------------------------------------------------------- - Tools + Tools / --------------------------------------------------------------------------- */ @use '../../tools/responsive'; /* -------------------------------------------------------------------------- - Generic + Generic / --------------------------------------------------------------------------- */ @use '../../generic/reset'; /* -------------------------------------------------------------------------- - Elements + Elements / --------------------------------------------------------------------------- */ @use 'elements/toplevel'; /* -------------------------------------------------------------------------- - Objects + Objects / --------------------------------------------------------------------------- */ @use '../../objects/list-clean'; -@use '../../objects/layout' with - ( - $fit-in-query: ( - lap, - desk, - ), - $fill-in-query: lap, - $gaps: ( - 'base', - 'tiny', - ) - ); -@use '../../objects/mesh' with - ( - $row-in-query: ( - lap, - desk, - ), - $gaps: ( - 'base', - 'tiny', - ) - ); -@use '../../objects/retain' with - ( - $sizes: ( - lap: 640px, - desk: 960px, - wall: 1280px, - billboard: 1440px, - ) - ); -@use '../../objects/aspect-ratio' with - ( - $ratios: ( - (2: 1), - (4: 3), - (16: 9), - (21: 9), - ) - ); -@use '../../objects/flow' with - ( - $gaps: ( - 'tiny', - ) - ); +@use '../../objects/layout' with ( + $fit-in-query: ( + lap, + desk, + ), + $fill-in-query: lap, + $gaps: ( + 'base', + 'tiny', + ) +); +@use '../../objects/mesh' with ( + $row-in-query: ( + lap, + desk, + ), + $gaps: ( + 'base', + 'tiny', + ) +); +@use '../../objects/retain' with ( + $sizes: ( + lap: 640px, + desk: 960px, + wall: 1280px, + billboard: 1440px, + ) +); +@use '../../objects/aspect-ratio' with ( + $ratios: ( + (2: 1), + (4: 3), + (16: 9), + (21: 9), + ) +); +@use '../../objects/flow' with ( + $gaps: ( + 'tiny', + ) +); /* -------------------------------------------------------------------------- - Components + Components / --------------------------------------------------------------------------- */ @use 'components/test'; @@ -89,56 +84,52 @@ @use 'components/css-lock'; /* -------------------------------------------------------------------------- - Theme + Theme / --------------------------------------------------------------------------- */ @use 'settings/theme'; /* -------------------------------------------------------------------------- - Utilities + Utilities / --------------------------------------------------------------------------- */ -@use '../../utilities/columns' with - ( - $in-query: ( - lap, - desk, - ) - ); -@use '../../utilities/colspan' with ($in-query: lap); -@use '../../utilities/colstart' with - ( - $in-query: ( - lap, - desk, - ) - ); -@use '../../utilities/offset' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use '../../utilities/columns' with ( + $in-query: ( + lap, + desk, + ) +); +@use '../../utilities/colspan' with ( + $in-query: lap +); +@use '../../utilities/colstart' with ( + $in-query: ( + lap, + desk, + ) +); +@use '../../utilities/offset' with ( + $in-query: ( + lap, + desk, + ) +); @use '../../utilities/clearfix'; -@use '../../utilities/spacing' with - ( - $in-query: ( - lap, - desk, - ) - ); -@use '../../utilities/visually-hidden' with - ( - $in-query: ( - lap, - desk, - ) - ); -@use '../../utilities/hidden' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use '../../utilities/spacing' with ( + $in-query: ( + lap, + desk, + ) +); +@use '../../utilities/visually-hidden' with ( + $in-query: ( + lap, + desk, + ) +); +@use '../../utilities/hidden' with ( + $in-query: ( + lap, + desk, + ) +); diff --git a/tools/README.md b/tools/README.md index 24cbe53..d064823 100644 --- a/tools/README.md +++ b/tools/README.md @@ -26,9 +26,9 @@ Supple’s tools are categorised so you only need to `@use` the tools you want: @use 'node_modules/@supple-kit/supple-css/tools/responsive'; .your-module { - @include responsive.mq('lap') { - margin-inline-start: space.get('tiny'); - } + @include responsive.mq('lap') { + margin-inline-start: space.get('tiny'); + } } ``` @@ -54,13 +54,13 @@ Returns the spacing value converted to `rem` units. The `$name` must be present ```scss .selector { - margin-inline-start: space.get('tiny'); - margin-inline-end: space.get('large'); + margin-inline-start: space.get('tiny'); + margin-inline-end: space.get('large'); } // with default settings becomes .selector { - margin-inline-start: 0.5rem; - margin-inline-end: 3rem; + margin-inline-start: 0.5rem; + margin-inline-end: 3rem; } ``` @@ -78,13 +78,13 @@ Returns the spacing-factor value. The `$name` must be present in `defaults.$spac ```scss .selector { - margin-inline-start: calc( - #{space.get-factor('small')} * #{defaults.$baseline} - ); + margin-inline-start: calc( + #{space.get-factor('small')} * #{defaults.$baseline} + ); } // with default settings becomes .selector { - margin-inline-start: calc(2 * 8px); + margin-inline-start: calc(2 * 8px); } ``` @@ -110,15 +110,15 @@ Converts `px` values to `rem`. If you pass in another format instead of `px` it ```scss .selector { - margin-block-start: rem.convert(24px); - margin-block: rem.convert(24px 0.5vw); - margin-inline: rem.convert(24px auto 12px 50%); + margin-block-start: rem.convert(24px); + margin-block: rem.convert(24px 0.5vw); + margin-inline: rem.convert(24px auto 12px 50%); } // with default settings becomes: .selector { - margin-block-start: 1.5rem; - margin-block: 1.5rem 0.5vw; - margin-inline: 1.5rem auto 0.75rem 50%; + margin-block-start: 1.5rem; + margin-block: 1.5rem 0.5vw; + margin-inline: 1.5rem auto 0.75rem 50%; } ``` @@ -138,20 +138,20 @@ Hides an element visually while still allowing the content to be accessible to a ```scss .selector { - @include a11y.visually-hidden; + @include a11y.visually-hidden; } // becomes: .selector { - border: 0 !important; - clip: rect(0 0 0 0) !important; - clip-path: inset(50%) !important; - block-size: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - inline-size: 1px !important; + border: 0 !important; + clip: rect(0 0 0 0) !important; + clip-path: inset(50%) !important; + block-size: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + inline-size: 1px !important; } ``` @@ -181,29 +181,29 @@ Generates a rem font-size and a baseline-compatible unitless line-height from a ```scss .selector { - @include typography.font-size($font-size: 18px); + @include typography.font-size($font-size: 18px); } // add 2 lines of `$baseline` .selector-modifier { - @include typography.font-size($font-size: 18px, $modifier: +2); + @include typography.font-size($font-size: 18px, $modifier: +2); } // Self define line-height .selector-line-height { - @include typography.font-size($font-size: 18px, $line-height: 1); + @include typography.font-size($font-size: 18px, $line-height: 1); } // with default settings becomes: .selector { - font-size: 1.125rem; - line-height: 1.7777777778; // 32px + font-size: 1.125rem; + line-height: 1.7777777778; // 32px } .selector-modifier { - font-size: 1.125rem; - line-height: 2.6666666667; // 48px + font-size: 1.125rem; + line-height: 2.6666666667; // 48px } .selector-line-height { - font-size: 1.125rem; - line-height: 1; // 18px + font-size: 1.125rem; + line-height: 1; // 18px } ``` @@ -225,13 +225,13 @@ way that supports a toggle component. ```scss :root { - // Light theme colors - --color-slate: #cccccc; + // Light theme colors + --color-slate: #cccccc; - @include responsive.color-scheme() { - // Dark theme colors - --color-slate: #000000; - } + @include responsive.color-scheme() { + // Dark theme colors + --color-slate: #000000; + } } ``` @@ -245,15 +245,15 @@ Apply a media query defined in `defaults.$queries`. ```scss .selector { - @include responsive.mq('lap') { - outline: 1px solid #ff0000; - } + @include responsive.mq('lap') { + outline: 1px solid #ff0000; + } } // with default settings becomes: @media (min-width: 40em) { - .selector { - margin-block-end: 0 !important; - } + .selector { + margin-block-end: 0 !important; + } } ``` @@ -275,20 +275,20 @@ The property will start scaling and stop scaling exactly where you want. ```scss .selector { - font-size: responsive.lock(18px, 24px); + font-size: responsive.lock(18px, 24px); } // You can also redefine the min- and max breakpoints like this .selector-defined-breakpoints { - font-size: responsive.lock(20px, 30px, desk, wall); + font-size: responsive.lock(20px, 30px, desk, wall); } // with default settings becomes: .selector { - font-size: clamp(1.125rem, 0.375rem + 1.875vw, 1.5rem); + font-size: clamp(1.125rem, 0.375rem + 1.875vw, 1.5rem); } .selector-defined-breakpoints { - font-size: clamp(1.25rem, -0.625rem + 3.125vw, 1.875rem); + font-size: clamp(1.25rem, -0.625rem + 3.125vw, 1.875rem); } ``` @@ -308,20 +308,20 @@ The mixin's `@content` will be also applied to the parent selector. ```scss $YOURMODULE-in-query: (lap, desk); .your-selector { - @include responsive.in-query($YOURMODULE-in-query) { - outline: 1px solid #ff0000; - } + @include responsive.in-query($YOURMODULE-in-query) { + outline: 1px solid #ff0000; + } } // becomes: @media (min-width: 40em) { - .your-selector\@lap { - outline: 1px solid #ff0000; - } + .your-selector\@lap { + outline: 1px solid #ff0000; + } } @media (min-width: 60em) { - .your-selector\@desk { - outline: 1px solid #ff0000; - } + .your-selector\@desk { + outline: 1px solid #ff0000; + } } ``` diff --git a/tools/_a11y.scss b/tools/_a11y.scss index 51b0af2..bc09159 100644 --- a/tools/_a11y.scss +++ b/tools/_a11y.scss @@ -1,24 +1,24 @@ /* ========================================================================== - tools.a11y - Helpers to create more accessible sites + tools.a11y + Helpers to create more accessible sites / =========================================================================== */ /* -------------------------------------------------------------------------- - Visually-hidden - Hides an element visually while still allowing the content to be accessible - to assistive technology, e.g. screen readers. - Usage: @include visually-hidden(); + Visually-hidden + Hides an element visually while still allowing the content to be accessible + to assistive technology, e.g. screen readers. + Usage: @include visually-hidden(); / --------------------------------------------------------------------------- */ @mixin visually-hidden { - border: 0 !important; - clip: rect(0 0 0 0) !important; - clip-path: inset(50%) !important; - block-size: 1px !important; - margin: -1px !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - inline-size: 1px !important; + border: 0 !important; + clip: rect(0 0 0 0) !important; + clip-path: inset(50%) !important; + block-size: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + inline-size: 1px !important; } diff --git a/tools/_internal/_functions.scss b/tools/_internal/_functions.scss index 78fb488..01c209a 100644 --- a/tools/_internal/_functions.scss +++ b/tools/_internal/_functions.scss @@ -1,5 +1,5 @@ /* ========================================================================== - tools.functions + tools.functions / =========================================================================== */ @use 'sass:list'; @@ -10,14 +10,14 @@ @use '../../settings/defaults'; /* -------------------------------------------------------------------------- - Functions + Functions / --------------------------------------------------------------------------- */ /** * A small, internally-used function to remove the units from a given value. */ @function strip-units($value) { - @return math.div($value, ($value * 0 + 1)); + @return math.div($value, ($value * 0 + 1)); } /** @@ -25,10 +25,10 @@ * Converts pixels to em based on context */ @function value-to-em($value, $context: 16px) { - @if $value == 0 { - @return 0; - } - @return math.div($value, $context) * 1em; + @if $value == 0 { + @return 0; + } + @return math.div($value, $context) * 1em; } /** @@ -36,114 +36,114 @@ * Implode a list into a string */ @function implode($list, $glue: ' ') { - $res: null; - $len: list.length($list); - - @for $i from 1 through $len { - $e: list.nth($list, $i); - @if $i == $len { - $res: string.unquote('#{$res}#{$e}'); - } @else { - $res: string.unquote('#{$res}#{$e}#{$glue}'); - } - } - - @return $res; + $res: null; + $len: list.length($list); + + @for $i from 1 through $len { + $e: list.nth($list, $i); + @if $i == $len { + $res: string.unquote('#{$res}#{$e}'); + } @else { + $res: string.unquote('#{$res}#{$e}#{$glue}'); + } + } + + @return $res; } /* -------------------------------------------------------------------------- - Responsive functions + Responsive functions / --------------------------------------------------------------------------- */ @function get-breakpoints($query) { - $media-string: (); - $media-map: parse-breakpoints($query); - - @each $key, $value in $media-map { - @if $value and $value != 0 { - @if $media-string == (()) { - $media-string: list.append( - $media-string, - string.unquote('(#{$key}: #{$value})') - ); - } @else { - $media-string: list.append( - $media-string, - string.unquote('and (#{$key}: #{$value})') - ); - } - } - } - - @return implode($media-string); + $media-string: (); + $media-map: parse-breakpoints($query); + + @each $key, $value in $media-map { + @if $value and $value != 0 { + @if $media-string == (()) { + $media-string: list.append( + $media-string, + string.unquote('(#{$key}: #{$value})') + ); + } @else { + $media-string: list.append( + $media-string, + string.unquote('and (#{$key}: #{$value})') + ); + } + } + } + + @return implode($media-string); } @function parse-breakpoints($query) { - $breakpoints: defaults.$breakpoints; - $return: (); - $i: 1; - $min-w: null; - - // contains map - @if meta.type-of($query) == map { - @each $key, $value in $query { - @if $key == min or $key == min-width { - $return: add-query($return, min-width, $value); - } @else if $key == max or $key == max-width { - $return: add-query($return, max-width, $value); - } @else if $key == min-height { - $return: add-query($return, min-height, $value); - } @else if $key == max-height { - $return: add-query($return, max-height, $value); - } @else { - @error 'No valid query key has been given'; - } - } - } - - // single value - @else if meta.type-of($query) == string or meta.type-of($query) == number { - $return: add-query($return, min-width, $query); - } - - @return $return; + $breakpoints: defaults.$breakpoints; + $return: (); + $i: 1; + $min-w: null; + + // contains map + @if meta.type-of($query) == map { + @each $key, $value in $query { + @if $key == min or $key == min-width { + $return: add-query($return, min-width, $value); + } @else if $key == max or $key == max-width { + $return: add-query($return, max-width, $value); + } @else if $key == min-height { + $return: add-query($return, min-height, $value); + } @else if $key == max-height { + $return: add-query($return, max-height, $value); + } @else { + @error 'No valid query key has been given'; + } + } + } + + // single value + @else if meta.type-of($query) == string or meta.type-of($query) == number { + $return: add-query($return, min-width, $query); + } + + @return $return; } @function add-query($media-map, $key, $value) { - $return: $media-map; - $parsed-value: validate-query($value); + $return: $media-map; + $parsed-value: validate-query($value); - @if $parsed-value { - $resolved-value: $parsed-value; + @if $parsed-value { + $resolved-value: $parsed-value; - @if math.unit($parsed-value) == 'px' { - @if $key == max-width or $key == max-height { - $parsed-value: $parsed-value - 1px; - } + @if math.unit($parsed-value) == 'px' { + @if $key == max-width or $key == max-height { + $parsed-value: $parsed-value - 1px; + } - $resolved-value: value-to-em($parsed-value); - } + $resolved-value: value-to-em($parsed-value); + } - $return: map.merge( - $return, - ( - $key: $resolved-value, - ) - ); - } + $return: map.merge( + $return, + ( + $key: $resolved-value, + ) + ); + } - @return $return; + @return $return; } @function validate-query($query) { - $breakpoints: defaults.$breakpoints; - $return: null; + $breakpoints: defaults.$breakpoints; + $return: null; - @if meta.type-of($query) == string and map.has-key($breakpoints, $query) { - @return map.get($breakpoints, $query); - } @else if meta.type-of($query) == number { - $return: $query; - } + @if meta.type-of($query) == string and map.has-key($breakpoints, $query) { + @return map.get($breakpoints, $query); + } @else if meta.type-of($query) == number { + $return: $query; + } - @return $return; + @return $return; } diff --git a/tools/_rem.scss b/tools/_rem.scss index 537ed84..157c491 100644 --- a/tools/_rem.scss +++ b/tools/_rem.scss @@ -1,6 +1,6 @@ /* ========================================================================== - tools.rem - functions an mixins to make life with `rem` units easy + tools.rem + functions an mixins to make life with `rem` units easy / =========================================================================== */ @use 'sass:math'; @@ -13,14 +13,14 @@ * Converts a single px value to a rem unit based on the current browser context */ @function to-rem($value) { - @if (meta.type-of($value) == string) or - (math.is-unitless($value) == true) or - (math.unit($value) != 'px') - { - @return $value; - } @else { - @return (math.div($value, defaults.$font-size) * 1rem); - } + @if (meta.type-of($value) == string) or + (math.is-unitless($value) == true) or + (math.unit($value) != 'px') + { + @return $value; + } @else { + @return (math.div($value, defaults.$font-size) * 1rem); + } } /** @@ -31,13 +31,13 @@ rem.convert(0 auto 300px); rem.convert(26px); */ @function convert($value) { - @if meta.type-of($value) == list { - $all: (); - @for $i from 1 through list.length($value) { - $all: list.append($all, to-rem(list.nth($value, $i))); - } - @return $all; - } @else { - @return to-rem($value); - } + @if meta.type-of($value) == list { + $all: (); + @for $i from 1 through list.length($value) { + $all: list.append($all, to-rem(list.nth($value, $i))); + } + @return $all; + } @else { + @return to-rem($value); + } } diff --git a/tools/_responsive.scss b/tools/_responsive.scss index 625980c..a2a7091 100644 --- a/tools/_responsive.scss +++ b/tools/_responsive.scss @@ -1,6 +1,6 @@ /* ========================================================================== - tools.responsive - As per: https://web.dev/new-responsive/#conclusion + tools.responsive + As per: https://web.dev/new-responsive/#conclusion / =========================================================================== */ @use 'sass:list'; @@ -13,7 +13,7 @@ @use 'rem'; /* -------------------------------------------------------------------------- - User preference + User preference / --------------------------------------------------------------------------- */ /** @@ -26,36 +26,36 @@ --color-slate: #cccccc; @include responsive.color-scheme() { - // Dark theme colors - --color-slate: #000000; + // Dark theme colors + --color-slate: #000000; } } */ @mixin color-scheme($dark: true, $attribute: data-user-color-scheme) { - $mode: 'dark'; - @if $dark == true { - --color-mode: 'light'; - } @else { - $mode: 'light'; - - --color-mode: 'dark'; - } - - @media (prefers-color-scheme: #{$mode}) { - --color-mode: '#{$mode}'; - - &:not([#{$attribute}]) { - @content; - } - } - - &[#{$attribute}='#{$mode}'] { - @content; - } + $mode: 'dark'; + @if $dark == true { + --color-mode: 'light'; + } @else { + $mode: 'light'; + + --color-mode: 'dark'; + } + + @media (prefers-color-scheme: #{$mode}) { + --color-mode: '#{$mode}'; + + &:not([#{$attribute}]) { + @content; + } + } + + &[#{$attribute}='#{$mode}'] { + @content; + } } /* -------------------------------------------------------------------------- - Viewport & formfactor + Viewport & formfactor / --------------------------------------------------------------------------- */ /** @@ -72,13 +72,13 @@ } */ @mixin mq($name, $type: all) { - @if not map.has-key(defaults.$queries, $name) { - @error '"defaults.$queries" does not contain "#{$name}", expects one of the following: #{map.keys(defaults.$queries)}'; // stylelint-disable-line max-line-length - } + @if not map.has-key(defaults.$queries, $name) { + @error '"defaults.$queries" does not contain "#{$name}", expects one of the following: #{map.keys(defaults.$queries)}'; // stylelint-disable-line max-line-length + } - @media #{$type} and #{functions.get-breakpoints(map.get(defaults.$queries, $name))} { - @content; - } + @media #{$type} and #{functions.get-breakpoints(map.get(defaults.$queries, $name))} { + @content; + } } /** @@ -89,28 +89,28 @@ $in-query-YOURMODULE: (lap, desk); .your-module { @include responsive.in-query($in-query-YOURMODULE) { - outline: 1px solid #ff0000; + outline: 1px solid #ff0000; } } */ @mixin in-query($queries) { - @content; - - @if meta.type-of($queries) == list { - @each $query in $queries { - @include mq($query) { - &#{defaults.$responsive-modifier}#{$query} { - @content; - } - } - } - } @else if meta.type-of($queries) == string { - @include mq($queries) { - &#{defaults.$responsive-modifier}#{$queries} { - @content; - } - } - } + @content; + + @if meta.type-of($queries) == list { + @each $query in $queries { + @include mq($query) { + &#{defaults.$responsive-modifier}#{$query} { + @content; + } + } + } + } @else if meta.type-of($queries) == string { + @include mq($queries) { + &#{defaults.$responsive-modifier}#{$queries} { + @content; + } + } + } } /** @@ -126,51 +126,51 @@ font-size: responsive.lock(18px, 24px); padding: responsive.lock(18px, 24px, desk, wall); */ @function lock($size-min: 16px, $size-max: 20px, $min-bp: lap, $max-bp: desk) { - $return: $size-min; - - @if map.has-key(defaults.$breakpoints, $min-bp) and - map.has-key(defaults.$breakpoints, $max-bp) - { - @if (math.unit($size-min) == 'px') and - (math.unit($size-max) == 'px') and - (math.unit(map.get(defaults.$breakpoints, $min-bp)) == 'px') and - (math.unit(map.get(defaults.$breakpoints, $max-bp)) == 'px') - { - // stylelint-disable-line max-line-length - $min-bp-value: map.get(defaults.$breakpoints, $min-bp); - $max-bp-value: map.get(defaults.$breakpoints, $max-bp); - - // Breakpoints - $min-bp-rem-unitless: functions.strip-units(rem.convert($min-bp-value)); - $max-bp-rem-unitless: functions.strip-units(rem.convert($max-bp-value)); - - // Sizes - $size-min-rem: rem.convert($size-min); - $size-min-rem-unitless: functions.strip-units($size-min-rem); - $size-max-rem: rem.convert($size-max); - $size-max-rem-unitless: functions.strip-units($size-max-rem); - - // Calculations - $slope: math.div( - ($size-max-rem-unitless - $size-min-rem-unitless), - ($max-bp-rem-unitless - $min-bp-rem-unitless) - ); - $y-axis-intersection: ( - (-($min-bp-rem-unitless) * $slope) + $size-min-rem-unitless - ); - - // fill up return - $return: clamp( - #{$size-min-rem}, - #{$y-axis-intersection * 1rem} + #{($slope * 100) * 1vw}, - #{$size-max-rem} - ); - } @else { - @error '$size-min, $size-max, $min-bp and $max-bp should be defined in px.'; - } - } @else { - @error '`$min-bp: #{$min-bp}` or `$max-bp: #{$max-bp}` should be defined in `defaults.$breakpoints`'; - } - - @return $return; + $return: $size-min; + + @if map.has-key(defaults.$breakpoints, $min-bp) and + map.has-key(defaults.$breakpoints, $max-bp) + { + @if (math.unit($size-min) == 'px') and + (math.unit($size-max) == 'px') and + (math.unit(map.get(defaults.$breakpoints, $min-bp)) == 'px') and + (math.unit(map.get(defaults.$breakpoints, $max-bp)) == 'px') + { + // stylelint-disable-line max-line-length + $min-bp-value: map.get(defaults.$breakpoints, $min-bp); + $max-bp-value: map.get(defaults.$breakpoints, $max-bp); + + // Breakpoints + $min-bp-rem-unitless: functions.strip-units(rem.convert($min-bp-value)); + $max-bp-rem-unitless: functions.strip-units(rem.convert($max-bp-value)); + + // Sizes + $size-min-rem: rem.convert($size-min); + $size-min-rem-unitless: functions.strip-units($size-min-rem); + $size-max-rem: rem.convert($size-max); + $size-max-rem-unitless: functions.strip-units($size-max-rem); + + // Calculations + $slope: math.div( + ($size-max-rem-unitless - $size-min-rem-unitless), + ($max-bp-rem-unitless - $min-bp-rem-unitless) + ); + $y-axis-intersection: ( + (-($min-bp-rem-unitless) * $slope) + $size-min-rem-unitless + ); + + // fill up return + $return: clamp( + #{$size-min-rem}, + #{$y-axis-intersection * 1rem} + #{($slope * 100) * 1vw}, + #{$size-max-rem} + ); + } @else { + @error '$size-min, $size-max, $min-bp and $max-bp should be defined in px.'; + } + } @else { + @error '`$min-bp: #{$min-bp}` or `$max-bp: #{$max-bp}` should be defined in `defaults.$breakpoints`'; + } + + @return $return; } diff --git a/tools/_space.scss b/tools/_space.scss index e53df71..71ab75b 100644 --- a/tools/_space.scss +++ b/tools/_space.scss @@ -1,5 +1,5 @@ /* ========================================================================== - tools.space + tools.space / =========================================================================== */ @use 'sass:map'; @@ -7,22 +7,22 @@ @use './rem'; /* -------------------------------------------------------------------------- - Functions + Functions / --------------------------------------------------------------------------- */ /** * Get space-factor */ @function get-factor($name: 'base') { - @if map.has-key(defaults.$space-factors, $name) == false { - @error '`#{$name}` is not present in `defaults.$space-factors`.'; - } - @return map.get(defaults.$space-factors, $name); + @if map.has-key(defaults.$space-factors, $name) == false { + @error '`#{$name}` is not present in `defaults.$space-factors`.'; + } + @return map.get(defaults.$space-factors, $name); } /** * Get `rem`mified space */ @function get($name: 'base') { - @return rem.convert(defaults.$baseline * get-factor($name)); + @return rem.convert(defaults.$baseline * get-factor($name)); } diff --git a/tools/_typography.scss b/tools/_typography.scss index b23e8fe..f482b4d 100644 --- a/tools/_typography.scss +++ b/tools/_typography.scss @@ -1,5 +1,5 @@ /* ========================================================================== - tools.typography + tools.typography / =========================================================================== */ @use 'sass:meta'; @@ -26,44 +26,44 @@ @include typography.font-size(24px, $modifier: -1); */ @mixin font-size( - $font-size, - $line-height: auto, - $modifier: 0, - $important: false + $font-size, + $line-height: auto, + $modifier: 0, + $important: false ) { - @if meta.type-of($font-size) == number { - @if math.unit($font-size) != 'px' { - @error '`#{$font-size}` needs to be a pixel value.'; - } - } @else { - @error '`#{$font-size}` needs to be a number.'; - } + @if meta.type-of($font-size) == number { + @if math.unit($font-size) != 'px' { + @error '`#{$font-size}` needs to be a pixel value.'; + } + } @else { + @error '`#{$font-size}` needs to be a number.'; + } - @if $important == true { - $important: '!important'; - } @else if $important == false { - $important: null; - } @else { - @error '`#{$important}` needs to be `true` or `false`.'; - } - font-size: rem.convert($font-size); + @if $important == true { + $important: '!important'; + } @else if $important == false { + $important: null; + } @else { + @error '`#{$important}` needs to be `true` or `false`.'; + } + font-size: rem.convert($font-size); - @if $line-height == 'auto' { - // Define how many grid lines each text line should span. - // By default, we set it to the minimum number of lines necessary - // in order to contain the defined font-size, +1 for some breathing room. - // This can be modified with the `$modifier` parameter. - $lines: math.ceil(math.div($font-size, defaults.$baseline)) + $modifier + 1; - $line-height: $lines * defaults.$baseline; - line-height: math.div($line-height, $font-size) $important; - } @else { - @if (meta.type-of($line-height) == number) or - ($line-height == 'inherit') or - ($line-height == 'normal') - { - line-height: $line-height $important; - } @else if $line-height != 'none' and $line-height != false { - @error 'Oh noes! `#{$line-height}` is not a valid value for `$line-height`.'; - } - } + @if $line-height == 'auto' { + // Define how many grid lines each text line should span. + // By default, we set it to the minimum number of lines necessary + // in order to contain the defined font-size, +1 for some breathing room. + // This can be modified with the `$modifier` parameter. + $lines: math.ceil(math.div($font-size, defaults.$baseline)) + $modifier + 1; + $line-height: $lines * defaults.$baseline; + line-height: math.div($line-height, $font-size) $important; + } @else { + @if (meta.type-of($line-height) == number) or + ($line-height == 'inherit') or + ($line-height == 'normal') + { + line-height: $line-height $important; + } @else if $line-height != 'none' and $line-height != false { + @error 'Oh noes! `#{$line-height}` is not a valid value for `$line-height`.'; + } + } } diff --git a/utilities/clearfix/README.md b/utilities/clearfix/README.md index 2e74634..0379b77 100644 --- a/utilities/clearfix/README.md +++ b/utilities/clearfix/README.md @@ -16,13 +16,13 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
- -

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda - temporibus numquam repellendus repellat eaque illum, praesentium facere iure - fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut - doloribus adipisci. -

+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium facere iure + fugiat obcaecati? Facere, reprehenderit recusandae quae ea numquam id ut + doloribus adipisci. +

``` diff --git a/utilities/clearfix/_index.scss b/utilities/clearfix/_index.scss index c9c0bae..241d491 100644 --- a/utilities/clearfix/_index.scss +++ b/utilities/clearfix/_index.scss @@ -1,6 +1,6 @@ /* ========================================================================== - utilities.clearfix - Clears floats. + utilities.clearfix + Clears floats. / =========================================================================== */ /** @@ -8,5 +8,5 @@ * As per: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context#Using_display_flow-root */ .u-clearfix { - display: flow-root; + display: flow-root; } diff --git a/utilities/clearfix/test.html b/utilities/clearfix/test.html index fcd3e5c..79f3fb3 100644 --- a/utilities/clearfix/test.html +++ b/utilities/clearfix/test.html @@ -1,37 +1,37 @@ - - - - Test utilities.clearfix - Supple CSS - - - -
-

Supple CSS: utilities.clearfix tests

+ + + + Test utilities.clearfix - Supple CSS + + + +
+

Supple CSS: utilities.clearfix tests

-

.u-clearfix

-

the container should clear the floated images

-
-
- -

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda - temporibus numquam repellendus repellat eaque illum, praesentium - facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae - ea numquam id ut doloribus adipisci. -

- -

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus - asperiores minima porro nemo, perferendis magni molestias rem illum, - inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus - rerum eveniet sint? -

-
-
- -
- - +

.u-clearfix

+

the container should clear the floated images

+
+
+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda + temporibus numquam repellendus repellat eaque illum, praesentium + facere iure fugiat obcaecati? Facere, reprehenderit recusandae quae + ea numquam id ut doloribus adipisci. +

+ +

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Temporibus + asperiores minima porro nemo, perferendis magni molestias rem illum, + inventore fuga sunt! Amet, quisquam voluptatum hic modi doloribus + rerum eveniet sint? +

+
+
+ +
+ + diff --git a/utilities/colspan/README.md b/utilities/colspan/README.md index 0c89ccc..453bd23 100644 --- a/utilities/colspan/README.md +++ b/utilities/colspan/README.md @@ -22,15 +22,15 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
-
spans 7 of 12 columns
-
spans 5 of 12 columns
+
spans 7 of 12 columns
+
spans 5 of 12 columns
``` ```html
-
spans 7 of 12 columns
-
spans 5 of 12 columns
+
spans 7 of 12 columns
+
spans 5 of 12 columns
``` @@ -52,27 +52,25 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colspan' with - ( - $columns: 10, - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/colspan' with ( + $columns: 10, + $in-query: ( + lap, + desk, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colspan/variables' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/colspan/variables' with ( + $in-query: ( + lap, + desk, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/colspan'; diff --git a/utilities/colspan/_index.scss b/utilities/colspan/_index.scss index 4372f88..909328f 100644 --- a/utilities/colspan/_index.scss +++ b/utilities/colspan/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - utilities.colspan - Classes provide a colspan custom property for use in objects or - components which can handle colspans eg. `object.layout` or `object.mesh`. + utilities.colspan + Classes provide a colspan custom property for use in objects or + components which can handle colspans eg. `object.layout` or `object.mesh`. / =========================================================================== */ /** @@ -20,25 +20,25 @@ @use './tools'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ @include tools.build; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build( - '#{defaults.$responsive-modifier}#{variables.$in-query}' - ); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/colspan/_tools.scss b/utilities/colspan/_tools.scss index 944da53..5449017 100644 --- a/utilities/colspan/_tools.scss +++ b/utilities/colspan/_tools.scss @@ -1,14 +1,14 @@ /* ========================================================================== - utilities.colspan.tools - Functions and/or mixins used in this module + utilities.colspan.tools + Functions and/or mixins used in this module / =========================================================================== */ @use './variables'; @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-colspan-#{$i}#{$modifier} { - --colspan: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-colspan-#{$i}#{$modifier} { + --colspan: #{$i}; + } + } } diff --git a/utilities/colspan/_variables.scss b/utilities/colspan/_variables.scss index 7e313f7..8effc60 100644 --- a/utilities/colspan/_variables.scss +++ b/utilities/colspan/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.colspan.variables + utilities.colspan.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -16,6 +16,6 @@ $columns: defaults.$columns !default; $in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/colstart/README.md b/utilities/colstart/README.md index fb8ed65..f70a21f 100644 --- a/utilities/colstart/README.md +++ b/utilities/colstart/README.md @@ -22,8 +22,8 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
-
starts at column 3
-
starts at column 7
+
starts at column 3
+
starts at column 7
``` @@ -45,27 +45,25 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colstart' with - ( - $columns: 10, - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/colstart' with ( + $columns: 10, + $in-query: ( + lap, + desk, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/colstart/variables' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/colstart/variables' with ( + $in-query: ( + lap, + desk, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/colstart'; diff --git a/utilities/colstart/_index.scss b/utilities/colstart/_index.scss index 7e5459c..3641bf3 100644 --- a/utilities/colstart/_index.scss +++ b/utilities/colstart/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - utilities.colstart - Classes provide a column-start custom property for use in objects - or components which can handle column-starts eg. `object.mesh`. + utilities.colstart + Classes provide a column-start custom property for use in objects + or components which can handle column-starts eg. `object.mesh`. / =========================================================================== */ /** @@ -20,25 +20,25 @@ @use './tools'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ @include tools.build; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build( - '#{defaults.$responsive-modifier}#{variables.$in-query}' - ); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/colstart/_tools.scss b/utilities/colstart/_tools.scss index a535af0..3385b2e 100644 --- a/utilities/colstart/_tools.scss +++ b/utilities/colstart/_tools.scss @@ -1,14 +1,14 @@ /* ========================================================================== - utilities.colstart.tools - Functions and/or mixins used in this module + utilities.colstart.tools + Functions and/or mixins used in this module / =========================================================================== */ @use './variables'; @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-colstart-#{$i}#{$modifier} { - --colstart: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-colstart-#{$i}#{$modifier} { + --colstart: #{$i}; + } + } } diff --git a/utilities/colstart/_variables.scss b/utilities/colstart/_variables.scss index 6d20b1b..cdd2a4e 100644 --- a/utilities/colstart/_variables.scss +++ b/utilities/colstart/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.colstart.variables + utilities.colstart.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -16,6 +16,6 @@ $columns: defaults.$columns !default; $in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/columns/README.md b/utilities/columns/README.md index 181ef88..f695082 100644 --- a/utilities/columns/README.md +++ b/utilities/columns/README.md @@ -22,8 +22,8 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
-
spans 3 of 10 columns
-
spans 7 of 10 columns
+
spans 3 of 10 columns
+
spans 7 of 10 columns
``` @@ -45,27 +45,25 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/columns' with - ( - $columns: 10, - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/columns' with ( + $columns: 10, + $in-query: ( + lap, + desk, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/columns/variables' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/columns/variables' with ( + $in-query: ( + lap, + desk, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/columns'; diff --git a/utilities/columns/_index.scss b/utilities/columns/_index.scss index 0d2d556..5b01cba 100644 --- a/utilities/columns/_index.scss +++ b/utilities/columns/_index.scss @@ -1,8 +1,8 @@ /* ========================================================================== - utilities.columns - Classes provide a column custom property for use in objects - or components which can handle columns eg. `object.mesh` and - `objects.layout`. + utilities.columns + Classes provide a column custom property for use in objects + or components which can handle columns eg. `object.mesh` and + `objects.layout`. / =========================================================================== */ /** @@ -21,25 +21,25 @@ @use './tools'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ @include tools.build; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build( - '#{defaults.$responsive-modifier}#{variables.$in-query}' - ); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/columns/_tools.scss b/utilities/columns/_tools.scss index 31f3742..1a0ab37 100644 --- a/utilities/columns/_tools.scss +++ b/utilities/columns/_tools.scss @@ -1,14 +1,14 @@ /* ========================================================================== - utilities.colums.tools - Functions and/or mixins used in this module + utilities.colums.tools + Functions and/or mixins used in this module / =========================================================================== */ @use './variables'; @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-columns-#{$i}#{$modifier} { - --columns: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-columns-#{$i}#{$modifier} { + --columns: #{$i}; + } + } } diff --git a/utilities/columns/_variables.scss b/utilities/columns/_variables.scss index 4e9e773..8b94f52 100644 --- a/utilities/columns/_variables.scss +++ b/utilities/columns/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.columns.variables + utilities.columns.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -16,6 +16,6 @@ $columns: defaults.$columns !default; $in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/hidden/README.md b/utilities/hidden/README.md index 3770888..9d96d79 100644 --- a/utilities/hidden/README.md +++ b/utilities/hidden/README.md @@ -17,10 +17,10 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html ``` @@ -30,10 +30,10 @@ When you set media queries in `$in-query` you can use them like this: ```html ``` @@ -54,25 +54,23 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/hidden' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/hidden' with ( + $in-query: ( + lap, + desk, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/hidden/variables' with - ( - $in-query: ( - lap, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/hidden/variables' with ( + $in-query: ( + lap, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/hidden'; diff --git a/utilities/hidden/_index.scss b/utilities/hidden/_index.scss index 934400c..375564f 100644 --- a/utilities/hidden/_index.scss +++ b/utilities/hidden/_index.scss @@ -1,6 +1,6 @@ /* ========================================================================== - utilities.hidden - Completely remove from the flow and hide it from screenreaders + utilities.hidden + Completely remove from the flow and hide it from screenreaders / =========================================================================== */ /** @@ -15,11 +15,11 @@ @use '../../tools/responsive'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ .u-hidden { - @include responsive.in-query(variables.$in-query) { - display: none !important; - } + @include responsive.in-query(variables.$in-query) { + display: none !important; + } } diff --git a/utilities/hidden/_variables.scss b/utilities/hidden/_variables.scss index a5cedfe..49b7b47 100644 --- a/utilities/hidden/_variables.scss +++ b/utilities/hidden/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.hidden.variables + utilities.hidden.variables / =========================================================================== */ /** @@ -10,6 +10,6 @@ $in-query: (lap, desk); * * Note: the name of the query must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/hidden/test.html b/utilities/hidden/test.html index 48d223f..4f1cd49 100644 --- a/utilities/hidden/test.html +++ b/utilities/hidden/test.html @@ -1,27 +1,27 @@ - - - - Test utilities.hidden - Supple CSS - - - -
-

Supple CSS: utilities.hidden tests

+ + + + Test utilities.hidden - Supple CSS + + + +
+

Supple CSS: utilities.hidden tests

-

.u-hidden

+

.u-hidden

-

- renders "with some hidden text" as totally hidden. -

-
- -
- -
- - +

+ renders "with some hidden text" as totally hidden. +

+
+ +
+ +
+ + diff --git a/utilities/offset/README.md b/utilities/offset/README.md index 96ae001..f12d1b1 100644 --- a/utilities/offset/README.md +++ b/utilities/offset/README.md @@ -22,8 +22,8 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html
-
starts a column 3
-
starts a column 7
+
starts a column 3
+
starts a column 7
``` @@ -45,27 +45,25 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/offset' with - ( - $columns: 10, - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/offset' with ( + $columns: 10, + $in-query: ( + lap, + desk, + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/offset/variables' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/offset/variables' with ( + $in-query: ( + lap, + desk, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/offset'; diff --git a/utilities/offset/_index.scss b/utilities/offset/_index.scss index 94d7510..edd8fb4 100644 --- a/utilities/offset/_index.scss +++ b/utilities/offset/_index.scss @@ -1,7 +1,7 @@ /* ========================================================================== - utilities.offset - Classes provide a offset custom property for use in objects - or components which can handle offsets eg. `object.layout`. + utilities.offset + Classes provide a offset custom property for use in objects + or components which can handle offsets eg. `object.layout`. / =========================================================================== */ /** @@ -20,25 +20,25 @@ @use './tools'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ @include tools.build; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build( - '#{defaults.$responsive-modifier}#{variables.$in-query}' - ); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/offset/_tools.scss b/utilities/offset/_tools.scss index ba984cf..b0438a9 100644 --- a/utilities/offset/_tools.scss +++ b/utilities/offset/_tools.scss @@ -1,14 +1,14 @@ /* ========================================================================== - utilities.offset.tools - Functions and/or mixins used in this module + utilities.offset.tools + Functions and/or mixins used in this module / =========================================================================== */ @use './variables'; @mixin build($modifier: '') { - @for $i from 1 through variables.$columns { - .u-offset-#{$i}#{$modifier} { - --offset: #{$i}; - } - } + @for $i from 1 through variables.$columns { + .u-offset-#{$i}#{$modifier} { + --offset: #{$i}; + } + } } diff --git a/utilities/offset/_variables.scss b/utilities/offset/_variables.scss index aa289d9..96a2822 100644 --- a/utilities/offset/_variables.scss +++ b/utilities/offset/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.offset.variables + utilities.offset.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -16,6 +16,6 @@ $columns: defaults.$columns !default; $in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/spacing/README.md b/utilities/spacing/README.md index 21a748c..f581212 100644 --- a/utilities/spacing/README.md +++ b/utilities/spacing/README.md @@ -18,22 +18,22 @@ This utility generates set of classes mostly used by Supple's users. You can add ```html
- Applies margin on all sides with the value of `space.get('base')` + Applies margin on all sides with the value of `space.get('base')`
- Applies margin at the start of the inline axis with the value of - `space.get('base')` + Applies margin at the start of the inline axis with the value of + `space.get('base')`
- Applies margin at the start of the inline axis with the value of - `space.get('large')` + Applies margin at the start of the inline axis with the value of + `space.get('large')`
- Applies padding at the start and end of the block axis with the value of - `space.get('base')` + Applies padding at the start and end of the block axis with the value of + `space.get('base')`
``` @@ -45,9 +45,9 @@ When you set media queries in `$in-query` you can use them like this: ```html
- Applies padding at the start of the block axis with the `tiny` spacing value - until `palm` breakpoint. Applies padding at the start of the block axis with - the value of `base` spacing value from `palm` breakpoint. + Applies padding at the start of the block axis with the `tiny` spacing value + until `palm` breakpoint. Applies padding at the start of the block axis with + the value of `base` spacing value from `palm` breakpoint.
``` @@ -67,21 +67,21 @@ The properties that you want to generate spacings for. `key` is the classname, ` ```scss $properties: ( - 'padding': 'padding', - // generates `u-padding` - 'margin': 'margin', - // generates `u-margin` + 'padding': 'padding', + // generates `u-padding` + 'margin': 'margin', + // generates `u-margin` ); // or $properties: ( - 'p': 'padding', - // generates `u-p` - 'm': 'margin', - // generates `u-m` - 'i': 'inset', - // generates `u-i` + 'p': 'padding', + // generates `u-p` + 'm': 'margin', + // generates `u-m` + 'i': 'inset', + // generates `u-i` ); ``` @@ -89,7 +89,7 @@ $properties: ( ```scss $properties: ( - 'margin-block-end': 'margin-block-end', + 'margin-block-end': 'margin-block-end', ); ``` @@ -117,34 +117,32 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/spacing' with - ( - $in-query: ( - lap, - desk, - ), - $properties: ( - 'm': 'margin', - 'p': 'padding', - ), - $sizes: ( - 'base', - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/spacing' with ( + $in-query: ( + lap, + desk, + ), + $properties: ( + 'm': 'margin', + 'p': 'padding', + ), + $sizes: ( + 'base', + ) +); ``` or ```scss // in your own variable file, eg. `_vars.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/spacing/variables' with - ( - $in-query: lap, - $sizes: ( - 'tiny', - 'large', - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/spacing/variables' with ( + $in-query: lap, + $sizes: ( + 'tiny', + 'large', + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/spacing'; diff --git a/utilities/spacing/_index.scss b/utilities/spacing/_index.scss index 00be0d7..a7e3dd4 100644 --- a/utilities/spacing/_index.scss +++ b/utilities/spacing/_index.scss @@ -1,11 +1,11 @@ /* ========================================================================== - utilities.spacing - Utility classes to put specific spacing values onto elements. - The loop can generate us a suite of classes like: + utilities.spacing + Utility classes to put specific spacing values onto elements. + The loop can generate us a suite of classes like: - .u-padding-inline-start--large {} - .u-margin-inline-end--small {} - .u-padding-block--base {} + .u-padding-inline-start--large {} + .u-margin-inline-end--small {} + .u-padding-block--base {} / =========================================================================== */ /** @@ -24,25 +24,25 @@ @use './tools'; /* -------------------------------------------------------------------------- - Module + Module / --------------------------------------------------------------------------- */ @include tools.build; /* -------------------------------------------------------------------------- - Responsive + Responsive / --------------------------------------------------------------------------- */ @if meta.type-of(variables.$in-query) == 'list' { - @each $query in variables.$in-query { - @include responsive.mq($query) { - @include tools.build('#{defaults.$responsive-modifier}#{$query}'); - } - } + @each $query in variables.$in-query { + @include responsive.mq($query) { + @include tools.build('#{defaults.$responsive-modifier}#{$query}'); + } + } } @else { - @include responsive.mq(variables.$in-query) { - @include tools.build( - '#{defaults.$responsive-modifier}#{variables.$in-query}' - ); - } + @include responsive.mq(variables.$in-query) { + @include tools.build( + '#{defaults.$responsive-modifier}#{variables.$in-query}' + ); + } } diff --git a/utilities/spacing/_tools.scss b/utilities/spacing/_tools.scss index e519197..fc5b228 100644 --- a/utilities/spacing/_tools.scss +++ b/utilities/spacing/_tools.scss @@ -1,17 +1,17 @@ /* ========================================================================== - utilities.spacing.tools - Functions and/or mixins used in this module + utilities.spacing.tools + Functions and/or mixins used in this module / =========================================================================== */ @use './variables'; @use '../../tools/space'; @mixin build($modifier: '') { - @each $property-namespace, $property in variables.$properties { - @each $size in variables.$sizes { - .u-#{$property-namespace}--#{$size}#{$modifier} { - #{$property}: space.get($size); - } - } - } + @each $property-namespace, $property in variables.$properties { + @each $size in variables.$sizes { + .u-#{$property-namespace}--#{$size}#{$modifier} { + #{$property}: space.get($size); + } + } + } } diff --git a/utilities/spacing/_variables.scss b/utilities/spacing/_variables.scss index 666155e..b2fea8c 100644 --- a/utilities/spacing/_variables.scss +++ b/utilities/spacing/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.spacing.variables + utilities.spacing.variables / =========================================================================== */ @use '../../settings/defaults'; @@ -23,7 +23,7 @@ $properties: ( * By default it's only margins we generate */ $properties: ( - 'margin-block-end': 'margin-block-end', + 'margin-block-end': 'margin-block-end', ) !default; /** @@ -46,6 +46,6 @@ $sizes: ('base') !default; $in-query: (lap, desk); * * Note: the name of the media query must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/visually-hidden/README.md b/utilities/visually-hidden/README.md index d2d34e2..165f316 100644 --- a/utilities/visually-hidden/README.md +++ b/utilities/visually-hidden/README.md @@ -17,10 +17,10 @@ Read more about [Supple CSS](https://github.com/supple-css/supple). ```html ``` @@ -30,11 +30,11 @@ When you set media queries in `$in-query` you can use them like this: ```html ``` @@ -55,13 +55,12 @@ You can overwrite the SCSS variables the following ways: ```scss // in your manifest file, eg. `styles.scss` -@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden' with - ( - $in-query: ( - lap, - desk, - ) - ); +@use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden' with ( + $in-query: ( + lap, + desk, + ) +); ``` or @@ -69,12 +68,11 @@ or ```scss // in your own variable file, eg. `_vars.scss` @use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden/variables' - with - ( - $in-query: ( - lap, - ) - ); + with ( + $in-query: ( + lap, + ) +); // in your manifest file, eg. `styles.scss` @use 'node_modules/@supple-kit/supple-css/utilities/visually-hidden'; diff --git a/utilities/visually-hidden/_index.scss b/utilities/visually-hidden/_index.scss index f19b96f..921f240 100644 --- a/utilities/visually-hidden/_index.scss +++ b/utilities/visually-hidden/_index.scss @@ -1,8 +1,8 @@ /* ========================================================================== - utilities.visually-hidden - Hides an element visually while still allowing the content to be accessible - to assistive technology, e.g. screen readers. - As per: https://a11yproject.com/posts/how-to-hide-content + utilities.visually-hidden + Hides an element visually while still allowing the content to be accessible + to assistive technology, e.g. screen readers. + As per: https://a11yproject.com/posts/how-to-hide-content / =========================================================================== */ /** @@ -18,7 +18,7 @@ @use '../../tools/responsive'; .u-visually-hidden { - @include responsive.in-query(variables.$in-query) { - @include a11y.visually-hidden; - } + @include responsive.in-query(variables.$in-query) { + @include a11y.visually-hidden; + } } diff --git a/utilities/visually-hidden/_variables.scss b/utilities/visually-hidden/_variables.scss index e2219c0..05815ca 100644 --- a/utilities/visually-hidden/_variables.scss +++ b/utilities/visually-hidden/_variables.scss @@ -1,5 +1,5 @@ /* ========================================================================== - utilities.visually-hidden.variables + utilities.visually-hidden.variables / =========================================================================== */ /** @@ -12,6 +12,6 @@ $in-query: (lap, desk); * * Note: the name of the breakpoint must exist in the list of `$queries` - * in `settings/defaults` + * in `settings/defaults` */ $in-query: () !default; diff --git a/utilities/visually-hidden/test.html b/utilities/visually-hidden/test.html index e62885e..969da6d 100644 --- a/utilities/visually-hidden/test.html +++ b/utilities/visually-hidden/test.html @@ -1,29 +1,29 @@ - - - - Test utilities.visually-hidden - Supple CSS - - - -
-

Supple CSS: utilities.visually-hidden tests

+ + + + Test utilities.visually-hidden - Supple CSS + + + +
+

Supple CSS: utilities.visually-hidden tests

-

.u-visually-hidden

+

.u-visually-hidden

-

- renders "with some hidden text" as hidden visually but available for - assistive technology. -

-
- -
- -
- - +

+ renders "with some hidden text" as hidden visually but available for + assistive technology. +

+
+ +
+ +
+ + From 3237b6c74a8dfb650acd8f0e45bd13fa2b4c2673 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 14:29:55 +0100 Subject: [PATCH 22/25] remove stylelint-disable-line for :focus-visible --- generic/reset/_index.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/generic/reset/_index.scss b/generic/reset/_index.scss index 09e0088..3aeec46 100644 --- a/generic/reset/_index.scss +++ b/generic/reset/_index.scss @@ -129,7 +129,6 @@ pre { * As per: https://twitter.com/LeaVerou/status/1045768279753666562 */ :focus:not(:focus-visible) { - // stylelint-disable-line selector-pseudo-class-no-unknown outline: none; } From af83864d839d83d953bcf0f9e4fe9f0f417cd619 Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 6 Dec 2021 14:42:20 +0100 Subject: [PATCH 23/25] added nano-staged & simple-git-hooks to enforce formatting before commit --- package-lock.json | 42 ++++++++++++++++++++++++++++++++++++++++++ package.json | 9 +++++++++ 2 files changed, 51 insertions(+) diff --git a/package-lock.json b/package-lock.json index 2f95a83..b629a3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,11 +27,13 @@ "cssnano": "^5.0.12", "glob": "^7.2.0", "gzip-size-cli": "^5.1.0", + "nano-staged": "^0.4.2", "nodemon": "^2.0.15", "postcss": "^8.4.4", "postcss-cli": "^9.0.2", "prettier": "^2.5.1", "sass": "^1.44.0", + "simple-git-hooks": "^2.7.0", "stylelint": "^14.1.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard-scss": "^3.0.0" @@ -3175,6 +3177,21 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "node_modules/nano-staged": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.4.2.tgz", + "integrity": "sha512-oqekxuqz7IttN9zbSBrot7PjZnlMQT5WUaXluvUoN1t8rQGIKDuYBoTsnUFEGOdiDQHoo4pUfdSjfE/CP5f+QA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + }, + "bin": { + "nano-staged": "lib/bin.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -4962,6 +4979,16 @@ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, + "node_modules/simple-git-hooks": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz", + "integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "simple-git-hooks": "cli.js" + } + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -8852,6 +8879,15 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "nano-staged": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.4.2.tgz", + "integrity": "sha512-oqekxuqz7IttN9zbSBrot7PjZnlMQT5WUaXluvUoN1t8rQGIKDuYBoTsnUFEGOdiDQHoo4pUfdSjfE/CP5f+QA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0" + } + }, "nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -10118,6 +10154,12 @@ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, + "simple-git-hooks": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/simple-git-hooks/-/simple-git-hooks-2.7.0.tgz", + "integrity": "sha512-nQe6ASMO9zn5/htIrU37xEIHGr9E6wikXelLbOeTcfsX2O++DHaVug7RSQoq+kO7DvZTH37WA5gW49hN9HTDmQ==", + "dev": true + }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", diff --git a/package.json b/package.json index cebd249..22b5d4e 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,13 @@ "watch": "nodemon -e scss -x \"npm run test\"", "start": "concurrently 'npm run serve' 'npm run watch'" }, + "nano-staged": { + "**/*": "prettier --write", + "*.scss": "stylelint" + }, + "simple-git-hooks": { + "pre-commit": "./node_modules/.bin/nano-staged" + }, "browserslist": [ "defaults" ], @@ -51,11 +58,13 @@ "cssnano": "^5.0.12", "glob": "^7.2.0", "gzip-size-cli": "^5.1.0", + "nano-staged": "^0.4.2", "nodemon": "^2.0.15", "postcss": "^8.4.4", "postcss-cli": "^9.0.2", "prettier": "^2.5.1", "sass": "^1.44.0", + "simple-git-hooks": "^2.7.0", "stylelint": "^14.1.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard-scss": "^3.0.0" From e36c4f846300440bffb3bde6a3441412b293274e Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Mon, 7 Feb 2022 19:22:08 +0100 Subject: [PATCH 24/25] Make responsive.lock work on root elements --- tools/_rem.scss | 4 +++- tools/_responsive.scss | 27 +++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/tools/_rem.scss b/tools/_rem.scss index 157c491..bb47fa0 100644 --- a/tools/_rem.scss +++ b/tools/_rem.scss @@ -12,12 +12,14 @@ * to-rem * Converts a single px value to a rem unit based on the current browser context */ -@function to-rem($value) { +@function to-rem($value, $font-size-override: false) { @if (meta.type-of($value) == string) or (math.is-unitless($value) == true) or (math.unit($value) != 'px') { @return $value; + } @else if $font-size-override and math.unit($font-size-override) == 'px' { + @return (math.div($value, $font-size-override) * 1rem); } @else { @return (math.div($value, defaults.$font-size) * 1rem); } diff --git a/tools/_responsive.scss b/tools/_responsive.scss index a2a7091..096fcef 100644 --- a/tools/_responsive.scss +++ b/tools/_responsive.scss @@ -127,6 +127,21 @@ padding: responsive.lock(18px, 24px, desk, wall); */ @function lock($size-min: 16px, $size-max: 20px, $min-bp: lap, $max-bp: desk) { $return: $size-min; + $root-font-size: defaults.$font-size; + + /** + * Check if responsive lock is used on a root element only, then set the root + * font-size to browser default 16px + */ + @if (list.length(&) == 1) and + ( + (string.unquote(list.nth(list.nth(&, 1), 1)) == 'html') or + (string.unquote(list.nth(list.nth(&, 1), 1)) == ':root') or + (string.unquote(list.nth(list.nth(&, 1), 1)) == ':host') + ) + { + $root-font-size: 16px; + } @if map.has-key(defaults.$breakpoints, $min-bp) and map.has-key(defaults.$breakpoints, $max-bp) @@ -141,13 +156,17 @@ padding: responsive.lock(18px, 24px, desk, wall); $max-bp-value: map.get(defaults.$breakpoints, $max-bp); // Breakpoints - $min-bp-rem-unitless: functions.strip-units(rem.convert($min-bp-value)); - $max-bp-rem-unitless: functions.strip-units(rem.convert($max-bp-value)); + $min-bp-rem-unitless: functions.strip-units( + rem.to-rem($min-bp-value, $root-font-size) + ); + $max-bp-rem-unitless: functions.strip-units( + rem.to-rem($max-bp-value, $root-font-size) + ); // Sizes - $size-min-rem: rem.convert($size-min); + $size-min-rem: rem.to-rem($size-min, $root-font-size); $size-min-rem-unitless: functions.strip-units($size-min-rem); - $size-max-rem: rem.convert($size-max); + $size-max-rem: rem.to-rem($size-max, $root-font-size); $size-max-rem-unitless: functions.strip-units($size-max-rem); // Calculations From 81677905a6629351f3db9dad7e73f80b4f8ac2eb Mon Sep 17 00:00:00 2001 From: Bram Smulders Date: Fri, 11 Feb 2022 16:52:53 +0100 Subject: [PATCH 25/25] Bump version --- CHANGELOG.md | 5 + package-lock.json | 1429 ++++++++++++++++++++------------------------- package.json | 18 +- 3 files changed, 646 insertions(+), 806 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f027cf..0ff733a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. +## 5.4.0 - 11-february-2022 + +- Fixed a bug where `responsive.lock` didn't work on any root element. +- General housekeeping by including prettier & upgrade stylelint + ## 5.3.0 - 10-november-2021 - Fixed a bug where `px` based media queries were not converted to `em` diff --git a/package-lock.json b/package-lock.json index b629a3b..1b920bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@supple-kit/supple-css", - "version": "5.3.0", + "version": "5.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@supple-kit/supple-css", - "version": "5.3.0", + "version": "5.4.0", "funding": [ { "type": "github", @@ -21,20 +21,20 @@ "devDependencies": { "@supple-kit/prettier-config": "^1.0.1", "@supple-kit/stylelint-config-supple": "^4.0.1", - "autoprefixer": "^10.4.0", + "autoprefixer": "^10.4.2", "browser-sync": "^2.27.7", - "concurrently": "^6.4.0", - "cssnano": "^5.0.12", + "concurrently": "^7.0.0", + "cssnano": "^5.0.17", "glob": "^7.2.0", "gzip-size-cli": "^5.1.0", - "nano-staged": "^0.4.2", + "nano-staged": "^0.5.0", "nodemon": "^2.0.15", - "postcss": "^8.4.4", - "postcss-cli": "^9.0.2", + "postcss": "^8.4.6", + "postcss-cli": "^9.1.0", "prettier": "^2.5.1", - "sass": "^1.44.0", + "sass": "^1.49.7", "simple-git-hooks": "^2.7.0", - "stylelint": "^14.1.0", + "stylelint": "^14.5.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard-scss": "^3.0.0" } @@ -281,9 +281,9 @@ "dev": true }, "node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -296,12 +296,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -394,17 +388,17 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", + "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, "dependencies": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "bin": { "autoprefixer": "bin/autoprefixer" @@ -671,13 +665,13 @@ } }, "node_modules/browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", - "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" @@ -826,9 +820,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001275", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001275.tgz", - "integrity": "sha512-ihJVvj8RX0kn9GgP43HKhb5q9s2XQn4nEQhdldEJvZhCsuiB2XOq6fAMYQZaN6FPWfsr2qU0cdL0CSbETwbJAg==", + "version": "1.0.30001311", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001311.tgz", + "integrity": "sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==", "dev": true, "funding": { "type": "opencollective", @@ -872,18 +866,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -974,9 +956,9 @@ "dev": true }, "node_modules/colord": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", - "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", "dev": true }, "node_modules/commander": { @@ -1010,9 +992,9 @@ "dev": true }, "node_modules/concurrently": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", - "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.0.0.tgz", + "integrity": "sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -1025,10 +1007,10 @@ "yargs": "^16.2.0" }, "bin": { - "concurrently": "bin/concurrently.js" + "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": ">=10.0.0" + "node": "^12.20.0 || ^14.13.0 || >=16.0.0" } }, "node_modules/concurrently/node_modules/ansi-styles": { @@ -1204,9 +1186,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", + "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", "dev": true, "dependencies": { "timsort": "^0.3.0" @@ -1218,17 +1200,26 @@ "postcss": "^8.0.9" } }, + "node_modules/css-functions-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.0.0.tgz", + "integrity": "sha512-rfwhBOvXVFcKrSwmLxD8JQyuEEy/3g3Y9FMI2l6iV558Coeo1ucXypXb4rwrVpk5Osh5ViXp2DTgafw8WxglhQ==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -1272,13 +1263,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.12.tgz", - "integrity": "sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg==", + "version": "5.0.17", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", + "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.1.8", - "is-resolvable": "^1.1.0", + "cssnano-preset-default": "^5.1.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -1294,40 +1284,40 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz", - "integrity": "sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", + "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.1", - "postcss-convert-values": "^5.0.2", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.4", - "postcss-merge-rules": "^5.0.3", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.2", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.3", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.2", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.3", - "postcss-unique-selectors": "^5.0.2" + "cssnano-utils": "^3.0.2", + "postcss-calc": "^8.2.0", + "postcss-colormin": "^5.2.5", + "postcss-convert-values": "^5.0.4", + "postcss-discard-comments": "^5.0.3", + "postcss-discard-duplicates": "^5.0.3", + "postcss-discard-empty": "^5.0.3", + "postcss-discard-overridden": "^5.0.4", + "postcss-merge-longhand": "^5.0.6", + "postcss-merge-rules": "^5.0.6", + "postcss-minify-font-values": "^5.0.4", + "postcss-minify-gradients": "^5.0.6", + "postcss-minify-params": "^5.0.5", + "postcss-minify-selectors": "^5.1.3", + "postcss-normalize-charset": "^5.0.3", + "postcss-normalize-display-values": "^5.0.3", + "postcss-normalize-positions": "^5.0.4", + "postcss-normalize-repeat-style": "^5.0.4", + "postcss-normalize-string": "^5.0.4", + "postcss-normalize-timing-functions": "^5.0.3", + "postcss-normalize-unicode": "^5.0.4", + "postcss-normalize-url": "^5.0.5", + "postcss-normalize-whitespace": "^5.0.4", + "postcss-ordered-values": "^5.0.5", + "postcss-reduce-initial": "^5.0.3", + "postcss-reduce-transforms": "^5.0.4", + "postcss-svgo": "^5.0.4", + "postcss-unique-selectors": "^5.0.4" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -1337,9 +1327,9 @@ } }, "node_modules/cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", + "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -1604,9 +1594,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.887", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.887.tgz", - "integrity": "sha512-QQUumrEjFDKSVYVdaeBmFdyQGoaV+fCSMyWHvfx/u22bRHSTeBQYt6P4jMY+gFd4kgKB9nqk7RMtWkDB49OYPA==", + "version": "1.4.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", "dev": true }, "node_modules/emoji-regex": { @@ -1783,9 +1773,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1795,7 +1785,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fastest-levenshtein": { @@ -1897,9 +1887,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true, "funding": [ { @@ -1917,9 +1907,9 @@ } }, "node_modules/fraction.js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", - "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", + "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", "dev": true, "engines": { "node": "*" @@ -2366,9 +2356,9 @@ } }, "node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" @@ -2499,15 +2489,6 @@ "node": ">=10" } }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2671,12 +2652,6 @@ "node": ">=6" } }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2762,9 +2737,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", - "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.24.0.tgz", + "integrity": "sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==", "dev": true }, "node_modules/latest-version": { @@ -3178,9 +3153,9 @@ "dev": true }, "node_modules/nano-staged": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.4.2.tgz", - "integrity": "sha512-oqekxuqz7IttN9zbSBrot7PjZnlMQT5WUaXluvUoN1t8rQGIKDuYBoTsnUFEGOdiDQHoo4pUfdSjfE/CP5f+QA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.5.0.tgz", + "integrity": "sha512-5jkhLvyZM974RmCyI8vt7zo0QK6GIAOCBe6e7L36awXIlG+40/5zJiDvESFrFmO4PhBCRm9lUlnH0SsWAFLDLg==", "dev": true, "dependencies": { "picocolors": "^1.0.0" @@ -3193,9 +3168,9 @@ } }, "node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -3214,9 +3189,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "node_modules/nodemon": { @@ -3605,14 +3580,14 @@ } }, "node_modules/postcss": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, "dependencies": { - "nanoid": "^3.1.30", + "nanoid": "^3.2.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -3623,22 +3598,22 @@ } }, "node_modules/postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-cli": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.2.tgz", - "integrity": "sha512-08Wujoy7YGhKCFrGsT9OXqWjtHlGQ+JmyaD/4McjCiwor2IUTRVzXiJd+xmLTGdSWjceS6/TePaJQwBlkVWHiw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", "dev": true, "dependencies": { "chokidar": "^3.3.0", @@ -3664,15 +3639,6 @@ "postcss": "^8.0.0" } }, - "node_modules/postcss-cli/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/postcss-cli/node_modules/fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -3699,32 +3665,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/postcss-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-cli/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/postcss-cli/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -3762,15 +3702,15 @@ } }, "node_modules/postcss-colormin": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz", - "integrity": "sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", + "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", "dev": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", "colord": "^2.9.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3780,12 +3720,12 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", - "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", + "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3795,9 +3735,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", + "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3807,9 +3747,9 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", + "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3819,9 +3759,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", + "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3831,9 +3771,9 @@ } }, "node_modules/postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", + "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3875,13 +3815,13 @@ "dev": true }, "node_modules/postcss-merge-longhand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", - "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", + "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.0.3" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3891,14 +3831,14 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", - "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", + "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", "dev": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", + "cssnano-utils": "^3.0.2", "postcss-selector-parser": "^6.0.5" }, "engines": { @@ -3909,12 +3849,12 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", + "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3924,14 +3864,14 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", - "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", + "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3941,15 +3881,14 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", - "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", + "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", "browserslist": "^4.16.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3959,12 +3898,11 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", + "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" }, "engines": { @@ -3975,9 +3913,9 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", + "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -3987,13 +3925,12 @@ } }, "node_modules/postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", + "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4003,12 +3940,12 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", + "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4018,13 +3955,12 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", + "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4034,12 +3970,12 @@ } }, "node_modules/postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", + "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4049,13 +3985,12 @@ } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", + "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4065,13 +4000,13 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", + "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", "dev": true, "dependencies": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4081,14 +4016,13 @@ } }, "node_modules/postcss-normalize-url": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", - "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", + "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", "dev": true, "dependencies": { - "is-absolute-url": "^3.0.3", "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4098,12 +4032,12 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", + "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4113,13 +4047,13 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", + "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4129,9 +4063,9 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", - "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", + "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -4145,13 +4079,12 @@ } }, "node_modules/postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", + "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4223,9 +4156,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -4236,12 +4169,12 @@ } }, "node_modules/postcss-svgo": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", - "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", + "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0", + "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, "engines": { @@ -4252,12 +4185,11 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", - "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", + "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" }, "engines": { @@ -4268,9 +4200,9 @@ } }, "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "node_modules/prepend-http": { @@ -4751,19 +4683,20 @@ "dev": true }, "node_modules/sass": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", - "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "version": "1.49.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.7.tgz", + "integrity": "sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0" + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { "sass": "sass.js" }, "engines": { - "node": ">=8.9.0" + "node": ">=12.0.0" } }, "node_modules/sass/node_modules/immutable": { @@ -4974,9 +4907,9 @@ "dev": true }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/simple-git-hooks": { @@ -5126,9 +5059,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5213,14 +5146,14 @@ } }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" @@ -5236,12 +5169,12 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -5290,12 +5223,12 @@ "dev": true }, "node_modules/stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", + "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", "dev": true, "dependencies": { - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -5306,49 +5239,52 @@ } }, "node_modules/stylelint": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", - "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.5.0.tgz", + "integrity": "sha512-4dvQjrhAz2njLoE1OvUEZpryNWcmx2w5Lq5jlibxFv6b5W6O8/vob12M2ZzhX3Ndzs5f67F+BEYmhnQXOwfVYQ==", "dev": true, "dependencies": { "balanced-match": "^2.0.0", + "colord": "^2.9.2", "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", + "css-functions-list": "^3.0.0", + "debug": "^4.3.3", "execall": "^2.0.0", - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "fastest-levenshtein": "^1.0.12", "file-entry-cache": "^6.0.1", "get-stdin": "^8.0.0", "global-modules": "^2.0.0", - "globby": "^11.0.4", + "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.1.0", - "ignore": "^5.1.9", + "ignore": "^5.2.0", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.23.0", + "known-css-properties": "^0.24.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", - "postcss": "^8.3.11", + "postcss": "^8.4.6", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "specificity": "^0.4.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", "svg-tags": "^1.0.0", - "table": "^6.7.3", + "table": "^6.8.0", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.0" }, "bin": { "stylelint": "bin/stylelint.js" @@ -5512,16 +5448,16 @@ } }, "node_modules/stylelint/node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -5689,20 +5625,6 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/stylelint/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5748,6 +5670,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, "node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -5757,6 +5692,31 @@ "node": ">=0.8.0" } }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -5803,9 +5763,9 @@ } }, "node_modules/table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -5827,20 +5787,6 @@ "node": ">=8" } }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/table/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6214,24 +6160,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6391,24 +6319,6 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/yargs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/yargs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/yargs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6653,9 +6563,9 @@ "dev": true }, "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -6664,12 +6574,6 @@ "uri-js": "^4.2.2" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, "ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -6738,17 +6642,17 @@ "dev": true }, "autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", + "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, "requires": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "axios": { @@ -6950,13 +6854,13 @@ } }, "browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", - "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" @@ -7063,9 +6967,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001275", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001275.tgz", - "integrity": "sha512-ihJVvj8RX0kn9GgP43HKhb5q9s2XQn4nEQhdldEJvZhCsuiB2XOq6fAMYQZaN6FPWfsr2qU0cdL0CSbETwbJAg==", + "version": "1.0.30001311", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001311.tgz", + "integrity": "sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==", "dev": true }, "chalk": { @@ -7095,17 +6999,6 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "ci-info": { @@ -7182,9 +7075,9 @@ "dev": true }, "colord": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.1.tgz", - "integrity": "sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", "dev": true }, "commander": { @@ -7218,9 +7111,9 @@ "dev": true }, "concurrently": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.4.0.tgz", - "integrity": "sha512-HZ3D0RTQMH3oS4gvtYj1P+NBc6PzE2McEra6yEFcQKrUQ9HvtTGU4Dbne083F034p+LRb7kWU0tPRNvSGs1UCQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.0.0.tgz", + "integrity": "sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -7367,25 +7260,31 @@ "dev": true }, "css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", + "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", "dev": true, "requires": { "timsort": "^0.3.0" } }, + "css-functions-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.0.0.tgz", + "integrity": "sha512-rfwhBOvXVFcKrSwmLxD8JQyuEEy/3g3Y9FMI2l6iV558Coeo1ucXypXb4rwrVpk5Osh5ViXp2DTgafw8WxglhQ==", + "dev": true + }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-tree": { @@ -7411,58 +7310,57 @@ "dev": true }, "cssnano": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.12.tgz", - "integrity": "sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg==", + "version": "5.0.17", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", + "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.8", - "is-resolvable": "^1.1.0", + "cssnano-preset-default": "^5.1.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz", - "integrity": "sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", + "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", "dev": true, "requires": { "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.1", - "postcss-convert-values": "^5.0.2", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.4", - "postcss-merge-rules": "^5.0.3", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.2", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.3", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.2", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.3", - "postcss-unique-selectors": "^5.0.2" + "cssnano-utils": "^3.0.2", + "postcss-calc": "^8.2.0", + "postcss-colormin": "^5.2.5", + "postcss-convert-values": "^5.0.4", + "postcss-discard-comments": "^5.0.3", + "postcss-discard-duplicates": "^5.0.3", + "postcss-discard-empty": "^5.0.3", + "postcss-discard-overridden": "^5.0.4", + "postcss-merge-longhand": "^5.0.6", + "postcss-merge-rules": "^5.0.6", + "postcss-minify-font-values": "^5.0.4", + "postcss-minify-gradients": "^5.0.6", + "postcss-minify-params": "^5.0.5", + "postcss-minify-selectors": "^5.1.3", + "postcss-normalize-charset": "^5.0.3", + "postcss-normalize-display-values": "^5.0.3", + "postcss-normalize-positions": "^5.0.4", + "postcss-normalize-repeat-style": "^5.0.4", + "postcss-normalize-string": "^5.0.4", + "postcss-normalize-timing-functions": "^5.0.3", + "postcss-normalize-unicode": "^5.0.4", + "postcss-normalize-url": "^5.0.5", + "postcss-normalize-whitespace": "^5.0.4", + "postcss-ordered-values": "^5.0.5", + "postcss-reduce-initial": "^5.0.3", + "postcss-reduce-transforms": "^5.0.4", + "postcss-svgo": "^5.0.4", + "postcss-unique-selectors": "^5.0.4" } }, "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", + "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", "dev": true, "requires": {} }, @@ -7657,9 +7555,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.887", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.887.tgz", - "integrity": "sha512-QQUumrEjFDKSVYVdaeBmFdyQGoaV+fCSMyWHvfx/u22bRHSTeBQYt6P4jMY+gFd4kgKB9nqk7RMtWkDB49OYPA==", + "version": "1.4.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz", + "integrity": "sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==", "dev": true }, "emoji-regex": { @@ -7813,9 +7711,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -7911,15 +7809,15 @@ "dev": true }, "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true }, "fraction.js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", - "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", + "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", "dev": true }, "fresh": { @@ -8250,9 +8148,9 @@ } }, "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "ignore-by-default": { @@ -8349,12 +8247,6 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -8470,12 +8362,6 @@ "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", "dev": true }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -8555,9 +8441,9 @@ "dev": true }, "known-css-properties": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", - "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.24.0.tgz", + "integrity": "sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==", "dev": true }, "latest-version": { @@ -8880,18 +8766,18 @@ "dev": true }, "nano-staged": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.4.2.tgz", - "integrity": "sha512-oqekxuqz7IttN9zbSBrot7PjZnlMQT5WUaXluvUoN1t8rQGIKDuYBoTsnUFEGOdiDQHoo4pUfdSjfE/CP5f+QA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-0.5.0.tgz", + "integrity": "sha512-5jkhLvyZM974RmCyI8vt7zo0QK6GIAOCBe6e7L36awXIlG+40/5zJiDvESFrFmO4PhBCRm9lUlnH0SsWAFLDLg==", "dev": true, "requires": { "picocolors": "^1.0.0" } }, "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, "negotiator": { @@ -8901,9 +8787,9 @@ "dev": true }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "nodemon": { @@ -9191,30 +9077,30 @@ } }, "postcss": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, "requires": { - "nanoid": "^3.1.30", + "nanoid": "^3.2.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" } }, "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" } }, "postcss-cli": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.2.tgz", - "integrity": "sha512-08Wujoy7YGhKCFrGsT9OXqWjtHlGQ+JmyaD/4McjCiwor2IUTRVzXiJd+xmLTGdSWjceS6/TePaJQwBlkVWHiw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", "dev": true, "requires": { "chokidar": "^3.3.0", @@ -9231,12 +9117,6 @@ "yargs": "^17.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -9258,26 +9138,6 @@ "universalify": "^2.0.0" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -9308,51 +9168,51 @@ } }, "postcss-colormin": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.1.tgz", - "integrity": "sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", + "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", "colord": "^2.9.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-convert-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", - "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", + "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", + "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", + "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", + "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", + "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", "dev": true, "requires": {} }, @@ -9374,168 +9234,162 @@ "dev": true }, "postcss-merge-longhand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", - "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", + "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.0.3" } }, "postcss-merge-rules": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", - "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", + "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", + "cssnano-utils": "^3.0.2", "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", + "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", - "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", + "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", "dev": true, "requires": { "colord": "^2.9.1", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", - "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", + "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", "browserslist": "^4.16.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", + "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" } }, "postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", + "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", + "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", + "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", + "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", + "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", + "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", + "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", "dev": true, "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-url": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz", - "integrity": "sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", + "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", "dev": true, "requires": { - "is-absolute-url": "^3.0.3", "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", + "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", + "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.2", + "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-initial": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", - "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", + "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -9543,13 +9397,12 @@ } }, "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", + "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-reporter": { @@ -9587,9 +9440,9 @@ "requires": {} }, "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -9597,29 +9450,28 @@ } }, "postcss-svgo": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", - "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", + "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0", + "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" } }, "postcss-unique-selectors": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", - "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", + "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" } }, "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "prepend-http": { @@ -9957,13 +9809,14 @@ "dev": true }, "sass": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", - "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "version": "1.49.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.7.tgz", + "integrity": "sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0" + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" }, "dependencies": { "immutable": { @@ -10149,9 +10002,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "simple-git-hooks": { @@ -10279,9 +10132,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, "spawn-command": { @@ -10351,14 +10204,14 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { @@ -10368,12 +10221,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -10409,59 +10262,62 @@ "dev": true }, "stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", + "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", "dev": true, "requires": { - "browserslist": "^4.16.0", + "browserslist": "^4.16.6", "postcss-selector-parser": "^6.0.4" } }, "stylelint": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", - "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.5.0.tgz", + "integrity": "sha512-4dvQjrhAz2njLoE1OvUEZpryNWcmx2w5Lq5jlibxFv6b5W6O8/vob12M2ZzhX3Ndzs5f67F+BEYmhnQXOwfVYQ==", "dev": true, "requires": { "balanced-match": "^2.0.0", + "colord": "^2.9.2", "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", + "css-functions-list": "^3.0.0", + "debug": "^4.3.3", "execall": "^2.0.0", - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "fastest-levenshtein": "^1.0.12", "file-entry-cache": "^6.0.1", "get-stdin": "^8.0.0", "global-modules": "^2.0.0", - "globby": "^11.0.4", + "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.1.0", - "ignore": "^5.1.9", + "ignore": "^5.2.0", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.23.0", + "known-css-properties": "^0.24.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", - "postcss": "^8.3.11", + "postcss": "^8.4.6", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "specificity": "^0.4.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", "svg-tags": "^1.0.0", - "table": "^6.7.3", + "table": "^6.8.0", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -10509,16 +10365,16 @@ "dev": true }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -10645,17 +10501,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10685,6 +10530,16 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } } } }, @@ -10751,6 +10606,27 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -10787,9 +10663,9 @@ "dev": true }, "table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -10805,17 +10681,6 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11093,21 +10958,6 @@ "color-convert": "^2.0.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11219,21 +11069,6 @@ "wrap-ansi": "^6.2.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", diff --git a/package.json b/package.json index 22b5d4e..32445b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@supple-kit/supple-css", - "version": "5.3.0", + "version": "5.4.0", "description": "Reliable and testable Sass framework. Fluid, Variable, supple if you will", "main": "index.scss", "repository": "https://github.com/supple-kit/supple-css.git", @@ -52,20 +52,20 @@ "devDependencies": { "@supple-kit/prettier-config": "^1.0.1", "@supple-kit/stylelint-config-supple": "^4.0.1", - "autoprefixer": "^10.4.0", + "autoprefixer": "^10.4.2", "browser-sync": "^2.27.7", - "concurrently": "^6.4.0", - "cssnano": "^5.0.12", + "concurrently": "^7.0.0", + "cssnano": "^5.0.17", "glob": "^7.2.0", "gzip-size-cli": "^5.1.0", - "nano-staged": "^0.4.2", + "nano-staged": "^0.5.0", "nodemon": "^2.0.15", - "postcss": "^8.4.4", - "postcss-cli": "^9.0.2", + "postcss": "^8.4.6", + "postcss-cli": "^9.1.0", "prettier": "^2.5.1", - "sass": "^1.44.0", + "sass": "^1.49.7", "simple-git-hooks": "^2.7.0", - "stylelint": "^14.1.0", + "stylelint": "^14.5.0", "stylelint-config-prettier": "^9.0.3", "stylelint-config-standard-scss": "^3.0.0" }