From 07eb7f57834b2328e22815c1dd04ba9566521ecc Mon Sep 17 00:00:00 2001 From: Tixie Date: Wed, 1 Mar 2023 19:47:59 +0100 Subject: [PATCH] init --- .browserslistrc | 3 + .editorconfig | 13 + .eleventy.js | 12 + .gitignore | 13 + README.md | 16 + package-lock.json | 2437 ++++++++++++++++++++++ package.json | 16 + src/_includes/base.njk | 17 + src/css/1-core/_00-mixins.scss | 39 + src/css/1-core/_01-reset.scss | 48 + src/css/1-core/_02-typography.scss | 29 + src/css/1-core/_03-helpers.scss | 29 + src/css/1-core/_04-layout.scss | 26 + src/css/1-core/_05-grids.scss | 19 + src/css/1-core/_06-rwd.scss | 65 + src/css/1-core/_debug.scss | 36 + src/css/2-components/_buttons.scss | 122 ++ src/css/2-components/_forms.scss | 251 +++ src/css/2-components/_notifications.scss | 43 + src/css/2-components/_pagination.scss | 50 + src/css/2-components/_radiobox.scss | 62 + src/css/2-components/_switch.scss | 55 + src/css/2-components/_tables.scss | 64 + src/css/2-components/_tag.scss | 39 + src/css/2-components/_tooltip.scss | 40 + src/css/3-base/_01-fonts.scss | 13 + src/css/3-base/_02-icons.scss | 20 + src/css/3-base/_03-grids.scss | 56 + src/css/3-base/_04-main.scss | 84 + src/css/3-base/_05-layout.scss | 14 + src/css/3-base/_06-header.scss | 3 + src/css/3-base/_07-navigation.scss | 3 + src/css/3-base/_08-content.scss | 7 + src/css/3-base/_09-footer.scss | 9 + src/css/4-modules/.gitkeep | 0 src/css/5-pages/.gitkeep | 0 src/css/6-helpers/_colors.scss | 10 + src/css/6-helpers/_globals.scss | 17 + src/css/6-helpers/_spacing.scss | 71 + src/css/6-helpers/_state.scss | 7 + src/css/7-vendors/.gitkeep | 0 src/css/8-rwd/_rwd-large.scss | 6 + src/css/8-rwd/_rwd-medium.scss | 6 + src/css/8-rwd/_rwd-small.scss | 6 + src/css/8-rwd/_rwd.scss | 3 + src/css/_colors.scss | 38 + src/css/_config.scss | 52 + src/css/_helpers.scss | 131 ++ src/css/style.scss | 86 + src/index.njk | 5 + 50 files changed, 4191 insertions(+) create mode 100644 .browserslistrc create mode 100644 .editorconfig create mode 100644 .eleventy.js create mode 100644 .gitignore create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/_includes/base.njk create mode 100755 src/css/1-core/_00-mixins.scss create mode 100755 src/css/1-core/_01-reset.scss create mode 100755 src/css/1-core/_02-typography.scss create mode 100755 src/css/1-core/_03-helpers.scss create mode 100755 src/css/1-core/_04-layout.scss create mode 100755 src/css/1-core/_05-grids.scss create mode 100755 src/css/1-core/_06-rwd.scss create mode 100755 src/css/1-core/_debug.scss create mode 100755 src/css/2-components/_buttons.scss create mode 100755 src/css/2-components/_forms.scss create mode 100755 src/css/2-components/_notifications.scss create mode 100755 src/css/2-components/_pagination.scss create mode 100755 src/css/2-components/_radiobox.scss create mode 100755 src/css/2-components/_switch.scss create mode 100755 src/css/2-components/_tables.scss create mode 100644 src/css/2-components/_tag.scss create mode 100644 src/css/2-components/_tooltip.scss create mode 100755 src/css/3-base/_01-fonts.scss create mode 100755 src/css/3-base/_02-icons.scss create mode 100755 src/css/3-base/_03-grids.scss create mode 100755 src/css/3-base/_04-main.scss create mode 100755 src/css/3-base/_05-layout.scss create mode 100755 src/css/3-base/_06-header.scss create mode 100755 src/css/3-base/_07-navigation.scss create mode 100755 src/css/3-base/_08-content.scss create mode 100755 src/css/3-base/_09-footer.scss create mode 100755 src/css/4-modules/.gitkeep create mode 100755 src/css/5-pages/.gitkeep create mode 100755 src/css/6-helpers/_colors.scss create mode 100644 src/css/6-helpers/_globals.scss create mode 100755 src/css/6-helpers/_spacing.scss create mode 100755 src/css/6-helpers/_state.scss create mode 100755 src/css/7-vendors/.gitkeep create mode 100755 src/css/8-rwd/_rwd-large.scss create mode 100755 src/css/8-rwd/_rwd-medium.scss create mode 100755 src/css/8-rwd/_rwd-small.scss create mode 100755 src/css/8-rwd/_rwd.scss create mode 100755 src/css/_colors.scss create mode 100755 src/css/_config.scss create mode 100644 src/css/_helpers.scss create mode 100755 src/css/style.scss create mode 100644 src/index.njk diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..c5c71aa --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +not dead +not op_mini all diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c1b6024 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +[*.yml] +indent_style = space +indent_size = 2 diff --git a/.eleventy.js b/.eleventy.js new file mode 100644 index 0000000..86b7792 --- /dev/null +++ b/.eleventy.js @@ -0,0 +1,12 @@ +const eleventySass = require("@11tyrocks/eleventy-plugin-sass-lightningcss") + +module.exports = function (eleventyConfig) { + eleventyConfig.addPlugin(eleventySass) + + return { + dir: { + input: "src", + output: "public", + }, + }; +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ebc847 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# dependencies installed by npm +node_modules + +# build artifacts +public + +# secrets and errors +.env +.log + +# macOS related files +.DS_Store + diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b91458 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Compteur de grève + +## Dev instructions + +**`npm ci`** + +> Install build dependencies without impacting the package-lock file + +**`npm run dev`** + +> Run 11ty with hot reload at localhost:1312 (port customizable in the package.json command) +> If needed more infos on https://www.11ty.dev/docs + +**`npm run build`** + +> Production build diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a0e374f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2437 @@ +{ + "name": "compteur-de-greve", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "compteur-de-greve", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@11ty/eleventy": "^2.0.0-beta.3", + "@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.0" + } + }, + "node_modules/@11ty/dependency-tree": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz", + "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==" + }, + "node_modules/@11ty/eleventy": { + "version": "2.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0-beta.3.tgz", + "integrity": "sha512-MGbvIbOn+P021U8E8hCM/QmaWPkTzfEdKVN8UGyLE8fI2J2hElgM/n6o28//+H/mw/4yPtlrYBtgiTHzsPkCNg==", + "dependencies": { + "@11ty/dependency-tree": "^2.0.1", + "@11ty/eleventy-dev-server": "^1.0.3", + "@11ty/eleventy-utils": "^1.0.1", + "@iarna/toml": "^2.2.5", + "@sindresorhus/slugify": "^1.1.2", + "bcp-47-normalize": "^1.1.1", + "chokidar": "^3.5.3", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "dependency-graph": "^0.11.0", + "ejs": "^3.1.8", + "fast-glob": "^3.2.12", + "graceful-fs": "^4.2.10", + "gray-matter": "^4.0.3", + "hamljs": "^0.6.2", + "handlebars": "^4.7.7", + "is-glob": "^4.0.3", + "iso-639-1": "^2.1.15", + "kleur": "^4.1.5", + "liquidjs": "^10.4.0", + "lodash.chunk": "^4.2.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "luxon": "^3.2.1", + "markdown-it": "^13.0.1", + "micromatch": "^4.0.5", + "minimist": "^1.2.7", + "moo": "^0.5.2", + "multimatch": "^5.0.0", + "mustache": "^4.2.0", + "normalize-path": "^3.0.0", + "nunjucks": "^3.2.3", + "path-to-regexp": "^6.2.1", + "please-upgrade-node": "^3.2.0", + "posthtml": "^0.16.6", + "posthtml-urls": "^1.0.0", + "pug": "^3.0.2", + "recursive-copy": "^2.0.14", + "semver": "^7.3.8", + "slugify": "^1.6.5" + }, + "bin": { + "eleventy": "cmd.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-dev-server": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.3.tgz", + "integrity": "sha512-SjYQewOO0Oo2jUI5h0Lk87pRJllDBzbdcHGZTYEf00gz966kidP1Hyd3ySaHqL4lFqW2I6jIxNVKPlhwYhp6yA==", + "dependencies": { + "@11ty/eleventy-utils": "^1.0.1", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "dev-ip": "^1.0.1", + "finalhandler": "^1.2.0", + "mime": "^3.0.0", + "minimist": "^1.2.7", + "morphdom": "^2.6.1", + "please-upgrade-node": "^3.2.0", + "ssri": "^8.0.1", + "ws": "^8.12.0" + }, + "bin": { + "eleventy-dev-server": "cmd.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", + "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==", + "dependencies": { + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11tyrocks/eleventy-plugin-sass-lightningcss": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@11tyrocks/eleventy-plugin-sass-lightningcss/-/eleventy-plugin-sass-lightningcss-1.0.1.tgz", + "integrity": "sha512-poD8LCwNDHrCF9L2lIuZx64n6u6s1YAh3G1IbySmXT5F2dB/Ga54MGgK+uh+L8tXSUph+RsW4kIEhC+L39Fg/A==", + "dependencies": { + "browserslist": "^4.21.5", + "lightningcss": "^1.19.0", + "sass": "^1.58.3" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "dependencies": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", + "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", + "dependencies": { + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", + "integrity": "sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "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==" + }, + "node_modules/bcp-47": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", + "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", + "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-normalize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", + "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", + "dependencies": { + "bcp-47": "^1.0.0", + "bcp-47-match": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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/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==", + "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==" + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==" + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "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/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "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==", + "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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "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.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.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==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "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==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/hamljs": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", + "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/http-equiv-refresh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz", + "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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==" + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" + }, + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iso-639-1": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", + "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/junk": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", + "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==", + "engines": { + "node": ">=0.10.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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", + "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.19.0", + "lightningcss-darwin-x64": "1.19.0", + "lightningcss-linux-arm-gnueabihf": "1.19.0", + "lightningcss-linux-arm64-gnu": "1.19.0", + "lightningcss-linux-arm64-musl": "1.19.0", + "lightningcss-linux-x64-gnu": "1.19.0", + "lightningcss-linux-x64-musl": "1.19.0", + "lightningcss-win32-x64-msvc": "1.19.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", + "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", + "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", + "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", + "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", + "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", + "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", + "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", + "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/liquidjs": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.4.0.tgz", + "integrity": "sha512-4fpR8KFJ96bXkzynK9Yo1jwn7sjOkJfKawSbEXINc39DZfy7r5SYtcAM5T/Ccg5n0xoZf6ap5Gap4VwFCJiQ1g==", + "bin": { + "liquid": "bin/liquid.js", + "liquidjs": "bin/liquid.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/liquidjs" + } + }, + "node_modules/list-to-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", + "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==" + }, + "node_modules/lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==" + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" + }, + "node_modules/luxon": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/maximatch": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", + "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==", + "dependencies": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maximatch/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, + "node_modules/morphdom": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.6.1.tgz", + "integrity": "sha512-Y8YRbAEP3eKykroIBWrjcfMw7mmwJfjhqdpSvoqinu8Y702nAwikpXcNFDiIkyvfCLxLM9Wu95RZqo4a9jFBaA==" + }, + "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==" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", + "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-urls": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/posthtml-urls/-/posthtml-urls-1.0.0.tgz", + "integrity": "sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==", + "dependencies": { + "http-equiv-refresh": "^1.0.0", + "list-to-array": "^1.1.0", + "parse-srcset": "^1.0.2", + "promise-each": "^2.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-each": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", + "integrity": "sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==", + "dependencies": { + "any-promise": "^0.1.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" + }, + "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==", + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-copy": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz", + "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==", + "dependencies": { + "errno": "^0.1.2", + "graceful-fs": "^4.1.4", + "junk": "^1.0.1", + "maximatch": "^0.1.0", + "mkdirp": "^0.5.1", + "pify": "^2.3.0", + "promise": "^7.0.1", + "rimraf": "^2.7.1", + "slash": "^1.0.0" + } + }, + "node_modules/recursive-copy/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "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==", + "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/sass": { + "version": "1.58.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.3.tgz", + "integrity": "sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "node_modules/semver/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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==" + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..344c4ec --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "compteur-de-greve", + "version": "1.0.0", + "description": "", + "main": "index.html", + "scripts": { + "dev": "eleventy --serve --port=1312", + "build": "eleventy" + }, + "author": "Guérilla.Studio", + "license": "ISC", + "dependencies": { + "@11ty/eleventy": "^2.0.0-beta.3", + "@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.0" + } +} diff --git a/src/_includes/base.njk b/src/_includes/base.njk new file mode 100644 index 0000000..13baaef --- /dev/null +++ b/src/_includes/base.njk @@ -0,0 +1,17 @@ + + + + + + {{ title }} + + + +
+

{{ title }}

+
+
+ {{ content | safe }} +
+ + diff --git a/src/css/1-core/_00-mixins.scss b/src/css/1-core/_00-mixins.scss new file mode 100755 index 0000000..ef0e38a --- /dev/null +++ b/src/css/1-core/_00-mixins.scss @@ -0,0 +1,39 @@ +@use "sass:math"; +@use "sass:map"; +@use "sass:string"; + +$breakpoints: ( + sm: 768px, + md: 960px, + lg: 1280px, +) !default; +$small: map.get($breakpoints, sm) !default; +$medium: map.get($breakpoints, md) !default; +$large: map.get($breakpoints, lg) !default; + +// ------------------------------------------------------------- +// mixins +// ------------------------------------------------------------- + +@mixin flow($font-size, $bf: $base-font, $lh: $line-height) { + $lh-value: $base-font * $lh; + $coeff: math.ceil(math.div($font-size, $lh-value)); + $new-lh: math.div($lh-value, $font-size) * $coeff; + $margin-bottom: math.div($new-lh, $coeff); + + margin-bottom: $margin-bottom + em; + font-size: math.div($font-size, 10) + rem; + line-height: $new-lh; +} + +@function hex-to-hsl($hex) { + $hue: color.hue($hex); + $saturation: color.saturation($hex); + $lightness: color.lightness($hex); + + @return $hue, $saturation, $lightness; +} + +@function hex-rm-hash($hex) { + @return string.slice(#{$hex}, 2); +} diff --git a/src/css/1-core/_01-reset.scss b/src/css/1-core/_01-reset.scss new file mode 100755 index 0000000..754bdf1 --- /dev/null +++ b/src/css/1-core/_01-reset.scss @@ -0,0 +1,48 @@ +// ------------------------------------------------------------- +// reset +// ------------------------------------------------------------- + +html { + box-sizing: border-box; +} + +*, +*::after, +*::before { + box-sizing: inherit; +} + +body { + margin: 0; +} + +img, +table, +td, +blockquote, +code, +pre, +textarea, +input, +video, +svg { + max-width: 100%; +} + +img { + height: auto; + border-style: none; + vertical-align: middle; +} + +// Remove special styling on Safari iOS +input[type="search"]::-webkit-search-decoration { + display: none; +} + +button, +input, +select, +textarea { + font: inherit; +} diff --git a/src/css/1-core/_02-typography.scss b/src/css/1-core/_02-typography.scss new file mode 100755 index 0000000..9a050bf --- /dev/null +++ b/src/css/1-core/_02-typography.scss @@ -0,0 +1,29 @@ +@use "sass:math"; + +// ------------------------------------------------------------- +// typography +// ------------------------------------------------------------- + +html { + font-size: 62.5%; + font-size: calc(1em * 0.625); // IE9-11 calculation fix +} + +body { + font-size: math.div($base-font, 10) + em; + line-height: ($line-height + em); +} + +p, +ul, +ol, +dl, +blockquote, +pre, +td, +th, +label, +textarea, +caption { + margin: 0 0 ($line-height + em) 0; +} diff --git a/src/css/1-core/_03-helpers.scss b/src/css/1-core/_03-helpers.scss new file mode 100755 index 0000000..8fa97b1 --- /dev/null +++ b/src/css/1-core/_03-helpers.scss @@ -0,0 +1,29 @@ +// ------------------------------------------------------------- +// helpers +// ------------------------------------------------------------- + +// screen readers +// -------------------------------------------------------------- + +// Hide only visually, but have it available for screen readers (from HTML5 Boilerplate) + +.visually-hidden { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + padding: 0; + border: 0; + margin: -1px; + clip: rect(0 0 0 0); +} + +.visually-hidden.focusable:active, +.visually-hidden.focusable:focus { + position: static; + overflow: visible; + width: auto; + height: auto; + margin: 0; + clip: auto; +} diff --git a/src/css/1-core/_04-layout.scss b/src/css/1-core/_04-layout.scss new file mode 100755 index 0000000..4eed19b --- /dev/null +++ b/src/css/1-core/_04-layout.scss @@ -0,0 +1,26 @@ +// ------------------------------------------------------------- +// layout +// ------------------------------------------------------------- + +.mod { + overflow: hidden; // BFC to the rescue +} + +.clear, +.line, +.row { + clear: both; +} + +// blocks that must contain floats +.clearfix::after, +.line::after, +.mod::after { + display: table; + clear: both; + content: ""; +} + +.inbl { + display: inline-block; +} diff --git a/src/css/1-core/_05-grids.scss b/src/css/1-core/_05-grids.scss new file mode 100755 index 0000000..817c1fd --- /dev/null +++ b/src/css/1-core/_05-grids.scss @@ -0,0 +1,19 @@ +// ------------------------------------------------------------- +// grids +// ------------------------------------------------------------- + +.grid { + display: grid; +} + +@mixin grid($cols, $prefix: "") { + @if $prefix != "" { + .#{$prefix}\:grid-#{$cols} { + grid-template-columns: repeat(#{$cols}, minmax(0, 1fr)); + } + } @else { + .grid-#{$cols} { + grid-template-columns: repeat(#{$cols}, minmax(0, 1fr)); + } + } +} diff --git a/src/css/1-core/_06-rwd.scss b/src/css/1-core/_06-rwd.scss new file mode 100755 index 0000000..f4483e3 --- /dev/null +++ b/src/css/1-core/_06-rwd.scss @@ -0,0 +1,65 @@ +// ------------------------------------------------------------- +// rwd +// ------------------------------------------------------------- + +// responsive iframe http://www.smashingmagazine.com/2014/02/27/making-embedded-content-work-in-responsive-design/ */ +.responsive-iframe { + position: relative; + overflow: hidden; + height: 0; + padding-top: 3rem; + padding-bottom: 56.25%; +} + +.responsive-iframe iframe, +.responsive-iframe object, +.responsive-iframe embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +// utilities +// -------------------------------------------------------------- + +.hidden { + display: none; +} + +@media (min-width: ($medium + 1)) and (max-width: $large) { + [class*="-lg"][class*="hidden-"]:not([class*="up"]) { + display: none !important; + } +} + +@media (min-width: ($small + 1)) and (max-width: $medium) { + [class*="-md"][class*="hidden-"]:not([class*="up"]) { + display: none !important; + } +} + +@media (max-width: $small) { + [class*="-sm"][class*="hidden-"]:not([class*="up"]) { + display: none !important; + } +} + +@media (min-width: $large) { + .hidden-lg-up { + display: none !important; + } +} + +@media (min-width: $medium) { + .hidden-md-up { + display: none !important; + } +} + +@media (min-width: $small) { + .hidden-sm-up { + display: none !important; + } +} diff --git a/src/css/1-core/_debug.scss b/src/css/1-core/_debug.scss new file mode 100755 index 0000000..fb1a0a3 --- /dev/null +++ b/src/css/1-core/_debug.scss @@ -0,0 +1,36 @@ +@use "sass:math"; + +// ------------------------------------------------------------- +// debug +// ------------------------------------------------------------- + +// Generates a random color +// -------------------------------------------------------------- + +@mixin random-color { + $red: math.round(math.random() * 222); + $green: math.round(math.random() * 222); + $blue: math.round(math.random() * 222); +} + +// Easily debug an element +// -------------------------------------------------------------- + +@mixin debug() { + @include random-color; + + border: 0.3rem dotted rgb($red $green $blue); + background-color: rgb($red $green $blue / 30%); +} + +// Display grid for vertical rhythm +// -------------------------------------------------------------- + +@mixin debug-rythm($bh: $line-height) { + background: linear-gradient(to bottom, #ba9b9a 0.1em, transparent 0.1em) !important; + background-size: 100% ($bh + em) !important; +} + +.debug-rythm { + @include debug-rythm; +} diff --git a/src/css/2-components/_buttons.scss b/src/css/2-components/_buttons.scss new file mode 100755 index 0000000..54bc7d8 --- /dev/null +++ b/src/css/2-components/_buttons.scss @@ -0,0 +1,122 @@ +@use "sass:color"; + +// ------------------------------------------------------------- +// Buttons +// ------------------------------------------------------------- + +$btn-primary: $color-1; +$btn-secondary: $color-2; +$btn-dark: $color-dark-text; +$btn-danger: #c53a3a; +$btn-hover: 5%; +$btn-radius: 0.2rem; +$btn-border-width: 0.1rem; + +.btn { + --color-accent: #{$btn-primary}; + --color-text: #fff; + + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.8em 1.6em; + border: $btn-border-width solid transparent; + margin: 0; + background-color: var(--color-accent); + border-radius: $btn-radius; + box-shadow: none; + color: var(--color-text); + font: inherit; + line-height: ($line-height + em); + text-align: center; + transition: all 0.2s; + vertical-align: middle; +} + +.btn:where(:hover, :active) { + --color-accent: #{color.adjust($btn-primary, $lightness: -10%)}; +} + +// Custom focus ring +.btn:where(:active, :focus) { + box-shadow: $focus-ring; + outline: none; +} + +// Colors +// -------------------------------------------------------------- + +.btn--secondary { --color-accent: #{$btn-secondary}; } +.btn--secondary:where(:hover, :active) { --color-accent: #{color.adjust($btn-secondary, $lightness: -10%)}; } + +.btn--danger { --color-accent: #{$btn-danger}; } +.btn--danger:where(:hover, :active) { --color-accent: #{color.adjust($btn-danger, $lightness: - 10%)}; } + +.btn--dark { --color-accent: #{$btn-dark}; } +.btn--dark:where(:hover, :active) { --color-accent: #{color.adjust($btn-dark, $lightness: + 10%)}; } + +// Styles +// -------------------------------------------------------------- + +// Ghost + +.btn--ghost { + border-color: var(--color-accent); + background-color: transparent; + color: var(--color-accent); +} + +.btn--ghost:where(:hover, :active) { + background-color: var(--color-accent); + color: var(--color-text); +} + +// Inline-link styled + +.btn--link { + display: inline-flex; + padding: 0; + border: none; + background: none; + color: var(--color-accent); + text-decoration: underline; +} + +// Btn with icon +// -------------------------------------------------------------- + +[class*="btn--ico"] { + display: inline-flex; + align-items: center; + gap: 1ch; // 1 letter large of gap +} + +[class*="btn--ico"] svg { + width: ($line-height + em); + height: ($line-height + em); + flex-shrink: 0; + fill: currentcolor; +} + +// Ico sizes + +.btn--icoSmall svg { + width: 0.75em; + height: 0.75em; +} + +.btn--icoMedium svg { + width: 1em; + height: 1em; +} + +// Button Sizes +// -------------------------------------------------------------- + +.btn--big { + font-size: 1.2em; +} + +.btn--small { + padding: 0.3em 0.75em; +} diff --git a/src/css/2-components/_forms.scss b/src/css/2-components/_forms.scss new file mode 100755 index 0000000..396becc --- /dev/null +++ b/src/css/2-components/_forms.scss @@ -0,0 +1,251 @@ +@use "sass:color"; + +// ------------------------------------------------------------- +// Forms +// ------------------------------------------------------------- + +$input-color: $color-dark-text; +$input-lineheight: ($line-height + em); +$input-padding-y: 0.8em; +$input-padding-x: 1em; +$input-padding: $input-padding-y $input-padding-x; +$input-border-radius: 0.4rem; +$input-border-color: #d8d8d8; +$input-border-width: 0.1rem; +$input-border: $input-border-width solid $input-border-color; +$input-background-color: #fff; +$input-placeholder-color: $color-dark-text; +$input-error: #ff3860; +$input-error-bg: color.adjust($input-error, $lightness: 30%); + +// Input customized with icons +$input-ico-color: #515151; +$input-ico-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 11 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.5 7.515.08 1.897 1.44.484l4.06 4.217L9.557.484l1.362 1.413z' fill='%23#{hex-rm-hash($input-ico-color)}'/%3E%3C/svg%3E"); +$input-ico-arrow-width: 1.1rem; +$input-ico-search: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m19.4 18-3.7-3.6a8.9 8.9 0 0 0-.6-11.8A8.7 8.7 0 0 0 8.9 0a8.8 8.8 0 0 0-6.3 2.6A8.8 8.8 0 0 0 0 8.9a8.9 8.9 0 0 0 14.4 7l3.6 3.5a1 1 0 0 0 .7.3c.3 0 .5 0 .7-.3a1 1 0 0 0 0-1.4Zm-3.7-9.1a6.7 6.7 0 0 1-2 4.8 7 7 0 0 1-4.8 2 6.7 6.7 0 0 1-4.9-2A7 7 0 0 1 2 9 6.9 6.9 0 0 1 8.9 2a6.9 6.9 0 0 1 6.9 6.9Z' fill='%23#{hex-rm-hash($input-ico-color)}'/%3E%3C/svg%3E"); +$input-ico-search-width: 2rem; + +// layoutblocks +// -------------------------------------------------------------- + +.f-container { + max-width: 47rem; +} + +.f-group:where(:not(:first-child)) { + margin-top: 3rem; +} + +.f-group > :where(label, .label) { + margin-top: 0; +} + +// global style +// -------------------------------------------------------------- + +fieldset { + padding: 1em; + border: 0.1rem solid #d8d8d8; + margin: 2.5rem 0; +} + +label, +.label { + display: block; + margin-top: 1.3em; + margin-bottom: 0.3125em; + color: $color-dark-text; + cursor: pointer; + font-size: 1.6rem; + font-weight: 600; +} + +input, +textarea, +select { + width: 100%; + max-width: 32rem; + padding: $input-padding; + border: $input-border; + margin: 0; + background-color: $input-background-color; + border-radius: $input-border-radius; + color: $input-color; + line-height: $input-lineheight; + vertical-align: middle; +} + +select { + padding-right: calc($input-ico-arrow-width + $input-padding-x); + appearance: none; + background-image: $input-ico-arrow; + background-position: calc(100% - $input-ico-arrow-width) center; + background-repeat: no-repeat; + background-size: $input-ico-arrow-width auto; +} + +textarea { + min-width: 32rem; + min-height: 8em; + resize: vertical; + vertical-align: top; +} + +// inline form +// -------------------------------------------------------------- + +.f-inline { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 1rem; +} + +.f-inline :where(label, .label) { + margin-block: 0; +} + +// autogrid +// -------------------------------------------------------------- + +[class^="f-grid"] { + display: flex; + flex-wrap: nowrap; + align-items: flex-end; +} + +[class^="f-grid"] > * { + display: flex; + flex: 1 0 0; + flex-direction: column; + margin-left: 2rem; +} + +[class^="f-grid"] > *:first-child { + margin-left: 0; +} + +[class^="f-grid"] :where(input, select, textarea) { + max-width: 100%; +} + +[class^="f-grid"] :where(label, .label) { + margin-top: 0; +} + +// Input type specific styles +// -------------------------------------------------------------- + +input:where( +[type="radio"], +[type="checkbox"] +) { + width: inherit; + padding: 0; + vertical-align: baseline; +} + +input:where( +[type="radio"], +[type="checkbox"] +) + label { + display: inline-block; + margin-right: 1rem; + margin-block: 0; + vertical-align: baseline; +} + +.f-error input:where( +[type="radio"], +[type="checkbox"]) { + outline: $input-border-width solid $input-error; + outline-offset: 0.4rem; +} + +// search input custom +input[type="search"] { + padding-right: calc($input-ico-search-width + $input-padding-x); + appearance: none; + background-image: $input-ico-search; + background-position: calc(100% - $input-ico-search-width) center; + background-repeat: no-repeat; + background-size: $input-ico-search-width auto; +} + +// placeholders +// -------------------------------------------------------------- + +input:placeholder { + color: $input-placeholder-color; +} + +textarea:placeholder { + color: $input-placeholder-color; +} + +// size +// -------------------------------------------------------------- + +.f-size-07 { + max-width: 7rem; +} + +.f-size-1 { + max-width: 10rem; +} + +.f-size-2 { + max-width: 20rem; +} + +.f-size-3 { + max-width: 30rem; +} + +.f-size-4 { + max-width: 40rem; +} + +.f-size-5 { + max-width: 50rem; +} + +.f-size-full { + max-width: 100%; +} + +// Scale +// -------------------------------------------------------------- + +.f-small { + padding: 0.5rem 1.2rem; + line-height: 1.25em; +} + +// States +// -------------------------------------------------------------- + +.f-disabled { + border-color: #d4d2d2; + color: #d4d2d2; +} + +// errors +.f-error :is(input, select, textarea) { + border-color: $input-error; + margin-bottom: 0.8rem; +} + +.f-error-message { + color: $input-error; +} + +// focus state +:is(input, select, textarea):is(:active, :focus) { + box-shadow: $focus-ring; + outline: none; +} + +:is(input, select, textarea):invalid { + border-color: $input-error; +} diff --git a/src/css/2-components/_notifications.scss b/src/css/2-components/_notifications.scss new file mode 100755 index 0000000..94dc975 --- /dev/null +++ b/src/css/2-components/_notifications.scss @@ -0,0 +1,43 @@ +// Notification module +// Namespace : .notif + +// ------------------------------------------------------------- +// configuration +// ------------------------------------------------------------- + +$notif-success: $color-green; +$notif-warning: $color-yellow; +$notif-error: $color-red; + +// ------------------------------------------------------------- +// module +// ------------------------------------------------------------- + +.notif { + padding: 2rem; + border: 0.1rem solid currentcolor; + border-radius: 0.3rem; +} + +// Colors +// -------------------------------------------------------------- + +.notif--success { + color: $notif-success; +} + +.notif--warning { + border-color: $notif-warning; + color: #444; +} + +.notif--error { + color: $notif-error; +} + +// Sizes +// -------------------------------------------------------------- + +.notif--small { + padding: 1rem 1.5rem; +} diff --git a/src/css/2-components/_pagination.scss b/src/css/2-components/_pagination.scss new file mode 100755 index 0000000..67f6e4a --- /dev/null +++ b/src/css/2-components/_pagination.scss @@ -0,0 +1,50 @@ +// Pagination Module +// namespace : .pagination + +// ------------------------------------------------------------- +// configuration +// ------------------------------------------------------------- + +$pagination-border-radius: 0.2rem; +$pagination-border: 0.1rem solid #808080; +$pagination-hover-color: $color-2; +$pagination-current-bg: $color-1; +$pagination-current-color: #fff; + +// ------------------------------------------------------------- +// module +// ------------------------------------------------------------- + +.pagination { + display: inline-block; + margin: 2rem 0; + border-radius: 0.4rem; +} + +.pagination, +.pagination li { + padding: 0; + margin: 0; +} + +.pagination li { + display: inline-block; + margin: 0 0.3rem 1em; + list-style-type: none; +} + +.pagination li a, +.pagination li > span { + padding: 0.3em 0.6em; + border: $pagination-border; + border-radius: $pagination-border-radius; +} + +.pagination li a:hover { + color: $pagination-hover-color; +} + +.pagination li.current a { + background-color: $pagination-current-bg; + color: $pagination-current-color; +} diff --git a/src/css/2-components/_radiobox.scss b/src/css/2-components/_radiobox.scss new file mode 100755 index 0000000..1055555 --- /dev/null +++ b/src/css/2-components/_radiobox.scss @@ -0,0 +1,62 @@ +// ------------------------------------------------------------- +// Radiobox Module +// ------------------------------------------------------------- + +.radiobox { + display: inline-flex; + width: 100%; + max-width: 32rem; + padding: 0.2rem; + border: $input-border; + border-radius: $input-border-radius; +} + +.radiobox--full { + width: 100%; + max-width: 100%; +} + +.radiobox input { + position: absolute; + left: -9999rem; +} + +.radiobox input + label { + display: flex; + width: 50%; + min-height: 4rem; + flex-grow: 1; + align-items: center; + justify-content: center; + padding: 1rem 1.8rem; + margin: 0; + border-radius: calc($input-border-radius - 0.1rem); + font-weight: normal; + text-align: center; + transition: all 0.05s ease-in; +} + +// Checked state +.radiobox input:checked + label { + background-color: $color-1; + color: #fff; +} + +// Focus state +.radiobox input:focus + label { + box-shadow: $focus-ring; +} + +.radiobox:active, +.radiobox:focus-within { + box-shadow: $focus-ring; +} + +.radiobox:focus-within input:focus + label { + box-shadow: none; +} + +// Error state +.f-error .radiobox { + border-color: $input-error; +} diff --git a/src/css/2-components/_switch.scss b/src/css/2-components/_switch.scss new file mode 100755 index 0000000..11230ca --- /dev/null +++ b/src/css/2-components/_switch.scss @@ -0,0 +1,55 @@ +@use "sass:color"; + +// Switch Module +// Namespace: .switch + +// ------------------------------------------------------------- +// module +// ------------------------------------------------------------- + +.switch { + position: relative; + width: 3em; + height: 1.5em; + border: $input-border; + margin: 0; + appearance: none; + background-color: #fff; + border-radius: 42rem; + box-shadow: inset -1.5em 0 0 0.1rem $input-border-color; + outline: none; + transform: translateY(0.4em); + transition: 0.2s; + vertical-align: baseline; +} + +// Checked state +// -------------------------------------------------------------- + +.switch:checked { + border-color: $color-1; + box-shadow: inset 1.5em 0 0 0.1rem $color-1; +} + +// Focus state +// -------------------------------------------------------------- + +.switch:is(:active,:focus) { + box-shadow: inset -2rem 0 0 0.1rem rgb(192 192 192 / 50%), $focus-ring; +} + +.switch:checked:where(:active,:focus) { + box-shadow: inset 2rem 0 0 0.1rem $color-1, $focus-ring; +} + +// Error state +// -------------------------------------------------------------- + +.f-error > .switch { + margin: 0; + outline: none; +} + +.f-error > .switch:checked { + border-color: $input-error; +} diff --git a/src/css/2-components/_tables.scss b/src/css/2-components/_tables.scss new file mode 100755 index 0000000..7a9f824 --- /dev/null +++ b/src/css/2-components/_tables.scss @@ -0,0 +1,64 @@ +@use "sass:color"; + +// Table Module +// namespace : .table + +// ------------------------------------------------------------- +// module +// ------------------------------------------------------------- + +.table { + width: 100%; + max-width: 100%; + border: 0.1rem solid $color-4; + border-collapse: collapse /* remove spacing between table cells */; + border-spacing: 0; + color: $color-dark-text; + table-layout: fixed /* http://css-tricks.com/fixing-tables-long-strings */; +} + +.table caption { + padding: 1em 0; + color: $color-dark-text; + font: italic 85%/1 $fontstack1; + text-align: center; +} + +.table thead { + background: #e0e0e0; + color: $color-dark-text; + text-align: left; + vertical-align: bottom; +} + +.table td, +.table th { + overflow: hidden; + padding: 1rem; + border-width: 0; + border-bottom: 0.1rem solid $color-4; + margin: 0; + font-size: inherit; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: break-word; +} + +.table th { + padding-top: 1.5rem; + margin-bottom: 1.5rem; + font-weight: 600; +} + +.table :is(td, th):first-child { + padding-left: 2rem; +} + +.table :is(td, th):last-child { + padding-right: 2rem; +} + +.table--invisible, +.table--invisible :is(td, th):nth-child(n) { // nth-child(n) is used to keep a increasing specificity for this special table style + border-bottom: none; +} diff --git a/src/css/2-components/_tag.scss b/src/css/2-components/_tag.scss new file mode 100644 index 0000000..4a8052f --- /dev/null +++ b/src/css/2-components/_tag.scss @@ -0,0 +1,39 @@ +// ----------------------------------------------------------- +// == Tag component +// ----------------------------------------------------------- + +.tag { + display: inline-block; + padding: 0.3rem 0.5rem; + background-color: #607386; + border-radius: 0.2rem; + color: $color-light-text; + font-size: 1.2rem; + font-weight: bold; + letter-spacing: 0.03em; +} + +.tag--medium { + padding: 0.2rem 0.8rem; + font-size: 1.6rem; + font-weight: 600; + line-height: 1.25em; +} + +.tag--dark { + background-color: $color-dark-text; +} + +.tag--red { + background-color: $color-red; +} + +.tag--green { + background-color: $color-green; + color: $color-light-text; +} + +.tag--yellow { + background-color: $color-yellow; + color: $color-dark-text; +} diff --git a/src/css/2-components/_tooltip.scss b/src/css/2-components/_tooltip.scss new file mode 100644 index 0000000..c96d975 --- /dev/null +++ b/src/css/2-components/_tooltip.scss @@ -0,0 +1,40 @@ +// ------------------------------------------------------------- +// Tooltip +// ------------------------------------------------------------- + +$tooltip-bg: rgb(0 0 0 / 80%); +$tooltip-color: #fff; +$tooltip-radius: 0.5em; + +// ------------------------------------------------------------- +// module +// ------------------------------------------------------------- + +.tooltip { + position: relative; + cursor: help; +} + +.tooltip:hover::after { + position: absolute; + bottom: 1.35em; + left: 1em; + padding: 0.5em 1em; + background: $tooltip-bg; + border-radius: $tooltip-radius; + color: $tooltip-color; + content: attr(data-tooltip); + font-family: $fontstack2; + white-space: nowrap; +} + +.tooltip:hover::before { + position: absolute; + bottom: 1em; + left: 2em; + display: block; + border: solid; + border-width: 0.4em 0.4em 0; + border-color: $tooltip-bg transparent; + content: ""; +} diff --git a/src/css/3-base/_01-fonts.scss b/src/css/3-base/_01-fonts.scss new file mode 100755 index 0000000..4f9b893 --- /dev/null +++ b/src/css/3-base/_01-fonts.scss @@ -0,0 +1,13 @@ +// ----------------------------------------------------------- +// == Webfonts +// ----------------------------------------------------------- + +// An example the good practices to use webfonts on your project +// @font-face { +// font-display: swap; // Prevent hidden text when the font isn't loaded yet +// font-family: "Open Sans"; +// font-weight: normal; // You can specify if this file is for a specific weight +// src: +// local("Open Sans"), // Define a local first so viewers who already have the font on their computer don't have to download it again +// url("/fonts/subset-OpenSans.woff2") format("woff2"); // WOFF2 is enough these days +// } diff --git a/src/css/3-base/_02-icons.scss b/src/css/3-base/_02-icons.scss new file mode 100755 index 0000000..07526be --- /dev/null +++ b/src/css/3-base/_02-icons.scss @@ -0,0 +1,20 @@ +// stylelint-disable unit-no-unknown +// ------------------------------------------------------------- +// icons +// ------------------------------------------------------------- + +.ico-inline svg { + width: 0.75em; // em value as fallback for cap unit + width: 1cap; + height: 0.75em; + height: 1cap; + margin-inline: 0.75ch; +} + +.ico-inline:first-child svg { + margin-inline-start: initial; +} + +.ico-inline:last-child svg { + margin-inline-end: initial; +} diff --git a/src/css/3-base/_03-grids.scss b/src/css/3-base/_03-grids.scss new file mode 100755 index 0000000..7b56691 --- /dev/null +++ b/src/css/3-base/_03-grids.scss @@ -0,0 +1,56 @@ +// ------------------------------------------------------------- +// grids +// ------------------------------------------------------------- + +@include grid(1); +@include grid(2); +@include grid(3); +@include grid(4); +@include grid(5); +@include grid(6); +@include grid(9); + +.gap { gap: $gap; } +.gap-demi { gap: calc($gap / 2); } +.gap-inline { row-gap: $gap; } +.gap-block { column-gap: $gap; } + +// Spread grid's child on ceveral columns +// -------------------------------------------------------------- + +.col-span-0 { grid-column: auto; } +.col-span-2 { grid-column: span 2 / span 2; } +.col-span-3 { grid-column: span 3 / span 3; } +.col-span-4 { grid-column: span 4 / span 4; } +.col-span-5 { grid-column: span 5 / span 5; } + +@media (max-width: $medium) { + @include grid(1, $medium-label); + @include grid(2, $medium-label); + @include grid(3, $medium-label); + @include grid(4, $medium-label); + + .md\:gap { gap: $gap; } + .md\:gap-demi { gap: calc($gap / 2); } + .md\:gap-inline { row-gap: $gap; } + .md\:gap-block { column-gap: $gap; } + + .md\:col-span-0 { grid-column: auto; } + .md\:col-span-1 { grid-column: span 1 / span 1; } + .md\:col-span-2 { grid-column: span 2 / span 2; } + .md\:col-span-3 { grid-column: span 3 / span 3; } +} + +@media (max-width: $small) { + @include grid(1, $small-label); + @include grid(2, $small-label); + + .sm\:gap { gap: $gap; } + .sm\:gap-demi { gap: calc($gap / 2); } + .sm\:gap-inline { row-gap: $gap; } + .sm\:gap-block { column-gap: $gap; } + + .sm\:col-span-0 { grid-column: auto; } + .sm\:col-span-1 { grid-column: span 1 / span 1; } + .sm\:col-span-2 { grid-column: span 2 / span 2; } +} diff --git a/src/css/3-base/_04-main.scss b/src/css/3-base/_04-main.scss new file mode 100755 index 0000000..e0f3fae --- /dev/null +++ b/src/css/3-base/_04-main.scss @@ -0,0 +1,84 @@ +// ----------------------------------------------------------- +// main +// ----------------------------------------------------------- + +body { + accent-color: $color-1; + background-color: #fff; + color: $color-dark-text; + font-family: $fontstack1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizespeed; // Fix performances issues (especially on mobile): https://marco.org/2012/11/15/text-rendering-optimize-legibility +} + +// titles +// -------------------------------------------------------------- + +h1 { + @include flow(50); +} + +h2 { + @include flow(25); +} + +h3 { + @include flow(18); +} + +h4 { + @include flow(16); +} + +// links +// -------------------------------------------------------------- + +a:where(:any-link) { + color: currentcolor; + text-decoration: none; +} + +a:where(:focus) { + border-radius: 0.3rem; + box-shadow: $focus-ring; + outline: none; +} + +a:where(:not([class]):hover) { + text-decoration: underline; +} + +// A elements that don't have a class get default styles +a:not([class]) { + color: $color-link; + text-decoration: underline; +} + +// buttons +// -------------------------------------------------------------- + +// Some browsers like Firefox doesn't display a pointer by default on buttons deliberately (as it shouldn't be the only indication of a clickable element). We choosed to make it default anyway to limit repetition in our stylesheets. +button { + cursor: pointer; +} + +// lists +// -------------------------------------------------------------- + +// Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed +:where(ul, ol)[role="list"] { + list-style: none; +} + +// divers +// -------------------------------------------------------------- + +hr { + display: block; + height: 0.1rem; + padding: 0; + border: 0; + border-top: 0.1rem solid #ccc; + margin: 1em 0; +} diff --git a/src/css/3-base/_05-layout.scss b/src/css/3-base/_05-layout.scss new file mode 100755 index 0000000..5cd7fa9 --- /dev/null +++ b/src/css/3-base/_05-layout.scss @@ -0,0 +1,14 @@ +// ------------------------------------------------------------- +// layout +// ------------------------------------------------------------- + +.container { + width: 100%; + max-width: $container-base; + margin-inline: auto; + padding-inline: 1rem; +} + +.container--small { + max-width: $container-small; +} diff --git a/src/css/3-base/_06-header.scss b/src/css/3-base/_06-header.scss new file mode 100755 index 0000000..bd9429c --- /dev/null +++ b/src/css/3-base/_06-header.scss @@ -0,0 +1,3 @@ +// ------------------------------------------------------------- +// header +// ------------------------------------------------------------- diff --git a/src/css/3-base/_07-navigation.scss b/src/css/3-base/_07-navigation.scss new file mode 100755 index 0000000..94985d6 --- /dev/null +++ b/src/css/3-base/_07-navigation.scss @@ -0,0 +1,3 @@ +// ------------------------------------------------------------- +// navigation +// ------------------------------------------------------------- diff --git a/src/css/3-base/_08-content.scss b/src/css/3-base/_08-content.scss new file mode 100755 index 0000000..33b90c4 --- /dev/null +++ b/src/css/3-base/_08-content.scss @@ -0,0 +1,7 @@ +// ------------------------------------------------------------- +// content +// ------------------------------------------------------------- + +.content :where(h2, h3, h4) { + font-weight: 600; +} diff --git a/src/css/3-base/_09-footer.scss b/src/css/3-base/_09-footer.scss new file mode 100755 index 0000000..722090b --- /dev/null +++ b/src/css/3-base/_09-footer.scss @@ -0,0 +1,9 @@ +// ------------------------------------------------------------- +// footer +// ------------------------------------------------------------- + +.footer { + border-top: 0.2rem dotted $color-4; + margin-top: 5rem; + padding-block: 3rem; +} diff --git a/src/css/4-modules/.gitkeep b/src/css/4-modules/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/src/css/5-pages/.gitkeep b/src/css/5-pages/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/src/css/6-helpers/_colors.scss b/src/css/6-helpers/_colors.scss new file mode 100755 index 0000000..0bb9208 --- /dev/null +++ b/src/css/6-helpers/_colors.scss @@ -0,0 +1,10 @@ +// ------------------------------------------------------------- +// colors +// ------------------------------------------------------------- + +.color-1 { color: $color-1; } +.color-2 { color: $color-2; } +.color-3 { color: $color-3; } + +.color-red { color: $color-red; } +.color-green { color: $color-green; } diff --git a/src/css/6-helpers/_globals.scss b/src/css/6-helpers/_globals.scss new file mode 100644 index 0000000..ac09c22 --- /dev/null +++ b/src/css/6-helpers/_globals.scss @@ -0,0 +1,17 @@ +@each $utilKey, $utilValue in $helpers { + @if $utilKey == base { + @each $class, $prop, $value in map-get($helpers, $utilKey) { + .#{$class} { + #{$prop}: #{$value}; + } + } + } @else { + @media (max-width: map-get($breakpoints, $utilKey)) { + @each $class, $prop, $value in map-get($helpers, $utilKey) { + .#{$utilKey}\:#{$class} { + #{$prop}: #{$value}; + } + } + } + } +} diff --git a/src/css/6-helpers/_spacing.scss b/src/css/6-helpers/_spacing.scss new file mode 100755 index 0000000..de1e6c9 --- /dev/null +++ b/src/css/6-helpers/_spacing.scss @@ -0,0 +1,71 @@ +@use "sass:string"; + +// ------------------------------------------------------------- +// spacing +// ------------------------------------------------------------- + +// thanks to Kitty Giraudel +// used to "cast" float to string (0.5 => 05) +@function str-replace($string, $search, $replace: "") { + $string: "#{$string}"; + $index: string.index($string, $search); + + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + + @return $string; +} + +@mixin spacing($prefix, $property, $sizes) { + @each $size in $sizes { + .#{$prefix}#{str-replace($size, '.')} { + @if $size == 0 { + #{$property}: #{$size}; + } @else { + #{$property}: #{$size}rem; + } + } + } +} + +@each $spacerKey, $spacerValue in $spacers { + @if $spacerKey == base { + @each $class, $prop, $values in map-get($spacers, $spacerKey) { + @each $value in $values { + .#{$class}#{str-replace($value, '.')} { + @if $value == 0 { + #{$prop}: #{$value}; + } @else { + #{$prop}: #{$value}rem; + } + } + } + } + } @else { + @media (max-width: map-get($breakpoints, $spacerKey)) { + @each $class, $prop, $values in map-get($spacers, $spacerKey) { + @each $value in $values { + .#{$spacerKey}\:#{$class}#{str-replace($value, '.')} { + @if $value == 0 { + #{$prop}: #{$value}; + } @else { + #{$prop}: #{$value}rem; + } + } + } + } + } + } +} + +// specific spacers +// -------------------------------------------------------------- + +.mt-gap { + margin-top: $gap; +} + +.mb-gap { + margin-bottom: $gap; +} diff --git a/src/css/6-helpers/_state.scss b/src/css/6-helpers/_state.scss new file mode 100755 index 0000000..0c120cc --- /dev/null +++ b/src/css/6-helpers/_state.scss @@ -0,0 +1,7 @@ +// ------------------------------------------------------------- +// state +// ------------------------------------------------------------- + +.is-disabled { + cursor: not-allowed; +} diff --git a/src/css/7-vendors/.gitkeep b/src/css/7-vendors/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/src/css/8-rwd/_rwd-large.scss b/src/css/8-rwd/_rwd-large.scss new file mode 100755 index 0000000..59e943c --- /dev/null +++ b/src/css/8-rwd/_rwd-large.scss @@ -0,0 +1,6 @@ +// ------------------------------------------------------------- +// rwd large +// ------------------------------------------------------------- + +// @media (max-width: $large) { +// } diff --git a/src/css/8-rwd/_rwd-medium.scss b/src/css/8-rwd/_rwd-medium.scss new file mode 100755 index 0000000..f6139ab --- /dev/null +++ b/src/css/8-rwd/_rwd-medium.scss @@ -0,0 +1,6 @@ +// ------------------------------------------------------------- +// rwd medium +// ------------------------------------------------------------- + +// @media (max-width: $medium) { +// } diff --git a/src/css/8-rwd/_rwd-small.scss b/src/css/8-rwd/_rwd-small.scss new file mode 100755 index 0000000..5b0c74e --- /dev/null +++ b/src/css/8-rwd/_rwd-small.scss @@ -0,0 +1,6 @@ +// ------------------------------------------------------------- +// rwd small +// ------------------------------------------------------------- + +// @media (max-width: $small) { +// } diff --git a/src/css/8-rwd/_rwd.scss b/src/css/8-rwd/_rwd.scss new file mode 100755 index 0000000..92fa279 --- /dev/null +++ b/src/css/8-rwd/_rwd.scss @@ -0,0 +1,3 @@ +// ------------------------------------------------------------- +// Custom media-queries +// ------------------------------------------------------------- diff --git a/src/css/_colors.scss b/src/css/_colors.scss new file mode 100755 index 0000000..41eb39c --- /dev/null +++ b/src/css/_colors.scss @@ -0,0 +1,38 @@ +// ------------------------------------------------------------- +// colors +// -------------------------------------------------------------- + +$color-1: #3498db; +$color-2: #1abc9c; +$color-3: #34495e; +$color-4: #d0dada; +$color-info: #2185d0; +$color-red: #de350b; +$color-green: $color-2; +$color-yellow: #ffdd57; + +// ------------------------------------------------------------- +// text +// ------------------------------------------------------------- + +$color-light-text: #fcfcfc; +$color-dark-text: #000; + +// ------------------------------------------------------------- +// links +// ------------------------------------------------------------- + +$color-link: $color-1; + +// ------------------------------------------------------------- +// brands +// ------------------------------------------------------------- + +$color-twitter: #55acee; +$color-facebook: #3b5998; +$color-google: #dd4b39; +$color-youtube: #e52d27; +$color-pinterest: #cc2127; +$color-vimeo: #1ab7ea; +$color-linkedin: #0976b4; +$color-instagram: #3f729b; diff --git a/src/css/_config.scss b/src/css/_config.scss new file mode 100755 index 0000000..82801b1 --- /dev/null +++ b/src/css/_config.scss @@ -0,0 +1,52 @@ +@use "sass:color"; +@use "sass:map"; + +// -------------------------------------------------------------- +// config +// -------------------------------------------------------------- + +// ------------------------------------------------------------- +// base +// ------------------------------------------------------------- + +$base-font: 16; // px value (without unit), will be converted in em +$line-height: 1.5; +$fontstack1: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +$fontstack2: "Georgia", "Times", "Times New Roman", serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + +// ℹ️ Emoji fonts are explicitely declared at the fontstacks end to be sure to be displayed correctely on every platforms. https://answers.microsoft.com/en-us/windows/forum/all/flag-emoji/85b163bc-786a-4918-9042-763ccf4b6c05 + +// ------------------------------------------------------------- +// container +// ------------------------------------------------------------- + +$container-base: 120rem; +$container-small: 55rem; + +// ------------------------------------------------------------- +// responsive +// ------------------------------------------------------------- + +$breakpoints: ( + sm: 480px, + md: 769px, + lg: 1000px, +); +$small: map.get($breakpoints, sm); +$medium: map.get($breakpoints, md); +$large: map.get($breakpoints, lg); +$small-label: "sm"; +$medium-label: "md"; +$large-label: "lg"; + +// ------------------------------------------------------------- +// grids +// ------------------------------------------------------------- + +$gap: 3rem; + +// ------------------------------------------------------------- +// others +// ------------------------------------------------------------- + +$focus-ring: 0 0 0 0.3rem color.change(#3498db, $alpha: 0.7); diff --git a/src/css/_helpers.scss b/src/css/_helpers.scss new file mode 100644 index 0000000..fcf6f94 --- /dev/null +++ b/src/css/_helpers.scss @@ -0,0 +1,131 @@ +// ------------------------------------------------------------- +// helpers +// ------------------------------------------------------------- + +$helpers: ( + "base": ( + (block, display, block), + (inline, display, inline), + (inline-block, display, inline-block), + (flex, display, flex), + (inline-flex, display, inline-flex), + (flex-row, flex-direction, row), + (flex-row-reverse, flex-direction, row-reverse), + (flex-col, flex-direction, column), + (flex-col-reverse, flex-direction, column-reverse), + (flex-wrap, flex-wrap, wrap), + (flex-no-wrap, flex-wrap, nowrap), + (flex-shrink, flex-shrink, 1), + (flex-no-shrink, flex-shrink, 0), + (flex-grow, flex-grow, 1), + (flex-no-grow, flex-grow, 0), + (float-left, float, left), + (float-right, float, right), + (float-none, float, none), + (text-bold, font-weight, bold), + (text-semibold, font-weight, 600), + (text-regular, font-weight, normal), + (text-italic, font-style, italic), + (text-uppercase, text-transform, uppercase), + (text-lowercase, text-transform, lowercase), + (text-underline, text-decoration, underline), + (text-left, text-align, left), + (text-center, text-align, center), + (text-right, text-align, right), + (text-justify, text-align, justify), + (text-wrap, overflow-wrap, break-word), + (text-small, font-size, 0.875em), + (text-big, font-size, 1.1429em), + (text-bigger, font-size, 1.285em), + (place-items-center, place-items, center), + (justify-start, justify-content, flex-start), + (justify-end, justify-content, flex-end), + (justify-center, justify-content, center), + (justify-between, justify-content, space-between), + (justify-around, justify-content, space-around), + (justify-evenly, justify-content, space-evenly), + (justify-items-start, justify-items, start), + (justify-items-end, justify-items, end), + (justify-items-center, justify-items, center), + (align-start, align-content, start), + (align-end, align-content, end), + (align-center, align-content, center), + (align-between, align-content, space-between), + (align-around, align-content, space-around), + (align-evenly, align-content, space-evenly), + (align-items-start, align-items, flex-start), + (align-items-end, align-items, flex-end), + (align-items-center, align-items, center), + (align-items-stretch, align-items, stretch), + (justify-self-auto, justify-self, auto), + (justify-self-start, justify-self, start), + (justify-self-end, justify-self, end), + (justify-self-center, justify-self, center), + (justify-self-stretch, justify-self, stretch), + (align-self-auto, align-self, auto), + (align-self-start, align-self, flex-start), + (align-self-end, align-self, flex-end), + (align-self-center, align-self, center), + (align-self-stretch, align-self, stretch), + (align-top, vertical-align, top), + (align-bottom, vertical-align, bottom), + (align-middle, vertical-align, middle), + (w25, width, 25%), + (w75, width, 75%), + (w80, width, 80%), + (w90, width, 90%), + (w100, width, 100%), + (w50p, width, 5rem), + (w75p, width, 7.5rem), + (w100p, width, 10rem), + (w120p, width, 12rem), + (w135p, width, 13.5rem), + (w200p, width, 20rem), + (w250p, width, 25rem), + (w-max, width, max-content), + (mw0, min-width, 0), + (list-type-disc, list-style-type, disc), + (ml-auto, margin-left, auto), + (mr-auto, margin-right, auto), + ), + "md": ( + (flex-col, flex-direction, column), + (flex-grow, flex-grow, 1), + (flex-wrap, flex-wrap, wrap), + (align-items-stretch, align-items, stretch), + (align-items-start, align-items, flex-start), + ), + "sm": ( + (flex, display, flex), + (flex-col, flex-direction, column), + (text-center, text-align, center), + (w100, width, 100%), + ), +); + +// ------------------------------------------------------------- +// spacers +// ------------------------------------------------------------- + +$spacers: ( + "base": ( + (ma, margin, (0, 1, 2, 3)), + (mt, margin-top, (0, 1, 2, 3, 4, 5, 6, 7, 8)), + (mr, margin-right, (0.5, 1, 2, 3)), + (mb, margin-bottom, (0, 0.5, 1, 2, 3, 4, 5, 6, 7, 8)), + (ml, margin-left, (0.5, 1, 2, 3, 4)), + (pa, padding, (0, 1, 2, 3)), + (pt, padding-top, (1, 2, 3, 4, 6, 7, 8)), + (pr, padding-right, (1, 2, 3)), + (pb, padding-bottom, (1, 2, 3, 4, 7, 8)), + (pl, padding-left, (1, 2, 3, 4)), + ), + "md": ( + (mr, margin-right, (0, 0.5, 1, 2, 3)), + ), + "sm": ( + (ma, margin, (0, 1)), + (ml, margin-left, (0)), + (pa, padding, (0, 1)), + ) +); diff --git a/src/css/style.scss b/src/css/style.scss new file mode 100755 index 0000000..5d56cb9 --- /dev/null +++ b/src/css/style.scss @@ -0,0 +1,86 @@ +// ------------------------------------------------------------- +// config +// ------------------------------------------------------------- + +@import "_colors"; +@import "_config"; +@import "_helpers"; + +// ------------------------------------------------------------- +// core +// ------------------------------------------------------------- + +@import "1-core/_00-mixins"; +@import "1-core/_01-reset"; +@import "1-core/_02-typography"; +@import "1-core/_03-helpers"; +@import "1-core/_04-layout"; +@import "1-core/_05-grids"; +@import "1-core/_06-rwd"; +@import "1-core/_debug"; + +// ------------------------------------------------------------- +// components +// ------------------------------------------------------------- + +@import "2-components/_forms"; +@import "2-components/_switch"; +@import "2-components/_radiobox"; +@import "2-components/_buttons"; +@import "2-components/_pagination"; +@import "2-components/_tables"; +@import "2-components/_notifications"; +@import "2-components/_tag"; +@import "2-components/_tooltip"; + +// ------------------------------------------------------------- +// base +// ------------------------------------------------------------- + +@import "3-base/_01-fonts"; +@import "3-base/_02-icons"; +@import "3-base/_03-grids"; +@import "3-base/_04-main"; +@import "3-base/_05-layout"; +@import "3-base/_06-header"; +@import "3-base/_07-navigation"; +@import "3-base/_08-content"; +@import "3-base/_09-footer"; + +// ------------------------------------------------------------- +// modules +// ------------------------------------------------------------- + +// @import "4-modules/..."; + +// ------------------------------------------------------------- +// pages +// ------------------------------------------------------------- + +// @import "5-pages/..."; + +// ------------------------------------------------------------- +// helpers +// ------------------------------------------------------------- + +@import "6-helpers/_globals"; +@import "6-helpers/_colors"; +@import "6-helpers/_spacing"; + +/// ------------------------------------------------------------- +// vendors +// ------------------------------------------------------------- + +// Tips: load vendor from your package manager and override CSS here (e.g. o-vendor-name.scss) +// ↓ In this context, "o" means "override" and you can use it as a convention. + +// @import "7-vendors/o-vendor.scss"; + +// ------------------------------------------------------------- +// rwd +// ------------------------------------------------------------- + +@import "8-rwd/_rwd-large"; +@import "8-rwd/_rwd-medium"; +@import "8-rwd/_rwd-small"; +@import "8-rwd/_rwd"; diff --git a/src/index.njk b/src/index.njk new file mode 100644 index 0000000..e57d227 --- /dev/null +++ b/src/index.njk @@ -0,0 +1,5 @@ +--- +layout: base.njk +title: Compteur de grève +--- +contenu