From 1617a0438fb85dc6494025d105df89c4906d3764 Mon Sep 17 00:00:00 2001 From: Mark Wood-Patrick Date: Tue, 29 Mar 2022 10:33:20 -0700 Subject: [PATCH 001/128] docs: edge comment about details (#569) Co-authored-by: Eduardo San Martin Morote --- docs/guide/markdown.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index f2cb916a..693e915c 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -140,7 +140,7 @@ This is a dangerous warning ::: ::: details -This is a details block, which does not work in Internet Explorer or Edge. +This is a details block, which does not work in Internet Explorer or old versions of Edge. ::: ``` From 8957d0f8ee2054e176cfb86ad06bab4ef93ecd3d Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 6 May 2022 14:29:16 +0800 Subject: [PATCH 002/128] bump deps --- package.json | 18 +- pnpm-lock.yaml | 1433 ++++++++++++++++++++++-------------------------- 2 files changed, 675 insertions(+), 776 deletions(-) diff --git a/package.json b/package.json index ceb50b96..5f85bc1a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lint": "run-s lint:js lint:ts", "lint:js": "prettier --check --write \"{bin,docs,scripts,src}/**/*.js\"", "lint:ts": "prettier --check --write --parser typescript \"{__tests__,src,docs,types}/**/*.ts\"", - "test": "vitest run __tests__ -c __tests__/vitest.config.js --global", + "test": "vitest run __tests__ -c __tests__/vitest.config.js --globals", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", "release": "node scripts/release.js", "docs": "run-p dev docs-dev", @@ -72,15 +72,15 @@ "url": "https://github.com/vuejs/vitepress/issues" }, "dependencies": { - "@docsearch/css": "^3.0.0-alpha.41", - "@docsearch/js": "^3.0.0-alpha.41", - "@vitejs/plugin-vue": "^2.2.0", + "@docsearch/css": "^3.0.0", + "@docsearch/js": "^3.0.0", + "@vitejs/plugin-vue": "^2.3.2", "prismjs": "^1.25.0", - "vite": "^2.8.1", - "vue": "^3.2.31" + "vite": "^2.9.7", + "vue": "^3.2.33" }, "devDependencies": { - "@microsoft/api-extractor": "^7.18.9", + "@microsoft/api-extractor": "^7.23.1", "@rollup/plugin-alias": "^3.1.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", @@ -130,8 +130,8 @@ "rollup-plugin-esbuild": "^4.8.2", "semver": "^7.3.5", "sirv": "^1.0.12", - "typescript": "^4.3.2", - "vitest": "^0.1.19", + "typescript": "^4.6.4", + "vitest": "^0.10.4", "yorkie": "^2.0.0" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bfdad189..97779117 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,9 @@ importers: .: specifiers: - '@docsearch/css': ^3.0.0-alpha.41 - '@docsearch/js': ^3.0.0-alpha.41 - '@microsoft/api-extractor': ^7.18.9 + '@docsearch/css': ^3.0.0 + '@docsearch/js': ^3.0.0 + '@microsoft/api-extractor': ^7.23.1 '@rollup/plugin-alias': ^3.1.5 '@rollup/plugin-commonjs': ^20.0.0 '@rollup/plugin-json': ^4.1.0 @@ -22,7 +22,7 @@ importers: '@types/micromatch': ^4.0.2 '@types/node': ^15.6.1 '@types/polka': ^0.5.3 - '@vitejs/plugin-vue': ^2.2.0 + '@vitejs/plugin-vue': ^2.3.2 chalk: ^4.1.1 chokidar: ^3.5.1 compression: ^1.7.4 @@ -58,24 +58,24 @@ importers: rollup-plugin-esbuild: ^4.8.2 semver: ^7.3.5 sirv: ^1.0.12 - typescript: ^4.3.2 - vite: ^2.8.1 - vitest: ^0.1.19 - vue: ^3.2.31 + typescript: ^4.6.4 + vite: ^2.9.7 + vitest: ^0.10.4 + vue: ^3.2.33 yorkie: ^2.0.0 dependencies: - '@docsearch/css': 3.0.0-alpha.41 - '@docsearch/js': 3.0.0-alpha.41 - '@vitejs/plugin-vue': 2.2.0_vite@2.8.1+vue@3.2.31 - prismjs: 1.25.0 - vite: 2.8.1 - vue: 3.2.31 + '@docsearch/css': 3.0.0 + '@docsearch/js': 3.0.0 + '@vitejs/plugin-vue': 2.3.2_vite@2.9.8+vue@3.2.33 + prismjs: 1.28.0 + vite: 2.9.8 + vue: 3.2.33 devDependencies: - '@microsoft/api-extractor': 7.18.11 - '@rollup/plugin-alias': 3.1.5_rollup@2.57.0 - '@rollup/plugin-commonjs': 20.0.0_rollup@2.57.0 - '@rollup/plugin-json': 4.1.0_rollup@2.57.0 - '@rollup/plugin-node-resolve': 13.0.5_rollup@2.57.0 + '@microsoft/api-extractor': 7.23.1 + '@rollup/plugin-alias': 3.1.9_rollup@2.72.0 + '@rollup/plugin-commonjs': 20.0.0_rollup@2.72.0 + '@rollup/plugin-json': 4.1.0_rollup@2.72.0 + '@rollup/plugin-node-resolve': 13.3.0_rollup@2.72.0 '@types/compression': 1.7.2 '@types/cross-spawn': 6.0.2 '@types/debug': 4.1.7 @@ -83,46 +83,46 @@ importers: '@types/koa': 2.13.4 '@types/koa-static': 4.0.2 '@types/lru-cache': 5.1.1 - '@types/markdown-it': 12.2.1 + '@types/markdown-it': 12.2.3 '@types/micromatch': 4.0.2 '@types/node': 15.14.9 - '@types/polka': 0.5.3 + '@types/polka': 0.5.4 chalk: 4.1.2 - chokidar: 3.5.2 + chokidar: 3.5.3 compression: 1.7.4 - conventional-changelog-cli: 2.1.1 + conventional-changelog-cli: 2.2.2 cross-spawn: 7.0.3 - debug: 4.3.2 + debug: 4.3.4 diacritics: 1.3.0 enquirer: 2.3.6 - esbuild: 0.14.3 + esbuild: 0.14.38 escape-html: 1.0.3 execa: 5.1.1 - fast-glob: 3.2.7 - fs-extra: 10.0.0 - globby: 11.0.4 + fast-glob: 3.2.11 + fs-extra: 10.1.0 + globby: 11.1.0 gray-matter: 4.0.3 - lint-staged: 11.1.2 + lint-staged: 11.2.6 lru-cache: 6.0.0 markdown-it: 12.3.2 - markdown-it-anchor: 8.4.1_940cc64b929ea62ef73eba29fd968cec + markdown-it-anchor: 8.6.3_d643ca6eb40ae68ab966a77bead78073 markdown-it-attrs: 4.1.3_markdown-it@12.3.2 markdown-it-container: 3.0.0 - markdown-it-emoji: 2.0.0 + markdown-it-emoji: 2.0.2 markdown-it-table-of-contents: 0.6.0 - micromatch: 4.0.4 - minimist: 1.2.5 + micromatch: 4.0.5 + minimist: 1.2.6 npm-run-all: 4.1.5 ora: 5.4.1 polka: 0.5.2 - prettier: 2.4.1 + prettier: 2.6.2 rimraf: 3.0.2 - rollup: 2.57.0 - rollup-plugin-esbuild: 4.8.2_esbuild@0.14.3+rollup@2.57.0 - semver: 7.3.5 - sirv: 1.0.17 - typescript: 4.4.3 - vitest: 0.1.19 + rollup: 2.72.0 + rollup-plugin-esbuild: 4.9.1_esbuild@0.14.38+rollup@2.72.0 + semver: 7.3.7 + sirv: 1.0.19 + typescript: 4.6.4 + vitest: 0.10.4 yorkie: 2.0.0 docs: @@ -136,14 +136,14 @@ importers: packages: - /@algolia/autocomplete-core/1.2.2: - resolution: {integrity: sha512-JOQaURze45qVa8OOFDh+ozj2a/ObSRsVyz6Zd0aiBeej+RSTqrr1hDVpGNbbXYLW26G5ujuc9QIdH+rBHn95nw==} + /@algolia/autocomplete-core/1.5.2: + resolution: {integrity: sha512-DY0bhyczFSS1b/CqJlTE/nQRtnTAHl6IemIkBy0nEWnhDzRDdtdx4p5Uuk3vwAFxwEEgi1WqKwgSSMx6DpNL4A==} dependencies: - '@algolia/autocomplete-shared': 1.2.2 + '@algolia/autocomplete-shared': 1.5.2 dev: false - /@algolia/autocomplete-preset-algolia/1.2.2_algoliasearch@4.11.0: - resolution: {integrity: sha512-AZkh+bAMaJDzMZTelFOXJTJqkp5VPGH8W3n0B+Ggce7DdozlMRsDLguKTCQAkZ0dJ1EbBPyFL5ztL/JImB137Q==} + /@algolia/autocomplete-preset-algolia/1.5.2_algoliasearch@4.13.0: + resolution: {integrity: sha512-3MRYnYQFJyovANzSX2CToS6/5cfVjbLLqFsZTKcvF3abhQzxbqwwaMBlJtt620uBUOeMzhdfasKhCc40+RHiZw==} peerDependencies: '@algolia/client-search': ^4.9.1 algoliasearch: ^4.9.1 @@ -151,102 +151,102 @@ packages: '@algolia/client-search': optional: true dependencies: - '@algolia/autocomplete-shared': 1.2.2 - algoliasearch: 4.11.0 + '@algolia/autocomplete-shared': 1.5.2 + algoliasearch: 4.13.0 dev: false - /@algolia/autocomplete-shared/1.2.2: - resolution: {integrity: sha512-mLTl7d2C1xVVazHt/bqh9EE/u2lbp5YOxLDdcjILXmUqOs5HH1D4SuySblXaQG1uf28FhTqMGp35qE5wJQnqAw==} + /@algolia/autocomplete-shared/1.5.2: + resolution: {integrity: sha512-ylQAYv5H0YKMfHgVWX0j0NmL8XBcAeeeVQUmppnnMtzDbDnca6CzhKj3Q8eF9cHCgcdTDdb5K+3aKyGWA0obug==} dev: false - /@algolia/cache-browser-local-storage/4.11.0: - resolution: {integrity: sha512-4sr9vHIG1fVA9dONagdzhsI/6M5mjs/qOe2xUP0yBmwsTsuwiZq3+Xu6D3dsxsuFetcJgC6ydQoCW8b7fDJHYQ==} + /@algolia/cache-browser-local-storage/4.13.0: + resolution: {integrity: sha512-nj1vHRZauTqP/bluwkRIgEADEimqojJgoTRCel5f6q8WCa9Y8QeI4bpDQP28FoeKnDRYa3J5CauDlN466jqRhg==} dependencies: - '@algolia/cache-common': 4.11.0 + '@algolia/cache-common': 4.13.0 dev: false - /@algolia/cache-common/4.11.0: - resolution: {integrity: sha512-lODcJRuPXqf+6mp0h6bOxPMlbNoyn3VfjBVcQh70EDP0/xExZbkpecgHyyZK4kWg+evu+mmgvTK3GVHnet/xKw==} + /@algolia/cache-common/4.13.0: + resolution: {integrity: sha512-f9mdZjskCui/dA/fA/5a+6hZ7xnHaaZI5tM/Rw9X8rRB39SUlF/+o3P47onZ33n/AwkpSbi5QOyhs16wHd55kA==} dev: false - /@algolia/cache-in-memory/4.11.0: - resolution: {integrity: sha512-aBz+stMSTBOBaBEQ43zJXz2DnwS7fL6dR0e2myehAgtfAWlWwLDHruc/98VOy1ZAcBk1blE2LCU02bT5HekGxQ==} + /@algolia/cache-in-memory/4.13.0: + resolution: {integrity: sha512-hHdc+ahPiMM92CQMljmObE75laYzNFYLrNOu0Q3/eyvubZZRtY2SUsEEgyUEyzXruNdzrkcDxFYa7YpWBJYHAg==} dependencies: - '@algolia/cache-common': 4.11.0 + '@algolia/cache-common': 4.13.0 dev: false - /@algolia/client-account/4.11.0: - resolution: {integrity: sha512-jwmFBoUSzoMwMqgD3PmzFJV/d19p1RJXB6C1ADz4ju4mU7rkaQLtqyZroQpheLoU5s5Tilmn/T8/0U2XLoJCRQ==} + /@algolia/client-account/4.13.0: + resolution: {integrity: sha512-FzFqFt9b0g/LKszBDoEsW+dVBuUe1K3scp2Yf7q6pgHWM1WqyqUlARwVpLxqyc+LoyJkTxQftOKjyFUqddnPKA==} dependencies: - '@algolia/client-common': 4.11.0 - '@algolia/client-search': 4.11.0 - '@algolia/transporter': 4.11.0 + '@algolia/client-common': 4.13.0 + '@algolia/client-search': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false - /@algolia/client-analytics/4.11.0: - resolution: {integrity: sha512-v5U9585aeEdYml7JqggHAj3E5CQ+jPwGVztPVhakBk8H/cmLyPS2g8wvmIbaEZCHmWn4TqFj3EBHVYxAl36fSA==} + /@algolia/client-analytics/4.13.0: + resolution: {integrity: sha512-klmnoq2FIiiMHImkzOm+cGxqRLLu9CMHqFhbgSy9wtXZrqb8BBUIUE2VyBe7azzv1wKcxZV2RUyNOMpFqmnRZA==} dependencies: - '@algolia/client-common': 4.11.0 - '@algolia/client-search': 4.11.0 - '@algolia/requester-common': 4.11.0 - '@algolia/transporter': 4.11.0 + '@algolia/client-common': 4.13.0 + '@algolia/client-search': 4.13.0 + '@algolia/requester-common': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false - /@algolia/client-common/4.11.0: - resolution: {integrity: sha512-Qy+F+TZq12kc7tgfC+FM3RvYH/Ati7sUiUv/LkvlxFwNwNPwWGoZO81AzVSareXT/ksDDrabD4mHbdTbBPTRmQ==} + /@algolia/client-common/4.13.0: + resolution: {integrity: sha512-GoXfTp0kVcbgfSXOjfrxx+slSipMqGO9WnNWgeMmru5Ra09MDjrcdunsiiuzF0wua6INbIpBQFTC2Mi5lUNqGA==} dependencies: - '@algolia/requester-common': 4.11.0 - '@algolia/transporter': 4.11.0 + '@algolia/requester-common': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false - /@algolia/client-personalization/4.11.0: - resolution: {integrity: sha512-mI+X5IKiijHAzf9fy8VSl/GTT67dzFDnJ0QAM8D9cMPevnfX4U72HRln3Mjd0xEaYUOGve8TK/fMg7d3Z5yG6g==} + /@algolia/client-personalization/4.13.0: + resolution: {integrity: sha512-KneLz2WaehJmNfdr5yt2HQETpLaCYagRdWwIwkTqRVFCv4DxRQ2ChPVW9jeTj4YfAAhfzE6F8hn7wkQ/Jfj6ZA==} dependencies: - '@algolia/client-common': 4.11.0 - '@algolia/requester-common': 4.11.0 - '@algolia/transporter': 4.11.0 + '@algolia/client-common': 4.13.0 + '@algolia/requester-common': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false - /@algolia/client-search/4.11.0: - resolution: {integrity: sha512-iovPLc5YgiXBdw2qMhU65sINgo9umWbHFzInxoNErWnYoTQWfXsW6P54/NlKx5uscoLVjSf+5RUWwFu5BX+lpw==} + /@algolia/client-search/4.13.0: + resolution: {integrity: sha512-blgCKYbZh1NgJWzeGf+caKE32mo3j54NprOf0LZVCubQb3Kx37tk1Hc8SDs9bCAE8hUvf3cazMPIg7wscSxspA==} dependencies: - '@algolia/client-common': 4.11.0 - '@algolia/requester-common': 4.11.0 - '@algolia/transporter': 4.11.0 + '@algolia/client-common': 4.13.0 + '@algolia/requester-common': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false - /@algolia/logger-common/4.11.0: - resolution: {integrity: sha512-pRMJFeOY8hoWKIxWuGHIrqnEKN/kqKh7UilDffG/+PeEGxBuku+Wq5CfdTFG0C9ewUvn8mAJn5BhYA5k8y0Jqg==} + /@algolia/logger-common/4.13.0: + resolution: {integrity: sha512-8yqXk7rMtmQJ9wZiHOt/6d4/JDEg5VCk83gJ39I+X/pwUPzIsbKy9QiK4uJ3aJELKyoIiDT1hpYVt+5ia+94IA==} dev: false - /@algolia/logger-console/4.11.0: - resolution: {integrity: sha512-wXztMk0a3VbNmYP8Kpc+F7ekuvaqZmozM2eTLok0XIshpAeZ/NJDHDffXK2Pw+NF0wmHqurptLYwKoikjBYvhQ==} + /@algolia/logger-console/4.13.0: + resolution: {integrity: sha512-YepRg7w2/87L0vSXRfMND6VJ5d6699sFJBRWzZPOlek2p5fLxxK7O0VncYuc/IbVHEgeApvgXx0WgCEa38GVuQ==} dependencies: - '@algolia/logger-common': 4.11.0 + '@algolia/logger-common': 4.13.0 dev: false - /@algolia/requester-browser-xhr/4.11.0: - resolution: {integrity: sha512-Fp3SfDihAAFR8bllg8P5ouWi3+qpEVN5e7hrtVIYldKBOuI/qFv80Zv/3/AMKNJQRYglS4zWyPuqrXm58nz6KA==} + /@algolia/requester-browser-xhr/4.13.0: + resolution: {integrity: sha512-Dj+bnoWR5MotrnjblzGKZ2kCdQi2cK/VzPURPnE616NU/il7Ypy6U6DLGZ/ZYz+tnwPa0yypNf21uqt84fOgrg==} dependencies: - '@algolia/requester-common': 4.11.0 + '@algolia/requester-common': 4.13.0 dev: false - /@algolia/requester-common/4.11.0: - resolution: {integrity: sha512-+cZGe/9fuYgGuxjaBC+xTGBkK7OIYdfapxhfvEf03dviLMPmhmVYFJtJlzAjQ2YmGDJpHrGgAYj3i/fbs8yhiA==} + /@algolia/requester-common/4.13.0: + resolution: {integrity: sha512-BRTDj53ecK+gn7ugukDWOOcBRul59C4NblCHqj4Zm5msd5UnHFjd/sGX+RLOEoFMhetILAnmg6wMrRrQVac9vw==} dev: false - /@algolia/requester-node-http/4.11.0: - resolution: {integrity: sha512-qJIk9SHRFkKDi6dMT9hba8X1J1z92T5AZIgl+tsApjTGIRQXJLTIm+0q4yOefokfu4CoxYwRZ9QAq+ouGwfeOg==} + /@algolia/requester-node-http/4.13.0: + resolution: {integrity: sha512-9b+3O4QFU4azLhGMrZAr/uZPydvzOR4aEZfSL8ZrpLZ7fbbqTO0S/5EVko+QIgglRAtVwxvf8UJ1wzTD2jvKxQ==} dependencies: - '@algolia/requester-common': 4.11.0 + '@algolia/requester-common': 4.13.0 dev: false - /@algolia/transporter/4.11.0: - resolution: {integrity: sha512-k4dyxiaEfYpw4UqybK9q7lrFzehygo6KV3OCYJMMdX0IMWV0m4DXdU27c1zYRYtthaFYaBzGF4Kjcl8p8vxCKw==} + /@algolia/transporter/4.13.0: + resolution: {integrity: sha512-8tSQYE+ykQENAdeZdofvtkOr5uJ9VcQSWgRhQ9h01AehtBIPAczk/b2CLrMsw5yQZziLs5cZ3pJ3478yI+urhA==} dependencies: - '@algolia/cache-common': 4.11.0 - '@algolia/logger-common': 4.11.0 - '@algolia/requester-common': 4.11.0 + '@algolia/cache-common': 4.13.0 + '@algolia/logger-common': 4.13.0 + '@algolia/requester-common': 4.13.0 dev: false /@arr/every/1.0.1: @@ -254,42 +254,42 @@ packages: engines: {node: '>=4'} dev: true - /@babel/code-frame/7.14.5: - resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==} + /@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.14.5 + '@babel/highlight': 7.17.9 dev: true - /@babel/helper-validator-identifier/7.15.7: - resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} + /@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight/7.14.5: - resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} + /@babel/highlight/7.17.9: + resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.15.7 + '@babel/helper-validator-identifier': 7.16.7 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/parser/7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} + /@babel/parser/7.17.10: + resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} engines: {node: '>=6.0.0'} hasBin: true dev: false - /@docsearch/css/3.0.0-alpha.41: - resolution: {integrity: sha512-AP1jqcF/9jCrm4s0lcES3QAtHueyipKjd14L/pguk0CZYK7uI7hC0FWodmRmrgK3/HST9jiHa1waUMR6ZYedlQ==} + /@docsearch/css/3.0.0: + resolution: {integrity: sha512-1kkV7tkAsiuEd0shunYRByKJe3xQDG2q7wYg24SOw1nV9/2lwEd4WrUYRJC/ukGTl2/kHeFxsaUvtiOy0y6fFA==} dev: false - /@docsearch/js/3.0.0-alpha.41: - resolution: {integrity: sha512-dD9r+ygmzJEE50wtnRUs6I7TMD4ui7igEQlt74jZsn0SUPk6AlIP2ldII8brJHr0I4qs4OzlyrvV6ikAqjR6sw==} + /@docsearch/js/3.0.0: + resolution: {integrity: sha512-j3tUJWlgW3slYqzGB8fm7y05kh2qqrIK1dZOXHeMUm/5gdKE85fiz/ltfCPMDFb/MXF+bLZChJXSMzqY0Ck30Q==} dependencies: - '@docsearch/react': 3.0.0-alpha.41 - preact: 10.5.15 + '@docsearch/react': 3.0.0 + preact: 10.7.1 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -297,8 +297,8 @@ packages: - react-dom dev: false - /@docsearch/react/3.0.0-alpha.41: - resolution: {integrity: sha512-UL0Gdter/NUea04lGuBGH0GzQ2/2q/hBfn7Rjo71rRKbjtfkQCM92leJ9tZ+9j9sFLoyuHb9XMm/B8vCjWwTEg==} + /@docsearch/react/3.0.0: + resolution: {integrity: sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==} peerDependencies: '@types/react': '>= 16.8.0 < 18.0.0' react: '>= 16.8.0 < 18.0.0' @@ -311,10 +311,10 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.2.2 - '@algolia/autocomplete-preset-algolia': 1.2.2_algoliasearch@4.11.0 - '@docsearch/css': 3.0.0-alpha.41 - algoliasearch: 4.11.0 + '@algolia/autocomplete-core': 1.5.2 + '@algolia/autocomplete-preset-algolia': 1.5.2_algoliasearch@4.13.0 + '@docsearch/css': 3.0.0 + algoliasearch: 4.13.0 transitivePeerDependencies: - '@algolia/client-search' dev: false @@ -324,43 +324,43 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@microsoft/api-extractor-model/7.13.9: - resolution: {integrity: sha512-t/XKTr8MlHRWgDr1fkyCzTQRR5XICf/WzIFs8yw1JLU8Olw99M3by4/dtpOZNskfqoW+J8NwOxovduU2csi4Ww==} + /@microsoft/api-extractor-model/7.17.2: + resolution: {integrity: sha512-fYfCeBeLm7jnZligC64qHiH4/vzswFLDfyPpX+uKO36OI2kIeMHrYG0zaezmuinKvE4vg1dAz38zZeDbPvBKGg==} dependencies: - '@microsoft/tsdoc': 0.13.2 - '@microsoft/tsdoc-config': 0.15.2 - '@rushstack/node-core-library': 3.41.0 + '@microsoft/tsdoc': 0.14.1 + '@microsoft/tsdoc-config': 0.16.1 + '@rushstack/node-core-library': 3.45.4 dev: true - /@microsoft/api-extractor/7.18.11: - resolution: {integrity: sha512-WfN5MZry4TrF60OOcGadFDsGECF9JNKNT+8P/8crYAumAYQRitI2cUiQRlCWrgmFgCWNezsNZeI/2BggdnUqcg==} + /@microsoft/api-extractor/7.23.1: + resolution: {integrity: sha512-J5cTjbMzSZPRZT4AKvFI1KmLGHVhV6bHnFcPo3Og9cN9QmknzpKg5BxvpBecEdFKNZxUpUrBkps2xOQ4Fjc6zg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.13.9 - '@microsoft/tsdoc': 0.13.2 - '@microsoft/tsdoc-config': 0.15.2 - '@rushstack/node-core-library': 3.41.0 - '@rushstack/rig-package': 0.3.1 - '@rushstack/ts-command-line': 4.9.1 + '@microsoft/api-extractor-model': 7.17.2 + '@microsoft/tsdoc': 0.14.1 + '@microsoft/tsdoc-config': 0.16.1 + '@rushstack/node-core-library': 3.45.4 + '@rushstack/rig-package': 0.3.11 + '@rushstack/ts-command-line': 4.10.10 colors: 1.2.5 lodash: 4.17.21 resolve: 1.17.0 - semver: 7.3.5 + semver: 7.3.7 source-map: 0.6.1 - typescript: 4.4.3 + typescript: 4.6.4 dev: true - /@microsoft/tsdoc-config/0.15.2: - resolution: {integrity: sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA==} + /@microsoft/tsdoc-config/0.16.1: + resolution: {integrity: sha512-2RqkwiD4uN6MLnHFljqBlZIXlt/SaUT6cuogU1w2ARw4nKuuppSmR0+s+NC+7kXBQykd9zzu0P4HtBpZT5zBpQ==} dependencies: - '@microsoft/tsdoc': 0.13.2 + '@microsoft/tsdoc': 0.14.1 ajv: 6.12.6 jju: 1.4.0 resolve: 1.19.0 dev: true - /@microsoft/tsdoc/0.13.2: - resolution: {integrity: sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==} + /@microsoft/tsdoc/0.14.1: + resolution: {integrity: sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw==} dev: true /@nodelib/fs.scandir/2.1.5: @@ -388,61 +388,61 @@ packages: resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} dev: true - /@polka/url/1.0.0-next.20: - resolution: {integrity: sha512-88p7+M0QGxKpmnkfXjS4V26AnoC/eiqZutE8GLdaI5X12NY75bXSdTY9NkmYb2Xyk1O+MmkuO6Frmsj84V6I8Q==} + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/plugin-alias/3.1.5_rollup@2.57.0: - resolution: {integrity: sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ==} + /@rollup/plugin-alias/3.1.9_rollup@2.72.0: + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} engines: {node: '>=8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - rollup: 2.57.0 + rollup: 2.72.0 slash: 3.0.0 dev: true - /@rollup/plugin-commonjs/20.0.0_rollup@2.57.0: + /@rollup/plugin-commonjs/20.0.0_rollup@2.72.0: resolution: {integrity: sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.38.3 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.57.0 + '@rollup/pluginutils': 3.1.0_rollup@2.72.0 commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.0 is-reference: 1.2.1 - magic-string: 0.25.7 - resolve: 1.20.0 - rollup: 2.57.0 + magic-string: 0.25.9 + resolve: 1.22.0 + rollup: 2.72.0 dev: true - /@rollup/plugin-json/4.1.0_rollup@2.57.0: + /@rollup/plugin-json/4.1.0_rollup@2.72.0: resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.57.0 - rollup: 2.57.0 + '@rollup/pluginutils': 3.1.0_rollup@2.72.0 + rollup: 2.72.0 dev: true - /@rollup/plugin-node-resolve/13.0.5_rollup@2.57.0: - resolution: {integrity: sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==} + /@rollup/plugin-node-resolve/13.3.0_rollup@2.72.0: + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.57.0 + '@rollup/pluginutils': 3.1.0_rollup@2.72.0 '@types/resolve': 1.17.1 - builtin-modules: 3.2.0 deepmerge: 4.2.2 + is-builtin-module: 3.1.0 is-module: 1.0.0 - resolve: 1.20.0 - rollup: 2.57.0 + resolve: 1.22.0 + rollup: 2.72.0 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.57.0: + /@rollup/pluginutils/3.1.0_rollup@2.72.0: resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -450,20 +450,20 @@ packages: dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 - picomatch: 2.3.0 - rollup: 2.57.0 + picomatch: 2.3.1 + rollup: 2.72.0 dev: true - /@rollup/pluginutils/4.1.1: - resolution: {integrity: sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==} + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} dependencies: estree-walker: 2.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true - /@rushstack/node-core-library/3.41.0: - resolution: {integrity: sha512-JxdmqR+SHU04jTDaZhltMZL3/XTz2ZZM47DTN+FSPUGUVp6WmxLlvJnT5FoHrOZWUjL/FoIlZUdUPTSXjTjIcg==} + /@rushstack/node-core-library/3.45.4: + resolution: {integrity: sha512-FMoEQWjK7nWAO2uFgV1eVpVhY9ZDGOdIIomi9zTej64cKJ+8/Nvu+ny0xKaUDEjw/ALftN2D2ml7L0RDpW/Z9g==} dependencies: '@types/node': 12.20.24 colors: 1.2.5 @@ -471,20 +471,20 @@ packages: import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.17.0 - semver: 7.3.5 + semver: 7.3.7 timsort: 0.3.0 - z-schema: 3.18.4 + z-schema: 5.0.3 dev: true - /@rushstack/rig-package/0.3.1: - resolution: {integrity: sha512-DXQmrPWOCNoE2zPzHCShE1y47FlgbAg48wpaY058Qo/yKDzL0GlEGf5Ra2NIt22pMcp0R/HHh+kZGbqTnF4CrA==} + /@rushstack/rig-package/0.3.11: + resolution: {integrity: sha512-uI1/g5oQPtyrT9nStoyX/xgZSLa2b+srRFaDk3r1eqC7zA5th4/bvTGl2QfV3C9NcP+coSqmk5mFJkUfH6i3Lw==} dependencies: resolve: 1.17.0 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.9.1: - resolution: {integrity: sha512-zzoWB6OqVbMjnxlxbAUqbZqDWITUSHqwFCx7JbH5CVrjR9kcsB4NeWkN1I8GcR92beiOGvO3yPlB2NRo5Ugh+A==} + /@rushstack/ts-command-line/4.10.10: + resolution: {integrity: sha512-F+MH7InPDXqX40qvvcEsnvPpmg566SBpfFqj2fcCh8RjM6AyOoWlXc8zx7giBD3ZN85NVAEjZAgrcLU0z+R2yg==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -502,8 +502,8 @@ packages: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true - /@types/body-parser/1.19.1: - resolution: {integrity: sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==} + /@types/body-parser/1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 '@types/node': 15.14.9 @@ -516,11 +516,11 @@ packages: /@types/chai-subset/1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.0 + '@types/chai': 4.3.1 dev: true - /@types/chai/4.3.0: - resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==} + /@types/chai/4.3.1: + resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} dev: true /@types/compression/1.7.2: @@ -535,8 +535,8 @@ packages: '@types/node': 15.14.9 dev: true - /@types/content-disposition/0.5.4: - resolution: {integrity: sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==} + /@types/content-disposition/0.5.5: + resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==} dev: true /@types/cookies/0.7.7: @@ -564,12 +564,12 @@ packages: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true - /@types/estree/0.0.50: - resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==} + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true - /@types/express-serve-static-core/4.17.24: - resolution: {integrity: sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==} + /@types/express-serve-static-core/4.17.28: + resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==} dependencies: '@types/node': 15.14.9 '@types/qs': 6.9.7 @@ -579,8 +579,8 @@ packages: /@types/express/4.17.13: resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} dependencies: - '@types/body-parser': 1.19.1 - '@types/express-serve-static-core': 4.17.24 + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.28 '@types/qs': 6.9.7 '@types/serve-static': 1.13.10 dev: true @@ -595,8 +595,8 @@ packages: resolution: {integrity: sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==} dev: true - /@types/http-errors/1.8.1: - resolution: {integrity: sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==} + /@types/http-errors/1.8.2: + resolution: {integrity: sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==} dev: true /@types/keygrip/1.0.2: @@ -626,10 +626,10 @@ packages: resolution: {integrity: sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==} dependencies: '@types/accepts': 1.3.5 - '@types/content-disposition': 0.5.4 + '@types/content-disposition': 0.5.5 '@types/cookies': 0.7.7 '@types/http-assert': 1.5.3 - '@types/http-errors': 1.8.1 + '@types/http-errors': 1.8.2 '@types/keygrip': 1.0.2 '@types/koa-compose': 3.2.5 '@types/node': 15.14.9 @@ -643,12 +643,11 @@ packages: resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} dev: true - /@types/markdown-it/12.2.1: - resolution: {integrity: sha512-iij+ilRX/vxtUPCREjn74xzHo/RorHJDwOsJ6X+TgKw7zSvazhVXnDfwlTnyLOMdiVUjtRYU4CrcUZ7Aci4PmQ==} + /@types/markdown-it/12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} dependencies: '@types/linkify-it': 3.0.2 '@types/mdurl': 1.0.2 - highlight.js: 10.7.3 dev: true /@types/mdurl/1.0.2: @@ -689,13 +688,13 @@ packages: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true - /@types/polka/0.5.3: - resolution: {integrity: sha512-Myj8ztBAH63xXhff5OMGiHIj37O4RG7GTDmFL/Amb05BAdG8IYFC90vp9IpdN7hjpZ5tkepsSvQkPvWwB8IRwQ==} + /@types/polka/0.5.4: + resolution: {integrity: sha512-mLo6Mfa6lAvBrG1guj6HVxa1LpXw6ud4c93d2XQOHtADJv+VgiyXErmnjyVWre/r2oGSn1pcqO5IYaK0nv5b0g==} dependencies: '@types/express': 4.17.13 - '@types/express-serve-static-core': 4.17.24 + '@types/express-serve-static-core': 4.17.28 '@types/node': 15.14.9 - '@types/trouter': 3.1.0 + '@types/trouter': 3.1.1 dev: true /@types/qs/6.9.7: @@ -719,102 +718,102 @@ packages: '@types/node': 15.14.9 dev: true - /@types/trouter/3.1.0: - resolution: {integrity: sha512-4LPNrqSJknLzILMVXn2P/mh0djNgFvom4T9Y1hmhaB8OBm1cY71bMMSrGRu1q5qF4JZzY6iaGT11BHmCMY/NZg==} + /@types/trouter/3.1.1: + resolution: {integrity: sha512-XTpWPg/bsGt2oHRmNFfq6kjXDJgeX14pPVFq/PutOe83OFiwrSNP9pV0V2j5O+L/r2XiXRlOZPJtyaOAX5fCBQ==} dev: true - /@vitejs/plugin-vue/2.2.0_vite@2.8.1+vue@3.2.31: - resolution: {integrity: sha512-wXigM1EwN2G7rZcwG6kLk9ivvIMhx2363tCEvMBiXcTu5nePM/12hUPVzPb83Uugt6U+zom1gTpJopi/Ow/jwg==} + /@vitejs/plugin-vue/2.3.2_vite@2.9.8+vue@3.2.33: + resolution: {integrity: sha512-umyypfSHS4kQLdYAnJHhaASq7FRzNCdvcRoQ3uYGNk1/M4a+hXUd7ysN7BLhCrWH6uBokyCkFeUAaFDzSaaSrQ==} engines: {node: '>=12.0.0'} peerDependencies: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.8.1 - vue: 3.2.31 + vite: 2.9.8 + vue: 3.2.33 dev: false - /@vue/compiler-core/3.2.31: - resolution: {integrity: sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==} + /@vue/compiler-core/3.2.33: + resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==} dependencies: - '@babel/parser': 7.16.4 - '@vue/shared': 3.2.31 + '@babel/parser': 7.17.10 + '@vue/shared': 3.2.33 estree-walker: 2.0.2 source-map: 0.6.1 dev: false - /@vue/compiler-dom/3.2.31: - resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==} + /@vue/compiler-dom/3.2.33: + resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==} dependencies: - '@vue/compiler-core': 3.2.31 - '@vue/shared': 3.2.31 + '@vue/compiler-core': 3.2.33 + '@vue/shared': 3.2.33 dev: false - /@vue/compiler-sfc/3.2.31: - resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==} + /@vue/compiler-sfc/3.2.33: + resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==} dependencies: - '@babel/parser': 7.16.4 - '@vue/compiler-core': 3.2.31 - '@vue/compiler-dom': 3.2.31 - '@vue/compiler-ssr': 3.2.31 - '@vue/reactivity-transform': 3.2.31 - '@vue/shared': 3.2.31 + '@babel/parser': 7.17.10 + '@vue/compiler-core': 3.2.33 + '@vue/compiler-dom': 3.2.33 + '@vue/compiler-ssr': 3.2.33 + '@vue/reactivity-transform': 3.2.33 + '@vue/shared': 3.2.33 estree-walker: 2.0.2 - magic-string: 0.25.7 - postcss: 8.4.6 + magic-string: 0.25.9 + postcss: 8.4.13 source-map: 0.6.1 dev: false - /@vue/compiler-ssr/3.2.31: - resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==} + /@vue/compiler-ssr/3.2.33: + resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==} dependencies: - '@vue/compiler-dom': 3.2.31 - '@vue/shared': 3.2.31 + '@vue/compiler-dom': 3.2.33 + '@vue/shared': 3.2.33 dev: false - /@vue/reactivity-transform/3.2.31: - resolution: {integrity: sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==} + /@vue/reactivity-transform/3.2.33: + resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==} dependencies: - '@babel/parser': 7.16.4 - '@vue/compiler-core': 3.2.31 - '@vue/shared': 3.2.31 + '@babel/parser': 7.17.10 + '@vue/compiler-core': 3.2.33 + '@vue/shared': 3.2.33 estree-walker: 2.0.2 - magic-string: 0.25.7 + magic-string: 0.25.9 dev: false - /@vue/reactivity/3.2.31: - resolution: {integrity: sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==} + /@vue/reactivity/3.2.33: + resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==} dependencies: - '@vue/shared': 3.2.31 + '@vue/shared': 3.2.33 dev: false - /@vue/runtime-core/3.2.31: - resolution: {integrity: sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==} + /@vue/runtime-core/3.2.33: + resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==} dependencies: - '@vue/reactivity': 3.2.31 - '@vue/shared': 3.2.31 + '@vue/reactivity': 3.2.33 + '@vue/shared': 3.2.33 dev: false - /@vue/runtime-dom/3.2.31: - resolution: {integrity: sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==} + /@vue/runtime-dom/3.2.33: + resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==} dependencies: - '@vue/runtime-core': 3.2.31 - '@vue/shared': 3.2.31 - csstype: 2.6.18 + '@vue/runtime-core': 3.2.33 + '@vue/shared': 3.2.33 + csstype: 2.6.20 dev: false - /@vue/server-renderer/3.2.31_vue@3.2.31: - resolution: {integrity: sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==} + /@vue/server-renderer/3.2.33_vue@3.2.33: + resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==} peerDependencies: - vue: 3.2.31 + vue: 3.2.33 dependencies: - '@vue/compiler-ssr': 3.2.31 - '@vue/shared': 3.2.31 - vue: 3.2.31 + '@vue/compiler-ssr': 3.2.33 + '@vue/shared': 3.2.33 + vue: 3.2.33 dev: false - /@vue/shared/3.2.31: - resolution: {integrity: sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==} + /@vue/shared/3.2.33: + resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==} dev: false /JSONStream/1.3.5: @@ -825,12 +824,12 @@ packages: through: 2.3.8 dev: true - /accepts/1.3.7: - resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.32 - negotiator: 0.6.2 + mime-types: 2.1.35 + negotiator: 0.6.3 dev: true /add-stream/1.0.0: @@ -854,23 +853,23 @@ packages: uri-js: 4.4.1 dev: true - /algoliasearch/4.11.0: - resolution: {integrity: sha512-IXRj8kAP2WrMmj+eoPqPc6P7Ncq1yZkFiyDrjTBObV1ADNL8Z/KdZ+dWC5MmYcBLAbcB/mMCpak5N/D1UIZvsA==} - dependencies: - '@algolia/cache-browser-local-storage': 4.11.0 - '@algolia/cache-common': 4.11.0 - '@algolia/cache-in-memory': 4.11.0 - '@algolia/client-account': 4.11.0 - '@algolia/client-analytics': 4.11.0 - '@algolia/client-common': 4.11.0 - '@algolia/client-personalization': 4.11.0 - '@algolia/client-search': 4.11.0 - '@algolia/logger-common': 4.11.0 - '@algolia/logger-console': 4.11.0 - '@algolia/requester-browser-xhr': 4.11.0 - '@algolia/requester-common': 4.11.0 - '@algolia/requester-node-http': 4.11.0 - '@algolia/transporter': 4.11.0 + /algoliasearch/4.13.0: + resolution: {integrity: sha512-oHv4faI1Vl2s+YC0YquwkK/TsaJs79g2JFg5FDm2rKN12VItPTAeQ7hyJMHarOPPYuCnNC5kixbtcqvb21wchw==} + dependencies: + '@algolia/cache-browser-local-storage': 4.13.0 + '@algolia/cache-common': 4.13.0 + '@algolia/cache-in-memory': 4.13.0 + '@algolia/client-account': 4.13.0 + '@algolia/client-analytics': 4.13.0 + '@algolia/client-common': 4.13.0 + '@algolia/client-personalization': 4.13.0 + '@algolia/client-search': 4.13.0 + '@algolia/logger-common': 4.13.0 + '@algolia/logger-console': 4.13.0 + '@algolia/requester-browser-xhr': 4.13.0 + '@algolia/requester-common': 4.13.0 + '@algolia/requester-node-http': 4.13.0 + '@algolia/transporter': 4.13.0 dev: false /ansi-colors/4.1.1: @@ -909,7 +908,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /argparse/1.0.10: @@ -1023,14 +1022,15 @@ packages: engines: {node: '>=6'} dev: true - /chai/4.3.4: - resolution: {integrity: sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==} + /chai/4.3.6: + resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.2 deep-eql: 3.0.1 get-func-name: 2.0.0 + loupe: 2.3.4 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -1056,15 +1056,15 @@ packages: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} dev: true - /chokidar/3.5.2: - resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} 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 + is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: @@ -1087,8 +1087,8 @@ packages: restore-cursor: 3.1.0 dev: true - /cli-spinners/2.6.0: - resolution: {integrity: sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==} + /cli-spinners/2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} dev: true @@ -1138,6 +1138,10 @@ packages: resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} dev: true + /colorette/2.0.16: + resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} + dev: true + /colors/1.2.5: resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} engines: {node: '>=0.1.90'} @@ -1149,9 +1153,9 @@ packages: dev: true optional: true - /commander/7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + /commander/8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} dev: true /commondir/1.0.1: @@ -1169,14 +1173,14 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.50.0 + mime-db: 1.52.0 dev: true /compression/1.7.4: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} dependencies: - accepts: 1.3.7 + accepts: 1.3.8 bytes: 3.0.0 compressible: 2.0.18 debug: 2.6.9 @@ -1204,13 +1208,13 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-cli/2.1.1: - resolution: {integrity: sha512-xMGQdKJ+4XFDDgfX5aK7UNFduvJMbvF5BB+g0OdVhA3rYdYyhctrIE2Al+WYdZeKTdg9YzMWF2iFPT8MupIwng==} + /conventional-changelog-cli/2.2.2: + resolution: {integrity: sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==} engines: {node: '>=10'} hasBin: true dependencies: add-stream: 1.0.0 - conventional-changelog: 3.1.24 + conventional-changelog: 3.1.25 lodash: 4.17.21 meow: 8.1.2 tempfile: 3.0.0 @@ -1223,8 +1227,8 @@ packages: q: 1.5.1 dev: true - /conventional-changelog-conventionalcommits/4.6.1: - resolution: {integrity: sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==} + /conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} engines: {node: '>=10'} dependencies: compare-func: 2.0.0 @@ -1237,11 +1241,11 @@ packages: engines: {node: '>=10'} dependencies: add-stream: 1.0.0 - conventional-changelog-writer: 5.0.0 - conventional-commits-parser: 3.2.2 + conventional-changelog-writer: 5.0.1 + conventional-commits-parser: 3.2.4 dateformat: 3.0.3 get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.10 + git-raw-commits: 2.0.11 git-remote-origin-url: 2.0.0 git-semver-tags: 4.1.1 lodash: 4.17.21 @@ -1293,8 +1297,8 @@ packages: engines: {node: '>=10'} dev: true - /conventional-changelog-writer/5.0.0: - resolution: {integrity: sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==} + /conventional-changelog-writer/5.0.1: + resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -1309,14 +1313,14 @@ packages: through2: 4.0.2 dev: true - /conventional-changelog/3.1.24: - resolution: {integrity: sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==} + /conventional-changelog/3.1.25: + resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} engines: {node: '>=10'} dependencies: conventional-changelog-angular: 5.0.13 conventional-changelog-atom: 2.0.8 conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.1 + conventional-changelog-conventionalcommits: 4.6.3 conventional-changelog-core: 4.2.4 conventional-changelog-ember: 2.0.9 conventional-changelog-eslint: 3.0.9 @@ -1334,8 +1338,8 @@ packages: modify-values: 1.0.1 dev: true - /conventional-commits-parser/3.2.2: - resolution: {integrity: sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==} + /conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} engines: {node: '>=10'} hasBin: true dependencies: @@ -1390,8 +1394,8 @@ packages: which: 2.0.2 dev: true - /csstype/2.6.18: - resolution: {integrity: sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==} + /csstype/2.6.20: + resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} dev: false /dargs/7.0.0: @@ -1409,8 +1413,8 @@ packages: ms: 2.0.0 dev: true - /debug/4.3.2: - resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1421,8 +1425,8 @@ packages: ms: 2.1.2 dev: true - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + /debug/4.3.4_supports-color@8.1.1: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1431,6 +1435,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 dev: true /decamelize-keys/1.1.0: @@ -1464,10 +1469,11 @@ packages: clone: 1.0.4 dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} dependencies: + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true @@ -1510,28 +1516,33 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract/1.18.6: - resolution: {integrity: sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==} + /es-abstract/1.20.0: + resolution: {integrity: sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 + function.prototype.name: 1.1.5 get-intrinsic: 1.1.1 get-symbol-description: 1.0.0 has: 1.0.3 - has-symbols: 1.0.2 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 - is-negative-zero: 2.0.1 + is-negative-zero: 2.0.2 is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - object-inspect: 1.11.0 + is-weakref: 1.0.2 + object-inspect: 1.12.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 dev: true /es-module-lexer/0.9.3: @@ -1547,343 +1558,192 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.14.21: - resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==} + /esbuild-android-64/0.14.38: + resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [x64] os: [android] requiresBuild: true optional: true - /esbuild-android-arm64/0.14.3: - resolution: {integrity: sha512-v/vdnGJiSGWOAXzg422T9qb4S+P3tOaYtc5n3FDR27Bh3/xQDS7PdYz/yY7HhOlVp0eGwWNbPHEi8FcEhXjsuw==} + /esbuild-android-arm64/0.14.38: + resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true - /esbuild-darwin-64/0.14.21: - resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==} + /esbuild-darwin-64/0.14.38: + resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /esbuild-darwin-64/0.14.3: - resolution: {integrity: sha512-swY5OtEg6cfWdgc/XEjkBP7wXSyXXeZHEsWMdh1bDiN1D6GmRphk9SgKFKTj+P3ZHhOGIcC1+UdIwHk5bUcOig==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.14.21: - resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==} + /esbuild-darwin-arm64/0.14.38: + resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /esbuild-darwin-arm64/0.14.3: - resolution: {integrity: sha512-6i9dXPk8oT87wF6VHmwzSad76eMRU2Rt+GXrwF3Y4DCJgnPssJbabNQ9gurkuEX8M0YnEyJF0d1cR7rpTzcEiA==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.14.21: - resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==} + /esbuild-freebsd-64/0.14.38: + resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /esbuild-freebsd-64/0.14.3: - resolution: {integrity: sha512-WDY5ENsmyceeE+95U3eI+FM8yARY5akWkf21M/x/+v2P5OVsYqCYELglSeAI5Y7bhteCVV3g4i2fRqtkmprdSA==} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.14.21: - resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==} + /esbuild-freebsd-arm64/0.14.38: + resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /esbuild-freebsd-arm64/0.14.3: - resolution: {integrity: sha512-4BEEGcP0wBzg04pCCWXlgaPuksQHHfwHvYgCIsi+7IsuB17ykt6MHhTkHR5b5pjI/jNtRhPfMsDODUyftQJgvw==} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.14.21: - resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==} + /esbuild-linux-32/0.14.38: + resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /esbuild-linux-32/0.14.3: - resolution: {integrity: sha512-8yhsnjLG/GwCA1RAIndjmCHWViRB2Ol0XeOh2fCXS9qF8tlVrJB7qAiHZpm2vXx+yjOA/bFLTxzU+5pMKqkn5A==} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.14.21: - resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==} + /esbuild-linux-64/0.14.38: + resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /esbuild-linux-64/0.14.3: - resolution: {integrity: sha512-eNq4aixfbwXHIJq4bQDe+XaSNV1grxqpZYs/zHbp0HGHf6SBNlTI02uyTbYGpIzlXmCEPS9tpPCi7BTU45kcJQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.14.21: - resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==} + /esbuild-linux-arm/0.14.38: + resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /esbuild-linux-arm/0.14.3: - resolution: {integrity: sha512-YcMvJHAQnWrWKb+eLxN9e/iWUC/3w01UF/RXuMknqOW3prX8UQ63QknWz9/RI8BY/sdrdgPEbSmsTU2jy2cayQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.14.21: - resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==} + /esbuild-linux-arm64/0.14.38: + resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /esbuild-linux-arm64/0.14.3: - resolution: {integrity: sha512-wPLyRoqoV/tEMQ7M24DpAmCMyKqBmtgZY35w2tXM8X5O5b2Ohi7fkPSmd6ZgLIxZIApWt88toA8RT0S7qoxcOA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.14.21: - resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==} + /esbuild-linux-mips64le/0.14.38: + resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /esbuild-linux-mips64le/0.14.3: - resolution: {integrity: sha512-DdmfM5rcuoqjQL3px5MbquAjZWnySB5LdTrg52SSapp0gXMnGcsM6GY2WVta02CMKn5qi7WPVG4WbqTWE++tJw==} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.14.21: - resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==} + /esbuild-linux-ppc64le/0.14.38: + resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /esbuild-linux-ppc64le/0.14.3: - resolution: {integrity: sha512-ujdqryj0m135Ms9yaNDVFAcLeRtyftM/v2v7Osji5zElf2TivSMdFxdrYnYICuHfkm8c8gHg1ncwqitL0r+nnA==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.14.21: - resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==} + /esbuild-linux-riscv64/0.14.38: + resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /esbuild-linux-s390x/0.14.21: - resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==} + /esbuild-linux-s390x/0.14.38: + resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /esbuild-netbsd-64/0.14.21: - resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==} + /esbuild-netbsd-64/0.14.38: + resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /esbuild-netbsd-64/0.14.3: - resolution: {integrity: sha512-Z/UB9OUdwo1KDJCSGnVueDuKowRZRkduLvRMegHtDBHC3lS5LfZ3RdM1i+4MMN9iafyk8Q9FNcqIXI178ZujvA==} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.14.21: - resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==} + /esbuild-openbsd-64/0.14.38: + resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /esbuild-openbsd-64/0.14.3: - resolution: {integrity: sha512-9I1uoMDeogq3zQuTe3qygmXYjImnvc6rBn51LLbLniQDlfvqHPBMnAZ/5KshwtXXIIMkCwByytDZdiuzRRlTvQ==} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.14.21: - resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==} + /esbuild-sunos-64/0.14.38: + resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /esbuild-sunos-64/0.14.3: - resolution: {integrity: sha512-pldqx/Adxl4V4ymiyKxOOyJmHn6nUIo3wqk2xBx07iDgmL2XTcDDQd7N4U4QGu9LnYN4ZF+8IdOYa3oRRpbjtg==} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.14.21: - resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==} + /esbuild-windows-32/0.14.38: + resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /esbuild-windows-32/0.14.3: - resolution: {integrity: sha512-AqzvA/KbkC2m3kTXGpljLin3EttRbtoPTfBn6w6n2m9MWkTEbhQbE1ONoOBxhO5tExmyJdL/6B87TJJD5jEFBQ==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.14.21: - resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==} + /esbuild-windows-64/0.14.38: + resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /esbuild-windows-64/0.14.3: - resolution: {integrity: sha512-HGg3C6113zLGB5hN41PROTnBuoh/arG2lQdOird6xFl9giff1cAfMQOUJUfODKD57dDqHjQ1YGW8gOkg0/IrWw==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.14.21: - resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==} + /esbuild-windows-arm64/0.14.38: + resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /esbuild-windows-arm64/0.14.3: - resolution: {integrity: sha512-qB2izYu4VpigGnOrAN2Yv7ICYLZWY/AojZtwFfteViDnHgW4jXPYkHQIXTISJbRz25H2cYiv+MfRQYK31RNjlw==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.14.21: - resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==} + /esbuild/0.14.38: + resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.14.21 - esbuild-darwin-64: 0.14.21 - esbuild-darwin-arm64: 0.14.21 - esbuild-freebsd-64: 0.14.21 - esbuild-freebsd-arm64: 0.14.21 - esbuild-linux-32: 0.14.21 - esbuild-linux-64: 0.14.21 - esbuild-linux-arm: 0.14.21 - esbuild-linux-arm64: 0.14.21 - esbuild-linux-mips64le: 0.14.21 - esbuild-linux-ppc64le: 0.14.21 - esbuild-linux-riscv64: 0.14.21 - esbuild-linux-s390x: 0.14.21 - esbuild-netbsd-64: 0.14.21 - esbuild-openbsd-64: 0.14.21 - esbuild-sunos-64: 0.14.21 - esbuild-windows-32: 0.14.21 - esbuild-windows-64: 0.14.21 - esbuild-windows-arm64: 0.14.21 - - /esbuild/0.14.3: - resolution: {integrity: sha512-zyEC5hkguW2oieXRXp8VJzQdcO/1FxCS5GjzqOHItRlojXnx/cTavsrkxdWvBH9li2lUq0bN+LeeVEmyCwiR/Q==} - hasBin: true - requiresBuild: true - optionalDependencies: - esbuild-android-arm64: 0.14.3 - esbuild-darwin-64: 0.14.3 - esbuild-darwin-arm64: 0.14.3 - esbuild-freebsd-64: 0.14.3 - esbuild-freebsd-arm64: 0.14.3 - esbuild-linux-32: 0.14.3 - esbuild-linux-64: 0.14.3 - esbuild-linux-arm: 0.14.3 - esbuild-linux-arm64: 0.14.3 - esbuild-linux-mips64le: 0.14.3 - esbuild-linux-ppc64le: 0.14.3 - esbuild-netbsd-64: 0.14.3 - esbuild-openbsd-64: 0.14.3 - esbuild-sunos-64: 0.14.3 - esbuild-windows-32: 0.14.3 - esbuild-windows-64: 0.14.3 - esbuild-windows-arm64: 0.14.3 - dev: true + esbuild-android-64: 0.14.38 + esbuild-android-arm64: 0.14.38 + esbuild-darwin-64: 0.14.38 + esbuild-darwin-arm64: 0.14.38 + esbuild-freebsd-64: 0.14.38 + esbuild-freebsd-arm64: 0.14.38 + esbuild-linux-32: 0.14.38 + esbuild-linux-64: 0.14.38 + esbuild-linux-arm: 0.14.38 + esbuild-linux-arm64: 0.14.38 + esbuild-linux-mips64le: 0.14.38 + esbuild-linux-ppc64le: 0.14.38 + esbuild-linux-riscv64: 0.14.38 + esbuild-linux-s390x: 0.14.38 + esbuild-netbsd-64: 0.14.38 + esbuild-openbsd-64: 0.14.38 + esbuild-sunos-64: 0.14.38 + esbuild-windows-32: 0.14.38 + esbuild-windows-64: 0.14.38 + esbuild-windows-arm64: 0.14.38 /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -1921,7 +1781,7 @@ packages: is-stream: 1.1.0 npm-run-path: 2.0.2 p-finally: 1.0.0 - signal-exit: 3.0.4 + signal-exit: 3.0.7 strip-eof: 1.0.0 dev: true @@ -1936,7 +1796,7 @@ packages: merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 - signal-exit: 3.0.4 + signal-exit: 3.0.7 strip-final-newline: 2.0.0 dev: true @@ -1951,15 +1811,15 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fast-json-stable-stringify/2.1.0: @@ -1994,11 +1854,11 @@ packages: path-exists: 4.0.0 dev: true - /fs-extra/10.0.0: - resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -2007,7 +1867,7 @@ packages: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} dependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 dev: true @@ -2026,6 +1886,20 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2040,7 +1914,7 @@ packages: dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /get-own-enumerable-property-symbols/3.0.2: @@ -2053,7 +1927,7 @@ packages: hasBin: true dependencies: '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.0.2 + hosted-git-info: 4.1.0 through2: 2.0.5 yargs: 16.2.0 dev: true @@ -2076,8 +1950,8 @@ packages: get-intrinsic: 1.1.1 dev: true - /git-raw-commits/2.0.10: - resolution: {integrity: sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==} + /git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2115,7 +1989,7 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: - is-glob: 4.0.1 + is-glob: 4.0.3 dev: true /glob/7.2.0: @@ -2124,25 +1998,25 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.7 - ignore: 5.1.8 + fast-glob: 3.2.11 + ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 dev: true - /graceful-fs/4.2.8: - resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true /gray-matter/4.0.3: @@ -2160,12 +2034,12 @@ packages: engines: {node: '>=0.4.7'} hasBin: true dependencies: - minimist: 1.2.5 + minimist: 1.2.6 neo-async: 2.6.2 source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.14.2 + uglify-js: 3.15.4 dev: true /hard-rejection/2.1.0: @@ -2173,8 +2047,8 @@ packages: engines: {node: '>=6'} dev: true - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag/3.0.0: @@ -2187,8 +2061,14 @@ packages: engines: {node: '>=8'} dev: true - /has-symbols/1.0.2: - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true @@ -2196,7 +2076,7 @@ packages: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /has/1.0.3: @@ -2205,16 +2085,12 @@ packages: dependencies: function-bind: 1.1.1 - /highlight.js/10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true - /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true - /hosted-git-info/4.0.2: - resolution: {integrity: sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==} + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 @@ -2229,8 +2105,8 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/5.1.8: - resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: true @@ -2283,7 +2159,7 @@ packages: /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - has-bigints: 1.0.1 + has-bigints: 1.0.2 dev: true /is-binary-path/2.1.0: @@ -2301,6 +2177,13 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-builtin-module/3.1.0: + resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.2.0 + dev: true + /is-callable/1.2.4: resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} @@ -2313,14 +2196,8 @@ packages: ci-info: 1.6.0 dev: true - /is-core-module/2.6.0: - resolution: {integrity: sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: has: 1.0.3 @@ -2346,8 +2223,8 @@ packages: engines: {node: '>=8'} dev: true - /is-glob/4.0.1: - resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 @@ -2362,13 +2239,13 @@ packages: resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} dev: true - /is-negative-zero/2.0.1: - resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-number-object/1.0.6: - resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 @@ -2397,7 +2274,7 @@ packages: /is-reference/1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@types/estree': 0.0.50 + '@types/estree': 0.0.51 dev: true /is-regex/1.1.4: @@ -2413,6 +2290,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-stream/1.1.0: resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} engines: {node: '>=0.10.0'} @@ -2434,7 +2317,7 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /is-text-path/1.0.1: @@ -2449,6 +2332,12 @@ packages: engines: {node: '>=10'} dev: true + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + /isarray/1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: true @@ -2461,8 +2350,8 @@ packages: resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} dev: true - /joycon/3.0.1: - resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} + /joycon/3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} dev: true @@ -2501,7 +2390,7 @@ packages: /jsonfile/4.0.0: resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} optionalDependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.10 dev: true /jsonfile/6.1.0: @@ -2509,7 +2398,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.10 dev: true /jsonparse/1.3.1: @@ -2522,50 +2411,52 @@ packages: engines: {node: '>=0.10.0'} dev: true - /lines-and-columns/1.1.6: - resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /linkify-it/3.0.2: - resolution: {integrity: sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==} + /linkify-it/3.0.3: + resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} dependencies: uc.micro: 1.0.6 dev: true - /lint-staged/11.1.2: - resolution: {integrity: sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==} + /lint-staged/11.2.6: + resolution: {integrity: sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==} hasBin: true dependencies: - chalk: 4.1.2 cli-truncate: 2.1.0 - commander: 7.2.0 + colorette: 1.4.0 + commander: 8.3.0 cosmiconfig: 7.0.1 - debug: 4.3.2 + debug: 4.3.4_supports-color@8.1.1 enquirer: 2.3.6 execa: 5.1.1 - listr2: 3.12.2_enquirer@2.3.6 - log-symbols: 4.1.0 - micromatch: 4.0.4 + listr2: 3.14.0_enquirer@2.3.6 + micromatch: 4.0.5 normalize-path: 3.0.0 please-upgrade-node: 3.2.0 string-argv: 0.3.1 stringify-object: 3.3.0 - transitivePeerDependencies: - - supports-color + supports-color: 8.1.1 dev: true - /listr2/3.12.2_enquirer@2.3.6: - resolution: {integrity: sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==} + /listr2/3.14.0_enquirer@2.3.6: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} engines: {node: '>=10.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true dependencies: cli-truncate: 2.1.0 - colorette: 1.4.0 + colorette: 2.0.16 enquirer: 2.3.6 log-update: 4.0.0 p-map: 4.0.0 - rxjs: 6.6.7 + rfdc: 1.3.0 + rxjs: 7.5.5 through: 2.3.8 wrap-ansi: 7.0.0 dev: true @@ -2574,7 +2465,7 @@ packages: resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} engines: {node: '>=4'} dependencies: - graceful-fs: 4.2.8 + graceful-fs: 4.2.10 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 @@ -2634,6 +2525,12 @@ packages: wrap-ansi: 6.2.0 dev: true + /loupe/2.3.4: + resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -2648,8 +2545,8 @@ packages: yallist: 4.0.0 dev: true - /magic-string/0.25.7: - resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 @@ -2663,13 +2560,13 @@ packages: engines: {node: '>=8'} dev: true - /markdown-it-anchor/8.4.1_940cc64b929ea62ef73eba29fd968cec: - resolution: {integrity: sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==} + /markdown-it-anchor/8.6.3_d643ca6eb40ae68ab966a77bead78073: + resolution: {integrity: sha512-3IiHYh/kJHY2IcuKv5qv+IKNxDwXjVoYQ5FvbBUPywcwCQ4ICLIw5z0QrhYBtcD7h88MfFK3zKAkABTvPMxm7A==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' dependencies: - '@types/markdown-it': 12.2.1 + '@types/markdown-it': 12.2.3 markdown-it: 12.3.2 dev: true @@ -2686,8 +2583,8 @@ packages: resolution: {integrity: sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==} dev: true - /markdown-it-emoji/2.0.0: - resolution: {integrity: sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ==} + /markdown-it-emoji/2.0.2: + resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} dev: true /markdown-it-table-of-contents/0.6.0: @@ -2701,7 +2598,7 @@ packages: dependencies: argparse: 2.0.1 entities: 2.1.0 - linkify-it: 3.0.2 + linkify-it: 3.0.3 mdurl: 1.0.1 uc.micro: 1.0.6 dev: true @@ -2748,35 +2645,24 @@ packages: engines: {node: '>= 8'} dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true - /mime-db/1.49.0: - resolution: {integrity: sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==} + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true - /mime-db/1.50.0: - resolution: {integrity: sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.32: - resolution: {integrity: sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==} + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.49.0 - dev: true - - /mime/2.5.2: - resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==} - engines: {node: '>=4.0.0'} - hasBin: true + mime-db: 1.52.0 dev: true /mimic-fn/2.1.0: @@ -2789,8 +2675,8 @@ packages: engines: {node: '>=4'} dev: true - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true @@ -2804,8 +2690,8 @@ packages: kind-of: 6.0.3 dev: true - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true /modify-values/1.0.1: @@ -2813,6 +2699,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /mrmime/1.0.0: + resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==} + engines: {node: '>=10'} + dev: true + /ms/2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} dev: true @@ -2821,13 +2712,13 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /nanoid/3.2.0: - resolution: {integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==} + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /negotiator/0.6.2: - resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} dev: true @@ -2852,9 +2743,9 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: - hosted-git-info: 4.0.2 - is-core-module: 2.8.1 - semver: 7.3.5 + hosted-git-info: 4.1.0 + is-core-module: 2.9.0 + semver: 7.3.7 validate-npm-package-license: 3.0.4 dev: true @@ -2877,11 +2768,11 @@ packages: chalk: 2.4.2 cross-spawn: 6.0.5 memorystream: 0.3.1 - minimatch: 3.0.4 + minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.7.2 - string.prototype.padend: 3.1.2 + shell-quote: 1.7.3 + string.prototype.padend: 3.1.3 dev: true /npm-run-path/2.0.2: @@ -2898,8 +2789,8 @@ packages: path-key: 3.1.1 dev: true - /object-inspect/1.11.0: - resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} + /object-inspect/1.12.0: + resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} dev: true /object-keys/1.1.1: @@ -2912,8 +2803,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - has-symbols: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -2942,7 +2833,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.0 + cli-spinners: 2.6.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -3019,10 +2910,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.14.5 + '@babel/code-frame': 7.16.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.1.6 + lines-and-columns: 1.2.4 dev: true /path-exists/3.0.0: @@ -3072,8 +2963,8 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true @@ -3106,26 +2997,27 @@ packages: trouter: 2.0.1 dev: true - /postcss/8.4.6: - resolution: {integrity: sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==} + /postcss/8.4.13: + resolution: {integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.2.0 + nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - /preact/10.5.15: - resolution: {integrity: sha512-5chK29n6QcJc3m1lVrKQSQ+V7K1Gb8HeQY6FViQ5AxCAEGu3DaHffWNDkC9+miZgsLvbvU9rxbV1qinGHMHzqA==} + /preact/10.7.1: + resolution: {integrity: sha512-MufnRFz39aIhs9AMFisonjzTud1PK1bY+jcJLo6m2T9Uh8AqjD77w11eAAawmjUogoGOnipECq7e/1RClIKsxg==} dev: false - /prettier/2.4.1: - resolution: {integrity: sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==} + /prettier/2.6.2: + resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /prismjs/1.25.0: - resolution: {integrity: sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==} + /prismjs/1.28.0: + resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==} + engines: {node: '>=6'} dev: false /process-nextick-args/2.0.1: @@ -3216,7 +3108,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /redent/3.0.0: @@ -3227,6 +3119,15 @@ packages: strip-indent: 3.0.0 dev: true + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} @@ -3246,14 +3147,7 @@ packages: /resolve/1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.8.1 - path-parse: 1.0.7 - dev: true - - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} - dependencies: - is-core-module: 2.6.0 + is-core-module: 2.9.0 path-parse: 1.0.7 dev: true @@ -3261,7 +3155,7 @@ packages: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.9.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -3270,7 +3164,7 @@ packages: engines: {node: '>=8'} dependencies: onetime: 5.1.2 - signal-exit: 3.0.4 + signal-exit: 3.0.7 dev: true /reusify/1.0.4: @@ -3278,6 +3172,10 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -3285,34 +3183,26 @@ packages: glob: 7.2.0 dev: true - /rollup-plugin-esbuild/4.8.2_esbuild@0.14.3+rollup@2.57.0: - resolution: {integrity: sha512-wsaYNOjzTb6dN1qCIZsMZ7Q0LWiPJklYs2TDI8vJA2LUbvtPUY+17TC8C0vSat3jPMInfR9XWKdA7ttuwkjsGQ==} + /rollup-plugin-esbuild/4.9.1_esbuild@0.14.38+rollup@2.72.0: + resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==} engines: {node: '>=12'} peerDependencies: esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 4.1.1 - debug: 4.3.3 + '@rollup/pluginutils': 4.2.1 + debug: 4.3.4 es-module-lexer: 0.9.3 - esbuild: 0.14.3 - joycon: 3.0.1 + esbuild: 0.14.38 + joycon: 3.1.1 jsonc-parser: 3.0.0 - rollup: 2.57.0 + rollup: 2.72.0 transitivePeerDependencies: - supports-color dev: true - /rollup/2.57.0: - resolution: {integrity: sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /rollup/2.60.1: - resolution: {integrity: sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg==} + /rollup/2.72.0: + resolution: {integrity: sha512-KqtR2YcO35/KKijg4nx4STO3569aqCUeGRkKWnJ6r+AvBBrVY9L4pmf4NHVrQr4mTOq6msbohflxr2kpihhaOA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -3324,11 +3214,10 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} + /rxjs/7.5.5: + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: - tslib: 1.14.1 + tslib: 2.4.0 dev: true /safe-buffer/5.1.2: @@ -3361,8 +3250,8 @@ packages: hasBin: true dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} hasBin: true dependencies: @@ -3393,8 +3282,8 @@ packages: engines: {node: '>=8'} dev: true - /shell-quote/1.7.2: - resolution: {integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==} + /shell-quote/1.7.3: + resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true /side-channel/1.0.4: @@ -3402,19 +3291,19 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 - object-inspect: 1.11.0 + object-inspect: 1.12.0 dev: true - /signal-exit/3.0.4: - resolution: {integrity: sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==} + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /sirv/1.0.17: - resolution: {integrity: sha512-qx9go5yraB7ekT7bCMqUHJ5jEaOC/GXBxUWv+jeWnb7WzHUFdcQPGWk7YmAwFBaQBrogpuSqd/azbC2lZRqqmw==} + /sirv/1.0.19: + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.20 - mime: 2.5.2 + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.0 totalist: 1.1.0 dev: true @@ -3456,7 +3345,7 @@ packages: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.10 + spdx-license-ids: 3.0.11 dev: true /spdx-exceptions/2.3.0: @@ -3467,11 +3356,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.10 + spdx-license-ids: 3.0.11 dev: true - /spdx-license-ids/3.0.10: - resolution: {integrity: sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==} + /spdx-license-ids/3.0.11: + resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} dev: true /split/1.0.1: @@ -3504,27 +3393,29 @@ packages: strip-ansi: 6.0.1 dev: true - /string.prototype.padend/3.1.2: - resolution: {integrity: sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==} + /string.prototype.padend/3.1.3: + resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.18.6 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.20.0 dev: true /string_decoder/1.1.1: @@ -3606,6 +3497,13 @@ packages: has-flag: 4.0.0 dev: true + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -3649,13 +3547,13 @@ packages: resolution: {integrity: sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=} dev: true - /tinypool/0.1.1: - resolution: {integrity: sha512-sW2fQZ2BRb/GX5v55NkHiTrbMLx0eX0xNpP+VGhOe2f7Oo04+LeClDyM19zCE/WCy7jJ8kzIJ0Ojrxj3UhN9Sg==} + /tinypool/0.1.3: + resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/0.2.8: - resolution: {integrity: sha512-4VXqQzzh9gC5uOLk77cLr9R3wqJq07xJlgM9IUdCNJCet139r+046ETKbU1x7mGs7B0k7eopyH5U6yflbBXNyA==} + /tinyspy/0.3.2: + resolution: {integrity: sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==} engines: {node: '>=14.0.0'} dev: true @@ -3683,8 +3581,8 @@ packages: matchit: 1.1.0 dev: true - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + /tslib/2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true /type-detect/4.0.8: @@ -3712,8 +3610,8 @@ packages: engines: {node: '>=8'} dev: true - /typescript/4.4.3: - resolution: {integrity: sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==} + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -3722,20 +3620,20 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /uglify-js/3.14.2: - resolution: {integrity: sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==} + /uglify-js/3.15.4: + resolution: {integrity: sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true dev: true optional: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 - has-symbols: 1.0.2 + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true @@ -3772,8 +3670,8 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /validator/8.2.0: - resolution: {integrity: sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==} + /validator/13.7.0: + resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} engines: {node: '>= 0.10'} dev: true @@ -3782,8 +3680,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite/2.8.1: - resolution: {integrity: sha512-Typ8qjUnW0p53gBsJpisrKcZlEbUPZATja9BG6Z09QZjg9YrnEn/htkr/VH4WhnH7eNUQeSD+wKI1lHzQRWskw==} + /vite/2.9.8: + resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -3798,16 +3696,16 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.21 - postcss: 8.4.6 + esbuild: 0.14.38 + postcss: 8.4.13 resolve: 1.22.0 - rollup: 2.60.1 + rollup: 2.72.0 optionalDependencies: fsevents: 2.3.2 - /vitest/0.1.19: - resolution: {integrity: sha512-HVdkK6f2fKUrfyziCaluaYewwZNczpEqRghuGeLNYRpC6WM/IK3clgGfP0/3Ad6A3AgGGpgqL04TD9LGgEy/sA==} - engines: {node: '>=14.14.0'} + /vitest/0.10.4: + resolution: {integrity: sha512-FJ2av2PVozmyz9nqHRoC3H8j2z0OQXj8P8jS5oyMY9mfPWB06GS5k/1Ot++TkVBLQRHZCcVzjbK4BO7zqAJZGQ==} + engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: '@vitest/ui': '*' @@ -3824,27 +3722,27 @@ packages: jsdom: optional: true dependencies: - '@types/chai': 4.3.0 + '@types/chai': 4.3.1 '@types/chai-subset': 1.3.3 - chai: 4.3.4 + chai: 4.3.6 local-pkg: 0.4.1 - tinypool: 0.1.1 - tinyspy: 0.2.8 - vite: 2.8.1 + tinypool: 0.1.3 + tinyspy: 0.3.2 + vite: 2.9.8 transitivePeerDependencies: - less - sass - stylus dev: true - /vue/3.2.31: - resolution: {integrity: sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==} + /vue/3.2.33: + resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==} dependencies: - '@vue/compiler-dom': 3.2.31 - '@vue/compiler-sfc': 3.2.31 - '@vue/runtime-dom': 3.2.31 - '@vue/server-renderer': 3.2.31_vue@3.2.31 - '@vue/shared': 3.2.31 + '@vue/compiler-dom': 3.2.33 + '@vue/compiler-sfc': 3.2.33 + '@vue/runtime-dom': 3.2.33 + '@vue/server-renderer': 3.2.33_vue@3.2.33 + '@vue/shared': 3.2.33 dev: false /wcwidth/1.0.1: @@ -3858,7 +3756,7 @@ packages: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 - is-number-object: 1.0.6 + is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 dev: true @@ -3956,13 +3854,14 @@ packages: strip-indent: 2.0.0 dev: true - /z-schema/3.18.4: - resolution: {integrity: sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==} + /z-schema/5.0.3: + resolution: {integrity: sha512-sGvEcBOTNum68x9jCpCVGPFJ6mWnkD0YxOcddDlJHRx3tKdB2q8pCHExMVZo/AV/6geuVJXG7hljDaWG8+5GDw==} + engines: {node: '>=8.0.0'} hasBin: true dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 8.2.0 + validator: 13.7.0 optionalDependencies: commander: 2.20.3 dev: true From d655988c2be2d195eac307992cd5c6fd6d3333be Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 6 May 2022 14:58:45 +0800 Subject: [PATCH 003/128] fix build copy --- package.json | 2 +- scripts/copyClient.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5f85bc1a..0c7ce4d3 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "docs": "run-p dev docs-dev", "docs-dev": "node ./bin/vitepress dev docs", "docs-debug": "node --inspect-brk ./bin/vitepress dev docs", - "docs-build": "npm run build && node ./bin/vitepress build docs", + "docs-build": "run-s build docs-build-only", "docs-build-only": "node ./bin/vitepress build docs", "docs-serve": "node ./bin/vitepress serve docs", "ci-docs": "run-s build docs-build" diff --git a/scripts/copyClient.js b/scripts/copyClient.js index 5f6e0f7c..20553aea 100644 --- a/scripts/copyClient.js +++ b/scripts/copyClient.js @@ -5,6 +5,7 @@ function toDest(file) { return file.replace(/^src\//, 'dist/') } -glob.sync('src/client/**/!(*.ts|tsconfig.json)').forEach((file) => { +glob.sync('src/client/**').forEach((file) => { + if (/(\.ts|tsconfig\.json)$/.test(file)) return fs.copy(file, toDest(file)) }) From 216e12950b312f9f5b8af74cac0ce243693e37ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Fri, 6 May 2022 08:59:13 +0200 Subject: [PATCH 004/128] fix: remove 404 from title on initial route (#590) fix #589 --- src/client/app/index.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/client/app/index.ts b/src/client/app/index.ts index 3065c813..ea5fe60c 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -55,11 +55,6 @@ export function createApp() { const data = initData(router.route) app.provide(dataSymbol, data) - if (inBrowser) { - // dynamically update head tags - useUpdateHead(router.route, data.site) - } - // install global components app.component('Content', Content) app.component('ClientOnly', ClientOnly) @@ -85,7 +80,7 @@ export function createApp() { }) } - return { app, router } + return { app, router, data } } function newApp(): App { @@ -145,10 +140,12 @@ function shouldHotReload(payload: any): boolean { } if (inBrowser) { - const { app, router } = createApp() + const { app, router, data } = createApp() // wait until page component is fetched before mounting router.go().then(() => { + // dynamically update head tags + useUpdateHead(router.route, data.site) app.mount('#app') }) } From 3adc43d00addd4bf3145e9660fb661c07e647704 Mon Sep 17 00:00:00 2001 From: Jonathan Herman Date: Fri, 6 May 2022 01:59:41 -0500 Subject: [PATCH 005/128] docs: fix gitlab pages deploy syntax (#552) Fix GitLab CI build failure due to invalid syntax. --- docs/guide/deploy.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/guide/deploy.md b/docs/guide/deploy.md index 9623e22f..8497ecd6 100644 --- a/docs/guide/deploy.md +++ b/docs/guide/deploy.md @@ -141,8 +141,9 @@ deploy: 3. Create a file called `.gitlab-ci.yml` in the root of your project with the content below. This will build and deploy your site whenever you make changes to your content: ```yaml -image: node:10.22.0 +image: node:16.5.0 pages: + stage: deploy cache: paths: - node_modules/ @@ -152,8 +153,8 @@ pages: artifacts: paths: - public - only: - - main + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ``` ## Netlify From 1656f0365ae7aa07b008d4e367e5b1b382118897 Mon Sep 17 00:00:00 2001 From: Dominic Elm Date: Fri, 6 May 2022 09:09:51 +0200 Subject: [PATCH 006/128] fix(plugin): set content-type header for serving index.html (#616) --- src/node/plugin.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/node/plugin.ts b/src/node/plugin.ts index 7f6e6f33..efa8f1e6 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -164,6 +164,7 @@ export function createVitePressPlugin( server.middlewares.use((req, res, next) => { if (req.url!.endsWith('.html')) { res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') res.end(` From c1d964c295d90e8afba6c6f80bc38b2c67e2c717 Mon Sep 17 00:00:00 2001 From: Kumar Gaurav Date: Fri, 6 May 2022 12:41:13 +0530 Subject: [PATCH 007/128] ESM instead of CommonJs (#597) Modified the CommonJs style export of `config.js` to the ESM style export. Vite is all about advancement of tools. Why not reflect it in documents, by using ESM instead of CommonJs. --- docs/guide/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index bc6e747c..f2661653 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -16,7 +16,7 @@ Without any configuration, the page is pretty minimal, and the user has no way t The essential file for configuring a VitePress site is `.vitepress/config.js`, which should export a JavaScript object: ```js -module.exports = { +export default { title: 'Hello VitePress', description: 'Just playing around.' } From 77efd933c3e8f780524246154e4040ce04941bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=9D=E6=99=A8=E5=85=89?= <2293885211@qq.com> Date: Fri, 6 May 2022 02:13:08 -0500 Subject: [PATCH 008/128] docs: algolia appId is required (#608) --- docs/config/algolia-search.md | 5 ++++- types/default-theme.d.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/config/algolia-search.md b/docs/config/algolia-search.md index 28e4e5fd..132b0a56 100644 --- a/docs/config/algolia-search.md +++ b/docs/config/algolia-search.md @@ -1,11 +1,12 @@ # Theme Config: Algolia Search -The `themeConfig.algolia` option allows you to use [Algolia DocSearch](https://docsearch.algolia.com). To enable it, you need to provide at least apiKey and indexName: +The `themeConfig.algolia` option allows you to use [Algolia DocSearch](https://docsearch.algolia.com). To enable it, you need to provide at least appId, apiKey and indexName: ```js module.exports = { themeConfig: { algolia: { + appId: 'your_app_id', apiKey: 'your_api_key', indexName: 'index_name' } @@ -19,6 +20,7 @@ For more options, check out [Algolia DocSearch's documentation](https://docsearc module.exports = { themeConfig: { algolia: { + appId: 'your_app_id', apiKey: 'your_api_key', indexName: 'index_name', searchParameters: { @@ -40,6 +42,7 @@ module.exports = { // ... }, algolia: { + appId: 'your_app_id', apiKey: 'your_api_key', indexName: 'index_name' } diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index d7284871..60a45fa7 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -121,7 +121,7 @@ export namespace DefaultTheme { // algolia ------------------------------------------------------------------ // partially copied from @docsearch/react/dist/esm/DocSearch.d.ts export interface AlgoliaSearchOptions { - appId?: string + appId: string apiKey: string indexName: string placeholder?: string From 0a3f0ebe4d7d47bcbebc20cbfb075b99ad7961da Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 6 May 2022 15:14:00 +0800 Subject: [PATCH 009/128] release: v0.22.4 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18f1c036..cd87c3a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [0.22.4](https://github.com/vuejs/vitepress/compare/v0.22.3...v0.22.4) (2022-05-06) + +### Bug Fixes + +- **plugin:** set content-type header for serving index.html ([#616](https://github.com/vuejs/vitepress/issues/616)) ([1656f03](https://github.com/vuejs/vitepress/commit/1656f0365ae7aa07b008d4e367e5b1b382118897)) +- remove 404 from title on initial route ([#590](https://github.com/vuejs/vitepress/issues/590)) ([216e129](https://github.com/vuejs/vitepress/commit/216e12950b312f9f5b8af74cac0ce243693e37ee)), closes [#589](https://github.com/vuejs/vitepress/issues/589) + ## [0.22.3](https://github.com/vuejs/vitepress/compare/v0.22.2...v0.22.3) (2022-02-22) ### Bug Fixes diff --git a/package.json b/package.json index 0c7ce4d3..af762619 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vitepress", - "version": "0.22.3", + "version": "0.22.4", "description": "Vite & Vue powered static site generator", "main": "dist/node/index.js", "typings": "types/index.d.ts", From b1983806188e54acd57c2acba97de2424d971181 Mon Sep 17 00:00:00 2001 From: Yuki Shindo Date: Thu, 19 May 2022 19:34:59 +0900 Subject: [PATCH 010/128] fix(build): error of could not find a declaration for minimist (#618) (#622) fix #618 --- package.json | 1 + pnpm-lock.yaml | 35 +++++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index af762619..6e1cb106 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "@types/lru-cache": "^5.1.0", "@types/markdown-it": "^12.0.1", "@types/micromatch": "^4.0.2", + "@types/minimist": "^1.2.2", "@types/node": "^15.6.1", "@types/polka": "^0.5.3", "chalk": "^4.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 97779117..429b9b83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 importers: @@ -20,6 +20,7 @@ importers: '@types/lru-cache': ^5.1.0 '@types/markdown-it': ^12.0.1 '@types/micromatch': ^4.0.2 + '@types/minimist': ^1.2.2 '@types/node': ^15.6.1 '@types/polka': ^0.5.3 '@vitejs/plugin-vue': ^2.3.2 @@ -85,6 +86,7 @@ importers: '@types/lru-cache': 5.1.1 '@types/markdown-it': 12.2.3 '@types/micromatch': 4.0.2 + '@types/minimist': 1.2.2 '@types/node': 15.14.9 '@types/polka': 0.5.4 chalk: 4.1.2 @@ -105,7 +107,7 @@ importers: lint-staged: 11.2.6 lru-cache: 6.0.0 markdown-it: 12.3.2 - markdown-it-anchor: 8.6.3_d643ca6eb40ae68ab966a77bead78073 + markdown-it-anchor: 8.6.3_2zb4u3vubltivolgu556vv4aom markdown-it-attrs: 4.1.3_markdown-it@12.3.2 markdown-it-container: 3.0.0 markdown-it-emoji: 2.0.2 @@ -118,7 +120,7 @@ importers: prettier: 2.6.2 rimraf: 3.0.2 rollup: 2.72.0 - rollup-plugin-esbuild: 4.9.1_esbuild@0.14.38+rollup@2.72.0 + rollup-plugin-esbuild: 4.9.1_zdwxx76xd73ibjgz5r322rbegy semver: 7.3.7 sirv: 1.0.19 typescript: 4.6.4 @@ -264,7 +266,6 @@ packages: /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - dev: true /@babel/highlight/7.17.9: resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} @@ -279,6 +280,16 @@ packages: resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.17.10 + dev: false + + /@babel/types/7.17.10: + resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + to-fast-properties: 2.0.0 dev: false /@docsearch/css/3.0.0: @@ -1187,6 +1198,8 @@ packages: on-headers: 1.0.2 safe-buffer: 5.1.2 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true /concat-map/0.0.1: @@ -1409,6 +1422,11 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: true @@ -2560,7 +2578,7 @@ packages: engines: {node: '>=8'} dev: true - /markdown-it-anchor/8.6.3_d643ca6eb40ae68ab966a77bead78073: + /markdown-it-anchor/8.6.3_2zb4u3vubltivolgu556vv4aom: resolution: {integrity: sha512-3IiHYh/kJHY2IcuKv5qv+IKNxDwXjVoYQ5FvbBUPywcwCQ4ICLIw5z0QrhYBtcD7h88MfFK3zKAkABTvPMxm7A==} peerDependencies: '@types/markdown-it': '*' @@ -3183,7 +3201,7 @@ packages: glob: 7.2.0 dev: true - /rollup-plugin-esbuild/4.9.1_esbuild@0.14.38+rollup@2.72.0: + /rollup-plugin-esbuild/4.9.1_zdwxx76xd73ibjgz5r322rbegy: resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==} engines: {node: '>=12'} peerDependencies: @@ -3557,6 +3575,11 @@ packages: engines: {node: '>=14.0.0'} dev: true + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: false + /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} From 73bbc6143a78379b843ef573c7820034abf92084 Mon Sep 17 00:00:00 2001 From: Kia Ishii Date: Thu, 19 May 2022 19:41:25 +0900 Subject: [PATCH 011/128] feat: new default theme --- .github/contributing.md | 2 +- .../theme-default/support/sideBar.spec.ts | 134 ------ __tests__/client/theme-default/utils.spec.ts | 41 -- .../node/utils/deeplyParseHeader.spec.ts | 1 + __tests__/node/utils/parseHeader.spec.ts | 1 + .../utils/removeNonCodeWrappedHTML.spec.ts | 1 + client.d.ts | 5 +- docs/.vitepress/config.ts | 93 ++-- docs/components/ComponentInHeader.vue | 3 - docs/config/algolia-search.md | 53 --- docs/config/basics.md | 59 --- docs/config/carbon-ads.md | 15 - docs/config/homepage.md | 23 - docs/guide/api.md | 95 ---- docs/guide/assets.md | 55 --- docs/guide/configuration.md | 79 --- docs/guide/deploy.md | 267 ----------- docs/guide/differences-from-vuepress.md | 119 ----- docs/guide/frontmatter.md | 87 ---- docs/guide/getting-started.md | 51 -- docs/guide/global-component.md | 32 -- docs/guide/markdown.md | 449 ------------------ docs/guide/theming.md | 155 ------ docs/guide/using-vue.md | 261 ---------- docs/guide/what-is-vitepress.md | 3 + docs/images/line-numbers-desktop.png | Bin 142346 -> 0 bytes docs/images/line-numbers-mobile.gif | Bin 228039 -> 0 bytes docs/images/vercel-configuration.png | Bin 37645 -> 0 bytes docs/index.md | 57 +-- docs/snippets/snippet-with-region.js | 7 - docs/snippets/snippet.js | 3 - package.json | 46 +- src/client/app/components/ClientOnly.ts | 4 +- src/client/app/index.ts | 2 +- src/client/shim.d.ts | 5 +- src/client/theme-default/Layout.vue | 208 +------- src/client/theme-default/NotFound.vue | 17 +- .../components/AlgoliaSearchBox.vue | 188 -------- .../theme-default/components/BuySellAds.vue | 152 ------ .../theme-default/components/CarbonAds.vue | 99 ---- .../theme-default/components/EditLink.vue | 38 -- src/client/theme-default/components/Home.vue | 31 -- .../theme-default/components/HomeFeatures.vue | 143 ------ .../theme-default/components/HomeFooter.vue | 50 -- .../theme-default/components/HomeHero.vue | 161 ------- .../theme-default/components/LastUpdated.vue | 60 --- .../theme-default/components/NavBar.vue | 60 --- .../theme-default/components/NavBarTitle.vue | 41 -- .../components/NavDropdownLink.vue | 135 ------ .../components/NavDropdownLinkItem.vue | 76 --- .../theme-default/components/NavLink.vue | 61 --- .../theme-default/components/NavLinks.vue | 52 -- .../components/NextAndPrevLinks.vue | 88 ---- src/client/theme-default/components/Page.vue | 53 --- .../theme-default/components/PageFooter.vue | 44 -- .../theme-default/components/SideBar.vue | 60 --- .../theme-default/components/SideBarLink.ts | 100 ---- .../theme-default/components/SideBarLinks.vue | 12 - .../components/ToggleSideBarButton.vue | 46 -- .../components/VPAlgoliaSearchBox.vue | 127 +++++ .../theme-default/components/VPBackdrop.vue | 39 ++ .../theme-default/components/VPContent.vue | 44 ++ .../theme-default/components/VPContentDoc.vue | 173 +++++++ .../components/VPContentDocFooter.vue | 140 ++++++ .../components/VPContentDocOutline.vue | 108 +++++ .../theme-default/components/VPFlyout.vue | 149 ++++++ .../theme-default/components/VPLink.vue | 37 ++ .../theme-default/components/VPLocalNav.vue | 106 +++++ .../theme-default/components/VPMenu.vue | 79 +++ .../theme-default/components/VPMenuGroup.vue | 35 ++ .../theme-default/components/VPMenuLink.vue | 30 ++ src/client/theme-default/components/VPNav.vue | 33 ++ .../theme-default/components/VPNavBar.vue | 109 +++++ .../components/VPNavBarAppearance.vue | 22 + .../components/VPNavBarExtra.vue | 107 +++++ .../components/VPNavBarHamburger.vue | 79 +++ .../theme-default/components/VPNavBarMenu.vue | 29 ++ .../components/VPNavBarMenuGroup.vue | 18 + .../components/VPNavBarMenuLink.vue | 56 +++ .../components/VPNavBarSearch.vue | 269 +++++++++++ .../components/VPNavBarSocialLinks.vue | 27 ++ .../components/VPNavBarTitle.vue | 44 ++ .../components/VPNavBarTranslations.vue | 74 +++ .../theme-default/components/VPNavScreen.vue | 100 ++++ .../components/VPNavScreenAppearance.vue | 30 ++ .../components/VPNavScreenMenu.vue | 24 + .../components/VPNavScreenMenuGroup.vue | 118 +++++ .../components/VPNavScreenMenuGroupLink.vue | 33 ++ .../VPNavScreenMenuGroupSection.vue | 35 ++ .../components/VPNavScreenMenuLink.vue | 34 ++ .../components/VPNavScreenSocialLinks.vue | 14 + .../components/VPNavScreenTranslations.vue | 73 +++ .../theme-default/components/VPSidebar.vue | 118 +++++ .../components/VPSidebarGroup.vue | 44 ++ .../components/VPSidebarLink.vue | 57 +++ .../theme-default/components/VPSkipLink.vue | 72 +++ .../theme-default/components/VPSocialLink.vue | 63 +++ .../components/VPSocialLinks.vue | 27 ++ .../theme-default/components/VPSwitch.vue | 66 +++ .../components/VPSwitchAppearance.vue | 74 +++ .../components/icons/OutboundLink.vue | 31 -- .../components/icons/VPIconAlignJustify.vue | 8 + .../components/icons/VPIconAlignLeft.vue | 8 + .../components/icons/VPIconAlignRight.vue | 8 + .../{ArrowLeft.vue => VPIconArrowLeft.vue} | 0 .../{ArrowRight.vue => VPIconArrowRight.vue} | 0 .../components/icons/VPIconChevronDown.vue | 5 + .../components/icons/VPIconChevronLeft.vue | 5 + .../components/icons/VPIconChevronRight.vue | 5 + .../components/icons/VPIconChevronUp.vue | 5 + .../components/icons/VPIconDiscord.vue | 5 + .../components/icons/VPIconEdit.vue | 6 + .../components/icons/VPIconExternalLink.vue | 13 + .../components/icons/VPIconFacebook.vue | 5 + .../components/icons/VPIconGitHub.vue | 5 + .../components/icons/VPIconInstagram.vue | 5 + .../components/icons/VPIconLanguages.vue | 9 + .../components/icons/VPIconLinkedIn.vue | 5 + .../components/icons/VPIconMoon.vue | 5 + .../components/icons/VPIconMoreHorizontal.vue | 7 + .../components/icons/VPIconPlus.vue | 5 + .../components/icons/VPIconSlack.vue | 5 + .../components/icons/VPIconSun.vue | 13 + .../components/icons/VPIconTwitter.vue | 5 + .../components/icons/VPIconYouTube.vue | 5 + .../composables/activeSidebarLink.ts | 134 ------ .../theme-default/composables/edit-link.ts | 26 + .../theme-default/composables/editLink.ts | 91 ---- .../theme-default/composables/flyout.ts | 58 +++ src/client/theme-default/composables/nav.ts | 34 +- .../theme-default/composables/navLink.ts | 49 -- .../composables/nextAndPrevLinks.ts | 48 -- .../theme-default/composables/outline.ts | 185 ++++++++ .../theme-default/composables/prev-next.ts | 22 + src/client/theme-default/composables/repo.ts | 52 -- .../theme-default/composables/sideBar.ts | 110 ++--- .../fonts/inter-cyrillic-ext.woff2 | Bin 0 -> 26924 bytes .../theme-default/fonts/inter-cyrillic.woff2 | Bin 0 -> 16888 bytes .../theme-default/fonts/inter-greek-ext.woff2 | Bin 0 -> 11404 bytes .../theme-default/fonts/inter-greek.woff2 | Bin 0 -> 22452 bytes .../theme-default/fonts/inter-latin-ext.woff2 | Bin 0 -> 57688 bytes .../theme-default/fonts/inter-latin.woff2 | Bin 0 -> 36532 bytes .../fonts/inter-vietnamese.woff2 | Bin 0 -> 8860 bytes src/client/theme-default/index.ts | 9 +- src/client/theme-default/styles/base.css | 200 ++++++++ src/client/theme-default/styles/code.css | 299 ------------ .../theme-default/styles/custom-blocks.css | 76 --- src/client/theme-default/styles/fonts.css | 67 +++ src/client/theme-default/styles/layout.css | 236 --------- .../theme-default/styles/sidebar-links.css | 107 ----- src/client/theme-default/styles/utils.css | 9 + src/client/theme-default/styles/vars.css | 272 ++++++++--- src/client/theme-default/styles/vp-doc.css | 419 ++++++++++++++++ src/client/theme-default/support/sideBar.ts | 60 +-- src/client/theme-default/support/utils.ts | 64 +++ src/client/theme-default/utils.ts | 83 ---- types/default-theme.d.ts | 183 ++++--- 157 files changed, 4641 insertions(+), 5524 deletions(-) delete mode 100644 __tests__/client/theme-default/support/sideBar.spec.ts delete mode 100644 __tests__/client/theme-default/utils.spec.ts delete mode 100644 docs/components/ComponentInHeader.vue delete mode 100644 docs/config/algolia-search.md delete mode 100644 docs/config/basics.md delete mode 100644 docs/config/carbon-ads.md delete mode 100644 docs/config/homepage.md delete mode 100644 docs/guide/api.md delete mode 100644 docs/guide/assets.md delete mode 100644 docs/guide/configuration.md delete mode 100644 docs/guide/deploy.md delete mode 100644 docs/guide/differences-from-vuepress.md delete mode 100644 docs/guide/frontmatter.md delete mode 100644 docs/guide/getting-started.md delete mode 100644 docs/guide/global-component.md delete mode 100644 docs/guide/markdown.md delete mode 100644 docs/guide/theming.md delete mode 100644 docs/guide/using-vue.md create mode 100644 docs/guide/what-is-vitepress.md delete mode 100644 docs/images/line-numbers-desktop.png delete mode 100644 docs/images/line-numbers-mobile.gif delete mode 100644 docs/images/vercel-configuration.png delete mode 100644 docs/snippets/snippet-with-region.js delete mode 100644 docs/snippets/snippet.js delete mode 100644 src/client/theme-default/components/AlgoliaSearchBox.vue delete mode 100644 src/client/theme-default/components/BuySellAds.vue delete mode 100644 src/client/theme-default/components/CarbonAds.vue delete mode 100644 src/client/theme-default/components/EditLink.vue delete mode 100644 src/client/theme-default/components/Home.vue delete mode 100644 src/client/theme-default/components/HomeFeatures.vue delete mode 100644 src/client/theme-default/components/HomeFooter.vue delete mode 100644 src/client/theme-default/components/HomeHero.vue delete mode 100644 src/client/theme-default/components/LastUpdated.vue delete mode 100644 src/client/theme-default/components/NavBar.vue delete mode 100644 src/client/theme-default/components/NavBarTitle.vue delete mode 100644 src/client/theme-default/components/NavDropdownLink.vue delete mode 100644 src/client/theme-default/components/NavDropdownLinkItem.vue delete mode 100644 src/client/theme-default/components/NavLink.vue delete mode 100644 src/client/theme-default/components/NavLinks.vue delete mode 100644 src/client/theme-default/components/NextAndPrevLinks.vue delete mode 100644 src/client/theme-default/components/Page.vue delete mode 100644 src/client/theme-default/components/PageFooter.vue delete mode 100644 src/client/theme-default/components/SideBar.vue delete mode 100644 src/client/theme-default/components/SideBarLink.ts delete mode 100644 src/client/theme-default/components/SideBarLinks.vue delete mode 100644 src/client/theme-default/components/ToggleSideBarButton.vue create mode 100644 src/client/theme-default/components/VPAlgoliaSearchBox.vue create mode 100644 src/client/theme-default/components/VPBackdrop.vue create mode 100644 src/client/theme-default/components/VPContent.vue create mode 100644 src/client/theme-default/components/VPContentDoc.vue create mode 100644 src/client/theme-default/components/VPContentDocFooter.vue create mode 100644 src/client/theme-default/components/VPContentDocOutline.vue create mode 100644 src/client/theme-default/components/VPFlyout.vue create mode 100644 src/client/theme-default/components/VPLink.vue create mode 100644 src/client/theme-default/components/VPLocalNav.vue create mode 100644 src/client/theme-default/components/VPMenu.vue create mode 100644 src/client/theme-default/components/VPMenuGroup.vue create mode 100644 src/client/theme-default/components/VPMenuLink.vue create mode 100644 src/client/theme-default/components/VPNav.vue create mode 100644 src/client/theme-default/components/VPNavBar.vue create mode 100644 src/client/theme-default/components/VPNavBarAppearance.vue create mode 100644 src/client/theme-default/components/VPNavBarExtra.vue create mode 100644 src/client/theme-default/components/VPNavBarHamburger.vue create mode 100644 src/client/theme-default/components/VPNavBarMenu.vue create mode 100644 src/client/theme-default/components/VPNavBarMenuGroup.vue create mode 100644 src/client/theme-default/components/VPNavBarMenuLink.vue create mode 100644 src/client/theme-default/components/VPNavBarSearch.vue create mode 100644 src/client/theme-default/components/VPNavBarSocialLinks.vue create mode 100644 src/client/theme-default/components/VPNavBarTitle.vue create mode 100644 src/client/theme-default/components/VPNavBarTranslations.vue create mode 100644 src/client/theme-default/components/VPNavScreen.vue create mode 100644 src/client/theme-default/components/VPNavScreenAppearance.vue create mode 100644 src/client/theme-default/components/VPNavScreenMenu.vue create mode 100644 src/client/theme-default/components/VPNavScreenMenuGroup.vue create mode 100644 src/client/theme-default/components/VPNavScreenMenuGroupLink.vue create mode 100644 src/client/theme-default/components/VPNavScreenMenuGroupSection.vue create mode 100644 src/client/theme-default/components/VPNavScreenMenuLink.vue create mode 100644 src/client/theme-default/components/VPNavScreenSocialLinks.vue create mode 100644 src/client/theme-default/components/VPNavScreenTranslations.vue create mode 100644 src/client/theme-default/components/VPSidebar.vue create mode 100644 src/client/theme-default/components/VPSidebarGroup.vue create mode 100644 src/client/theme-default/components/VPSidebarLink.vue create mode 100644 src/client/theme-default/components/VPSkipLink.vue create mode 100644 src/client/theme-default/components/VPSocialLink.vue create mode 100644 src/client/theme-default/components/VPSocialLinks.vue create mode 100644 src/client/theme-default/components/VPSwitch.vue create mode 100644 src/client/theme-default/components/VPSwitchAppearance.vue delete mode 100644 src/client/theme-default/components/icons/OutboundLink.vue create mode 100644 src/client/theme-default/components/icons/VPIconAlignJustify.vue create mode 100644 src/client/theme-default/components/icons/VPIconAlignLeft.vue create mode 100644 src/client/theme-default/components/icons/VPIconAlignRight.vue rename src/client/theme-default/components/icons/{ArrowLeft.vue => VPIconArrowLeft.vue} (100%) rename src/client/theme-default/components/icons/{ArrowRight.vue => VPIconArrowRight.vue} (100%) create mode 100644 src/client/theme-default/components/icons/VPIconChevronDown.vue create mode 100644 src/client/theme-default/components/icons/VPIconChevronLeft.vue create mode 100644 src/client/theme-default/components/icons/VPIconChevronRight.vue create mode 100644 src/client/theme-default/components/icons/VPIconChevronUp.vue create mode 100644 src/client/theme-default/components/icons/VPIconDiscord.vue create mode 100644 src/client/theme-default/components/icons/VPIconEdit.vue create mode 100644 src/client/theme-default/components/icons/VPIconExternalLink.vue create mode 100644 src/client/theme-default/components/icons/VPIconFacebook.vue create mode 100644 src/client/theme-default/components/icons/VPIconGitHub.vue create mode 100644 src/client/theme-default/components/icons/VPIconInstagram.vue create mode 100644 src/client/theme-default/components/icons/VPIconLanguages.vue create mode 100644 src/client/theme-default/components/icons/VPIconLinkedIn.vue create mode 100644 src/client/theme-default/components/icons/VPIconMoon.vue create mode 100644 src/client/theme-default/components/icons/VPIconMoreHorizontal.vue create mode 100644 src/client/theme-default/components/icons/VPIconPlus.vue create mode 100644 src/client/theme-default/components/icons/VPIconSlack.vue create mode 100644 src/client/theme-default/components/icons/VPIconSun.vue create mode 100644 src/client/theme-default/components/icons/VPIconTwitter.vue create mode 100644 src/client/theme-default/components/icons/VPIconYouTube.vue delete mode 100644 src/client/theme-default/composables/activeSidebarLink.ts create mode 100644 src/client/theme-default/composables/edit-link.ts delete mode 100644 src/client/theme-default/composables/editLink.ts create mode 100644 src/client/theme-default/composables/flyout.ts delete mode 100644 src/client/theme-default/composables/navLink.ts delete mode 100644 src/client/theme-default/composables/nextAndPrevLinks.ts create mode 100644 src/client/theme-default/composables/outline.ts create mode 100644 src/client/theme-default/composables/prev-next.ts delete mode 100644 src/client/theme-default/composables/repo.ts create mode 100644 src/client/theme-default/fonts/inter-cyrillic-ext.woff2 create mode 100644 src/client/theme-default/fonts/inter-cyrillic.woff2 create mode 100644 src/client/theme-default/fonts/inter-greek-ext.woff2 create mode 100644 src/client/theme-default/fonts/inter-greek.woff2 create mode 100644 src/client/theme-default/fonts/inter-latin-ext.woff2 create mode 100644 src/client/theme-default/fonts/inter-latin.woff2 create mode 100644 src/client/theme-default/fonts/inter-vietnamese.woff2 create mode 100644 src/client/theme-default/styles/base.css delete mode 100644 src/client/theme-default/styles/code.css delete mode 100644 src/client/theme-default/styles/custom-blocks.css create mode 100644 src/client/theme-default/styles/fonts.css delete mode 100644 src/client/theme-default/styles/layout.css delete mode 100644 src/client/theme-default/styles/sidebar-links.css create mode 100644 src/client/theme-default/styles/utils.css create mode 100644 src/client/theme-default/styles/vp-doc.css create mode 100644 src/client/theme-default/support/utils.ts delete mode 100644 src/client/theme-default/utils.ts diff --git a/.github/contributing.md b/.github/contributing.md index 11c8617f..52708253 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -40,7 +40,7 @@ You may start VitePress local dev environment by running `pnpm run dev`. $ pnpm run dev ``` -The easiest way to start testing out VitePress is to tweak the VitePress docs. You may run `pnpm run docs` folder to boot up VitePress documentation site locally, with live reloading of the source code. +The easiest way to start testing out VitePress is to tweak the VitePress docs. You may run `pnpm run docs` to boot up VitePress documentation site locally, with live reloading of the source code. ```bash $ pnpm run docs diff --git a/__tests__/client/theme-default/support/sideBar.spec.ts b/__tests__/client/theme-default/support/sideBar.spec.ts deleted file mode 100644 index 604c945d..00000000 --- a/__tests__/client/theme-default/support/sideBar.spec.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { - isSideBarEmpty, - getSideBarConfig, - getFlatSideBarLinks -} from 'client/theme-default/support/sideBar' - -describe('client/theme-default/support/sideBar', () => { - it('checks if the given sidebar is empty', () => { - expect(isSideBarEmpty(undefined)).toBe(true) - expect(isSideBarEmpty(false)).toBe(true) - expect(isSideBarEmpty([])).toBe(true) - - expect(isSideBarEmpty('auto')).toBe(false) - expect(isSideBarEmpty([{ text: 'a', link: '/a' }])).toBe(false) - }) - - it('gets the correct sidebar items', () => { - expect(getSideBarConfig(false, '')).toEqual(false) - expect(getSideBarConfig('auto', '')).toEqual('auto') - - const sidebar = [{ text: 'Title 01', link: 'title-01' }] - const expected = [{ text: 'Title 01', link: 'title-01' }] - - expect(getSideBarConfig(sidebar, '')).toEqual(expected) - }) - - it('gets the correct sidebar items from the given path', () => { - const sidebar = { - '/guide/': [{ text: 'G', link: 'g' }], - '/': [{ text: 'R', link: 'r' }] - } - - expect(getSideBarConfig(sidebar, '/')).toEqual(sidebar['/']) - expect(getSideBarConfig(sidebar, '/guide/')).toEqual(sidebar['/guide/']) - }) - - it('gets the correct sidebar items with various combination', () => { - const s = { - '/guide/': [{ text: 'G', link: 'g' }], - api: [{ text: 'A', link: 'a' }] - } - - expect(getSideBarConfig(s, '/guide/')).toEqual(s['/guide/']) - // no ending slash should not match - expect(getSideBarConfig(s, '/guide')).not.toEqual(s['/guide/']) - expect(getSideBarConfig(s, 'guide/')).toEqual(s['/guide/']) - expect(getSideBarConfig(s, 'guide/nested')).toEqual(s['/guide/']) - expect(getSideBarConfig(s, '/guide/nested')).toEqual(s['/guide/']) - expect(getSideBarConfig(s, 'guide/nested/')).toEqual(s['/guide/']) - expect(getSideBarConfig(s, '/api/')).toEqual(s['api']) - expect(getSideBarConfig(s, '/api')).toEqual(s['api']) - expect(getSideBarConfig(s, 'api/')).toEqual(s['api']) - expect(getSideBarConfig(s, 'api/nested')).toEqual(s['api']) - expect(getSideBarConfig(s, '/api/nested')).toEqual(s['api']) - expect(getSideBarConfig(s, 'api/nested/')).toEqual(s['api']) - expect(getSideBarConfig(s, '/')).toEqual('auto') - }) - - it('creates flat sidebar links', () => { - const sidebar = [ - { text: 'Title 01', link: '/title-01' }, - { text: 'Title 02', link: '/title-02' }, - { text: 'Title 03', link: '/title-03' } - ] - - const expected = [ - { text: 'Title 01', link: '/title-01' }, - { text: 'Title 02', link: '/title-02' }, - { text: 'Title 03', link: '/title-03' } - ] - - expect(getFlatSideBarLinks(sidebar)).toEqual(expected) - }) - - it('creates flat sidebar links with mixed sidebar group', () => { - const sidebar = [ - { - text: 'Title 01', - link: '/title-01', - children: [ - { text: 'Children 01', link: '/children-01' }, - { text: 'Children 02', link: '/children-02' } - ] - }, - { text: 'Title 02', link: '/title-02' }, - { text: 'Title 03', link: '/title-03' } - ] - - const expected = [ - { text: 'Title 01', link: '/title-01' }, - { text: 'Children 01', link: '/children-01' }, - { text: 'Children 02', link: '/children-02' }, - { text: 'Title 02', link: '/title-02' }, - { text: 'Title 03', link: '/title-03' } - ] - - expect(getFlatSideBarLinks(sidebar)).toEqual(expected) - }) - - it('ignores any items with no `link` property', () => { - const sidebar = [ - { - text: 'Title 01', - children: [ - { text: 'Children 01', link: '/children-01' }, - { text: 'Children 02', link: '/children-02' } - ] - }, - { text: 'Title 02', link: '/title-02' } - ] - - const expected = [ - { text: 'Children 01', link: '/children-01' }, - { text: 'Children 02', link: '/children-02' }, - { text: 'Title 02', link: '/title-02' } - ] - - expect(getFlatSideBarLinks(sidebar)).toEqual(expected) - }) - - it('removes `.md` or `.html` extention', () => { - const sidebar = [ - { text: 'Title 01', link: '/title-01.md' }, - { text: 'Title 02', link: '/title-02.html' } - ] - - const expected = [ - { text: 'Title 01', link: '/title-01' }, - { text: 'Title 02', link: '/title-02' } - ] - - expect(getFlatSideBarLinks(sidebar)).toEqual(expected) - }) -}) diff --git a/__tests__/client/theme-default/utils.spec.ts b/__tests__/client/theme-default/utils.spec.ts deleted file mode 100644 index 52f01d4a..00000000 --- a/__tests__/client/theme-default/utils.spec.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as Utils from 'client/theme-default/utils' - -describe('client/theme-default/utils', () => { - describe('ensureStartingSlash', () => { - it('should add slash to the beginning of the given path', () => { - expect(Utils.ensureStartingSlash('path')).toBe('/path') - expect(Utils.ensureStartingSlash('path/nested')).toBe('/path/nested') - expect(Utils.ensureStartingSlash('/path')).toBe('/path') - expect(Utils.ensureStartingSlash('/path/nested')).toBe('/path/nested') - }) - }) - - describe('ensureEndingSlash', () => { - it('should add slash to the end of the given path', () => { - expect(Utils.ensureEndingSlash('path')).toBe('path/') - expect(Utils.ensureEndingSlash('path/nested')).toBe('path/nested/') - expect(Utils.ensureEndingSlash('path/')).toBe('path/') - expect(Utils.ensureEndingSlash('path/nested/')).toBe('path/nested/') - expect(Utils.ensureEndingSlash('path/page.html')).toBe('path/page.html') - }) - }) - - describe('removeExtention', () => { - it('removes `.md` or `.html` extention from the path', () => { - expect(Utils.removeExtention('/')).toBe('/') - expect(Utils.removeExtention('index')).toBe('/') - expect(Utils.removeExtention('index.md')).toBe('/') - expect(Utils.removeExtention('index.html')).toBe('/') - expect(Utils.removeExtention('/index')).toBe('/') - expect(Utils.removeExtention('/index.md')).toBe('/') - expect(Utils.removeExtention('/index.html')).toBe('/') - expect(Utils.removeExtention('path')).toBe('path') - expect(Utils.removeExtention('path.md')).toBe('path') - expect(Utils.removeExtention('path.html')).toBe('path') - expect(Utils.removeExtention('path/')).toBe('path/') - expect(Utils.removeExtention('path/nested.md')).toBe('path/nested') - expect(Utils.removeExtention('path/nested.html')).toBe('path/nested') - expect(Utils.removeExtention('path/nested/index')).toBe('path/nested/') - }) - }) -}) diff --git a/__tests__/node/utils/deeplyParseHeader.spec.ts b/__tests__/node/utils/deeplyParseHeader.spec.ts index ded20eac..fe1878c4 100644 --- a/__tests__/node/utils/deeplyParseHeader.spec.ts +++ b/__tests__/node/utils/deeplyParseHeader.spec.ts @@ -1,3 +1,4 @@ +import { test, expect } from 'vitest' import { deeplyParseHeader } from 'node/utils/parseHeader' test('deeplyParseHeader', () => { diff --git a/__tests__/node/utils/parseHeader.spec.ts b/__tests__/node/utils/parseHeader.spec.ts index a150cff0..790f4373 100644 --- a/__tests__/node/utils/parseHeader.spec.ts +++ b/__tests__/node/utils/parseHeader.spec.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest' import { parseHeader } from 'node/utils/parseHeader' describe('parseHeader', () => { diff --git a/__tests__/node/utils/removeNonCodeWrappedHTML.spec.ts b/__tests__/node/utils/removeNonCodeWrappedHTML.spec.ts index d5481ad8..17d506fc 100644 --- a/__tests__/node/utils/removeNonCodeWrappedHTML.spec.ts +++ b/__tests__/node/utils/removeNonCodeWrappedHTML.spec.ts @@ -1,3 +1,4 @@ +import { test, expect } from 'vitest' import { removeNonCodeWrappedHTML } from 'node/utils/parseHeader' test('removeNonCodeWrappedHTML', () => { diff --git a/client.d.ts b/client.d.ts index 78cda7e2..f206e730 100644 --- a/client.d.ts +++ b/client.d.ts @@ -1,4 +1,3 @@ -// re-export vite client types -// with strict installers like pnpm, user won't be able to reference vite/client -// in project root +// re-export vite client types. with strict installers like pnpm, user won't +// be able to reference vite/client in project root. /// diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index cfb87e63..d0acaa99 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -4,35 +4,29 @@ export default defineConfig({ lang: 'en-US', title: 'VitePress', description: 'Vite & Vue powered static site generator.', - lastUpdated: true, - themeConfig: { - repo: 'vuejs/vitepress', - docsDir: 'docs', - docsBranch: 'main', - editLinks: true, - editLinkText: 'Edit this page on GitHub', - lastUpdated: 'Last Updated', - - algolia: { - appId: '8J64VVRP8K', - apiKey: 'a18e2f4cc5665f6602c5631fd868adfd', - indexName: 'vitepress' - }, + // TODO: Do something about this. + head: [ + [ + 'script', + {}, + ` + ;(() => { + const saved = localStorage.getItem('vitepress-theme-appearance') + const prefereDark = window.matchMedia('(prefers-color-scheme: dark)').matches - carbonAds: { - carbon: 'CEBDT27Y', - custom: 'CKYD62QM', - placement: 'vuejsorg' - }, + if (!saved || saved === 'auto' ? prefereDark : saved === 'dark') { + document.documentElement.classList.add('dark') + } + })() + ` + ] + ], + themeConfig: { nav: [ - { text: 'Guide', link: '/', activeMatch: '^/$|^/guide/' }, - { - text: 'Config Reference', - link: '/config/basics', - activeMatch: '^/config/' - }, + { text: 'Guide', link: '/guide/what-is-vitepress' }, + { text: 'Config', link: '/config/app-basics' }, { text: 'Release Notes', link: 'https://github.com/vuejs/vitepress/releases' @@ -43,6 +37,23 @@ export default defineConfig({ '/guide/': getGuideSidebar(), '/config/': getConfigSidebar(), '/': getGuideSidebar() + }, + + editLink: { + repo: 'vuejs/vitepress', + branch: 'next', + dir: 'docs', + text: 'Edit this page on GitHub' + }, + + socialLinks: [ + { icon: 'github', link: 'https://github.com/vuejs/vitepress' } + ], + + algolia: { + appId: '8J64VVRP8K', + apiKey: 'a18e2f4cc5665f6602c5631fd868adfd', + indexName: 'vitepress' } } }) @@ -51,27 +62,7 @@ function getGuideSidebar() { return [ { text: 'Introduction', - children: [ - { text: 'What is VitePress?', link: '/' }, - { text: 'Getting Started', link: '/guide/getting-started' }, - { text: 'Configuration', link: '/guide/configuration' }, - { text: 'Asset Handling', link: '/guide/assets' }, - { text: 'Markdown Extensions', link: '/guide/markdown' }, - { text: 'Using Vue in Markdown', link: '/guide/using-vue' }, - { text: 'Deploying', link: '/guide/deploy' } - ] - }, - { - text: 'Advanced', - children: [ - { text: 'Frontmatter', link: '/guide/frontmatter' }, - { text: 'Theming', link: '/guide/theming' }, - { text: 'API Reference', link: '/guide/api' }, - { - text: 'Differences from Vuepress', - link: '/guide/differences-from-vuepress' - } - ] + items: [{ text: 'What is VitePress?', link: '/guide/what-is-vitepress' }] } ] } @@ -80,15 +71,7 @@ function getConfigSidebar() { return [ { text: 'App Config', - children: [{ text: 'Basics', link: '/config/basics' }] - }, - { - text: 'Theme Config', - children: [ - { text: 'Homepage', link: '/config/homepage' }, - { text: 'Algolia Search', link: '/config/algolia-search' }, - { text: 'Carbon Ads', link: '/config/carbon-ads' } - ] + items: [{ text: 'Basics', link: '/config/app-basics' }] } ] } diff --git a/docs/components/ComponentInHeader.vue b/docs/components/ComponentInHeader.vue deleted file mode 100644 index bbccc8ef..00000000 --- a/docs/components/ComponentInHeader.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/docs/config/algolia-search.md b/docs/config/algolia-search.md deleted file mode 100644 index 132b0a56..00000000 --- a/docs/config/algolia-search.md +++ /dev/null @@ -1,53 +0,0 @@ -# Theme Config: Algolia Search - -The `themeConfig.algolia` option allows you to use [Algolia DocSearch](https://docsearch.algolia.com). To enable it, you need to provide at least appId, apiKey and indexName: - -```js -module.exports = { - themeConfig: { - algolia: { - appId: 'your_app_id', - apiKey: 'your_api_key', - indexName: 'index_name' - } - } -} -``` - -For more options, check out [Algolia DocSearch's documentation](https://docsearch.algolia.com/docs/api/). You can pass any extra option alongside other options, e.g. passing `searchParameters`: - -```js -module.exports = { - themeConfig: { - algolia: { - appId: 'your_app_id', - apiKey: 'your_api_key', - indexName: 'index_name', - searchParameters: { - facetFilters: ['tags:guide,api'] - } - } - } -} -``` - -## Internationalization (i18n) - -If you have multiple locales in your documentation and you have defined a `locales` object in your `themeConfig`: - -```js -module.exports = { - themeConfig: { - locales: { - // ... - }, - algolia: { - appId: 'your_app_id', - apiKey: 'your_api_key', - indexName: 'index_name' - } - } -} -``` - -VitePress will automatically add a `lang` _facetFilter_ to the `searchParameters.facetFilter` array with the correct language value. Algolia automatically adds the correct facet filter based on the `lang` attribute on the `` tag. This will match search results with the currently viewed language of the page. diff --git a/docs/config/basics.md b/docs/config/basics.md deleted file mode 100644 index 5955ecb5..00000000 --- a/docs/config/basics.md +++ /dev/null @@ -1,59 +0,0 @@ -# App Config: Basics - -::: tip -The config reference is incomplete since the config format may still receive further changes. For a complete reference of the current available options, refer to [config.ts](https://github.com/vuejs/vitepress/blob/45b65ce8b63bd54f345bfc3383eb2416b6769dc9/src/node/config.ts#L30-L65). -::: - -## base - -- Type: `string` -- Default: `/` - -The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to `https://foo.github.io/bar/`, then you should set base to `'/bar/'`. It should always start and end with a slash. - -The `base` is automatically prepended to all the URLs that start with `/` in other options, so you only need to specify it once. - -```js -module.exports = { - base: '/base/' -} -``` - -## lang - -- Type: `string` -- Default: `en-US` - -The `lang` attribute for the site. This will render as a `` tag in the page HTML. - -```js -module.exports = { - lang: 'en-US' -} -``` - -## title - -- Type: `string` -- Default: `VitePress` - -Title for the site. This will be the suffix for all page titles, and displayed in the navbar. - -```js -module.exports = { - title: 'VitePress' -} -``` - -## description - -- Type: `string` -- Default: `A VitePress site` - -Description for the site. This will render as a `` tag in the page HTML. - -```js -module.exports = { - description: 'A VitePress site' -} -``` diff --git a/docs/config/carbon-ads.md b/docs/config/carbon-ads.md deleted file mode 100644 index 3bb074d1..00000000 --- a/docs/config/carbon-ads.md +++ /dev/null @@ -1,15 +0,0 @@ -# Theme Config: Carbon Ads - -VitePress has built in native support for [Carbon Ads](https://www.carbonads.net). By defining the Carbon Ads credentials in config, VitePress will display ads on the page. - -```js -module.exports = { - themeConfig: { - carbonAds: { - carbon: 'your-carbon-key', - custom: 'your-carbon-custom', - placement: 'your-carbon-placement' - } - } -} -``` diff --git a/docs/config/homepage.md b/docs/config/homepage.md deleted file mode 100644 index 0abaad7b..00000000 --- a/docs/config/homepage.md +++ /dev/null @@ -1,23 +0,0 @@ -# Theme Config: Homepage - -VitePress provides a homepage layout. To use it, specify `home: true` plus some other metadata in your root `index.md`'s [YAML frontmatter](../guide/frontmatter). This is an example of how it works: - -```yaml ---- -home: true -heroImage: /logo.png -heroAlt: Logo image -heroText: Hero Title -tagline: Hero subtitle -actionText: Get Started -actionLink: /guide/ -features: - - title: Simplicity First - details: Minimal setup with markdown-centered project structure helps you focus on writing. - - title: Vue-Powered - details: Enjoy the dev experience of Vue + webpack, use Vue components in markdown, and develop custom themes with Vue. - - title: Performant - details: VitePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded. -footer: MIT Licensed | Copyright © 2019-present Evan You ---- -``` diff --git a/docs/guide/api.md b/docs/guide/api.md deleted file mode 100644 index 5db50b8c..00000000 --- a/docs/guide/api.md +++ /dev/null @@ -1,95 +0,0 @@ -# API Reference - -## Helper Methods - -The following methods are globally importable from `vitepress` and are typically used in custom theme Vue components. However, they are also usable inside `.md` pages because markdown files are compiled into Vue single-file components. - -Methods that start with `use*` indicates that it is a [Vue 3 Composition API](https://vuejs.org/guide/introduction.html#composition-api) function that can only be used inside `setup()` or ` - - -``` - -### `useRoute` - -Returns the current route object with the following type: - -```ts -interface Route { - path: string - data: PageData - component: Component | null -} -``` - -### `useRouter` - -Returns the VitePress router instance so you can programmatically navigate to another page. - -```ts -interface Router { - route: Route - go: (href?: string) => Promise -} -``` - -### `withBase` - -- **Type**: `(path: string) => string` - - Appends the configured [`base`](../config/basics#base) to a given URL path. Also see [Base URL](./assets#base-url). - -## Global Components - -VitePress comes with few built-in component that can be used globally. You may use these components in your markdown or your custom theme configuration. - -### `` - -The `` component displays the rendered markdown contents. Useful [when creating your own theme](./theming). - -```vue - -``` - -### `` - -The `` component renders its slot only at client side. - -Because VitePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the universal code requirements. In short, make sure to only access Browser / DOM APIs in beforeMount or mounted hooks. - -If you are using or demoing components that are not SSR-friendly (for example, contain custom directives), you can wrap them inside the `ClientOnly` component. - -```html - - - -``` diff --git a/docs/guide/assets.md b/docs/guide/assets.md deleted file mode 100644 index 20969f9c..00000000 --- a/docs/guide/assets.md +++ /dev/null @@ -1,55 +0,0 @@ -# Asset Handling - -All Markdown files are compiled into Vue components and processed by [Vite](https://github.com/vitejs/vite). You can, **and should**, reference any assets using relative URLs: - -```md -![An image](./image.png) -``` - -You can reference static assets in your markdown files, your `*.vue` components in the theme, styles and plain `.css` files either using absolute public paths (based on project root) or relative paths (based on your file system). The latter is similar to the behavior you are used to if you have used `vue-cli` or webpack's `file-loader`. - -Common image, media, and font filetypes are detected and included as assets automatically. - -All referenced assets, including those using absolute paths, will be copied to the dist folder with a hashed file name in the production build. Never-referenced assets will not be copied. Similar to `vue-cli`, image assets smaller than 4kb will be base64 inlined. - -All **static** path references, including absolute paths, should be based on your working directory structure. - -## Public Files - -Sometimes you may need to provide static assets that are not directly referenced in any of your Markdown or theme components (for example, favicons and PWA icons). The `public` directory under project root can be used as an escape hatch to provide static assets that either are never referenced in source code (e.g. `robots.txt`), or must retain the exact same file name (without hashing). - -Assets placed in `public` will be copied to the root of the dist directory as-is. - -Note that you should reference files placed in `public` using root absolute path - for example, `public/icon.png` should always be referenced in source code as `/icon.png`. - -## Base URL - -If your site is deployed to a non-root URL, you will need to set the `base` option in `.vitepress/config.js`. For example, if you plan to deploy your site to `https://foo.github.io/bar/`, then `base` should be set to `'/bar/'` (it should always start and end with a slash). - -All your static asset paths are automatically processed to adjust for different `base` config values. For example, if you have an absolute reference to an asset under `public` in your markdown: - -```md -![An image](/image-inside-public.png) -``` - -You do **not** need to update it when you change the `base` config value in this case. - -However, if you are authoring a theme component that links to assets dynamically, e.g. an image whose `src` is based on a theme config value: - -```vue - -``` - -In this case it is recommended to wrap the path with the [`withBase` helper](./api#withbase) provided by VitePress: - -```vue - - - -``` diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md deleted file mode 100644 index f2661653..00000000 --- a/docs/guide/configuration.md +++ /dev/null @@ -1,79 +0,0 @@ -# Configuration - -## Overview - -Without any configuration, the page is pretty minimal, and the user has no way to navigate around the site. To customize your site, let’s first create a `.vitepress` directory inside your docs directory. This is where all VitePress-specific files will be placed. Your project structure is probably like this: - -```bash -. -├─ docs -│ ├─ .vitepress -│ │ └─ config.js -│ └─ index.md -└─ package.json -``` - -The essential file for configuring a VitePress site is `.vitepress/config.js`, which should export a JavaScript object: - -```js -export default { - title: 'Hello VitePress', - description: 'Just playing around.' -} -``` - -Check out the [Config Reference](../config/basics) for a full list of options. - -## Config Intellisense - -Since VitePress ships with TypeScript typings, you can leverage your IDE's intellisense with jsdoc type hints: - -```js -/** - * @type {import('vitepress').UserConfig} - */ -const config = { - // ... -} - -export default config -``` - -Alternatively, you can use the `defineConfig` helper at which should provide intellisense without the need for jsdoc annotations: - -```js -import { defineConfig } from 'vitepress' - -export default defineConfig({ - // ... -}) -``` - -VitePress also directly supports TS config files. You can use `.vitepress/config.ts` with the `defineConfig` helper as well. - -## Typed Theme Config - -By default, `defineConfig` helper leverages the theme config type from default theme: - -```ts -import { defineConfig } from 'vitepress' - -export default defineConfig({ - themeConfig: { - // Type is `DefaultTheme.Config` - } -}) -``` - -If you use a custom theme and want type checks for the theme config, you'll need to use `defineConfigWithTheme` instead, and pass the config type for your custom theme via a generic argument: - -```ts -import { defineConfigWithTheme } from 'vitepress' -import { ThemeConfig } from 'your-theme' - -export default defineConfigWithTheme({ - themeConfig: { - // Type is `ThemeConfig` - } -}) -``` diff --git a/docs/guide/deploy.md b/docs/guide/deploy.md deleted file mode 100644 index 8497ecd6..00000000 --- a/docs/guide/deploy.md +++ /dev/null @@ -1,267 +0,0 @@ ---- -sidebarDepth: 3 ---- - -# Deploying - -The following guides are based on some shared assumptions: - -- You are placing your docs inside the `docs` directory of your project; -- You are using the default build output location (`.vitepress/dist`); -- VitePress is installed as a local dependency in your project, and you have setup the following npm scripts: - -```json -{ - "scripts": { - "docs:build": "vitepress build docs", - "docs:serve": "vitepress serve docs" - } -} -``` - -## Building The Docs - -You may run `yarn docs:build` command to build the docs. - -```bash -$ yarn docs:build -``` - -By default, the build output will be placed at `.vitepress/dist`. You may deploy this `dist` folder to any of your preferred platforms. - -### Testing The Docs Locally - -Once you've built the docs, you may test them locally by running `yarn docs:serve` command. - -```bash -$ yarn docs:build -$ yarn docs:serve -``` - -The `serve` command will boot up local static web server that serves the files from `.vitepress/dist` at `http://localhost:5000`. It's an easy way to check if the production build looks OK in your local environment. - -You may configure the port of the server py passing `--port` flag as an argument. - -```json -{ - "scripts": { - "docs:serve": "vitepress serve docs --port 8080" - } -} -``` - -Now the `docs:serve` method will launch the server at `http://localhost:8080`. - -## GitHub Pages - -1. Set the correct `base` in `docs/.vitepress/config.js`. - - If you are deploying to `https://.github.io/`, you can omit `base` as it defaults to `'/'`. - - If you are deploying to `https://.github.io//`, for example your repository is at `https://github.com//`, then set `base` to `'//'`. - -2. Inside your project, create `deploy.sh` with the following content (with highlighted lines uncommented appropriately), and run it to deploy: - -```bash{13,20,23} -#!/usr/bin/env sh - -# abort on errors -set -e - -# build -npm run docs:build - -# navigate into the build output directory -cd docs/.vitepress/dist - -# if you are deploying to a custom domain -# echo 'www.example.com' > CNAME - -git init -git add -A -git commit -m 'deploy' - -# if you are deploying to https://.github.io -# git push -f git@github.com:/.github.io.git main - -# if you are deploying to https://.github.io/ -# git push -f git@github.com:/.git main:gh-pages - -cd - -``` - -::: tip -You can also run the above script in your CI setup to enable automatic deployment on each push. -::: - -### GitHub Pages and Travis CI - -1. Set the correct `base` in `docs/.vitepress/config.js`. - - If you are deploying to `https://.github.io/`, you can omit `base` as it defaults to `'/'`. - - If you are deploying to `https://.github.io//`, for example your repository is at `https://github.com//`, then set `base` to `'//'`. - -2. Create a file named `.travis.yml` in the root of your project. - -3. Run `yarn` or `npm install` locally and commit the generated lockfile (that is `yarn.lock` or `package-lock.json`). - -4. Use the GitHub Pages deploy provider template, and follow the [Travis CI documentation](https://docs.travis-ci.com/user/deployment/pages). - -```yaml -language: node_js -node_js: - - lts/* -install: - - yarn install # npm ci -script: - - yarn docs:build # npm run docs:build -deploy: - provider: pages - skip_cleanup: true - local_dir: docs/.vitepress/dist - # A token generated on GitHub allowing Travis to push code on you repository. - # Set in the Travis settings page of your repository, as a secure variable. - github_token: $GITHUB_TOKEN - keep_history: true - on: - branch: main -``` - -## GitLab Pages and GitLab CI - -1. Set the correct `base` in `docs/.vitepress/config.js`. - - If you are deploying to `https://.gitlab.io/`, you can omit `base` as it defaults to `'/'`. - - If you are deploying to `https://.gitlab.io//`, for example your repository is at `https://gitlab.com//`, then set `base` to `'//'`. - -2. Set `outDir` in `.vitepress/config.js` to `../public`. - -3. Create a file called `.gitlab-ci.yml` in the root of your project with the content below. This will build and deploy your site whenever you make changes to your content: - -```yaml -image: node:16.5.0 -pages: - stage: deploy - cache: - paths: - - node_modules/ - script: - - yarn install # npm install - - yarn docs:build # npm run docs:build - artifacts: - paths: - - public - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH -``` - -## Netlify - -1. On [Netlify](https://www.netlify.com/), setup up a new project from GitHub with the following settings: - -- **Build Command:** `vitepress build docs` or `yarn docs:build` or `npm run docs:build` -- **Publish directory:** `docs/.vitepress/dist` - -2. Hit the deploy button. - -## Google Firebase - -1. Make sure you have [firebase-tools](https://www.npmjs.com/package/firebase-tools) installed. - -2. Create `firebase.json` and `.firebaserc` at the root of your project with the following content: - -`firebase.json`: - -```json -{ - "hosting": { - "public": "./docs/.vitepress/dist", - "ignore": [] - } -} -``` - -`.firebaserc`: - -```js -{ - "projects": { - "default": "" - } -} -``` - -3. After running `yarn docs:build` or `npm run docs:build`, deploy using the command `firebase deploy`. - -## Surge - -1. First install [surge](https://www.npmjs.com/package/surge), if you haven’t already. - -2. Run `yarn docs:build` or `npm run docs:build`. - -3. Deploy to surge by typing `surge docs/.vitepress/dist`. - -You can also deploy to a [custom domain](https://surge.sh/help/adding-a-custom-domain) by adding `surge docs/.vitepress/dist yourdomain.com`. - -## Heroku - -1. Install [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli). - -2. Create a Heroku account by [signing up](https://signup.heroku.com). - -3. Run `heroku login` and fill in your Heroku credentials: - -```bash -$ heroku login -``` - -4. Create a file called `static.json` in the root of your project with the below content: - -`static.json`: - -```json -{ - "root": "./docs/.vitepress/dist" -} -``` - -This is the configuration of your site; read more at [heroku-buildpack-static](https://github.com/heroku/heroku-buildpack-static). - -5. Set up your Heroku git remote: - -```bash -# version change -$ git init -$ git add . -$ git commit -m "My site ready for deployment." - -# creates a new app with a specified name -$ heroku apps:create example - -# set buildpack for static sites -$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-static.git -``` - -6. Deploy your site: - -```bash -# publish site -$ git push heroku main - -# opens a browser to view the Dashboard version of Heroku CI -$ heroku open -``` - -## Vercel - -To deploy your VitePress app with a [Vercel for Git](https://vercel.com/docs/concepts/git), make sure it has been pushed to a Git repository. - -Go to https://vercel.com/new and import the project into Vercel using your Git of choice (GitHub, GitLab or BitBucket). Follow the wizard to select the project root with the project's `package.json` and override the build step using `yarn docs:build` or `npm run docs:build` and the output dir to be `./docs/.vitepress/dist` - -![Override Vercel Configuration](../images/vercel-configuration.png) - -After your project has been imported, all subsequent pushes to branches will generate Preview Deployments, and all changes made to the Production Branch (commonly "main") will result in a Production Deployment. - -Once deployed, you will get a URL to see your app live, such as the following: https://vitepress.vercel.app diff --git a/docs/guide/differences-from-vuepress.md b/docs/guide/differences-from-vuepress.md deleted file mode 100644 index b6c6eab5..00000000 --- a/docs/guide/differences-from-vuepress.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -sidebarDepth: 2 ---- - -# Differences from VuePress - -VitePress and VuePress have different [design goals](../index.md). Both projects share similar config naming conventions. VitePress aims to have the bare minimum features needed for authoring docs. Other features are pushed to Themes. On the other hand, VuePress has more features out-of-the-box or enabled by its ecosystem of plugins. - -::: tip -If you are using VuePress, there is no need to migrate to VitePress. Both projects are going to continue to co-exist for the foreseeable future. -::: - -::: warning -Note this is early WIP! Currently, the focus is on making Vite stable and feature-complete first. It is not recommended to use this for anything serious yet. -::: - -In case you decide to move your project to VitePress, this is a list of differences from [VuePress v1.7.1](https://github.com/vuejs/vuepress/releases/tag/v1.7.1) that you need to take into account. - -## General - -- Missing - - YAML and TOML are not supported formats for site config. Only javascript is supported for `.vitepress/config.js` - - [Plugins](https://vuepress.vuejs.org/plugin/) support, features are implemented in themes - - [permalink support](https://vuepress.vuejs.org/guide/permalinks.html) - - `.vitepress/templates` - - Components in `.vitepress/components` [are not auto registered as global components](https://vuepress.vuejs.org) -- Differences - - [Public files](https://vuepress.vuejs.org/guide/assets.html#public-files) that are directly copied to dist root moved from `.vitepress/public/` is `public/` - - [styling](https://vuepress.vuejs.org/config/#styling) `.vitepress/styles/index.styl` and `.vitepress/styles/palette.styl` is not supported. See [Customizing CSS](./theming#customizing-css). - - [App Level Enhancements](https://vuepress.vuejs.org/guide/basic-config.html#app-level-enhancements) API, app enhancements `.vitepress/enhanceApp.js` is now done in `.vitepress/theme/index.js`. See [Extending the Default Theme](./theming#extending-the-default-theme). - -## Markdown - -- Missing - - Support for [toml in frontmatter](https://vuepress.vuejs.org/guide/frontmatter.html#alternative-frontmatter-formats) - - [details block](https://vuepress.vuejs.org/guide/markdown.html#custom-containers) - - [markdown slots](https://vuepress.vuejs.org/guide/markdown-slot.html) - - `~` prefix to explicitly specify a url is a [webpack module request](https://vuepress.vuejs.org/guide/assets.html#relative-urls) - -## Site Config - -- Missing - - `temp` - - `dest` - - [`theme` from a dependency](https://vuepress.vuejs.org/theme/using-a-theme.html#using-a-theme-from-a-dependency) - - `permalink` - - [`port`](https://vuepress.vuejs.org/config/#port) - - [`shouldPrefetch`](https://vuepress.vuejs.org/config/#shouldprefetch) - - [`cache`](https://vuepress.vuejs.org/config/#cache) - - [`extraWatchFiles`](https://vuepress.vuejs.org/config/#extrawatchfiles) - - [`patterns`](https://vuepress.vuejs.org/config/#patterns) - - [`plugins`](https://vuepress.vuejs.org/config/#pluggable) - - [`markdown.pageSuffix`](https://vuepress.vuejs.org/config/#markdown-pagesuffix) - - [`markdown.slugify`](https://vuepress.vuejs.org/config/#markdown-slugify) - - [`markdown.plugins`](https://vuepress.vuejs.org/config/#markdown-plugins) - - [`markdown.extractHeaders`](https://vuepress.vuejs.org/config/#markdown-extractheaders) - - `markdown.extendMarkdown` to `markdown.config` - - `configureWebpack`, `chainWebpack`, `postcss`, `Stylus`, `scss`, `Sass`, `less` configs - - [`evergreen`](https://vuepress.vuejs.org/config/#evergreen) - -## Default Theme Config - -- Missing - - [`smoothScroll`](https://vuepress.vuejs.org/theme/default-theme-config.html#smooth-scrolling) - - [`displayAllHeaders`](https://vuepress.vuejs.org/theme/default-theme-config.html#displaying-header-links-of-all-pages) - - [`activeHeaderLinks`](https://vuepress.vuejs.org/theme/default-theme-config.html#active-header-links) - - `sidebarDepth` and `initialOpenGroupIndex` for [sidebar groups](https://vuepress.vuejs.org/theme/default-theme-config.html#sidebar-groups) -- Differences - - `searchMaxSuggestions` is `search.maxSuggestions` - - `algolia` is `search.algolia` - - `searchPlaceholder` is `search.placeholder` - -## Default Theme - -- Missing - - [`` and ``](https://vuepress.vuejs.org/theme/default-theme-config.html#code-groups-and-code-blocks) - -## Computed Globals - -- Missing - - `$lang` - - `$localePath` - -## Frontmatter Predefined Variables - -- Missing - - `description` - - [`meta`](https://vuepress.vuejs.org/guide/frontmatter.html#meta) - - [`metaTitle`](https://vuepress.vuejs.org/guide/frontmatter.html#predefined-variables) - - `lang` - - [`layout`](https://vuepress.vuejs.org/guide/frontmatter.html#layout) - - [`permalink`](https://vuepress.vuejs.org/guide/frontmatter.html#predefined-variables) - - [`canonicalUrl`](https://vuepress.vuejs.org/guide/frontmatter.html#predefined-variables) - -## Frontmatter Default Theme Variables - -- Missing - - `prev`, `next` - - [`search`](https://vuepress.vuejs.org/guide/frontmatter.html#search) - - [`tags`](https://vuepress.vuejs.org/guide/frontmatter.html#tags) - - [`pageClass`](https://vuepress.vuejs.org/theme/default-theme-config.html#custom-page-class) - - [`layout`](https://vuepress.vuejs.org/theme/default-theme-config.html#custom-layout-for-specific-pages) - -## siteData - -- Missing - - [`pages`](https://vuepress.vuejs.org/theme/writing-a-theme.html#site-and-page-metadata) - -## pageData - -- Missing - - `key` - - `path` - - `regularPath` - -## Global Components - -- Missing - - [``](https://vuepress.vuejs.org/guide/using-vue.html#badge) diff --git a/docs/guide/frontmatter.md b/docs/guide/frontmatter.md deleted file mode 100644 index 40fd2691..00000000 --- a/docs/guide/frontmatter.md +++ /dev/null @@ -1,87 +0,0 @@ -# Frontmatter - -Any Markdown file that contains a YAML frontmatter block will be processed by [gray-matter](https://github.com/jonschlinkert/gray-matter). The frontmatter must be at the top of the Markdown file, and must take the form of valid YAML set between triple-dashed lines. Example: - -```md ---- -title: Docs with VitePress -editLink: true ---- -``` - -Between the triple-dashed lines, you can set [predefined variables](#predefined-variables), or even create custom ones of your own. These variables can be used via the special $frontmatter variable. - -Here’s an example of how you could use it in your Markdown file: - -```md ---- -title: Docs with VitePress -editLink: true ---- - -# {{ $frontmatter.title }} - -Guide content -``` - -## Alternative frontmatter Formats - -VitePress also supports JSON frontmatter syntax, starting and ending in curly braces: - -```json ---- -{ - "title": "Blogging Like a Hacker", - "editLink": true -} ---- -``` - -## Predefined Variables - -### title - -- Type: `string` -- Default: `h1_title || siteData.title` - -Title of the current page. - -### head - -- Type: `array` -- Default: `undefined` - -Specify extra head tags to be injected: - -```yaml ---- -head: - - - meta - - name: description - content: hello - - - meta - - name: keywords - content: super duper SEO ---- -``` - -### navbar - -- Type: `boolean` -- Default: `undefined` - -You can disable the navbar on a specific page with `navbar: false` - -### sidebar - -- Type: `boolean|'auto'` -- Default: `undefined` - -You can decide to show the sidebar on a specific page with `sidebar: auto` or disable it with `sidebar: false` - -### editLink - -- Type: `boolean` -- Default: `undefined` - -Define if this page should include an edit link. diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md deleted file mode 100644 index 2b891fd3..00000000 --- a/docs/guide/getting-started.md +++ /dev/null @@ -1,51 +0,0 @@ -# Getting Started - -This section will help you build a basic VitePress documentation site from ground up. If you already have an existing project and would like to keep documentation inside the project, start from Step 3. - -- **Step. 1:** Create and change into a new directory. - - ```bash - $ mkdir vitepress-starter && cd vitepress-starter - ``` - -- **Step. 2:** Initialize with your preferred package manager. - - ```bash - $ yarn init - ``` - -- **Step. 3:** Install VitePress locally. - - ```bash - $ yarn add --dev vitepress - ``` - -- **Step. 4:** Create your first document. - - ```bash - $ mkdir docs && echo '# Hello VitePress' > docs/index.md - ``` - -- **Step. 5:** Add some scripts to `package.json`. - - ```json - { - "scripts": { - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", - "docs:serve": "vitepress serve docs" - } - } - ``` - -- **Step. 6:** Serve the documentation site in the local server. - - ```bash - $ yarn docs:dev - ``` - - VitePress will start a hot-reloading development server at `http://localhost:3000`. - -By now, you should have a basic but functional VitePress documentation site. - -When your documentation site starts to take shape, be sure to read the [deployment guide](./deploy). diff --git a/docs/guide/global-component.md b/docs/guide/global-component.md deleted file mode 100644 index ce843322..00000000 --- a/docs/guide/global-component.md +++ /dev/null @@ -1,32 +0,0 @@ -# Global Component - -VitePress comes with few built-in component that can be used globally. You may use these components in your markdown or your custom theme configuration. - -## Content - -The `Content` component displays the rendered markdown contents. Useful [when creating your own theme](./theming). - -```vue - -``` - -## ClientOnly - -The `ClientOnly` component renderes its slot only at client side. - -Because VitePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the universal code requirements. In short, make sure to only access Browser / DOM APIs in beforeMount or mounted hooks. - -If you are using or demoing components that are not SSR-friendly (for example, contain custom directives), you can wrap them inside the `ClientOnly` component. - -```html - - - -``` - -## OutboundLink - -The indicator `OutboundLink` is used to denote external links. In VitePress, this component has been followed by every external link. diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md deleted file mode 100644 index 693e915c..00000000 --- a/docs/guide/markdown.md +++ /dev/null @@ -1,449 +0,0 @@ ---- -sidebarDepth: 3 ---- - -# Markdown Extensions - -## Header Anchors - -Headers automatically get anchor links applied. Rendering of anchors can be configured using the `markdown.anchor` option. - -## Links - -### Internal Links - -Internal links are converted to router link for SPA navigation. Also, every `index.md` contained in each sub-directory will automatically be converted to `index.html`, with corresponding URL `/`. - -For example, given the following directory structure: - -``` -. -├─ index.md -├─ foo -│ ├─ index.md -│ ├─ one.md -│ └─ two.md -└─ bar - ├─ index.md - ├─ three.md - └─ four.md -``` - -And providing you are in `foo/one.md`: - -```md -[Home](/) -[foo](/foo/) -[foo heading](./#heading) -[bar - three](../bar/three) -[bar - three](../bar/three.md) -[bar - four](../bar/four.html) -``` - -### Page Suffix - -Pages and internal links get generated with the `.html` suffix by default. - -### External Links - -Outbound links automatically get `target="_blank" rel="noopener noreferrer"`: - -- [vuejs.org](https://vuejs.org) -- [VitePress on GitHub](https://github.com/vuejs/vitepress) - -## Frontmatter - -[YAML frontmatter](https://jekyllrb.com/docs/front-matter/) is supported out of the box: - -```yaml ---- -title: Blogging Like a Hacker -lang: en-US ---- -``` - -This data will be available to the rest of the page, along with all custom and theming components. - -For more details, see [Frontmatter](./frontmatter). - -## GitHub-Style Tables - -**Input** - -``` -| Tables | Are | Cool | -| ------------- |:-------------:| -----:| -| col 3 is | right-aligned | $1600 | -| col 2 is | centered | $12 | -| zebra stripes | are neat | $1 | -``` - -**Output** - -| Tables | Are | Cool | -| ------------- | :-----------: | -----: | -| col 3 is | right-aligned | \$1600 | -| col 2 is | centered | \$12 | -| zebra stripes | are neat | \$1 | - -## Emoji :tada: - -**Input** - -``` -:tada: :100: -``` - -**Output** - -:tada: :100: - -A [list of all emojis](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json) is available. - -## Table of Contents - -**Input** - -``` -[[toc]] -``` - -**Output** - -[[toc]] - -Rendering of the TOC can be configured using the `markdown.toc` option. - -## Custom Containers - -Custom containers can be defined by their types, titles, and contents. - -### Default Title - -**Input** - -```md -::: tip -This is a tip -::: - -::: info -This is an info box -::: - -::: warning -This is a warning -::: - -::: danger -This is a dangerous warning -::: - -::: details -This is a details block, which does not work in Internet Explorer or old versions of Edge. -::: -``` - -**Output** - -::: tip -This is a tip -::: - -::: info -This is an info box -::: - -::: warning -This is a warning -::: - -::: danger -This is a dangerous warning -::: - -::: details -This is a details block, which does not work in Internet Explorer or Edge. -::: - -### Custom Title - -**Input** - -````md -::: danger STOP -Danger zone, do not proceed -::: - -::: details Click me to view the code - -```js -console.log('Hello, VitePress!') -``` - -::: -```` - -**Output** - -::: danger STOP -Danger zone, do not proceed -::: - -::: details Click me to view the code - -```js -console.log('Hello, VitePress!') -``` - -::: - -## Syntax Highlighting in Code Blocks - -VitePress uses [Prism](https://prismjs.com) to highlight language syntax in Markdown code blocks, using coloured text. Prism supports a wide variety of programming languages. All you need to do is append a valid language alias to the beginning backticks for the code block: - -**Input** - -```` -```js -export default { - name: 'MyComponent', - // ... -} -``` -```` - -**Output** - -```js -export default { - name: 'MyComponent' - // ... -} -``` - -**Input** - -```` -```html -
    -
  • - {{ todo.text }} -
  • -
-``` -```` - -**Output** - -```html -
    -
  • {{ todo.text }}
  • -
-``` - -A [list of valid languages](https://prismjs.com/#languages-list) is available on Prism’s site. - -## Line Highlighting in Code Blocks - -**Input** - -```` -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` -```` - -**Output** - -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` - -In addition to a single line, you can also specify multiple single lines, ranges, or both: - -- Line ranges: for example `{5-8}`, `{3-10}`, `{10-17}` -- Multiple single lines: for example `{4,7,9}` -- Line ranges and single lines: for example `{4,7-13,16,23-27,40}` - -**Input** - -```` -```js{1,4,6-7} -export default { // Highlighted - data () { - return { - msg: `Highlighted! - This line isn't highlighted, - but this and the next 2 are.`, - motd: 'VitePress is awesome', - lorem: 'ipsum', - } - } -} -``` -```` - -**Output** - -```js{1,4,6-8} -export default { // Highlighted - data () { - return { - msg: `Highlighted! - This line isn't highlighted, - but this and the next 2 are.`, - motd: 'VitePress is awesome', - lorem: 'ipsum', - } - } -} -``` - -## Line Numbers - -You can enable line numbers for each code blocks via config: - -```js -module.exports = { - markdown: { - lineNumbers: true - } -} -``` - -- Demo: - - - - Image - - - - - Image - - - - -## Import Code Snippets - -You can import code snippets from existing files via following syntax: - -```md -<<< @/filepath -``` - -It also supports [line highlighting](#line-highlighting-in-code-blocks): - -```md -<<< @/filepath{highlightLines} -``` - -**Input** - -```md -<<< @/snippets/snippet.js{2} -``` - -**Code file** - - - -<<< @/snippets/snippet.js - - - -**Output** - - - -<<< @/snippets/snippet.js{2} - - - -::: tip -The value of `@` corresponds to the source root. By default it's the VitePress project root, unless `srcDir` is configured. -::: - -You can also use a [VS Code region](https://code.visualstudio.com/docs/editor/codebasics#_folding) to only include the corresponding part of the code file. You can provide a custom region name after a `#` following the filepath (`snippet` by default): - -**Input** - -```md -<<< @/snippets/snippet-with-region.js{1} -``` - -**Code file** - - - -<<< @/snippets/snippet-with-region.js - - - -**Output** - - - -<<< @/snippets/snippet-with-region.js#snippet{1} - - - -## Advanced Configuration - -VitePress uses [markdown-it](https://github.com/markdown-it/markdown-it) as the Markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the `markdown-it` instance using the `markdown` option in `.vitepress/config.js`: - -```js -const anchor = require('markdown-it-anchor') - -module.exports = { - markdown: { - // options for markdown-it-anchor - // https://github.com/valeriangalliat/markdown-it-anchor#permalinks - anchor: { - permalink: anchor.permalink.headerLink() - }, - - // options for markdown-it-table-of-contents - toc: { includeLevel: [1, 2] }, - - config: (md) => { - // use more markdown-it plugins! - md.use(require('markdown-it-xxx')) - } - } -} -``` diff --git a/docs/guide/theming.md b/docs/guide/theming.md deleted file mode 100644 index 6e1e349f..00000000 --- a/docs/guide/theming.md +++ /dev/null @@ -1,155 +0,0 @@ -# Theming - -## Using a Custom Theme - -You can enable a custom theme by adding the `.vitepress/theme/index.js` file (the "theme entry file"). - -```bash -. -├─ docs -│ ├─ .vitepress -│ │ ├─ theme -│ │ │ └─ index.js -│ │ └─ config.js -│ └─ index.md -└─ package.json -``` - -A VitePress custom theme is simply an object containing three properties and is defined as follows: - -```ts -interface Theme { - Layout: Component // Vue 3 component - NotFound?: Component - enhanceApp?: (ctx: EnhanceAppContext) => void -} - -interface EnhanceAppContext { - app: App // Vue 3 app instance - router: Router // VitePress router instance - siteData: Ref -} -``` - -The theme entry file should export the theme as its default export: - -```js -// .vitepress/theme/index.js -import Layout from './Layout.vue' - -export default { - Layout, - NotFound: () => 'custom 404', // <- this is a Vue 3 functional component - enhanceApp({ app, router, siteData }) { - // app is the Vue 3 app instance from `createApp()`. router is VitePress' - // custom router. `siteData` is a `ref` of current site-level metadata. - } -} -``` - -...where the `Layout` component could look like this: - -```vue - - -``` - -The default export is the only contract for a custom theme. Inside your custom theme, it works just like a normal Vite + Vue 3 application. Do note the theme also needs to be [SSR-compatible](./using-vue#browser-api-access-restrictions). - -To distribute a theme, simply export the object in your package entry. To consume an external theme, import and re-export it from the custom theme entry: - -```js -// .vitepress/theme/index.js -import Theme from 'awesome-vitepress-theme' -export default Theme -``` - -## Extending the Default Theme - -If you want to extend and customize the default theme, you can import it from `vitepress/theme` and augment it in a custom theme entry. Here are some examples of common customizations: - -### Registering Global Components - -```js -// .vitepress/theme/index.js -import DefaultTheme from 'vitepress/theme' - -export default { - ...DefaultTheme, - enhanceApp({ app }) { - // register global components - app.component('MyGlobalComponent' /* ... */) - } -} -``` - -Since we are using Vite, you can also leverage Vite's [glob import feature](https://vitejs.dev/guide/features.html#glob-import) to auto register a directory of components. - -### Customizing CSS - -The default theme CSS is customizable by overriding root level CSS variables: - -```js -// .vitepress/theme/index.js -import DefaultTheme from 'vitepress/theme' -import './custom.css' - -export default DefaultTheme -``` - -```css -/* .vitepress/theme/custom.css */ -:root { - --c-brand: #646cff; - --c-brand-light: #747bff; -} -``` - -See [default theme CSS variables](https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css) that can be overridden. - -### Layout Slots - -The default theme's `` component has a few slots that can be used to inject content at certain locations of the page. Here's an example of injecting a component into the top of the sidebar: - -```js -// .vitepress/theme/index.js -import DefaultTheme from 'vitepress/theme' -import MyLayout from './MyLayout.vue' - -export default { - ...DefaultTheme, - // override the Layout with a wrapper component that injects the slots - Layout: MyLayout -} -``` - -```vue - - - - -``` - -Full list of slots available in the default theme layout: - -- `navbar-search` -- `sidebar-top` -- `sidebar-bottom` -- `page-top-ads` -- `page-top` -- `page-bottom` -- `page-bottom-ads` -- Only when `home: true` is enabled via frontmatter: - - `home-hero` - - `home-features` - - `home-footer` diff --git a/docs/guide/using-vue.md b/docs/guide/using-vue.md deleted file mode 100644 index d6d5ce7c..00000000 --- a/docs/guide/using-vue.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -sidebarDepth: 3 ---- - -# Using Vue in Markdown - -In VitePress, each markdown file is compiled into HTML and then processed as a Vue Single-File Component. This means you can use any Vue features inside the markdown, including dynamic templating, using Vue components, or arbitrary in-page Vue component logic by adding a ` - -
{{ page }}
-``` - -**Output** - -```json -{ - "path": "/using-vue.html", - "title": "Using Vue in Markdown", - "frontmatter": {} -} -``` - -## Escaping - -By default, fenced code blocks are automatically wrapped with `v-pre`. To display raw mustaches or Vue-specific syntax inside inline code snippets or plain text, you need to wrap a paragraph with the `v-pre` custom container: - -**Input** - -```md -::: v-pre -`{{ This will be displayed as-is }}` -::: -``` - -**Output** - -::: v-pre -`{{ This will be displayed as-is }}` -::: - -## Using Components - -When you need to have more flexibility, VitePress allows you to extend your authoring toolbox with your own Vue Components. - -### Importing components in markdown - -If your components are going to be used in only a few places, the recommended way to use them is to importing the components in the file where it is used. - -```md - - -# Docs - -This is a .md using a custom component - - - -## More docs - -... -``` - -### Registering global components in the theme - -If the components are going to be used across several pages in the docs, they can be registered globally in the theme (or as part of extending the default VitePress theme). Check out the [Theming Guide](./theming) for more information. - -In `.vitepress/theme/index.js`, the `enhanceApp` function receives the Vue `app` instance so you can [register components](https://vuejs.org/guide/components/registration.html) as you would do in a regular Vue application. - -```js -import DefaultTheme from 'vitepress/theme' - -export default { - ...DefaultTheme, - enhanceApp({ app }) { - app.component('VueClickAwayExample', VueClickAwayExample) - } -} -``` - -Later in your markdown files, the component can be interleaved between the content - -```md -# Vue Click Away - - -``` - -::: warning IMPORTANT -Make sure a custom component’s name either contains a hyphen or is in PascalCase. Otherwise, it will be treated as an inline element and wrapped inside a `

` tag, which will lead to hydration mismatch because `

` does not allow block elements to be placed inside it. -::: - -### Using Components In Headers - -You can use Vue components in the headers, but note the difference between the following syntaxes: - -| Markdown | Output HTML | Parsed Header | -| ------------------------------------------------------- | ----------------------------------------- | ------------- | -|

 # text <Tag/> 
| `

text

` | `text` | -|
 # text \`<Tag/>\` 
| `

text <Tag/>

` | `text ` | - -The HTML wrapped by `` will be displayed as-is; only the HTML that is **not** wrapped will be parsed by Vue. - -::: tip -The output HTML is accomplished by [markdown-it](https://github.com/markdown-it/markdown-it), while the parsed headers are handled by VitePress (and used for both the sidebar and document title). -::: - -## Using CSS Pre-processors - -VitePress has [built-in support](https://vitejs.dev/guide/features.html#css-pre-processors) for CSS pre-processors: `.scss`, `.sass`, `.less`, `.styl` and `.stylus` files. There is no need to install Vite-specific plugins for them, but the corresponding pre-processor itself must be installed: - -``` -# .scss and .sass -npm install -D sass - -# .less -npm install -D less - -# .styl and .stylus -npm install -D stylus -``` - -Then you can use the following in Markdown and theme components: - -```vue - -``` - -## Script & Style Hoisting - -Sometimes you may need to apply some JavaScript or CSS only to the current page. In those cases, you can directly write root-level ` - -## Built-In Components - -VitePress provides Built-In Vue Components like `ClientOnly` and `OutboundLink`, check out the [Global Component Guide](./global-component) for more information. - -**Also see:** - -- [Using Components In Headers](#using-components-in-headers) - -## Browser API Access Restrictions - -Because VitePress applications are server-rendered in Node.js when generating static builds, any Vue usage must conform to the [universal code requirements](https://vuejs.org/guide/scaling-up/ssr.html). In short, make sure to only access Browser / DOM APIs in `beforeMount` or `mounted` hooks. - -If you are using or demoing components that are not SSR-friendly (for example, contain custom directives), you can wrap them inside the built-in `` component: - -```md - - - -``` - -Note this does not fix components or libraries that access Browser APIs **on import**. To use code that assumes a browser environment on import, you need to dynamically import them in proper lifecycle hooks: - -```vue - -``` - -If your module `export default` a Vue component, you can register it dynamically: - -```vue - - - -``` - -**Also see:** - -- [Vue.js > Dynamic Components](https://vuejs.org/guide/essentials/component-basics.html#dynamic-components) diff --git a/docs/guide/what-is-vitepress.md b/docs/guide/what-is-vitepress.md new file mode 100644 index 00000000..204c91b3 --- /dev/null +++ b/docs/guide/what-is-vitepress.md @@ -0,0 +1,3 @@ +# What is VitePress? + +Coming soon... diff --git a/docs/images/line-numbers-desktop.png b/docs/images/line-numbers-desktop.png deleted file mode 100644 index e16e67073ef73a31aa8d0debf66d5dad69209676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142346 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 diff --git a/docs/images/line-numbers-mobile.gif b/docs/images/line-numbers-mobile.gif deleted file mode 100644 index 87af6cf0d8f8ab90d0c579bc4dd6c6e4077fadbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228039 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%0D<72#oFXn+>BRb2o`mV}QKz)HhMgwy z{@B~S_z|$Dan9t0Ro>wKOTlHyKPh_N-<~`-oH}Fr24z4e^SsU`l4aQ|d9|+)&6{^l za3rL5!u_OEI$qMA@OW>j59m6R)Vsp3vQ5J=Y|u;Ro!C^~$-m~a71`DnpR3DKEWXq? z-nRI9x$CdRT+68Su5Z_0r|de3nZ3Phq5JpWU5h;u4_++}D4()i8s2uta{2zQ4a=2> zE;d#_o(7(>I{W;<9jjk&Pi|PPe#o{-S$SD-%6k2C;~neY-@5K}tu2h&*!=h7^~R}< zU*D(h*lhgwd*jrK3f&rzZDu1ag@68W7h6&E1OpOPHiw*wG;%+Mx9_&lC~ zH3N|;X8jsQEt$`@sV^w8;W*ugnLfAF<+H^G-hL1w$8Ce<`?Lo&WAk7;7C&sdTQ|5v zN(NMF=TJ#nUNJkByKI~ zb#!jcFCr2&w$~5uezv`!{0~w4@uy*WzGrU7E)89;`jI{VV|9}>^fp3tM*SbP7Pa5f zFgQ{_x_7Dd-0eRfXQA=-r}}KVPB4Jb(;5|HN86xi6m+PZF`R}wcCW3vDEu@a*Fm<@s~(4RWKi{&ie3Y)Pe^n-IVi z|FCTU0fiReS7B-fSeJ^}&TRqd-yKB`?bmSEp4I2b8DK&^vca! z<=BYu%pg?-x^96~O$kQLUw=y6SpJQ1ID(}4;waiU>kqD02L@dopMi$*>I|GRv6&r4 zddgTKfNz$SEu!CJmJ%%`GDPn{65Q{Ho`r1Vupb7tfl68WS%-Z zkNma2(7XUWg|C=`yGUzS`g(kS0BBTVi z;YOwL;e396By)wrsAew!bvwt zDNHu&XZBF;ts825nBHpUr*-e$mje7}9~MHJi(4nuYT_$e%v(5Y+w>P7vy62LS|8nQ zZDj{gATcqS&pj{l@&5qV2%Y(pG1!;FjeDaAH$QMUVq9#*jIyVsLLf=5Y8-OY(rB>H zfB|_t#T7O2lEcwg>0Cg0T317FpmYsa00<(UFiQTs`0xi#0)#`ZkW<8qWUDX%)UQ;`i(Lv4sYms#rxq9uy_LvMf z8PZSeq;)B&SLa$1^bH>`RR8UK*_SE5-?U3EWi!0C8oOqGBpQ?Of%icxs>7vvurzfLizTJM(tI$sp;GE zD6izWuUJF1PzNhN&*7NrV#~~p2i9@R6tlL^e1wEr-lM|A3&vHJsbQ65!jpdb&nk5? zW80>~Id1nGO0b!TUG2kHon;?cC_!9uxfE1M}NWBy&&uESG!g7t+i10CGj%rcu9ciy8=}4 z$kK_d_UxC4`ApX_r@-o_)8#D%mm%_0eHsG8?Rz`;m4n)s^qkVczNBG~6FqlbK{alE zJO6{W@S}f04Jt82%^Ru^yn|wHmP%@K+&j)E*aMDwu))j9hgWzJO|O1vyiO|=yGXv< z-K}!WtRK~T=A>xjbP{PdtxY`Ed+&=?vD*qShQk8-UJl%CviJTD+4TpcojLPYXDHFt z&;9y4#7{~xg$(68#y=?(U`8>EX)r&h-HW`9%}_!b&&dwuW|wh%70thSA#dP9zgf=% z6aUnv&D4$o7golEn%!qPZ9hAvGB$RX!cL3^@*-=n5N*Lm?tDRMY0?xeLQ@-Nj znb#k)cO%p2f&{{14@^PzqBa72Geq!n<2`YCYCrkagDg_<5-r-nF`(3{Q_+h39ehuB zl6odPuq$S_Xa7*I0#z1cXA_W(BhhZ{x#t22kLm@!I_l~`^K#H0eiXJFR`p&lS$I=T z^n4L>vUoU!F1aLLPWDGU=}=**0QeK9cYhHQ`0tvZ?c-4wA7y&*~OZrae%OrgBCvgg#iyza}QX;aCPKm zZ?>A>CmD^}c|WqOqI7(;R>GGYdlh#~XvBZFYUd|JxTa4yI);!a18)wp>g3yGU6R;A z#Ll_l2tD(4B7%0${OtYt*{pd~osn$B_tl=mf88WHvX+lxCHt`pegH&?Sgz6>uo5nl zf#XY3lKuGA#E6wAz!_`z?D-r-dBnmvoA3l8Fd`S5XLFv_B`Lv@Uu|gp_e5m#B}Yay ztEvry%*doKZa6azI;b9vqW`lXn?yK(3s)E-n2cwA%aK_fo>!m}_@B^FZ#0Qq$c!rL z)XE>>tG$_B>Yytc0$340(+9g`21q_(t36>qdB{HY(+v@H9x=|&^dU<=0pz-|Qhth3 z6QTt00lJATp#o#y9uXkgdko1dJcR-B*S`q)*)Kb zgnn6xqXzWgKTC1#MJnc;dA$Z1lP{MXzEtV*tC`VxSNCl^V*^}fOU)+<`vu?=_+H!~&$xmkqtT7o3wNW=0eM|2j zW@vs4_vh=m`E788p8hwQ5bfYy1&*}2DA$OMe!|Wwnj5Z}JE4AX^mfd>3k^v>VW;nB z&xby3`4WkN^s#MzUGq`_jDL%9r{}fnpUCRp(H*;J*ECPg><%EC41UdbIOy8q%l+ww zBT*1`S2Dje&ND>k*Rv!bZqek%fgD|Qsu5Yhj(XGmdCJ+~XgIk6fVHekA=h(0{6!B0 z#4N>lJT+wx{{6hf*OVpBK0~?}d~w@rrI#{4maXJ2i|T!?`EX3iK<@1Mg+ESdRPE(^ z2fsIo2t#>r^1^&^?Xmdz`3~|JGooPM!b03-HPoT=M&$2HIXFg-%FEiiB% z;+B57J;7wxAyg<5ZEOi51*3QHdt?o6B|>$zhhW)rZ%Im?d=PiB1-t2iihG^3{-LvU z83^Bln_ik9(uP|ezT3$*aX(TM(6Xq|lOnIPaPQEjWzA=CzW;{Upp`gdv6gIE9e89* zYUlUYBYB3Z8=MxTJHa*jBXi&c(_VGMaPzMm$yFEu-*eG(^wzqRl=ob>QEQ$BAn%=n zR6SDC`aG*8NG3GyvISX7b!8zGaAfqPN4GSu8k4ZD?>GL#LX!gzid6aIWtu30Xh~d8Re~ z(RJ~g8*IweS>*wbg*S`NTcu@J=?lo*A6M9LB4y8=LkoUa^+sF%^UPNHsC`_vL40lI zge(<3n`6A``jX1AyGB*(x=ZqbpQvsP=zam(to0gM6jl2(TAFo0mE{9p$bZH*6Vra9 z#Fe%pG#H%AmZAoH%}F#O!_6pTGuHwgBe!hi+@!`K{RO9`u{nwqReuwYf7?aJoesZhdoJFoGO!h=}U3N+%e1T?pBHq(5so-<_{dYmDT9F z@@{=Y+~-%%p`{juPqmHgxE>>s5!^gei<5ckipBPNxS0z9-?l4zD(kA@q12rVY@^(( z5uz1XOT$irbnHoK>Fc+gaVS1Da5UXZ2eDD(Uv>ybjHUSIB<;K=Y0|#-$b4kZD91D5 zd*n~rHTM|JTzJ#*l|OlZ)^j#1dYrl;EwhNDLVkCg`yHO%b+h)Qd_`C1 zjg6DImaeY5C$T+Ux1OJreAw0fscThF3t|4LBY&IJ*Dld(>5Qzp|6}hyqnc{CebKM< z5CVh{kS2uQi!?zg2^|y!>D5rB2m*p4qK41{p@b?bB1n}Yk*k7^EZD@ke6hCvF3g=5AN`F(YsHkZ>e|o zy6mtYEnG)W9yQ|W_vn0l_?bXIxdPnH8-1S@z4N$w=aX|N!&t~YhrlQ+AjdY?_T8*Eo}y}fQQ{djlsnZdiuUGHWM zUiUuW&?nElJ^biv*05rIYhcHgJ|IqJ&JJJbcA(D(DnN_kS&YLAN`Dp}>^&$E-r>T9 z2`glCR1k&f%+F*%IKLYq{pbDgZ-Ih%cn5ju*uyU!#Qph1p^=2yM6y^tQD_jfR&BUU z3u50U`wTEEKXx{Y$YPd+4F*wU^(n{J!;QMbxJn)V51pIwRl-`AH%36H)u$gk{%lBt z6Qw23Qv;9Wx#zVR{Jr2%_o{ zK7IZsbn)+{g08;!t9n>LM)x2#_;}@!t2!~ia3L?QSk=g;4Uu~Xc%{shmvC-9wk7&! z;D$lXi0o_S_HWu^ehY+q-m`9u+pkcTXw1R0{QcYSeG#PYi!t0f@q&@Q{WN=lz#YLT z|Dn7$hpOU*&IFEL7jj+R5sD6a9&V7Wb5S^EExXdG{p_x=R_J7N@M~M;w`arOJ$SpY zyeksR%6pi+@8Bg*iO8kls~gTUqH$Xj&njKo|6KhQv;J1<Ip)09}XX4|& z9ev(-Zts$A{Lim%UbbI;bl}qNZ_KfrZn5hc>AJ+rU?s+NW0Z!lo=mm7{ zu7}EhaXs|^JJ-YX|A*^g_t*6>`M+Hc+kbaG2+npU9{)jmIR3xU9{=uo#IRkDz<+Z+ zLjSrRVUhpU^>87FvS|;Gf2TceT>NiQk8}6fs7LO9MLqKVSJZ>}zn~sZ{y{xn{Riri z^zW#L<^NaI<5p!wWleQWU2R?cU(|!aMm<{oq8=Uh|7X-=@PCLN&tJTFH8H{VJf>%6 z=l;cctgNnn{P<~OgY^&UvBgF`{*UOvzWV?D^PjFq0>G{4Imq}gu16#ux=#^mOj;oI zr)Qz~Zg~zhRSsYI>v{xZAbG;(x$5LOX=L1r5PqH<~gp_jQ7+yVs)z>{- zX5IXc>+u40H1`$#P!x&pw(8wDui>_ax9yxNlT>%-xi@tYU)SCZpOdvrII8?AAmU)y zY%i5h>1>jmD@_g zoMiZ5m!dLrropw1DcX9)@eY2qt=q8G#eG}KY2aqES+QmPCiHe*X=iie*-5!}JcS=6 zv?u4fs5dNQ4Lx+im3XetNW0$ewe6ltC_?)b?$^-CdM0a;YsAM1zc-}|Q zK=vRow(9Ievbny*J3^pjWD;H)+n1V+R&F=tj_(Yv?wF zD@Spg2rR+*TES^cpqnZFnFE&)3%|ipneS+5-$%4UzPN4CpTn_Mb&Y!ux1UHMrHT<% zkqabOupY}IOb;np0JC3qvxI^{$E%Io1(y2w!B>Mmw3z=KNIeJBvr{H2A`jOR9K=wT z+@PrQc4g24y}#y$mQwLhm(m#D*8?P3zHKlTcN5YTw~{z}0C$R4j%%rp7u#-20=+FBUaId+lLEonQ_Ti&M+z)^71{Jj#2WF!TWlC>77@hB&2M7|->n)UU zJ%Z9$-HvRIw~4m0gk>GtvwgXTOD^nmm0o~v`3ywz{8A|phM=GV+}9joA;zeur_HUDt!C$!p6jHeDKHu zRaY2MJT}e?6Av4*vvfFfB3|cR@QQ*Z4Ccmh2%<_ZNi2&H@vJaWwR}(J3tj0tH`{Vr z`nvc%1Gn=M2hmzTYM%>84!(1w>{v+H>dOBlyr>G5##8XhW8x+}8ZF_)*LSP1();{P z2PGCWe$}C0*$qyiB|wJaK|@*5>nw*Q4^u1Y5De5|Lt5}$mr~MYGhRC<&o5Va5uem9 zAwLc7;BSG!0*r9^1Ogdr+1;zmpa_nX`e+Sya}O+0#L#6(ac~dsHC7UmScY=xpktd@ z$%4@m=#zp*LN8b;@y!z4=PXtBe_^E>eUZTIr4EWnU^l4^2PCmqEQMt>Hq)+0O5&;~ zMHJl+96sK8OJF{?UnMS5#cSu5U@Lauz_sU^Cyy@rK4H5a3;mf9Bb*|OmKK>Kce7&a z2lsy+w4i>vn@v9DgGX598)3iD*)115-)&1m3NJ)Zmx}VQxOUyX53F6&-47s%g0=Wu z`2_z{qF_-t^09=N)L>2#x%wrm>@wCKge_s|(6kz*4i@1(rJ;PXuR^76*9)9u^b5|7 zqVsFdSDHl?@^UmSp&DM%dg6W_$#i8FY27<^>3d$%A6>iCI*f!!QF@}}SbhGV&`M5J zAP6t&<5uJ^rh}k>@ctoA_#q~5#@wD5?skoYyoND6UjegEup2p850cGhSOu2In{B2| zI6#f1;EwoW-d#JYc~YI!B)%lQ39EF*PDlj!%$|3%=Zy}=@Z;uhV#qQwtvOazCIj=}Jhr!jl2F5Q$?N$>xg^uTBHwoa5 z9lxaKUh}rW#vicXx4Q1_T~di7Fp6eS2k3HrD2_{m#PHMrXxV&FzB z4eM{aJ4g^xHSQTh?csI8q?)BVo7~6xeQRED=pb1H9paEy3wj|vOqS9wvg(Vvfp?7{ zxxZOENrmhS5dqtHI;~q{K-Z0_ixPD;iDpMtJw45tIpaIp2dRTD;Td|)&lxXu5^7o>*&8CE>5L@Vt@$uF zrNOQ*PNO*-HGAi}d-m}a1B)1s{D-)wZ>xUE)p``F-T9t=C7R*+kXN&!uPIJFXZ;)| zs_=YFdfaUI1(7;gyedIkY!IKD7$B=w1k$JpSjE{iTGg!_R%MwK$U^di#Z3o z^*VQZbdnl1qKgwKAZ%m8_&~Mz_K}%-Y7Dz24}GrSarI*LC#cXQatwYK^w4G$nEkGJ zgtBT9pkYwp609VB)LFEKKa8#;q%42W8dLk5u{HwlZ_y?ty!UNrm2q&FKdMQ2St_gT zSQz$@wHGi`;4B*+c0+o>yRD(`b>-@r=1cz3b?qDQjEq=?1zxU!OH3c!EeB7i!n2fPt%4>tPG2uIDR;0f#fDZwxe%@}6+C z8ucMU@|{e1z-QIcSZ>+!X~M@Vi%OKpN23p0zQa}DLpHS+sx`EP2d!;#u@@}2q`sDa zFpt#E{!TD;v8!r##2kBmYy%HaUCn?eA;*nX9u(MttUEMruSMR!Y1pPjCFG zo*21XjgfPE`cUpibEwA5rmDPY{ThzI!yBsqt|c8SR?OO9UX&P>^OEQ|s(?%?jE-Bm zuxE!o%k~Y@&P5A zX<^L`!j@Gbu`<0D7N+W(*c(Jn6_7nap^)oiQeu`9e4Im22ii zZ02N9=2S=K^knADcIKR5)`D)=o_r^&3(H8eJPF{ld&;IlU-X>9W1 zmmn}>nf-k-gB_s%p-X=<_z!l$%6=@5d4@cEan(r}EcU6v3%D_TO2Leq9WTeqOFr{G8hj^`m70C3?8!rcu*vdV&C_Ah-$ zuw9GJtA)09r>g?8bw9|f?P*-Gr9;wUuNcFxhz!t>b5JfkjR&~V(gD@NBi~vcA1fQth1;Sl0maDhcG^x=6(3-wx)Jn&8dGJBi$ z=L0nE9<-^b<+dU`_pMMW2-zvCYnFZakEat%@g+p#7j{&xJ zz(q3X%TH@~L`9I^jcMc+fQ4whN>gSc1k$9`)1b{kIsLLUwq?<@3Kf_t)p$aK*dY-B zz=Nm5*Ps&jfGDu; zJ00bFd(<)jQ|a)lvO{qHq2L^EMVbP$+)<(MA^>O+s+p^W!BLR6!L&a1RUiRej-dCQ zhd5h9Y$A%1?EvpM$Z%OfGQAF4UNJX_;3DT`xzVax@z1~I0ujY+)cO*|TLTK$lbNN= zLBs<$ILXjg*J#zXm1-ZrYF5QNS1=Si zz|jpDY6sfWOLf?H^-$fr4(L&`esVuFA(+Pa3Ml^uIPHp)nO9n38`+YI-`*2I=vR4n zP>C`bYNlRO{sGD{=ZRpJbFvUnmNJBNllwYEs?9sP^0v=N$n$J{z-0ULGvSb29A|$a5w`@02w<#1JY^l-OAPOwQQ#4@}#w*uY-l& z7VUp4F3Fk26Y*E5@csov>D_h?sa15RX(`=$oDOO#0)~V#1c1XxlA?e+zL36EXP+GycA@IOjvD<^zr*B%15UQbe$bjLi$&4cRUmb0$wI?s! z&JDfCqybQomTc?JhaLHK{a~%zH15En=MuE-pZQvIjmm@vmV5NO&AJ^g+&X5FQ2C+i z2OYqV`+)Ap+iOa|uk-csZp{F_7DTw+9R&0y(l66MA|V*z|Xpx z(YI~SL^3>nJ-`OLf`mXE^ezCnpG?jjd|SGpL`%F585!>M33)g^h~Nb3JE;Y)nrnrw zQD1#+%~PVm@LJIAif&itagVMyp#T@>BM_;04+U^4mn+lB8&_*plmYk72ST0QR;3TB z#$8nuX|m@Hi>6#9_==*x-!DNKMqlff=tVRN^@i_pc6ABXf4okyebOtu(_5<4TsjPH zo??2{*4+!~wT{mMMF5DoBDPI2u9O3x8=Q500xNyeLe1~8yjfY?*UnCMt3T-)eA4O) z+}_C)JTiP!bfhOfb4zbzAbwCVWQ=;#am(N~_M6Y-;yqB&=wwCQ?_ zcRQoJo9T1<<_r2yPdGkZ?lfC1e(KWl^wUwZ&pS`;aL>Msm~MGKvy6VWebn?<=d-)3 z&z7g30bM3wgRz5-V{ii#$&Kw=VCXA z`28>VwO&ZyAjn>Pp&iXDIR_H-0hJYt?lhRRTcCbi}1D3D0=0&8*aQQiqoH|B|43@`$AwFPV0^$@N?u!SZ?LikK z0--)G<|O3hIlMJvLaYaRX^bOx4sl7{-f_PvIuaab2M=baVKEbdb_iV+j2rS!0M=Bm;&YT8!zlBPS zKk`zj-vnKldx0i_2liAjg9ex1FFt36+ ztqva!d%H3Ud@y)N4CB~XnVFIh31z|AUPP4L?2mU-VJu)tR?A|EwQ3aDl;E1=J zv+2WN$KY{zM1~3mPe+_DMa0n&QR)~xfRI-Oqvw(3>ZnTf#qk3iINLYo>WkWjr~*3v zDq+!fbiO8%C=Vb^4WFSUz_RKfJRZ?}W9et-(rG(HWa;ej@Mmr%<_cZ!oz~w6zIspc zHuY0A_w`3)(Q2W zgdwX;CWTE>4KTEKlm4tpv=0XjKvLCFlbg_TJ0xw4qw^B9f{aYXe|n^ft)xRz)H$re zL6r z_Rag4WEKnQZ~*mX=5_Q_z$p6@mz~R%Cd}06yP3?b`!j5Ag(C~V(dZl%4yg9K(5lZs zB_>SA?kggP??lvgDFk&L;GnCcG6+kdmw;fkk2gd#TJT=+Z_b7wQ}<_FlEY}g|VqGXO!^#`;J&NGA2vqQDoL&{5k zpa~p`CqUPkAJfSkm^q-3{)@*4Ina2p;@Dh{(eG>CKil^jG2&tiQcnSyOAGAmg7oKw zIAD>p8(GQXxJK9oKL=k|N0l*guOKUE_XM_E*AzZcuGThY>t@3!LRB+IW})X z<(09maDBdDmSR<+g&%vqXhGjEqHjfcUO@zS?U{OMW5)1gMNw%-P}zH%V!fEpOK(f8_bbe>Dx?7n}2{V(jPkT zdeeWb%q&|VXvvC?-`hmMu58kB_F2VW*MqD53!jXtFkU{QG=cMO@$SGKuj%d08;V+n zJ~PGVu>*{pW7Xd8Dqtd3MY=w@eQ-BsUqiOs39**guOG%6&(UVekUZI5b951t-X2a- z>BE+~#Y^_<^b2;)HV)fznyDwoAPx<2WC|D5~ z#bL)ngx7J~=_IzF-if4)!OVNN5r?E=4k#WRL_p zkeQ&CbZKgKuc62F8c6BWes^R-Rq28cLkN3}Vn7IL^-WYYM4C}`K1h`vZyG7h7fuNv zr0oMmn!1T7%2$F#2zu1zM9=s^m<`rNKlijsjSp^AwpDB;SA6ZI zSciJeAB#tmB*gE4A2&f;s|irBP~vAn=HZ0SG8LX~(?M>H^kH=ZT zCExVkNd05Y>-I|*=nj-^>D-5jF>7ALBglv7T-cp&A4AYokRaL^ddbEIf#bBTru-haZsS(}{$BRg5LBC>%)?trs)SAfWcS`X|lTSqjKI zCa88ELAmO>LZa3AB$7b(qNT!+4gwUR#f&i;!|ofCp>xG|2OIAAm`JnVY6j<>z#yX7 zmr{hm5|JAY0*T@kz^O=IT&bX$6x0`VB*PeYy(oc^|F~1x_*k6wDoM`VKK*!xFHS{$ zP}2Ch5^rHoXVR65-mD-rI>GhZ!GblvOJnOG6o+lZ1x< zIf>f+y3)IKTc8c+C}%J>WhPvjtXS$$c1ZZSsY=}QI!9c&$om>wttoqYN{gg8f3TI! zeN1kNW2KzU2Wv0Xi^7MFRr@kO91UB0c5TM7dT;oH?L|~u$sflW-2M=I6=BD6S#1ML zrx1sRUdL+lZ@P8`AxyL4V#x^w=$lG*nu7pCD-V}guwAL@c@16ts2YJUhkP*-qIs3=cgNwC^f z)TKSokpxQ!CI$>GlFx^{M{19KG>O6t$T0FGtXC(9g)D?DE?YmogJ|YRPLh)zmexj2 z*oNcZq;Dm(p!AGUJYeXvwLVyv0TTL$<(kBr!0W|Q2#(BDW84Cdk3SO&-F&x^`<`d^ zeXdOu3xOA`;INFy!>5zzMyzgp{Hh9+V)ulGtKm^(knwomge3v+{l&6%v#3&!47OXP zdyjG|@$hsK&bJ#q8GgKk<(-5pyN|w`aQTST2?VkSiNOnn&@pRM@VI+|^DbGZCHBs~`Xul4Xcj*BbFIB;z zV@}1}ty7HS-7xX;-kDsI$e_e(jHSF4mJav}`9B`Q^723n3A3*aeK-PVG{xONk|j>R zMdpR;6kHl5qmjNGgl)(LnZaqJu?G=*4dxX5{SiQ}ScJnmwh{J+ktE8Jh($*-#ft%` zq3#72c7dH2%~pPQ66PrptOOox0znIeyd;l?(A6V3HQs{FBfw|eMiA1m#n#%G1K2+p zYRW4nQefo_s*$jMEt_q%&n03r2wz?ZmSL>a!6_T{rwyN(!jk7qcsn`8q_-sygjn$5 zGL_jR-R@aLnyyW*`nu1BBG5n}bK=80sH`JlqwqxsK?G9xjZzW8j*~bpddHC5$}JkL8(Ev z1msP_zH*g_l2c)gxYZ2@e z1)ss4>I&Z5uSIqpA$h1U zm1%qgT$za6Wa|ra_YE;grLk15Pet6()W7q7n^8zq~8y z3UaMbPKh;4-0r#eJJB_%|ErSL0p%X>tB2q|^$))Nt5H3ww4MbBj}XH+h1uhkp!X~k zIUmxqab110?ty>kgX$rW9JSX%i;BV|Eq#GFCiZMEXwB61Cdum>oHALiQ(1}Q0#`7E z89HeBq$EFzF9sdoia*3>+~uE#T+N zbWf^3nQ575XO@UJ|Di-oExi|7ry`rAh8_kMHIX8dJ$*q91i?F)yaZy9QAlT-A6g87 zH%b7&fu6|uBGqMI@ao%#^C*+h>DC6w;UXn1W9fX6N$o44*4iArvaZ)de`m1#ttLsLD>>1 z&Jw@s_VOo=n&$Gw9Wot%35J`!rg9Pae^BLb^9RaX^tP;#UFy`m1|^OaVO7O6vYaE| zolw=`qtrXY8kb&Tk7rn@DS@w(0l6`iPKY{iJ?)_%*^odvU%@bD95BRd%)GU_2i0)k zY)B*U7|k^zBdL!>p{y6CPezbLvK(UUiDAC-4quW~?4$7)cfNS`KUU5({M0)P(Wf={ z-yhZ`1R0_nC>y^Z&*JW1#8D|UyGqBto}a2hzdN!Wm}$*Vb>nS$MmpXfZH0Cb)uwH9 zL>gxv+}UVKYf#d?c)ih3Iq8UqthPV2hpegp@!(l9@+D)0Nei;d zV36y!(vZ>zMwUJc$4#xkY$wW}}D!A>mIfUeoGp&N+PD z`Sh-H1eZ(XewQc}moo+~(KaqIUM^?DT+Ur|iOqC5-|qy8B}Y_}!9f$?SRmfanLVQn zqEE!ZoZ*&$k2ZiTdhNkaCOb{~$0WqJIwydKMoK8SdiO^(aFqpS5GgnFvc0Rofu=2VA$cbF9_^m25h{zgJU?g zq3_W(Cts(lNfQ9TwX?W&T)HE{!wbl2b^pS>fcK2y+I_B_dbH5!(`;Z9=Xulz|Km7t;Z`+uDU-Klgh3QX`F4C(6Z$#xbfMuLDa{Vs^%#M?Puh)W{# z1M5w%TUC zoFF8S0E5gvRRNaXXPBG!Md0ghLrT|-hYjd4KOms1o!&a0ZId8Eo%Mb1Dl-T99OLO7 zGb^G#+ZA)-bJ!$^lpt(pDgby1L{RQ&&&Z6;taZ(Nf|1wPXEwNIjRa44^uIxLfCPeE zzqXEpxhHR!k=cj-@XiTjmmpG_&;%nR7zx6YZ^1>AA~in3L2ua30&c<`El6G*^~^Nz z{L|&cMi#tcz;!Tk??phEp({l8lIn0WwDY{s`c4r-R(km^-OSh1jEul|dvO7Vt|0zD zK6?w9lX#tZc;N(?+H>c3qO3eca=rF4MEaFR^hI8+`gCpN->ktYL|!IN5zW-E+c z$ih1>X~C6y{q9FU&)?Yf3LOXpTl)DAOoQ!aLc)B2ZAi$(I2&2GBQs-QzP#sFxJn8b zCL2uW+AJjvkYi;}Sl$6usDS-p{_M3H#6cHOgpQ}dn|y<5S|uRuJT0<1Ksg&EsG3C8 znMs@Y;JNGQzw8Fg1)PHeDEXvZ8NVko{@1^|H;$6R#eCm=a|232Ic?(^izk-X2Y#$g zg_VR1g?VL3&7Mv?K50gIX43)0`kwtfc{UK#?KB76;I#bg+Whnm!tovc2&FS&e;Ju-$)$3lqd2LQ* zXM=Bz zqxJL3*+6ieHc;O74kjPM84-Sgdt3(qtR{0M(nr;-FWJPDzO-|}8(tvdB}Ds_m4pBBOZdq3O0czKaU7`nel*FC(x z$gZ5&)A^*6HNkzBg0Nda)O__c@MT||#VMZ#8-irVrU$qrjs7K7__}%v@uxB2y=A^FisJ6wZyH3bb zFR5xk`r!Kh!Wl&DA$IKVvi9ez6HbyAXC8U`uG|SIeL6X5;Qg8Fgj~c1zJ0}0h4kw_ zDCF}N?sE(Tan`Zji62-KCIH}VuahuJ@owUw38%bE0El|m?y*yz_c~znEJB_- zcjA+jIdIDYcp0;P#pPp_zyUuw@9#4n?rk5dRpLPE2S34AYVZ8KK075U2B?UWg^?HH zPC6U90uT88yuCWnGZ7o$MlK$p4F|=uoEpp3o|#V>ju>Q#kvE0a=!GZf+S@)cAd1V| z3=dtAxj@XW>JzRX!E8q;0-U~|T%8-ox+<=HX8&TkV=hpz^-AADIIS4}rpimSy!4A*trefue*XuHn zSQ>=S@YU+(qNxB9Jskn&_3x83vuiqaUcH|JR)7kT&f|x~4Q<1bxL|y$)fMAZtV&3} zd?MK5N}FjvD&WETP5_n@>EO6>!z@e-&LkNqE=os zg#J*S>5TjFW&Pt1HPRI{oKN-C-nP0AK;5Sq{%QNb(qOKf!<|zeed{o#TbrHQ}%m-GP zOTs6!B;)|Iox5wb96+g)t(km(kGK;@KJ*ya-mZ=S-r>y$j_urKn@g?{0^(>q%c1}) z!IB|@ag@ruOKp8UrN;b(_2Uz5EkWfkg|`s3E_yynL@nh5&yVH^A7Y9h#Ml9_8p*qT z1ul1lHo&~AIDjh|sX->#3Lc=lb_skzT;6NZj9=9Ro@oN4 zT|t^|JPh;kz&s~B;&@3w*5K(Naq+_#P6WYA6|koD)tKTKV+gGHYqw1<E~x#L;@NTT+ge+)Dg8z03UNqmCdm-R{&{8=OQl(R%SA?{HkZLQZ213U3JolvxM4 zE-#gS6o>34berDar(${Qh;B^cD4_hHn(v5~2OWr4CMNRTrkH5c( z+S|3j7RlZHb06#@jRA)w-*(!3B1;6NPa!iugY5DE-FeR=+r5jZTYNty zGU3|tNu#G^G>G^FMd-`vdtaa`nQ0juq9*gie7X{a6dKPdPXU2QdH~7xyx?Lnh$7Gb z4TO(D1c^aYU_hdb4F=38Y!O{n8f{2}6E%lluyY>8Z-Ql@3IqvmJGS;O4I8=Uup%rs z;ANE^*C#T_z8T1z6C9G3EZ@v#_8jb|2z2=A4Z!74pR6$zKiMf-_+V)R~${_%|G z*JcPvCb(f5IC=P!Pwi0{G+d$#GoV#P_+tk};?_u`9t$^%sDl|}c*hs+0Cu5+JgP#5 z=lY|>g&Fmmm3_1#l%E*}82ZXl!Q)X^Q9N06^dNU8+|rU_3vYs+ael#Jxh>atT+-s( z&-I%>q894tfx!59HvR~so3KsRlFNUZF{+3oLK75YKtRUB3^B7qLngm>k4a)xq+}ZP zRGkETC8W9vO!pCt9`8ORN5! zXeYuR_o#XbejD!q4#I1dD<^Oycig}iF?6qeX)a$~s(`{kdn$ynuLWk%+X5egF|iU7 z0c|g<;9#fYB@Cc zC{0wL9JN@u<@&42>-!Vf5e!sZ!!(G1y5gda{GFm`@nQEi5Z|$+ z>2n<{t5}MeQVJZal40)_ovQ`w5x9^8xJtcw_BIEg;)zvj^YIEh(d3&Aa66=i8Bp;! zFO+yTCiej<=>}9{LGbsvP9wKh_%fW6gl?59Al*#^MJO#PjB52!F}G=IK0s+-dL=N-F9 z_(v66YzIJf$84=fubJ<^8pL_nIqsAy^|NZ_y_En|7|t~hG^mXc^tHxhDqH$}43?j$ z!UGSxmY(DrlV$ur-h37}@sJLGTY2>d4@GyKKo@ zFQ?71j)Pq{Yq80_v75wUs6tQASzn_c;eC4-+ql1)2H~jx#cZarC{_xMWl*LDwVhD=Fh+x^ahoGGKb3PDlI8E4XQ_y@LUsb+A}R+i-4aT=Bh!rIbPGI;t`-CkZY%B44Wn-%WA=n2BI zgI?Q;=V8H>6a2?9VChmR2Mtc}&T_ca{x%s{%`3Eh6MzzAPH%mrz4kIDBQn$g9>L#l zccU8b3I}rpp5}m^?TN|GNRK|g*FFpmzrH+ki87m@tt=6K=rBmnP^ERC21y17z#S*8Cl2LR`m#b4$iqYPz< z_=ht$<_)c z2@;cl;W)4>WDa|k4|_#MJCoTzUKaG__O#<(BJ+q1`~w^$K!g`$C&(O!2%7MG{EnlMoU09{7I*})dlD>5H?Kw6mi59xUe z7A>i2c(c2n$-8}%Z5)sox1y1yFhLN;bU}3rz*;o|gE2{=FZX7|tTdD0eB$UZeAo<<#-B;wItptbyQ%0PrZVHmxc%u56Fl^$?r#m zKo@kGShjR9N#-&p;KwR#WJ{gaq>ufoP%@VgS5K%7!b7GxwS>#ir2?3WV}=9%N0tet z3X2U5f+_-K4%62xWCJ9a6)=K_k@vid?2%PZ_SDE8h|duSdNRjuGs2OQ-1h){kq=Rz z%=$~E_%6u(4nZs~Fev;4ydH&7U-Z$P^l@D7NM8DOpj-1=1=<~+j_-z5$@uxtlRVKD z0(hTKcz{K2GY3)_+n+q!ViCHzd4;^Sxr>HDmwFT+^cB+1Nitm4M>@e= zGDUoQ_QbWheqA!xeL_>Tq+h)?mlnatKPV78PkQQUE(R9|dhTt4Hm}O_AM(GdL4f)T zL68gN7tDUgHD3aOJ82wVc=EVnWqDim?a3+G`vmMD!Pz(^Rks`bg(%)4ZYMCnA1hO6 zzEW(x;-6&`dg<))j?({H;V zDEecI&TZ}q1>-1EiNM}c$)9;%S0!JdM>aQ5Vl|N0oLMHjc2jtOYb!y6|D@@kMIUBX zG^V05Hx=Ruaw!Tr`x)<&l=ZXNnKvUuXqgNtt`&pV+uoVvuPDWF4=@Gl>#b8cj|OSV zg1G$wYt@v)-U-5N-2k@?5%6DSghqewj=ogqXpIhZ$Nu40YSkbYrc`&S!lS(d;%bA9 zQ*ItAkyk0KvR*rN@yQ3?U#EO5B|0^L3>`Vr{dtl)5sNW*iChX2FkfAodm=2^EfG>0 zm}s-R<(;vyIuF{VX zu?g_X$-zc<4GwK7lEkaQ2qWecq2>VQTD1yMH~o;jXZ;aQEFZ&jH27b}qQM z`rgg5iJKs?x3x{c)jurckJ}tyD_?t;L5fB2OzusNIcz;E*S2n3V4!wNI5z6T-A$0@ zoyJ?%fuGD*cn&5+>nlGAU=b+tUmH{|>VN`!xLq*oEi=H1W+adFnKjQh= z!604o?n z?acTt`NDLQPm+*lUXf7*!g?S=jGdY4X;S_n7Bbxw*6{_>n7(*E#ahdP8&fYBVh(d9 zhkK7Xuga=FMjUX_)R7w0KB;+d@3GD~Ohyr?avkBO))7B*EL!SEYs=BcgGXPt zgs8XJtZb3yT5R8H9s99$bWh8!y~U2_o7KKn`&6yta^K9=v>jYp9E@5`ELt61&JeC> z1r{+Oj@tTi-MnPK5$^%WClE5?+u_52%;Ofnj2O4;+DF={9Hk&(I^aWQ3emd}^j43? zW=_j3(}U(BV<7evn&>HQ0KpelW2fLaU^6@`n^yGc~SY0iTOvk^ZolEsR2Ao)yE2D_*KU0DBMw2P+mKs3iI zkl0*;D0%?GND!MQ3djC9_e1O{<-4CH0U?+IJ@xHEsFu^p!9yDdFXuI1-aDs@=pdid zOxPEzBd$wvX{M;fZfJKTu81XB#ID=uCOtL{|*cg6T^$)CI1T;psjL1S3^@vLt9^4 zSO2iK&Y{ElI(mdd`X<`O#s-AHT7a&V#UUFjL-uy?g9ptI9W*_pYpt(qXQb;u(DN|W z3q7hIV{Z`eWMKT?IRPe~|A7QJIXJpGyL!31d%C!jJiL6&NX{01u9g9AM^Aa%M*4V@ z{7?7>+y4~;0{&+q;MA%A6ar$;#>T~6h>yQW{&yjOloR7u5F1#0F{tFyzmR~i+sP62 zsS$V5&NOG7?a2NI3CQ^$NPuCAt6`eE;Wa;Eb+B=5sBu%cNn3=;{WGTBXU+R#%|_xa zUS77CNU(TAu~?>BuBHFQ01^|El2fRu)HE6`BQuMhMW^TG_zQC3n~ zUUsXhqVjgt{~iMv8WYbtBKc>uP5L9iv*aRoBt0L;M1r7PyxRF9~I!=J%Io1 z_x}U~5|MnzU2_;cY5x~%=N;5k6t?-Bo zPgvc;2*>8&xDFjr#=xzSw^>tZd8TGjYIr9#jDkuNM%-%0Xu6__SwTG^UL{N73he9_ zd}uh?%A^cYYvc(NUwh>U@))W(hrJA&^Ay2`SY<~3#RnIFD~8m2zkjUWDmV-%+>c_^ zBXl6gS$%=2xC!M#(F7J;-pT+UX77qsupJdSRii$Nzh%JZDPUjFP|i|sUWEudb*2@p z#ia|o2v8~M_t|<6Ht}AtGH!WFosS7z(U|2sW%Uj}H$|Zm8KmRT*Rh^Vn07lYpRO>i zrfBN3%bfwW(!8vQk3_@w!PJ%0C|b0SGwiU-k*u^J{eDW6vA7yc;?yAIAS+z%<3SHB z+DZ-PAl-lH+K!oSic-M&^bT8Nju!3`c95rtcd#X-;!mO3vZ*_YZ+^US=m2?^BL1eA zA|b^T=`CQ%sa0LTi-b{cCa(x0d#_Pd#@_h`Nfj;@sx?O1ixAb7=W5v5{U00qLSOi$ zaz%{n!>{@_G56!T@QSdT(sSNc@Ke5wGT66%Uj19;AKMU*hZ*`XT~71o3hUPy;nup` zIf}$Xr*6uP{_mf^xEW$Mw&lXQS(%C*zUT#o1U1It2Z)i9aRs~4klvzU-$eT=nS6QO zGo8`|YH6%W?IOooHd&Wy!@}D8|62R~WzcAfnih|;BGpiE-rN(85YRaC@V;(MlpQ86} z`|&33)sY`>;}>rIc$fS`u>9jah|=HWr^y`MoX*m`y*ZP+Yh`nmWv~BpuF&u3&kyYI z+dt<^Pp|x3;AHCmTC6NO`s-s&_3dAu>L0HB`poUs|GjiCC$1fVD#KlQm3h?L3TvR} zZ1m#%HL%(BVP{dWmEB-$*ZqJ_e4L#ow!Euf@n+3)tl!0t((d*(+RxTjd?>3Gy-C|r z?7t+28M}E=8Y0>JoUH{vSIW3W?&9MByxbUfHH7mJs_#QXSrf;;h@5I;1_B0VqzMsM z5TXocXlFXQP{k$T*!l(|E41~m&{Z>KbVG`{&7hZO8ies78=ADQJQz@AqcB!TQI{;y z1M4kvd|RZ=Y6w-J0}@Gb4J2W|6H=Mnijj^n)y<`d{qaf#bb1U@Fnq+pRbtkL8(Iq; zye|!a-vBala9UeNLTT-XKDr^TO$S5xo|mNH(>pnd&Po|LxU5p8>4CO7D&91_f!}YXpP@AEc>+d(dC3ghd7^>$-#t(Q)uEv^W;p&Nl2nrE=7^Wg_*8q zKx{}7Wor`fX)UdSLE%~=ZIot8{7ecQ3`4&%Ml7N=ql8JYC++5YQzIPE?ICF78mm$f zv==v?U`Ut{;7;lEbll9Wwu}#4eIf*1&CHSjVVS1nh%n0Phz*GV_k^~)-ho&vJ0B9* zn@d!OyuAm@s<#r zhKh!xKL!U*nJN|U0BU|UYQR{lde3ktNvBOPB}fG1!UK5H<2&^Q-_<8B3uuvu<1~s` zmkk`*%|FagpYUBLDXaHw(FzT^MJ?pQMBXs8Pq9Mc0+^ayXjUjfjd|#<7tUI?_Ox0y z0XBoElPt3ztOI9VL= z9+r07FYI8Z3ID@A=}_+)r2-T>zE=IRaaQcJF8za6SwXR*x8gU^&efG5rDL0vU#ipS zVQoK8uCiy6jqT+vGX1xz3@)E)-Z(&=cT&0U;>siDI3R;K9Y>#%C7f(CrFQeg$xWS) zjfxfa8*m^ACg(CP=Qx>PS|lkJxGO7HFtd+(TOY@5i+U!aQEZ(cxGr;ZH9d$m4V~34 z+b7kBJ#dGK`yzeW6e8p2rEq;xr>Pr}&?uveNTrK~TgazmVb{Rfl)t@RQ_GFf<37dO zeqG|*O5=D66x5gUsX_ zB|(F@or#gAtj4<)Z>Kr6?XnLR0vF0@3gUO)7H!A(6j+v&bm3~pE4Qz$#2<|8F1M9V z9~O$=BuPpz>coVV)cvbRK4@S49tt~xm5?O}9n858sq`}ZUHN(83p9&*b~_)rs#uly z&>eQymmy2s8~ySv8czRwJX`O^{fYXZ)dt#QZM*7^sp0l<_T!-0toK=0a^K|@AfHwf1K^i1PTjKbPz~746QAKYjYAM z$tW@_5lJz)X%ED*;5T2HS5lqe0QjT&?4O0RYW_)o{lMp^!A^UC69yn?P|?*rbl@yN zW7KB4(piaU7U~2D05oW2VIm!Xi?Y&0!BlNx3X}#li@fRu`%}x{r zV20eYcNdsK4n2sSxWyf!%}WD7K!XK^aT9&|GU_z}Up5r62?W(--s}a)T$nZ~4PXJ1 zEU2dm42K3JX&G648M=a|L^oo(*Jffq8iwH{1`{*n*-%L`%m)qAbI9QCf-oJD$YfMZ zjpFfw#NEQGKMf_xLRoL7dZ2+cBa|Hxwl^XL%7Q~)I)BOpCO#1Nv*E_Hcr=mZx2bzK z6L1^_BC>Mo!r}Hl*#H0=f}MFXSx(9h+74f+twFYkc~ zib~Hm-I#0 ze5ey}_SPnFYBUFN1trFUzl(=F)3QLi7yN0;87P9%-NB--3>!`&f*5oY1*fnQ9o;W1 z3yAr5cL51>09XaSho5%@7^1W@HUP~2b%wPG%=l-bAq~DN14wAGgv^sZaM8^Ff(D;q zgaI7gArIp7_e7%BPhS8y1$yT$Hpobt_=CHyBx-Q;_iUyer|0cWNb=EAFr?+(dX-%( zBMBv=1h29USA`y1@FQ##f_~AEBVorzvHC$ROiF8<^x_-?0CH|sUwK7jHPqyJvr$X& zNnY;45U6Z$acEWk-5#c)a^f7KI9rT`kbSu?*cW*Z~YX z@FIl9Jm3JD^(lpiC^n){lIU~t1&Ih!F`96V9p4ajT|EEE}jWa#o4w`z_7 zWPQYHDgsaz<+B&HVBh@CUi_K7xd#0D35fEu6G$0#)uj_?z&znRl%La@}tC&JJ+_5i*5QmL|!}MR{>j~w8ODfi{yeFmV(K|^vLVS9#sVwv(en^lESc#>?GqX zvNoC7xS(}2>&iq;Dw$NKJz8zUzgoMi$|tI7D80>W zP1-fCPR1QMhDvQ>?CWck+PaovID~eSJy~<#{^B{Eq{!W{Z!!=JPV!|WDuK?(pFCgt zsa|y-?9%?5yFb?U+NZUtu{R^)+r}#%Ii(lwpck=|dgLlTEi@oWSF4FYgGm{{tH)n~ zqEUI^%{nN(F}?QIHwSpyq;n;lb5r2QNP-tt5;TK|{_%-^SyxP2T9FMCC!hUn_H%u+kQ9m2w%6G;;cgAIL zQBXXbtcTm>f?KHT+~3&&o$jy%ODWGir9|r@*D)b&2heZ zxExmJzCoh^J>;QPzzy5u71)J!@4=GLS-AMfdhMg5$S5*yD~LSGM=Aq&CI?f@!(;?X zW(sgU!aUN9+`eKK`p`5w)4VMqxu0FyU)<7P`lkQtpMH+Q(+cya;n!t$U567?U>|Ls zMxTIEIdHDRK%)y>d+=$nm(aHzj{PqRn+yFA7N`~5V!?n6F+E>J56FfnIMAU83LrEL z5E9s$Alwlp5rAz~v4R)TaNBv9_*|bNQh#~wfVIldB6bK%hj(BlB;IsbU?tux4eygqHl_f9Ct0+z0TDZP2l{FY-^;OK=7hREj%lI|XOOMa8ge$^@o(vqzC3RuxD9b#&EeC_8 zbWNAG?cl(5S>r0LP^Z;{3SY;+V(~;eDwT%LCwI#5FvI0=sUeKij@Dp%^ab1m(}Kt( zqope_>M8vVgFwXch#1#l>-0+rE661hy7e3CJWsz=Se87ZT)KL|VDyDbs(j^MxJ)c2 zpMp-~U_gHVQZkTNHjDF)1&n-V-#ohpMd1dy=iP6cN!hndS^sBA{0Mn z4|I;?Doz1I(>vRYjVM!jt;5T2W`jBhhnGgiV}|nV=ls`a?OLH?yn#0CAUCGp<-GB2 zy@CC%aPu=Cf)75m7k+MGXAc~hf9O28?GDt4ue43bGK4_nd3Y1@f>Ik^ZWLNsGBoyC z=`@H&SivI9r2=?xbUw_Rhj$V1;XyRW)^>OR<+1Ki_c1ZK$6h!m9LCRJG5ySNyW)28;3l+1m=(l=2j5A?oxTlm=D?IzKIXdOcJbgATzz3O z511r6a!!dXz(EGUT5 z6{%|iOPuO^m>U<7dleE$c9-WNA}U}W{1rIl1@5bG$B=_gqa`f&7jxrF`GAvqXFMN; zrDLq<&=N&B`}}^~HMM{zcyS&^ceT@L^c!Is2m}|fz&g|eVM)T_d5EUxFtcOI0i5sB zJJzvuND$rJgS!^}9tNF;yKx>DY{Tc%UclQic0HJOn^s%!V;l+X6AUBpFywo00*-vg zeE+tgGQkW&hX~AQDR9G5;bbBtW?-2sAH4wt_X$GjJN{hFN;_nnu5SzQdzI#XcI-NGJFMC@%x3#D?iPBCY$i^>w<>2kcaOG?a&}H zZZ~~VdK6*GgMJ!;lGfH>cto21`sb@Ke==_4i&Ovyvddl2wP)j@&@ccluGRWGxmXz-QgYc_;fRExsBmZ$ zoWbB^<28L-*s%wDFDTnfVDChx`(Dxu>S&2d$G}APUEW#ld6yxE!Y0Nww$p56MB$Bp z=%c{0v|?7{9I+-uw5T}9r{VD1$#2oOk51Oe3N|5m^1GBPC&%I(y+{lx>By&Q9}%!e zgl(bYePgN)$U>vonM%j!!Hl!y*iWg(bZ6xDyHUIf^_+`U;-&QVjw+`)CGVPhntSQ6 z%lgg%G5sCg=N1^Zv!FYnqDHF}_!jSSCR4{m*$RE|sa`o!kM7J-LgoUzn|fKf9OS(k zJ!=VPqpwtgm$!k<3nO}mrqsd0SUb7sLIafM<0zhpmd3rW_M}w8aR-$gqcsP$i{8f_ zHA>>v9JQ_&9(U5IySL_~cX#}_vwri&nlrhRaKdHBfYG{((R1$;dv{L7t?xCNEj;16 z`}4hZSM&Ap6KC(gr8{^W*-gX*O?Pbb~`8=fwPFXFsh z&Ax4Tx!Xvc^!9W%e&L4Ac3OnXD7}$DAR9xqkxNY#Ksrfg;~8ViO+D*d%v|&g7+{A4ahcW-?gBP?F3N5Xv#-6Vd07U1IHeci?_4$(OlC^cy(%u(tg5Z4&$C zeeLYGwfhU#Cj3dKw|Iy0nIL7ChU^ki3!SRSRYjvo{tz>@0+WyhNtKeHOsN?%G0S{u z6DO{Ul<+;zSmVrE5f=MwNCJ~=e!^UxE6XY)Qn7{+L5iv|Rz{mkM<4=aYk(}}Kw?%E zBNW`M6g@=>&3xo%0)Z(rv+ge`*I%k#B9Uu0mq<*$?+P)ESi;C@zoop|WDx&buj_$y zASW+0qJ$%r#)7P{14oM{iv+zv@sED^!L<>KWb)1Zi(0?P%)RAYWgP!qQ5B(n_qpBrqzDhhMOva zEP$)>LeREEe*t2imL|tj#(2c?6biU7lVmrNH5-OYqh;P33K3Vhm-?ENX~3Xz#2qFW z3M>*!IoF*;T|9tbveJ+{z+{{Fko8dVUFC6I9RoBIBWVv|xRfV5q#dwM^Gzd-yOYih z!0=4)j$GOp`drQ+W(`1*c)GqeEE};?9Qcd$5gNvk3B^cs_~04IbthgE#pdnMI{=J5 zhoah8Llsv4<3E9nKJ|P;J%~Oc&agbfq^NH^h#^#yyE6JqeY_T)C+i>aY8n@+PayvOursN}#Nj z4lUDOB21i2M8k_sQOaFU6Eg@7_(|imNM%NlBw_*QyQ+5_YIQOE(VV_4$qkvcgtit& zSKr(@c1kP^v1$!9aJ%Egq;M{InjRJc(tA+D`YEC@eAsm;!$d_{+{DHD9}knMs&+}- z!~%nl|40e@s(;hof%$!&-xzHjQ`{Q%N#QsObtdI5+wsjudwZ?t{uZ%1pA^uz?R2sS zi*!4YOC|hI?uf5bS+_^E_YWdYqZj=#o8_?H_MaQROH=g7I_YW^puk@*iN z&%c*)XgX}qkfq9Id0Pf3np8eholwRceZE5cee;?1+K*m-(gEvenbUZQ07ZGVO13dJ(Ue zQkC-bP^0Z-c;0#JTTi&c4%%HJFe)j#L4AQK7?}ARJ87ghtW5!-o`p{Mg3-FO|I{Zu zFb)1cq^zz#_SlAB{Rlnb?>pCGaN`tDF4GMPfvadd5ctUB-ar{@w3z%YN$in%`Ap@e z*Ng-QIfXRbuItmLXU=HsI$ppUI4CE#?d#*z7QL2_Y;=K*KpcG{tonny8JAoHi;ZZn zO_)hbYdmm*9bjz~Wj#~7J3S6v4I7btot=q)hUJiY?=SUGMX4dDwDt>`)6dUu@0v2& zt9-wF-*$_nv3|!5-xhSm?f6ICc?2VVyGnrFsAKc3o31iu)oawts>(YE{zZx_K&HPV zq3W!MvJoOu|CBwi6VYn3dE*7G&`D3{=k2Cw<`o?3o&|K-)^X^zC**Nw*$R$b;s!Zi z(4?8xRab7{r?Ywpc4d6Upu5={>CaMY`MnY}m-MdRn<2~F8 zH@8#;8H**L>F5&$y*4Qm=8O#xA1NcLWodd*S+;-@qRm#O2qitWt$J-LY{+Z?D6L}& zA(sp5;gG&oWQ?_DA#XtvFv$W0^GTp737lyLOien}N>kP0V0dhYX$?oWF@-K-&F z4?#%#mSM=25=IQ!n%+;MR&Suaj^36DrI3>ZY683$t04Rp!yIG~nmP&YP~qJq$2L^`C zfI2{kEGtO|#$~D{qzQz$+qwOr*!}69NxC-Y4BZ9?;eDwn5F)uBvL6ebO-;2YP=fx* z0ciPPIB>(<5*`nRdba@}i~u-PnA^!1J*{+UlXYO;NPb#l-X^IAC9bOPgadFk13PI= z#9fXV@BMJ`uF^PXW~ysOQikOMy;?aiBWd`i5!P8~i6jm(p7qQpSqvpRLD-Or*mfw$ zP^4&N5IRjc9XKiwI5^OHFSYH@08g(CF)B1P98~5!Rn%%T+T9_rD+LUm4{}`Epg3hB z;BxNI)j>&nyZXDR;#5g;n`s~Hicy75{WVPWz4YPb; z&}QOqz2&6K;qfb<@40-b?E7E?s`>l)R*iY3SPEwiATz5s?1{ihSrmkOcp1=yfA08WHh%033=;a&#c z2HL4NsuZBuIm(8SvO%iNE`&8C>$&QvwX}<^n#D7bnwNiE{6gOJTN+wQrFZraisbc1 z!@_*wTCb{0ozIBbsI670;r#axQUxxp?#^jK8r$tKq20Yz7}+&MHWVJ~y2!RZALK!d z!@f(l_Jos`L<)4)&^JKL>5#FdEY8Y|-MwWSV12(glwB;CNd*FPCvTp7c};H^g}$yzW+1|R+oeX$v-%np#;faJPTjNH zQg3?*-h12y8bqK1tf@s~$GUH|p94Xuy=}AiQ|Iym!ptGj=55vKLHk|=y|%EFN&z6G z;urUW&D@dlAs7x~^jZ!N%pBOa1kJt&Sd zYX1wV*7tw*2IhQtf0i(LQ0kdbTK{L@`896n&EHX1xh{kqjYahn`k%>3z0-+%`KiTq zw%O4{3xIJ`v6ik9il8i~xx-coP9+BW`NJ2`ZZF_ga7 zaw^D@d+rU-|9hkQ1 z$-T{qm9x~miol^%5|1_;Jw~8B+jf+)X>}80;yia^uV8N*8Cw+Z2$jB78}D&=Vy~IW zEg!sb8!*~Uf6zAb)j7lnDC>4My}Tzg$obQ(^#@z$gzuIRF!X~iaPDLqQ{NS~IkK#~ zn0DZx0FM43`0V{LAmUh?Z+1@`fdatT&c}w^5?}Jd0zs&I&w6DWjKpM?&z}Fch*poh z;<^V(kN6?atb5`1Wx(#r?baOjLXm?U;e9 zPrSS>k!*l-;}eR#Fh6A{8Ncu;iTC?=OuesPwNhl~UQ%6sRA0Si-#(w^Deo0$$g|6q zx8QvOS(B(Q-oRSU+?g^M|A3{np7qp5)viy@hRN243(MW>I~Y6K^o%S?Egjo)KN?_1 zwc6`#iNQs_E)&TL zy;bSG^8tViz+{`ZVN7gy|L!a+Wq>!jq}U7u?aRqD$QNS`w=!Fgq2xuyNL_px# zwY4567PTKM{W9ZKF%vT;W7$?=K5^Z}JESyVF4YrY-Audn6fR>kFbGp0hBd&Q(V8B2 zjGR9O*qhYO&ryfeP!2z@2JSQpCOpvrs)nBiwW$J3SI`C$4>{3banU5J5SnUI|buD6-Sr+ zi|*Nm=Y6NO&glNN-gUMYI7G!8z29^1WOu!X?7fo*E=0n3sYuYtEUQmi%7f}X*U;i= zS#)>d;FlPSVD%$y1(^`lF#4CO;Q@2I6eC|VZ%ZlLV@2Wd+X+4Z5W4nalH5wI(BAsx zt=Fl2J<=-O_NSjuoPR!%@_KjcbMth1;bZC^gtt}qglosa1P_weEQhU!#jf zzny(XCC3X=G;gT-oE8DEG*-aEs6yjzkXZ!J9ctP#~87Slq zmvR+$P|7+jmQGS28myZGKzq1@nM{uzTard%sloI5d`tv!w>r`i5XGy}1}nVkosdeL z3q5Ne0GT%#3}`>U{{aa#c{68&Biyu*w|ULd=S0)DZV&%HxjG$DXWcFSCX2=iWg_NF zNf9K(F}|&yEBm=eIf%AdBKDg=H0c8(4FZG?Vg4J`5kd*e-Z+%~)F#e;9?hxifNWhD zq(uhSLK=j&t+oo!&mSSr(#F)2)Ar7vZte|IhMSvnvH}>Q9J`}64NOXfQG}n2E#wbmoJ(KPc{t`VqKKSnx_7#9BcE1 zIu0dQl)@HiCmlX^3I|R!kyV_#0Hj7f3UvH~0dr8X9$p}?eM`~pA-|zjd zH-dPuGml$&aHJkj_f3kb#{DU{`RH+A3%I;%=A7=CHQbAB|KcalH(OYhyQ#KPBpM#O z@0>gBHfFk5o@2TDV^ztS-JfpOwe9|VtNGvVrN#kEv*r6!XUta047p}sT7UmDTWuHJ zWB#>U{;c_0zwQ(B^&vBX`No*@9*b`;0?t}|e;xhA;>X)0fyL%@&K}F3A4<+z{`y$= z#PauYv%vDt*MU8I{`PqZK;}PPrDz2g|&=Xb|dlRd5Efxw`5rAa&KMHs7-kS{DU{9PGO+?KDnH(pbXbo8k>+US6SG`d9!$kH(6 zmr2wv@?c;HN&RX(4hZ=Y3ZSr2s|h>UsvG>iW|7>{(*`xL?0I_kbnDoK z__-i#-Y%QXex7)XC{*c#5b;Nokhih)@dS ztp^3UgIg&cO-nN!=O9nQl|U$zXfL87q|mJ~avEMY-HY^IFHRcQ*wy;T>;{K|-X6xo zcyrBAgFJ>|Jq34)Vm*E9ZdoeT3daQO(StOERTf1I#P!P6-#aaq1%b=`>@!{SxK`v+ z^@WdvE6zg@#-ZaY?)}XsT|9B^i6EuQ4uI1qfpK_yT{?BahX428*@P?({&=6@cGa(= zXfKuup6Fhkzq{Zxjw5U{=hq=Bj83$4Qg8*7Om@b%(^Ph<#3@{+>eA8t<`US>i##oo z!W}gm98+=eN=xWr{Tp`Q$|Q*DP7ijF&|VM{+$Fk^6gUcD3M;dgonZ6)$%frnJuz9p zzg^RX9ZaBzXJ#H%D=X0EdXMPc=e#Ygotj8;9~9h2eKuiE8mn8P2FI}4lZY;6s0|^xR}vZRTF#q=foQF0y;C7 zrkMN)CbHJpSC#kq;H^G0RNt656};|#x_8!dn1Mb?h4zL0oRaGMT5cTrYD?8qP;PK6 zquHE^vz&NgG{shP(9%<24;~6mNjUvDkg@lYtPe|8RvgEnh^+xI>6F4wM;uhw5E~YE z+&`X5TRON+J5=JXsCeUYS%t8ZcG?H9z5Q?77k?M?-Kqum9B#yJJ=WwsGw5qvG`w*^ zOgqfQkaVSk`YBhI9{3JFUB|oFX`hqSy~ULBK&tre-4wrCq7g@MIz;@7(#7b;>;J^X z<5n+S_gU_+V5r(1KqK2rwH(!A5uq@f(W zkI-&PAwRA4lG@lu{huGfq>&v{XUm2O_a=@bDM6pSUsb^##oMO+ zILdxf0*jm-HB%*>Y$^VJou6Y5XL%Ln?An!h(yOffZC-MMwm?QnAM(CAY{29dmZsS} zym-Jt>RoTkbMkJ<;LoD3jM1EbqyNt5`05ROLx+4w!dw~zdJPq)s;^nOxlsz#vL-)~ z7Rr)jAAhU7BLz#~Q6>%w6XSeOB46(5P&oPiVDi+Z;ZsDWrNQbK5%Kp0@$cW_Sva2n z(e>#T=RHA5!emDi5PhS%=}W=SeVsawYJbnFqWdXI{sq9tQAIZI+_^WS+9Mx61ay`^ zZ#wzT$rx-m7*iD}@Q;CuXoYhWwq@z3El<5HhxSE8~gIF83pv@4?hE*=tB zbbqx%fOMcC=N`Rma43cD9I=qyB7$}*<4Vc4mn$xM$6=gi+S>u2shGDoaB0fNfG4jq zIJZ2k@N(KNk0y+dZy2?z?0%;}v{I6oI@idN`}Z`tYQWm|-HP#BKhx=dKk?ukM8X88 zeY`?}hc9Lf0$<-|k|6Q6`*nQyLqp*AeIdnCzF(5<^nVTiJVH3wZdH71H1+SWO2xG0 zkyjfyt3VIMFI3)fD?p<5!p&_X7>cyW&-1V>f$Fz86}X;E-M4XzP&dSe_x2JPZXC7;Hh1W;gItRvKZ|7A(6{BR023c2cVv~jxVndQm4}kL zr$&{hzPi`WDlbcQZ@VgQS9PIW=5s*Z_i&Z(QFXslReopG{WGfk&#UjdT($42`u-bL z`){iUJg5q2QxEK^3LI7sdRZ0pPW`}q)qxfD;O|wz|I}&78#Hl^5a}BsN*bXWH$wF_ z4&M2IHm4l4oBw9clTQZ24$N=3-#8Si5x%?W0?PYvc*gu%B_tyIMx@*pOyPXw?Zd0d z^M|2Zwwg0zhBbaS-UxL9qyD*yu~d&q7a!Sq7(F+CY;vB6UZCGTOe8ME>T90ZS$)D% zGtRC$&Q^bKw64)coHm&4|Mh!W`%S&y*%JH7(=6 zdCT+v&0AjnUwF%^8#n(ebD7(C@4>^z!ocO`=C&uij`ohO?%w|Xr-Q>IV`I;r3(?Bg zlT*T|Wg%C&yu2(7S^oNUO~_LI{rgu~Gx>kKPy!Gu98h|OkpIliP$1-7VC5HFEWC8N zh<&BFq_iwY-Qwy+bEAqI)iwV)sLS5!w=*j5+<)+}>CxjX4N3K#su}9uX*lhjjZ7I; zf}s(Psj84l(8y6V+Nn8;tyDDDZl0N)`!JvB=dsh+uRYCUno00B)%GxFYI~a-dU!Am ztuc4XZN{>64L#=o5cTU;u!cZ0rrHu1az&?w$VZn5;UV#idtDNhX z@o=Bm%$iv}Rc3}zGQL~whV&!uU^9-nU&v!V`{=*Fs<72+{|y7Mm(zL4Rwq1;)O9_B zRJW%yTQTYL)0gG8vUGn(hn$z&BPlo<|EF;FsnpGT;|J88o4C_^4?}Le zHOR+FMW@eOUlM8mAho3+elDUZc6nMzGio~J`o6n_$-l`t3_$PCJ@#z2Repem8==hQ zP~Y_)Km5{oMloMQ2i<$v#^|=YhklVhtl9Lwk#Cqy!tSHZD8akovY0g8^EeOwe1H4q z%HnhR3|v5~5N4bmxaRhx?eFi+_0R7|o;(o<0Abb<2$zoFGte3}d?t41B0m*pr!}2M z@Qs*GCmybu&QLhDIGst#(3;6oyBsldPU}X^j1XpAoXH{gXwBvty^NU6GnucMJ#YSf zarOcQsXfP{N=JsGruSM~2{7vDbVqo2Y##%0!=LiuoJXlU2DNj8|3-cHmE+b)79Jo$ zXLo5oMqEAQW|ewFNXI*EyRLOf|Juq(5riW&qTOKo1_p|f8K>C9_mI}J42%LBnH@wf=o$=*PT30^> z?z^z7&Y{Ug?J&alF}i-b_6rtn+wwTJwdJ#4IP{79Pw- zCL&~96t*|NL)3yxwFxfJfE9@KcVD*^w+IZeAw)?(vmpRpjULAhwammEjMU6++_9Cs zk**_m>}&{!7F?Wy4ZhlslFYfro+X-x_B*h*MJ7PvPyg)%q!2!}K@-6*`9I*N?#Ibb zq^4aNx7+zwaf^7Ws^^0Jaj$kmH8=GgkXdY2;rcL>cN~2+l{$TiukvVaA0|>Z^u}2fQjuyPQbiDN9&s<5reeueBj{hY6#agG_7g;8kSY0wCKPFkkw85mbNs^!73`BYT z7gOAXJj{-JGvj9-#NK1zyL7x1&P6!}@u=O-iDI$*O*{VSDAR!yQT>YoDv=g>VoH4% zteX(}v5wR^A_=kWq*w-BJ7|ZFq^z zGaAyNSFmD9Cv=HS+jTv&n#UVC*+&}X3boq9Fu&tBosD>a@)NRs*s(=@*L8Q6qnHwPYR#oue3m={~W&*b<|)FF51Q7#r=MJfjhTBb!4(%xKc@e~f zS@0q;7oFdJ+W+J6#E^a>zw#}i2Gd~92|NHgh2_Vh|Q7(L_{3Z|WDwI72`ADnHk$8yP{^*1dKqm(}ABiEgf4Trhu+a_7O0BLV16J_8c}5QtZ50L!172x<;7oFnmeL|5Gxaa1J6F$P2_<*hYdOCS zDgQIafOwLK-b-Y{xwS*m>zsGX(%={iMOqy-1eN_ z&!<)-s(#pu@08jN02~5u5CJfxrAJQ}mQcD>lv=(I)Wz*x7tWp`*egRpKuyAc7aC_o zlz9J8T%oo>*6c(`Gf;f~dihq1_3F1lp$&=MyAQ*be*mJC118^tU>w92O+ch3N#cLd zc3)9V_wAeLe9ho1P}z&Nbd#&1VN>WU<YSkaU{N+yA1Cu|4n*lI0;!ht+72-2%{!YMY(7jRbRilr?bd zjsJ<5fT+FC_|Lkt0RH6g?X!FMLCXEK5bmBnt;9F}#|!&*>=X8ej<)_Hn+^UeY^_?Lw-`s&6>JGa1x*LDxbrUszW zU%4I_jy;BCT_Ce!>NX{Q$lXKT6hNV7G#pR%{lb|4&QPLf#-2Dl4WHN=ohf9sb5|hn zeN$NQv9QOQ$9lEHKz>svk2&*%`Nkg*U|oj3CP=q4)jd*w2WDv(W@)tR=}u*B{*gtH z%{I2mHVw`;kI%L&%+9RdVLO#=|0A0yo8x4a;}V?X7N6r@nB&==<2{w*^CO2O%Qu&~ zl;GTe_}rkv+>rL%(5c+8AGuW7yj@m#k->Spvk1AeLLup(D)kH+nc#f*}?c#G@nW$QTZBa8M{~5FBkU<-D~m0>D@% zw4EUEELd2I16y*6Ui>IV5{s&iqAhs>{37O9_V%}Xg)})ZzM<>|8nUCg=P?ELVlg`b zf$}wh*YQ_s@P!!mmC-3+B@1mqgD>(ArmzCxJb^G4s~%q>$Ynh|4`d9Yb+CfIw2Cl} zfI^2*c5NB{XAzPEe~&|Nrwb&pH^7{85!@ zT^pqXZK9*3SzsO;DhVOwF+o*Qfi?+wn~QLuqYP+>JRa-_Af=gT2QDII3XUONzjhK; zdlD_mz22Z($FPF@0D%Jpq#rRfom9V_du2Oo`#I|M6c*&bhT5m?2s~JqfMOMa_FSl} zqwba`N{_bz6B^`X*-$bEdNTwxS{GMj8g^s{9zUO?ln`f4q_hlrL1kZMx!^^UqN1O)X1;*SvQPT&)0IEi~Bi4A!ZP?35l z0~W$Y9`dqjN+*DlMQw7Xts3|%mei}+ScpVGZDw7U29O3=C|!O7GFoX!A|l$Bnir=b zF9IrOA3yLE)FZVYt*eVAwqkf~IkY-N$LDtsA36H|R&n=5drhbp5kT@TQDuB>#S9?7EFbb4bpeZ(WZ#|VY3Hyt z!Ya@g=lCsCXkWZZ5(z%wj54H`RIqHCU6Ci3J$~S^E?E3@`0HNup?bp@3HuBJ6jLP}6N(m%Kp$}`sn$Us$wYBxHbuWg+i|u! zkGrK(q3Kw2i7%Kg4JjKotiT&qz)Q%5gTw1$d!!}ijwmQNB4sEt{sa+467q#4(h?XM zmkos|R%QFK<@-@M-UeiW)mC=YKF84RC-yhzLKlpOE*tAyIHGgRZ>V&_G9yIfm9uU& zLzm4Hub+u`15BWm6Duz0Ei2-BK`t-Xbp7zv z=12*2?(IhEa1wo3kx-e`01w%sGF-@`OwkqI0bPUBGb)N2v2d4#eT)-$YybA8dzd$j zM@e-3p)UQB6_I02n4|^~;YmMJ9)uiqSoKv@1}yj)4c{va*QsJAo+zzO7-*hAL=Y-3 z6NHmIcS1%I&PF&j2ia`*_j5)c2?0}BQX18`k_hWG8-J`s`4UGx)KFO!NI5B&rIPq8 zRf+M*joqikmCU&&L}#UmZ-K7}ib))+WNhIgO}Fj0*tko-4GWgUPS-U~Ol%olobUfB2tSyF&6<>h=|BA35K-(^IX7><3J`M4^j& zET!8xn`bUEKCT`vkrMi><+8=kZVL=urb^QCqu*4@5zF(E9)-!W^xu}}?#TcYg=_w( z&&>vf&VDI)WWPA}K&Rd_JId8b>;*71nJV3~U#Awq4_vh!nJe||lyot0MCGM=o@UUTgv*_*pWqIOJDY_E zIvsVktaP5A7_v|HI*_-`zy;;|VB1gCtzIptl~I7Cj%vM#s#|`0!xr_+z%lou#Zw83 zoh_&xfAnJ(<>R1>mBhIOcIdj$zB8YetmBU-VY|K2J1P9}YVH$10LAsdMwe;V`u4h6=o zOeJ(_b?NJu?fH1N+0<_)RK?lN!g`eG@T0yHe*aR!^R$N0ce& zWe8Rj^;Z3el9^bUUvi7z;`?4=FTBHtl6aJIHk)GCN(p#N=~edki;_AM>wmu7zeII8 z?UG)&hO|nvLSNCR;~V1Vj!uOmMaC(Lh56P)0QSPKXsYM2Ue(#fK=QD}*q}A-TD@^ulzhT&Y40N}xGelVKMa7*eB{ zZW0h^%djO@@{GD^1y`D_^@aozTdX{1BUl`<;UL*pl%Z8=ZnKp*q`E|?;puIqwv+6 z;1l79WMMxa!poYQubfcz7mtz#8Y>4AH1&z@j&Hex`Gh|!o7`zGQV9sFb(VyN>qvpj z&>scQoSF+dlw)yvLoKzBuaT~L{wIMhs5$1=fjDjSn1J%OHIV)4?9vqb z%Gup3*xqD-eH;K#x7(;Y?|(Ea4TDUvico)ft0PT!Vj%$RDLpzDJaypNj@|O1;W&Ph zC$<-Z!~l*bf#=L_D0DMRPRvA~M;E1Fhzwmg$1EdwKD4|DkiCs7$6en$Rh3WMYQYT= zTSpPIqqYXW&5bI>_HL9)GITTx;r*<1ra6zjTk2q5Z`er`sT_IQV*gZB+;IF-6qmg0jr!S0IiPaKY)QvY+dAT z6>g#krD19NF|iVE=Yi(D+`5>TDkKO!(5gYKRUi3IM{7!X&;|Jk{B%KeLR+HX+X@Xj z@`80RE(hSfzaDH}kcJccg{<#|)e#nqBGUrt-b*(+3%kymV12K3j@viz4+vex6GMK9 zaBa0|RD|QR7_e%wO-N!u%&aO*N$xuztGnax@YoYe>^yt zhtT{x(6p|>BT%m#kPmo?NGr|z6Mg9Bhsy|-Af2hQ&A^1GOz%6U2mqN|7Mif=r&~63 z0!#H|OsH(S`JPVg(m{s@gIOB7<(l%L=LM}$#BR^yrDjjA37%aNEx}RwE#Rp>x}hp` zJQXG*3|t3(aiyKUJ2)Kplx*TYgAS-chNBl!jN&GNlLb|Ipk8WT1$*`c*UIMxXD4ui zjk(E$h3HHApCvB<^A^|rS`QhZxQR;N1{!T{Mz3V2 zug;-YR`=q>TvUVxjfM5e=W$}Tre1ZXr9g5-=cnZT@V<~rT6&P-do&dRS!((`Yobdc zQuhiPWO#)yUEiC<(Kp{JIXqF}R~FOgs$Nq_5XyCJqmkgEjqBe4h?v0L&bPY~bMl<=Z zef1#-w5W=!Qn>q!t3*uFdryUH9OnYY8P?&_nRRISw=eTdOU=yA`#+xT6#W7BJS)=( z|(zv@?K%dbC>Q@Ku-Y%{a@@W{M(%tzPAdyhD=Gd;)o zzU~e8xK~=gCWrG}57v1k*%DRe+7kIA311A5wf_1W0PYuQ%uaa2&dPB+`=9`PHQ1j>h)0S>lt@rd!3EXiyEu8-VETP-~t?Hr+oulK_=<#2A zUSvUWDQQ2kbs$C#Q-bVI=fv3M$B88PVYhPU}WWOj>ju(ft zk;377`Ja>tr?(TvPIhnbTWwygmB)CvlF9AcCcCcVq6u5{dmq8pc?U~l{us5CY)z;a zU@wsz-JliXQ`e$dp?%R0?6-wm)hfj;JSe-y#c=N4&y;jVoK&B43&B{Fb-e>c7g?Z`TywwaL7j*!i(wk@(6|gNX6e=~l8Em#aawA(-=|sq8jC-Qem#pUxP7uEyiQRX=2fKDw zhtB`nr72zZFz<8nHJ0!|3a)~7eN+1u&y{lD)1M-6e_met9g$5<40=|9@OW?7Dc54L`tF*FBBItH5CZhnb^D(XZPVL9fYJ8&UUYFGYwv>26-nL zDrsz#e|?>=L`Zf|o`ktU%6 zcBP&&v#w~gxmK`oh|Gfbt)&iavUo~?qgyjCOmP8&~)067&fEn!ZC#d zC6MAK&KrB2FS?SNyPfSTDLGU$c{Rc{65f&=XpRmymZoYyR~2Yc*FXbWgG7HT_3$d) zM3=}dCX~t5w7r)z;b7$o65*XVLt4r+NMoB7>!7c%qrYF6bZ_P{ihkMSypdL%?_NhY zwW64n4Ue43M9qQRJ(n-)H<|xv)Ds}UBh-Cq@<)13->Rg?npiw~dhm9fS6-Lo z{z|#~J=W$fNHvpGl$&=5-A5%F`W%NFZt=|NHS*=1>b*w(66x{RxKOLzgZE>5p(Yq3 zq-m5nhh+y_4@eg0@YA3NGY&}tMKTfG2eUF^O z4IL-nO~Fw(xkQR`iq4+1x3g4k$EeKhg*b#d-_0hi#$JabvX3aLKlKwaHQMLvy9sx& zCW_*&QNW7FZT&*of0=d5s+hK3fT$+_tUau+U2#wx)U8&6(ks6A<5bMHJi8oNmaIJZ zWg~mfWfn;AJ>mieQuET^?%wd#KN1;?XBNja!pYkHv2fMH^BS5Rxtz)hCy5FNXQcP@ zWS0|=B@_4Xs-ZZ^#R{)WkH9@T>JZql>x?^d!o)eNMU%wX-W6NX^)4+M4Bc<#P`;*a z;9TuH?M?CA>w0HLP>7Dv`Pu-@yg)#He64B^2$AW#u=s0FRKfu)`dKGkoq!jh=^ARt ziO1oNyw|usuD(95{NFHz@-zznq03oQ5^=+jy)E0Uo)0@g%Ge zBw@Ov&vfm5Ss*b-@G8RrCa9S2A~Wrus>>m$J1jMJUzM#4H;E|68d09ASL<#R=-_t~ zH6!~1&?a4KwJR6atvm?LL0Tsm>qf3YL)2phsx6ZxvJ3)y=zyoBQ1>+M&39pTJCNtL z#ZN-HuG%z&sq_~av)B<)7){E28og!hMqh*y!R%&Vo^Tt}vYZBu=x8vki4w$^Nza&y zaUhT_Q9+ZpvVoPeZ{6f4<^!}rx2?6j7;tU>h=5M(?S@H2u5atUj2x$o7UFyr<fM zjspJsa8;AB5>(`&NE*Na*Eh*T-0q;ywDy@;BAGx;ogoG5A&|1sK6efPwg6}r&BOvv zp{1UR1?o;6x+_lqef;19VHsgOC_rxxPnT`Ukm-IL3-W;W7x7Bi*a!H#<$<;F<-Ws- zGE)nLDjQkL;*)2?wYzIh@wPwwdg|f#;)g%)KK%XSA%h$bD6k=0HX@WQkibTju!TnA z@I;9XKpf|Y6(vd<8i6Y1A_@&s(*#iJUfgD*(vAgR0jBaL$J^*m$wkSJ1ioZe0B_gZX!1)ZJGNAP#7p=bnr8mIl06LHk zKfz030DA_rCy>=ShDR!vpq1%Dw&mj0w2hWy13(or#*P4`)1Uwr(wEq6ID;zUL1D{c z8YANKY;nDN=*{(L4Jy*`sLw3F@JSz~LGNuMh|h4kcZNe;R-cm*f36COvh)}YaOyBv zmVhPGVH^jvnE|#RL2eGuNGHPOEK~>yd5Hu1wWs49YEPk*qRJ4TKYePFyM9+7sM=CbB z*%_hrM*&|F^iUfWLfwPm__W-cC?bO6C1|&LjGBme2v@=i+Y`Jzz@WlzEL3k=&zh~6 zIvdac#)k-yISG=Yj|Poy9w+gCX`}@oIV_7P*g-Ocv7q03%(<7T_eFb0w#xh&t>#GD z7>S!=4~_!h>HGUkxssyP0R<{V>p=N8z=lK}c%1XH5+y@~ZAnNOJFIS2dg0ee{a0Os z1nBHn=w;=Tx(I|0R)>KfJbfB@a0Gpo6ya)sDw^$;BDwVMn_v*(x3mousUH3BkoV>H z~#ft*X2n z1)lgG==CLtOLPM5O!)jVrpgTFCH5LpN6wB|?2jAYdjrJ_AF-vy7Lp>i@9zavre~QW zg9NdQ%TtA%m+1gxO@BgRy*O6$qLnssg*AMIJ@85KiPYE>gUeN;_WyYDVwk1N)kg(T z`wUsbCD>V08vKOQ%e^94d5OA>l2r`yvZA zV|6(g%rm$ZHk?i}eO8n{XVK7g0e}>?ie)!ADcEoDYqh{++LN7nPfTx$)sKu~Uj-L@ zoY4#uaV|w$5rst^hZ*>H7_8$0&zEuLayp$mgTHWx!%f5tjI%9%d_k2W!Ef9lso&k{ z4Fg4lMGSL9^`Zzr10kKGGfhAu>}D4WXI|2TyW|qgPGgqI&>}%JJ9EZKfBNq2!5jAI z!nHkv^m)5`^L9jGaTc17RXD$|z7Me~k{QW3NCW&d+qfY%^Sj)sx?LXsbo#$?fn6f87-FUwO%(Q=$ ztkHjgr6MF}7Scy%@;}YkgmSnnjq1M}Q>dNr%1w-a!y^Xu<%?0YIP-a3naLOp^5rUj z&wSGSX{IxOvbE&H)=@x|im*tX|Is>NaU69!T1jOdHM0y1-dttSK-WlwX(NvTtg0%{ zXm5y2Qa`2>gl^i4f4G5?6S4OxMJuuw(#p{9%67hg(7QDD>CE3x^fO$^hnT#unL;i% zoqza=9}iyc>l2C8A4SP;9`I!@_ECk~?PidF7QstBughQ;AB@jwRM;6|g`J{Gw+6I0 zVhU6xTbc-~?8VQUs7+T^`-v}QSV$RQO@n~Ep7}WA2>(l==+OsjFYp&C8l-T{K8xk= z&p4>r`*1el%ljK>Yy2<$OB?nW{7eI<)074ODw$xgW`mU9PzcY4neYyW)Sw3Nw30;l zhS;}Hn9{eBce_3pa$A3mfN$AgA^d6ZB`8XR<<2ak3{ivkq=YYh+jsV!`|ri{8Zm(@ zLc8k+0=aLi2{R&WSn|yGdQtw+mJ%YxNM&HP$XLlh4GflIiV-!F%(b8}Y^s(lhZP6__U6Rdd!kjJaD6KJa#J z1=*yaha6JHaI+T01(MmVY`g9rww2CRJSK1^P?2F``{_4Z=hq+6qpZUkf|qzxD2u)bD)iw0# zeyDGG8uQ`Cop;wi+`RX7N$;lfU)|+R4L!Jh%Z&q?+xImLnSWSr=D6t@)H@46|28in z`HWouzcnxYZ?V3Ls=9`zwwAVzuAYI8zNrD>U#xG;Z(jNb>)ZUNcIm&c{{K+B?rX{~tR0|6hLWKUg25AeGF=`u~(Q{ZCjw-PW|M;%a5pf3QBQ z?&htA#-`?$f`2SNmcim%{MOE{?w;Ph^MNKhR``2lYZHoj|KtNBdE~#Ehloi+ik>Ys z<5%6Yb$9&l_dbeVxBrK|&&L09@$)jr>Ab|Kv8#J(Zc+*vr}W}2^=fLHH`l$C6L=AF z@Uyl*-W98MD1Ep9Ps2qaf~=0$I9;lsy}vOdcV4j64WW{9K_baBbdyUbKd4vJ8&Hni z<%E`3LnYRPchRnj>(sn==ig|fo?bE-+ob8kT)NVM! zx@?0)$($=$-XrbiNSN$WhP48KaAli1x8$HYWT^#!}6&0Q9Ya8~R5eNKf2AEq0+ zI3gX$W7I45`zDA;X;t&9^BCQ{YP<+pdx)LKdMTM0Y@Lveg*AkHou&HsmWv@nY~x%H zVj_>JIauxI6ZM-jv_;h$9>;sPP!iA{LM6t=oi$08JnekO2_2NQp9CbYLT>O|l70~5 znCPx??@pRc#W@JPg?Y(SMa_)xX0y}wTjBR6?JwNaxVzmvvALsMU;@L_}~GU2nMRh7&mbQyft+~xF4RB+$EMB7l66i+D=F8vy#{>HW%9L<}i zYPwEv*W1@|yh%#egj4;d=OlqKg5fBbk2zlIy@V_`w)iG`F`%&o4rJ0(F1yd&ZNdLC zXSwe3x6d*;|FwDuRb%lGFjr9?Nk=U)yf0fmq-=UNR_7};YYNkbM+crIaejQ*!cJlz z7s~y6;p0H-=<@qKv0~TW&6amEn32Ou6IVUI?$~OoQf$&-xB**j0y_~zYX&T4@n}E~ z`CPZ@ptTfc36<8N>|}+;&{-)raOuR~#HccPm(D=T0sqgQ<`yof2HC%JsixnhQ}%AU zb?B^G&h)OQ_qyyZMRw_C)R|8>3b=R(4>xv7UvE%z%FH~wqbn81yL^#%K@5t@ezg=P zgG``RZ&9fAQ{BxpKXxCVXv@AG<@RYdRwzYtjk;Njy_}B*?L{>7E zD)G=);=I$Y3NT*12O;Ibl6YDbluHMOlC{qZX963L3`#P*#_75zjU1fMC5qKBE6E+J zxeb|B`g_`?faj}ucSfo(OSuS?`zi22FH$dtd({vum#@90|_ey&{^)TbY6VLzg6CJIZWX+odMQ?&711m!u~AfB7J-IFe)-cSYBFyZYIL?PRT zC{Y1dUkF&Q)PD8OQCMg!NprmrfzJVj8WNFMBcU${!0pi9ByE?@Je0O71T-W%P8kcC z1krtEn2&R;ztlcl2T(#Z=sZM(gg2N(|6(C}?yN5$Z`nynL_d{e;=#610PVvAE}bOS zA$b5gXlY`nC$*+a9hAOf-Jm~x_!@v^ORKX|$_2h4)BtvN4Q*0__@$Bgu`28;k)ek< zT4}-gfTk__Zx^BqhBSlHt5d^JZZlkGXzh09YWKE(8y)ZEX(@GbAb`gc zjAf{B^4F|~x7Tr*&O$-DaRBf`7hwEp0|XqNA%4BQmYk0v3F&?9w;HH15G)R0_)H3j z4XnaA?r_?>!@$57{lmctPnai(eZ5k2#3!R9m}icBAhHOU-}6JV(LEv00mhshpthy6 z(OY!gp|k|newGh}aE(c=1p40!t9_&BxpTDKec;A3J0Gn#z)*#v zRH}iTtE^0}8lZW*@j!6!#mP3{8&xCZs@-cJIJ>Uw(~R34Mc?gZ+!xQvzO~vBKLy!X z>=yGey=zf6rY#JBOYfopQ5ulEwmLWI+6a2T-l~#XGDpa#@h?i&iXL~^n*YyxpY;mo z?7aUQd!LQ}*W%~5cE(zh(tECeCcA9jt1D4{ox8>o{3Bx95}#4YU9*f9fP`pt{>_8n zmHd!JS>HBA8Vf)S-2a3o0iw&q%;rM_i^5I6W*5pp>rFd&$O=!K?8Xnwce}-WWwA#` zxIdl;R$Z+z6cbtp1n=}eSP=$Jc^$r@p!ps|^;|lQU1uL#NKIXkW&d5UUkDVcpTXT=(ky)g0)x&DTuZRj7HvI# z>d~`P5BohFqD8E~pXS@*x@RYE$(-5}Em|sbl5zsJ*p%{)7*9A7|0FRb%+l*WsyOnw z{XeRhmr~4uwouUySOkd#7V=;p*100~xqL1VYngg9IyLuSF?`~L!hghYbiqGjcy~?e zVRyb5h6!}5|A66313=vS)ZG85V9vS!K?P&e`6{^Lx%nwe6bto_3O<|$ZX@Vi{f_uJ z2f47%=P=JzEharI8 z_;kMG&7J^sxq5uZn_2@-4E*bO3GV+mUQU)5{UU=2`fxJ!`1uR}lHH2;|BdWYvu_6F zx>@~8cJb-|MRp19e6suSPEH>4d@`TxvLpz+3~_26pX}})_=oJK*5p-V^ZzBgmlHgM z4CojBLw5ID6=Y6r6kPmKz?3b_vMS68F3gKBEGR52YA-CADlGd^$dWCpuqvtyE~<_% zswphG-dlvd8CxtscUpza;4C@mjjRD9{5jtj7A9aR)5k`pdl#565ykS)L? z3rtaFtc+wHRAeFaG7E(zA|Dr8b%a}_V3DG3$n&vcN8*sFL^nR!y~|W|Y=$Ms#)E(% zqM2Z6Qg(9=Jz%AF)Jgmj0kY{qsm6*pM4+!b3V{*mk#^MnBosGZ$c|>3On_guqcoY= z%nEb+EO$I}(?4pLQ?9_(v)={wb?dnF=rgcLV<&qG)0n~E@3F-AaF;ECwB(jQ&fh@8 zG5WVEu3Tha$>9PPLc(oiPjFg(X+fo9Fn;J+o(K=RIW%gPUcr{ zom5+$b&$fV-Y_-PvDW=tfix${S&$;MLbRl?B^NmIrd$t^u1ZZ`{}zqrEIa~?@7 zVU288KGqGfMq!x>D&Mt#snk{j{9NRlbT zNxdLR-P73a0v>6)q{*ObhOmvdz#4%}IC@r3Es64tByWz@jHrXrLqR^fw;gc#?x`ibYH=pNZJRV4)>d6NjrCS5^*J>^yvBpw`fkVU#CfCgw>n zY_8vxZs;IvSZQpm9D7?l8wz}n^2tJZJO+0AdHQWH7c?S-P;JhnW9s9O`l|K{lA@8@ zZBppSyIh?lXXt>9q1%9=zeM7BW_!1);nCtYo9p`hvu!^CGX}GcaY_f*tdx92$abyS z!P!vjq-kNeX;`I|_nPY6xw5)+z%^9fmlcnX@+jYLsuOUlBIjo(08wpjK#3akGoZN_Q*Yr@n+=t(4+oV>m zOxRpseo>5`F+ZU8u)4wWf*R`VtlkRSFJ$C9XXu!Dq3qLis!UwdX{;}^ z&6Qh_v?1HJA^Cf!6w*>qo4d9I5c5Bk!%hOPQY_4QYa~GRG9Q`FHB6SP` zzc+X5*&a>T+dttb$%1)B*AULPzA;d$3KD;bG1E5pHPaI=I>FYQlB8loLe7I)R{ayn zYckY4y9&F*({?rc9+apVygg#S_!#x!u|4lGru6rN(Yw0MNhU8WjH_ZxhsB92k~foS z29>FlOaR={qQ@?0n;64)>CX8pH(MO#@k94~sW9fAF3s4mW>QTz0SmtvP6Z%aPKn7Z zbrjb9y#^gW)t^ixF0uMU6HunSjW#xK@SvVc%6=jW;a){>3Qk68d zgRkR}BL4Cr#j&H*{^4E99iY~q*{10a4t0%v+lx!5^hXO#v~H_u$?bSl5`m10#7cJx z2U3wbtVV@iry5hk5WL*1m2>+MSM_)SI~<*llD|Z~igtSqkHKVojN04X z%XZqIUU~QAdOf({MN;(^>^*#cemBGc?jrZyp-@{LPuLS1a&4(o~oSSQC*j5i*&Ko_2-X*0=OZ2f0oLtRILnJ2Th)XQryp zON{+O|8FQ^^IU*yjKx7;>#;fe2cSuE;AY=>I|?aDm5jo=IzO5B`ZC{V3fxZdQab1* z{b_FqeMak9j1q|ib3qN>0VS$GI|}H}3;E~tmJY~scLP-5M&AzN(cKhIi~=r7j0T-L z=oP%%>-5+*nG`^S2zx$E~=KgX(_ zwo$Yh97T*37-F*5Bc0vFA(A@iXTZKrGUs+N;$b@bd}LfAFCrZUYiY z^?G;{DF(dj+V2%{aGAmmub&`4CkOE(D9h3ERfq!G2=(Awj0B8~+ zr?wjrfwZv?chvz!4yZ+Rsq_cbsiV97$s18TCH5|e1W=g4QEG1lk3m+{*_hlI zb)K&kR{Z1_=rJj}GF1m%&#q5x zJ_xYaUyZ@LuFUxvexi!*{}J~oL~M_B6iB9qlr_KGCidmPEv+BY-a3XGYb%Uh@VO5M z99DY!KF3|GsLKl(`4gCbjAWs#A#}wH;_)twz1Vz+j0m8-K7&MJ4ZfJZ#qXT$IWVjG zgy#BW)plc5&f?=%e#V~phAjr zbtpLnITDmy3Jwqsk+@)GQho;z1OzJcu2um`Wn^IhS!h+Z0f2$xdGh4)@$#XIEI`Nf z0vnKc4w#s?=aQAm@256~z$kt_C4irsr`*cPmFKEYyi~Ue$(w3WVd3qS_`8o8M*uh< zP>T>vBlV!Rq%%Bi;(-)%&X7-t{Ec zv_QKM@GiM)%!&e))OD?ro*M3a6B6&g>v7+x%v6chQ{O49XCe;1AYprKVYDVS=Z>w* zc_*h=Bd1rKO6zT~GGf~#`t2fdQQbWe!h&Hc8|6lGC=f3me!GS1;uI2Uu=m~ak3{dH zibZHsq@3BMSo!DRfMbRB@`Cwp!zw(#XYbWKHitDKr*~d4x8A>NUHYJTdc^it(>mmp zcdZwWeK{anq>Pvz|od0%>_NnIsKoL3C z3Az`>7>4z3rxklE4D3N)7_RjnJoiB#yJLqK>2ea;L13?xpN1?{rs1z+nq-uVB4A5Q z$eoe^IZh+!)IssDd79z_{piz6CCs1=wfsc-@Miu?bWq^9Jyi-u>renqF%+RYF(HL< zeh=oPKOYlKQVVeL?b+d8Atl+5r2Fm#2|Ggbgt0V@jtXS<9V{yt6bJ?Pg5(^44QMG; z)RuOraP^@anpLTYjS#U{`o;5T1vi(c&z74ZBD34;4ka!37MbaZJOJAs-``X`!d}Kd zQYGcL+&(ikux(#oBv5oA!Gd%j!n0w)qvR?SqamK;uXTl_v0VCDx_VH%?*t2Zx=o7c zDwwO@RJ=JbwA^(t@yGESrXb=(Jp@UyvjxAFtP>4177|QMR>M}D)GSQXMgelDV@h99 z!>;aDEt0ouT{)Awz9EfMC9OL#XLP+ix2<`KZu?n~;JibkG{M#Af_l?{zTMHNmlL_s z-rZMY!^(|HU2ob6_wL*QEjP`AF0Ma0{`oY|b_H1dc4rflrj4w0f1n}w zlBkrggr~CcCASW3{Q16c>+EJs%|97GC4-OkW^~!ltW`)!>_g>wQmGq#I3S8Sj@8**$8C1;G zP5thD#ziZc(cV|(o(=SwcdT5XWnNWSaPPOCUb%Q;3J4+q==;)ayPLZ93}s;hs^02BpQ7#U~lkyfIY`+yu5I^+&mnh$hB)kT-9 zN~oatdotioYf8Sad7!ww1Xn|ACdBIr9jb`=Gmz@HEfFTDwoa@HaOjIq*iQ47jz*gR zwB?R+1SLf>M21NhDIwORsqO)ZG)Ts5*9IKt1PIE71Nd02gMtM8UCK1Z_tJ|B5#}ay+PY@WV$;pz6}bJZCjbc| zBzn~HLxUSl{h-HH#tC=kv>LeB{MGJ|wMX9QoUxl57!;_MoRYE2AWFb@u9ncUev9Qg zBal|x^Tj2+=AphiQtJ*xTMuVQMe}OJ%0Q2fR zaJgyy^FGtcos~r0)L#v3uoKH9hTD-uhW9V#IennywxAq$=+Oa}EuuVZr)!4l_2-M4 zEm+NcvZ)gB9Zjn^s@Pv8Lm_MT;qg1;Geu06K(k8cVxNnF?(h9wxjbfaXyyc;#3QB} zUDAB8GbFs6j8B+*p7u2=5E_n%*_@KJ7%rVPIVrI|=Zae@qU#aQNj_SxsdBJ}g-5Lv z4r`v zuFUP%FnSsXUTj2YQL^-CSYRy7*QWvi`4Ek+xxJ@+HBw^ey3U(L*&S*ljkoRvrTjmv z-G^6G3%ls+IcE|`AYkZ4z)%xDL!ESZt^^am|?JR?Aqf)et zvV>^WubfF4a?3F*?fIxAj?|3httu{Ey|Q@X-h&LX$gvD*UG04j$}~!sCXYoq-7dL) zdP*!_si^68PZu@r@O>}PYCx%%9uZ8@-}2VrwbFp`6_ohc8+!)X}zIbN$ocWrXn%_a&5uZBO_ztL9{{M$jOOlhFWE; zoiDz(<`o>#%vpwOpIIoxN2pVnNBx&M-A9&0KkbhAev9!!l6w$kvlD+&j^It$mGfGV z9D&SPq7t?;5^QCG1Pe0@DdUS-%|&0?8D=RdcBOX{#nTHu7q-MYc>9E&b2;-81Au|H zrgCTR${7vebb@`5KOLBFz`+smZ9JTtsM@8D^HNu?gqyn)qjT7|G_`|HWz}c z8!Swy-0+lYXGEL4Ia9RmmiiW3nr;3wS*IL(_Gi4*;0e`iDZqr_QOFIy&e%JFRsYQN zX!kI*nq$Ca5D3`-KdyX%F)3A3bcLjB;bm+ViP$4gC>c};SQi!9&x8#U$tk!nr!b#D z6q-pY7z2EmBJJ%*yi8!ykwLlq_|g`SE+%e&1tL&g#EM~R#Swo}jqKoumZ};asX!1} z=+Q*DCxU*QLLz(vBryw3?Lb*R z?bUvo5*solN^A|f92`|-k^@;2XaWSBPC;l9XeHM&T6UcefC_8)5U~ShN}(w+5#|)y zf-Oz4viROfM9X`cC!x@M4b-Hm;3za}eo6OrHHS$-jEsh3ApEe1JMZoMxS;78Bphl_ z!hl|t9FiS)GlV8!z=gfi)^JeLg{Fx?+;fKAcSZyUK|*FUB2bPd{3C${ADjs^OC~{y zUeT$5FlT_u3=i=ZZ69W#;JPi*4)%mf6JTJG8E^+r6-}rhg;vc^I10?qtK zrQ{4nmJ1R&i2A3X54-T`Cp#r~Vr`c_O3_}6Uw!R8FvCF@vLT}pAR1AIrbAW) zniMxua41WPS93VJ22ByX1bPX$aMLg#H4c(EMJ5B_76MJce>+1i|HFR^Ef)YS28@U) zMgIeUB}M)N0MG8AX|kb`P}<)Hm{Cp>DVKJsf2Cb%DveN!u5}bfd0^{oU1*+6OBDjm zj{!5|0%mNa@nQqf4h&1DO{dX1ML_T9LJLCiOZi4p5X^yF@{p{ROWqtqZm=doB!L0O za7?_R!;5vT(Fn7a+Tc(cmRqmR1WDL3Sw3XShk6#POxaL$cdZ|$?)&>P)KcBi#SK7{ z-SVgadP0WE3y`-^Ad!u%sV@@elnGey(jb7LBP{uly-8tVI))ep61lJ)%=-3W7*ose z^)TS^x<-Z!{j~}qdz(!)%pKT}y%A08N9$#+MzKWwrv=q2M`+S)4M01X6}Mc<=G)qvs0j6Epxa{Se#=@p#wJ5f%`cbo{*cbudc?Il z*y$hVO)*z*IX5romv~~Ey|CpXSuo{p8k+z!t|~|Kp?x!DGZ<7&_Z5<0xpD;d!Gvbb zzVdXu_N_Ban-hfpQDsJfnQ%+)=y)mXUa+FWtTClp9K_Vf2B0f>qsO8l+?9sqz+zkw z+J64pT1d zU{72Qt^6!o*D3R!xuR=a`0gq)_8CQhhhN%5eVTPIYi|{XZfdKisUB?~zX!}VlsrkN zSzyb(F%>f8=DSNbc+oUNC3jB>P1uSyUUjQQ5p~<5+D5m>Ov#L7Ozk0FuV-d#=S)QTAjsO)%BB z?`OsyU_Q|1T4T#4T8s=v!Dp_Ji2tAk9MtBjz1iizxT`UiZq0 z=0F(`^C#Nf>$zqD)1U3nk?c3ifsH62>W6P(DAz5qh$&IXhb~anSFC$r-W*tu5@Kre zo~%OJfuaGa?tyw;|7*K0IbfTemdhUQzN1R6+qK-V`&SQ%&}HF`NOrj@Of42ZdN<_P z9a0qJNkN!kuf{}|ug1_`?kKdxKFD1L9I%xeuG(94D#v9iOXO~#$gL@}mGf3KIkvI` zrF2xA^E&oHwtr!VQfY2DO)P4IHgv9WzP?^jquEU38ZjuqG-xDrhF1UUe3Kg(e-VZq z19`4J#*aov6|b+(f`sQ_9l6u0a(uvz_OzknwE_b4yE;GLFiyJju%~9LKTY^_3BI6T zq_L2))MQr#`?;I8>389*>%EjvX0Vd`lploSHY@Q?5$bL(y1^{nXa_{gK86qWMuUD# z@QXj>#caH$j>HMr`H#MhqQ@kS8cu(MEN^HC_1I{p$)r-yU$2rsbaQGqExEWkp$R5> zq)EVxle-&CawbR%22fXlB{YC>ySc|_TdCG+%W5=2)~);QGr)?`!)tuB z=saoP;IrkI58iTIoDNHpD+cW^ z9w{k$j&__zbGUcv!oD_5o7vqH5kZ;Nj~#a#T&{zO^Pf~HjaG?HG+0f%MHR|1O)u(P zwO~#!zQ4I~^F)y4Wc_{M#LZ1~_&pER>(o3$yB26{NiX~yZt8_Cv*ei7 zTRal!fi3>p*h3w8PMkuWyvYqq7?~QrWxen+Gqh)O5Asf0m)Sz8Xi`~YvCN;RXqMop41&ZdHzbfexeaSR#wyW>oviom`7>rw^Q5)6i^~P1#)vJ2N5L#I?8R7%R67{BVuzu09BjO14ZrG31cOwbkTAv4 z1W@91f!hGse8xeUUD&zu=Ct(6!xEYV1&r453V@bJo1KE)RG#TM&HY(-MQ-!a zFZtpdwS3H$Pm)_dN$>k4d-juj=_ke8pOjvHQrY-~-SSy&>t~I9pS8|@#+QE9x&2x1 zj3`&LcQu9}ywl5ekCyVEcEYqIO)GCeXIVjc-VkoVqj!${6FyU zf0VwhXf~9;r?U;XYw;fMYg5*!l~D7K+<3|Figmy8 z?BjaRnTH>LZv6d)68}}${!h?uNhzo7f1=&SrvE^@|0-{!-@bdlxU{_T;Um9NUS^NX+NUu2v(j1tdcXa>E4kMW z4wRzJeu1;pILMZy=a9i7z~Sj>uJ{a!hu~>AT9Y1&fm8=D;wlQUlp_He2}pI%S@zKW z)Fer*P!WaRUU<^RCM~?y5yHG(@>$&W9Oe+CPnd&okq-jq`cYEKsSE&A(@adW_p(`@ z?@LTWQ5ggBbMeV^4c(m?gd_b2vL(#i*-Veg_)JwpC#0=WAUsV@`g>E?{>PdroAK}5 zAGOXS7UV@Q^rYIV35l_yT!*Hf_P%(Hr(? zvsvEwF(SLh4n-~!3U*k2%xlK1&Cqu-mnS&=&9utn2^TQtr(j}k7NSj(Paa|VMS=a8 zkG;~zL_-TMbc#aBub#7LH&A6G{^g6uZEa!OD6Gd)m>kzju^JwfNJ)d;8) z@u8y6V|H?f*2bN1O=}Y=0B>!Q?x_D|%G>AAmq)&THGO&Pe`4j!6Gn>u*Xf|khrT`y zu4(!@6Mk*w>oew{{;*Kt29`0;-g;ly1{ro(N!D_s zY&_4l$=ZFDyX5jVPCl5IWk89ODa{>}Umm}ZH>xq~g0*gv;R&fS{Na);Cm_~Sxa!{A zqyaO*ncS4EPGRXu5GdOO1K@zorH^H~%}H5p$J|9hovq(lHK#pcW|cugfp9xzJ>c?K z#+zsLzOEtvCE6_rD)=90m!DB%_15`e^vr6>`e=>Kx8Z-#E+AG*5q24iS6t&Dx7AYR zM#hrKYh{@8wRSj{@pQkna{2qU4rU|cnbB(%Sg|@MN0*800s-3HR_Ed~GLhT8R<&`8 z10esbLb8YcRp?u`~k_izwFq=sFa*W%0CI>oK;u>8L*?wpx@ zBrbh2PNccpr(Kp;NBtS5MBzi?(#NkTowTixKKI1XdS|oP$+&&mn^QVecx?ymDcdYu zg-a!6J9g=FMPuz|9^B%!*WRxW2B&7s*E+z~`=JNTcJDSNJZ`Y_IjWEgO+5o(K+#$^?s~)YpUbl zh3)kLynAc9&*;4DjrBW(%+`#R>mY#Z1Diqz;NhKc^mLveA$Lg%i(T-UeuOe+iA%V% z3)R@zn!WT360(TbYO%m}2N_5x*4MCDFFDAJIdmt84W-X&d*~14V#K}URmZS)2tQ07 zsxwJfPUPnPP^vKW2>xL-pvh_HXH4b}xT18vs9|uVgbTmQ_53h=Kw&#Qweg~Cm*A%A zUCL2;FL1j=%HC-SDthCtPU4d)CnUKx&c>LY@OprP$hSEvgT<6N8et#0O-D*AVZ(OV z!PTiP$d-%jAaM?>OLDvy<-m}<#M4AbI*Yq$afgpK*=bNzdRx-D$_3}&j?F8gkSg1X z(D+oOK9(dwQP{jvc~HN6=e5wFN|-cS1K}u5iq-}qitgWmlo=!Nt^m2bp+qez-c=~~ z(8WV3EVY<7!l*M2a3nLSi`3_Q+ukF$z4Czmp|UPa5I=Mn*{eqm&MJQkQQ9?9?8bMa zy^w+O14SBD)IwysJBje>Kg9>Fo$yyrj3GbYOYD-j z{UvtNGmG|+RTg$VmYf&feZGZoy!Vo|a+^x~Al@zoChegaF%R|#$GqEdd>4^QZ6&2L%Eg`Y8n%TOf`dx}`~`BA9h2C8Sqe1fT0SvnJ2wtd!6 z!@=*W5=|&^N3Y2qKB7#O(+`cu{`7$_U&a6CNAo^|o<1O%2kCMlGC^_&Rl4U*sF<%h zo+&8u9{FH)RC*|0()0ASokqy=xP;>;PG-luVB+Vg!9MXK$K!F)pHJ(`QAXMK?Bx@Z)b%*_M0iq4;uZqT6L*3v4OKik zDO#&-N0DBRhh7_ldaS6e=5V)^SXq4XDcSfWyZ95APwP@PYjL6YyUAV)k{9DeHX6&1 zw|MF~vV$7m9Zb1~J!7v1YsDKF=}oHXKI+rNv=~m71v>)Zw*V#e{fW(rYb=9+=1x}lD5M(YtHzj0S-TeV$CN`4ywwtB+chw$*PGf{Wp zPmTzz8Z>MK+Eiv6aiwdYxRF}ZpQuXF2vE)uRYeZ|>s(rMZuE|w_^m;QJ_T4^JfNWS z)WGVliYb$Ta!h6%g_&|L26sU}j-I}GSz%u_Y^CkINI#*q#W;u?gQ1vg7K_nI0fFT4heRk3EQgY zy#>HLa2o~oeLt8D2Py(73+goY{-O^k;INs~l}LxjD9h;(Q*mh$0^>qAk-Jd|>rNyI zv)w`>!66t4$#hm7aM?cTv@zxd{jIPlCHNL-svS7*MG+t@Jqk?Vr1n|>?q0InVbJn~ zIYc+Sv*th^Ggs&?Yjq}x_;Ki~f)$oBMY}Rtmy)E8vbI-cSe&U8;7v9~@ZBt;VFy=16~66GbwCaSskD@C;>rZM z0E$>pl|ogayUKCEP?rK30$@d^2|BKLZ!12ER3Aj!gt4I=E!W}`jd)gfrpnbB6i_jJ>BiaJIf;3%o2*holO)rPddvM^`G%5nV*Av&mNKY_c-vqDOS? zhPxL4b&wzqsLBU6QL15lrv(%+_yer11Q#s+?uw}}$|Z9ekHLXG(SYEbKoXhM`@`u` zBA|kSnnOqkLbD(yG93b3h_b1!0P8+Ey(ZTy@&Q~Fh{ak4R?_4-PQHaB@{}!Zu^z>Nom-ThaxT3PN<%Ou z7S-FPoMB|03jA2B5UZ&stJ=$i+-lJ(6ISmID^rLm+TLDo{HzSC+veB}c<0n{gY0!g z0U{kV!nTOPsyyy5Co--|)?0-umZ%U)m*c77iyDWttmJNRG}0A2^6TnOl;fFY?()DKt+Xtm z9AH!Kdu`PZwKJNkGXBxM2m^PeLbrcd4DRYSV|I&mR2(GJzIZ}Sx^DN0?O7T(bTNP< z8NhRj+UsvTFtL*6&}8g79jDy3uL5p8?ov)lc0s-%zS79vR zpbkg?fV(?MH6GxjobK)F&AKfY+R~vtM9QH#4FjxY=ehQ-d(g;muhOF13Jv7$?lf91 zRRk2?$G{R6I=1iLW);?=+vsF~1{xIm`%L(CZ;BclPU^AbpHKBqkV_u7Uzs(LQ$?fVe^sJRQdeCRG zJW#QZI|Uf!K)v2A+Lc`Z#?eF+Pz?jHqa{rhV2>h6k!dyC?Sfeb)zKqnjB>HGpDyV_41 zrb{)9c@2pulGZl&2KsH493x8#stN$u5%LhgNWS}SaTpE2`Eu?i=b@J2jiMVV-8H~Z zAgWhTOmV=>j(S`i-mx^=JX0k~zmc3#-niyevJBn4QIt1xZ$xo~h=C*;?sz7Qn{mc( zWN>8FN!XR~#$Q)OvG)%TbP6?0xQr0)4&1NQzIV^H`hkTbeZ}f=yX}F{2VnYxVQEmI z!{+2KYgO!U$tbwtX~Ja}*ub!D)%~p!B5q3w4^w&`#>UV_hlleQ>(9gbP%9l|)!9{IW-{#F+kN#=I81)nxXm)!#8u)Zx{f+_Wsa8SlY63LjRw}GMb3cas zA=G8I@u|e=kg4dqTL+4(HO9h4TzpR7yX zGoh$9z<$Ch*bN` zK>M%q4a~x&t&Y`iMeQ!VdPeTn+MeL1)nYUJ!lDs;}DHmULt8)_uGE*ZM z6rVra*mv}HO3ZyziIrRV z!$5ko^Q}osGv@I33Q&~UtZ7+LE>0SYC(nvelM?kMEEgMJEH?jHY*ATiYbIUXwRH8& z(neRwQunQ;o)=5E{w#4-miug$2lg)CJ+nO29MFDidGy8dgFnk-Dk~EwLOi5Zdu$B2xOIz>YUAU9+<5@C-JQ6l{82y9N^HZ;1#HFPVA#;bfNpj!cXrt z@?RBvM-?d&i=+!~=;RcY_fsA!6i+@izp`3*!p8LbC`X)p-!E{`PyLDSMPNhmK}$Q- zw4~6|&JnwtXj2Ye0zWM z>JOq9yk*JcgFCF&y~t^3wQcjW`-MNpKJ?dq4s3fcY~$@(ms@|)ZR@9^A8P@dq4(X* zD}L*Iov~vsU%u9Zu$*RvX7h?kj%gTaaIx{0Rr7msK$r>RH8+;L8V9))3l&oC)H<1G zfyl9Xu+Z>!uUW_vXtEhF80)+O`=;nk;TJoN7F>H@0d6Ef&qB++o^^(OwtlVtM~_oY zuD`pz0un90G4}pm-8fliwrXv()n}>WpeS7Oc`q$t3=UjI0VikS24WP>MhrG&(;j14 z<5*EaqxcQVZ2WyS_U`AdU@t(eBfU(bWb*#2>qH-adb(2q(SIyT9?*#Jx7r!}U}{W+ zN{^VpMo_IH7RC&;Iv|*e!6zi8q@~#^9PWbx ztWpE%1y;Ue^|JU7jS0o5HgG4kAovfy)N@iYLVOAytTTorM$;q<42&y20xnSjPK|~1 zcNjduABB_)AZV8djbv+;TXk^C1Hp7x(W^kJ5&NYgGLP=$q_zxYTaYtVy;tqFaiWRn ze6N92HP(Uq>8*CJASED19hB~BtwmX#T64d{!h#4fSmTCybMQnJ07;o)(7fb>mo9qh z;sJfr+{Tu`!(%xtQ@v!ROC5izdaJhy#|77UcI?5h!ckhG21D}NJO^}E$a2{y_V&@u z$_hX^hHy$FU*2q|#x6XVMgxdg6Q`ZqkcbR_3SD-ycmMg$-l_7etn4FF#lg3p-a3IF zFLwypx9P?7fOZxKxpK~yvi(dBJG;i!TIH$)`-b^(C>I+E${hC_wo^-3vppna4IQp3VDYvxqZl;wT#Y- zQM^sQSyu0fVvP2LBRk~cP-PCv1-3jP?4_}?8e+ucAOeK&y@*@WM@V^5+l^9S7uV@| zhI_}ySVFO`sj7gWjmH3jvb63dZBDL#E2L;%c6>N^lFe(|uFyr!5Q>loLx-!Q3w(EV zA~)%8Us1d391}67npBbYI4(r)0XnrJeC=3wA{-o}2umf7nBxzM%Bri&nU^~)o

C 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%0D|V=fOZPZa7w0yAu=EAyCzG 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

|wN0_;V1?L)eW89^i%Fe$$@_X^vw%d< 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 diff --git a/docs/images/vercel-configuration.png b/docs/images/vercel-configuration.png deleted file mode 100644 index 51874e151aa026ea6310efbba4c34286f66e1d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37645 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 diff --git a/docs/index.md b/docs/index.md index 092840b8..5039610d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,56 +1,3 @@ ---- -sidebarDepth: 2 ---- +# Home Page -# What is VitePress? - -::: warning WARNING -VitePress is currently in 0.x status. It is already suitable for out-of-the-box documentation use, but the config and theming API may still change between minor releases. -::: - -VitePress is [VuePress](https://vuepress.vuejs.org)' little brother, built on top of [Vite](https://github.com/vitejs/vite). - -## Motivation - -We love VuePress v1, but being built on top of Webpack, the time it takes to spin up the dev server for a simple doc site with a few pages is just becoming unbearable. Even HMR updates can take up to seconds to reflect in the browser! - -Fundamentally, this is because VuePress v1 is a Webpack app under the hood. Even with just two pages, it's a full on Webpack project (including all the theme source files) being compiled. It gets even worse when the project has many pages – every page must first be fully compiled before the server can even display anything! - -Incidentally, Vite solves these problems really well: nearly instant server start, an on-demand compilation that only compiles the page being served, and lightning-fast HMR. Plus, there are a few additional design issues I have noted in VuePress v1 over time but never had the time to fix due to the amount of refactoring it would require. - -Now, with Vite and Vue 3, it is time to rethink what a "Vue-powered static site generator" can really be. - -## Improvements Over VuePress v1 - -There're couple of things that are improved from VuePress v1.... - -### It Uses Vue 3 - -Leverages Vue 3's improved template static analysis to stringify static content as much as possible. Static content is sent as string literals instead of JavaScript render function code – the JS payload is therefore _much_ cheaper to parse, and hydration also becomes faster. - -Note the optimization is applied while still allowing the user to freely mix Vue components inside markdown content – the compiler does the static/dynamic separation for you automatically and you never need to think about it. - -### It Uses Vite Under The Hood - -- Faster dev server start -- Faster hot updates -- Faster build (uses Rollup internally) - -### Lighter Page Weight - -- Vue 3 tree-shaking + Rollup code splitting -- Does not ship metadata for every page on every request. This decouples page weight from total number of pages. Only the current page's metadata is sent. Client side navigation fetches the new page's component and metadata together. -- Does not use `vue-router` because the need of VitePress is very simple and specific - a simple custom router (under 200 LOC) is used instead. -- (WIP) i18n locale data should also be fetched on demand. - -## Other Differences - -VitePress is more opinionated and less configurable: VitePress aims to scale back the complexity in the current VuePress and restart from its minimalist roots. - -VitePress is future oriented: VitePress only targets browsers that support native ES module imports. It encourages the use of native JavaScript without transpilation, and CSS variables for theming. - -## Will This Become The Next VuePress in The Future? - -We already have [vuepress-next](https://github.com/vuepress/vuepress-next), which would be the next major version of VuePress. It also makes lots of improvements over VuePress v1, and also supports Vite now. - -VitePress is not compatible with the current VuePress ecosystem (mostly themes and plugins). The overall idea is that VitePress will have a drastically more minimal theming API (preferring JavaScript APIs instead of file layout conventions) and likely no plugins (all customization is done in themes). +Coming soon... diff --git a/docs/snippets/snippet-with-region.js b/docs/snippets/snippet-with-region.js deleted file mode 100644 index 9c7faaeb..00000000 --- a/docs/snippets/snippet-with-region.js +++ /dev/null @@ -1,7 +0,0 @@ -// #region snippet -function foo() { - // .. -} -// #endregion snippet - -export default foo diff --git a/docs/snippets/snippet.js b/docs/snippets/snippet.js deleted file mode 100644 index 575039d1..00000000 --- a/docs/snippets/snippet.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function () { - // .. -} diff --git a/package.json b/package.json index 6e1cb106..ea0fb88a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vitepress", - "version": "0.22.4", + "version": "1.0.0-draft.1", "description": "Vite & Vue powered static site generator", "main": "dist/node/index.js", "typings": "types/index.d.ts", @@ -14,6 +14,24 @@ "client.d.ts", "theme.d.ts" ], + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vitepress.git" + }, + "keywords": [ + "vite", + "vue", + "vitepress" + ], + "author": "Evan You", + "license": "MIT", + "homepage": "https://github.com/vuejs/vitepress/tree/main/#readme", + "bugs": { + "url": "https://github.com/vuejs/vitepress/issues" + }, + "engines": { + "node": ">=14.0.0" + }, "scripts": { "dev": "run-s dev-shared dev-start", "dev-start": "run-p dev-client dev-node dev-watch", @@ -31,7 +49,8 @@ "lint": "run-s lint:js lint:ts", "lint:js": "prettier --check --write \"{bin,docs,scripts,src}/**/*.js\"", "lint:ts": "prettier --check --write --parser typescript \"{__tests__,src,docs,types}/**/*.ts\"", - "test": "vitest run __tests__ -c __tests__/vitest.config.js --globals", + "test": "vitest run __tests__ -c __tests__/vitest.config.js --global", + "test:all": "run-s lint test", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", "release": "node scripts/release.js", "docs": "run-p dev docs-dev", @@ -42,9 +61,6 @@ "docs-serve": "node ./bin/vitepress serve docs", "ci-docs": "run-s build docs-build" }, - "engines": { - "node": ">=14.0.0" - }, "gitHooks": { "pre-commit": "lint-staged" }, @@ -56,28 +72,15 @@ "prettier --parser=typescript --write" ] }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vitepress.git" - }, - "keywords": [ - "vite", - "vue", - "vitepress" - ], - "author": "Evan You", - "license": "MIT", - "homepage": "https://github.com/vuejs/vitepress/tree/master/#readme", - "bugs": { - "url": "https://github.com/vuejs/vitepress/issues" - }, "dependencies": { "@docsearch/css": "^3.0.0", "@docsearch/js": "^3.0.0", "@vitejs/plugin-vue": "^2.3.2", + "@vueuse/core": "^8.5.0", + "body-scroll-lock": "^4.0.0-beta.0", "prismjs": "^1.25.0", "vite": "^2.9.7", - "vue": "^3.2.33" + "vue": "3.2.33" }, "devDependencies": { "@microsoft/api-extractor": "^7.23.1", @@ -85,6 +88,7 @@ "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.0.4", + "@types/body-scroll-lock": "^3.1.0", "@types/compression": "^1.7.0", "@types/cross-spawn": "^6.0.2", "@types/debug": "^4.1.7", diff --git a/src/client/app/components/ClientOnly.ts b/src/client/app/components/ClientOnly.ts index 2e1da7c3..e7b1f17e 100644 --- a/src/client/app/components/ClientOnly.ts +++ b/src/client/app/components/ClientOnly.ts @@ -1,11 +1,13 @@ -import { ref, onMounted, defineComponent } from 'vue' +import { defineComponent, ref, onMounted } from 'vue' export const ClientOnly = defineComponent({ setup(_, { slots }) { const show = ref(false) + onMounted(() => { show.value = true }) + return () => (show.value && slots.default ? slots.default() : null) } }) diff --git a/src/client/app/index.ts b/src/client/app/index.ts index ea5fe60c..96052d19 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -7,11 +7,11 @@ import { onMounted, watch } from 'vue' +import Theme from '/@theme/index' import { inBrowser, pathToFile } from './utils' import { Router, RouterSymbol, createRouter } from './router' import { siteDataRef, useData } from './data' import { useUpdateHead } from './composables/head' -import Theme from '/@theme/index' import { usePrefetch } from './composables/preFetch' import { dataSymbol, initData } from './data' import { Content } from './components/Content' diff --git a/src/client/shim.d.ts b/src/client/shim.d.ts index c6c262e5..2d25724b 100644 --- a/src/client/shim.d.ts +++ b/src/client/shim.d.ts @@ -1,7 +1,8 @@ declare const __VP_HASH_MAP__: Record +declare const __ALGOLIA__: boolean declare const __CARBON__: boolean declare const __BSA__: boolean -declare const __ALGOLIA__: boolean + declare module '*.vue' { import { ComponentOptions } from 'vue' const comp: ComponentOptions @@ -13,7 +14,7 @@ declare module '@siteData' { export default data } -// this module's typing is broken +// this module's typing is broken. declare module '@docsearch/js' { function docsearch(props: T): void export default docsearch diff --git a/src/client/theme-default/Layout.vue b/src/client/theme-default/Layout.vue index 26ba9b4c..a890b801 100644 --- a/src/client/theme-default/Layout.vue +++ b/src/client/theme-default/Layout.vue @@ -1,189 +1,31 @@ - - diff --git a/src/client/theme-default/NotFound.vue b/src/client/theme-default/NotFound.vue index 35cef3e9..5f2e86e4 100644 --- a/src/client/theme-default/NotFound.vue +++ b/src/client/theme-default/NotFound.vue @@ -1,15 +1,8 @@ - - + + diff --git a/src/client/theme-default/components/AlgoliaSearchBox.vue b/src/client/theme-default/components/AlgoliaSearchBox.vue deleted file mode 100644 index 510e15d4..00000000 --- a/src/client/theme-default/components/AlgoliaSearchBox.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/BuySellAds.vue b/src/client/theme-default/components/BuySellAds.vue deleted file mode 100644 index 6c998b39..00000000 --- a/src/client/theme-default/components/BuySellAds.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/CarbonAds.vue b/src/client/theme-default/components/CarbonAds.vue deleted file mode 100644 index df597fb3..00000000 --- a/src/client/theme-default/components/CarbonAds.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/EditLink.vue b/src/client/theme-default/components/EditLink.vue deleted file mode 100644 index ffdab5ea..00000000 --- a/src/client/theme-default/components/EditLink.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/Home.vue b/src/client/theme-default/components/Home.vue deleted file mode 100644 index c4c976a4..00000000 --- a/src/client/theme-default/components/Home.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/HomeFeatures.vue b/src/client/theme-default/components/HomeFeatures.vue deleted file mode 100644 index c435248e..00000000 --- a/src/client/theme-default/components/HomeFeatures.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/HomeFooter.vue b/src/client/theme-default/components/HomeFooter.vue deleted file mode 100644 index 55f27af4..00000000 --- a/src/client/theme-default/components/HomeFooter.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/HomeHero.vue b/src/client/theme-default/components/HomeHero.vue deleted file mode 100644 index eb396dd0..00000000 --- a/src/client/theme-default/components/HomeHero.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/LastUpdated.vue b/src/client/theme-default/components/LastUpdated.vue deleted file mode 100644 index 7adf7222..00000000 --- a/src/client/theme-default/components/LastUpdated.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavBar.vue b/src/client/theme-default/components/NavBar.vue deleted file mode 100644 index 5cefd432..00000000 --- a/src/client/theme-default/components/NavBar.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavBarTitle.vue b/src/client/theme-default/components/NavBarTitle.vue deleted file mode 100644 index 8b9d3709..00000000 --- a/src/client/theme-default/components/NavBarTitle.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavDropdownLink.vue b/src/client/theme-default/components/NavDropdownLink.vue deleted file mode 100644 index eb1001fd..00000000 --- a/src/client/theme-default/components/NavDropdownLink.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavDropdownLinkItem.vue b/src/client/theme-default/components/NavDropdownLinkItem.vue deleted file mode 100644 index 907d6ad5..00000000 --- a/src/client/theme-default/components/NavDropdownLinkItem.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavLink.vue b/src/client/theme-default/components/NavLink.vue deleted file mode 100644 index 29e76747..00000000 --- a/src/client/theme-default/components/NavLink.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NavLinks.vue b/src/client/theme-default/components/NavLinks.vue deleted file mode 100644 index bc221596..00000000 --- a/src/client/theme-default/components/NavLinks.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/NextAndPrevLinks.vue b/src/client/theme-default/components/NextAndPrevLinks.vue deleted file mode 100644 index e826aca4..00000000 --- a/src/client/theme-default/components/NextAndPrevLinks.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/Page.vue b/src/client/theme-default/components/Page.vue deleted file mode 100644 index 7a1d422b..00000000 --- a/src/client/theme-default/components/Page.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/PageFooter.vue b/src/client/theme-default/components/PageFooter.vue deleted file mode 100644 index 93c7ce60..00000000 --- a/src/client/theme-default/components/PageFooter.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/SideBar.vue b/src/client/theme-default/components/SideBar.vue deleted file mode 100644 index 0c112e18..00000000 --- a/src/client/theme-default/components/SideBar.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/SideBarLink.ts b/src/client/theme-default/components/SideBarLink.ts deleted file mode 100644 index 42ba5012..00000000 --- a/src/client/theme-default/components/SideBarLink.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { FunctionalComponent, h, VNode } from 'vue' -import { useRoute, useData } from 'vitepress' -import { Header } from '../../shared' -import { DefaultTheme } from '../config' -import { joinUrl, isActive } from '../utils' - -interface HeaderWithChildren extends Header { - children?: Header[] -} - -export const SideBarLink: FunctionalComponent<{ - item: DefaultTheme.SideBarItem - depth?: number -}> = (props) => { - const route = useRoute() - const { site, frontmatter } = useData() - const depth = props.depth || 1 - const maxDepth = frontmatter.value.sidebarDepth || Infinity - - const headers = route.data.headers - const text = props.item.text - const link = resolveLink(site.value.base, props.item.link) - const children = (props.item as DefaultTheme.SideBarGroup).children - const active = isActive(route, props.item.link) - const childItems = - depth < maxDepth - ? createChildren(active, children, headers, depth + 1) - : null - - return h('li', { class: 'sidebar-link' }, [ - h( - link ? 'a' : 'p', - { - class: { 'sidebar-link-item': true, active }, - href: link - }, - text - ), - childItems - ]) -} - -function resolveLink(base: string, path?: string): string | undefined { - if (path === undefined) { - return path - } - - // keep relative hash to the same page - if (path.startsWith('#')) { - return path - } - - return joinUrl(base, path) -} - -function createChildren( - active: boolean, - children?: DefaultTheme.SideBarItem[], - headers?: Header[], - depth = 1 -): VNode | null { - if (children && children.length > 0) { - return h( - 'ul', - { class: 'sidebar-links' }, - children.map((c) => { - return h(SideBarLink, { item: c, depth }) - }) - ) - } - - return active && headers - ? createChildren(false, resolveHeaders(headers), undefined, depth) - : null -} - -function resolveHeaders(headers: Header[]): DefaultTheme.SideBarItem[] { - return mapHeaders(groupHeaders(headers)) -} - -function groupHeaders(headers: Header[]): HeaderWithChildren[] { - headers = headers.map((h) => Object.assign({}, h)) - let lastH2: HeaderWithChildren - headers.forEach((h) => { - if (h.level === 2) { - lastH2 = h - } else if (lastH2) { - ;(lastH2.children || (lastH2.children = [])).push(h) - } - }) - return headers.filter((h) => h.level === 2) -} - -function mapHeaders(headers: HeaderWithChildren[]): DefaultTheme.SideBarItem[] { - return headers.map((header) => ({ - text: header.title, - link: `#${header.slug}`, - children: header.children ? mapHeaders(header.children) : undefined - })) -} diff --git a/src/client/theme-default/components/SideBarLinks.vue b/src/client/theme-default/components/SideBarLinks.vue deleted file mode 100644 index 768013e3..00000000 --- a/src/client/theme-default/components/SideBarLinks.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/client/theme-default/components/ToggleSideBarButton.vue b/src/client/theme-default/components/ToggleSideBarButton.vue deleted file mode 100644 index 07448cc0..00000000 --- a/src/client/theme-default/components/ToggleSideBarButton.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/VPAlgoliaSearchBox.vue b/src/client/theme-default/components/VPAlgoliaSearchBox.vue new file mode 100644 index 00000000..c4eede49 --- /dev/null +++ b/src/client/theme-default/components/VPAlgoliaSearchBox.vue @@ -0,0 +1,127 @@ + + + diff --git a/src/client/theme-default/components/VPBackdrop.vue b/src/client/theme-default/components/VPBackdrop.vue new file mode 100644 index 00000000..b19239d5 --- /dev/null +++ b/src/client/theme-default/components/VPBackdrop.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/client/theme-default/components/VPContent.vue b/src/client/theme-default/components/VPContent.vue new file mode 100644 index 00000000..d18af788 --- /dev/null +++ b/src/client/theme-default/components/VPContent.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/theme-default/components/VPContentDoc.vue b/src/client/theme-default/components/VPContentDoc.vue new file mode 100644 index 00000000..8b60b4df --- /dev/null +++ b/src/client/theme-default/components/VPContentDoc.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/client/theme-default/components/VPContentDocFooter.vue b/src/client/theme-default/components/VPContentDocFooter.vue new file mode 100644 index 00000000..4c2d14b5 --- /dev/null +++ b/src/client/theme-default/components/VPContentDocFooter.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/client/theme-default/components/VPContentDocOutline.vue b/src/client/theme-default/components/VPContentDocOutline.vue new file mode 100644 index 00000000..b741c26d --- /dev/null +++ b/src/client/theme-default/components/VPContentDocOutline.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/client/theme-default/components/VPFlyout.vue b/src/client/theme-default/components/VPFlyout.vue new file mode 100644 index 00000000..fbe065f3 --- /dev/null +++ b/src/client/theme-default/components/VPFlyout.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/src/client/theme-default/components/VPLink.vue b/src/client/theme-default/components/VPLink.vue new file mode 100644 index 00000000..945945b6 --- /dev/null +++ b/src/client/theme-default/components/VPLink.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/client/theme-default/components/VPLocalNav.vue b/src/client/theme-default/components/VPLocalNav.vue new file mode 100644 index 00000000..885bc740 --- /dev/null +++ b/src/client/theme-default/components/VPLocalNav.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/client/theme-default/components/VPMenu.vue b/src/client/theme-default/components/VPMenu.vue new file mode 100644 index 00000000..3fde13be --- /dev/null +++ b/src/client/theme-default/components/VPMenu.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/client/theme-default/components/VPMenuGroup.vue b/src/client/theme-default/components/VPMenuGroup.vue new file mode 100644 index 00000000..689fdab8 --- /dev/null +++ b/src/client/theme-default/components/VPMenuGroup.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/client/theme-default/components/VPMenuLink.vue b/src/client/theme-default/components/VPMenuLink.vue new file mode 100644 index 00000000..29f4c8ac --- /dev/null +++ b/src/client/theme-default/components/VPMenuLink.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/client/theme-default/components/VPNav.vue b/src/client/theme-default/components/VPNav.vue new file mode 100644 index 00000000..f65f1368 --- /dev/null +++ b/src/client/theme-default/components/VPNav.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBar.vue b/src/client/theme-default/components/VPNavBar.vue new file mode 100644 index 00000000..7d5c3196 --- /dev/null +++ b/src/client/theme-default/components/VPNavBar.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarAppearance.vue b/src/client/theme-default/components/VPNavBarAppearance.vue new file mode 100644 index 00000000..39add39a --- /dev/null +++ b/src/client/theme-default/components/VPNavBarAppearance.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarExtra.vue b/src/client/theme-default/components/VPNavBarExtra.vue new file mode 100644 index 00000000..13abe687 --- /dev/null +++ b/src/client/theme-default/components/VPNavBarExtra.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarHamburger.vue b/src/client/theme-default/components/VPNavBarHamburger.vue new file mode 100644 index 00000000..1e014177 --- /dev/null +++ b/src/client/theme-default/components/VPNavBarHamburger.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarMenu.vue b/src/client/theme-default/components/VPNavBarMenu.vue new file mode 100644 index 00000000..c8fb6df2 --- /dev/null +++ b/src/client/theme-default/components/VPNavBarMenu.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarMenuGroup.vue b/src/client/theme-default/components/VPNavBarMenuGroup.vue new file mode 100644 index 00000000..afa7716a --- /dev/null +++ b/src/client/theme-default/components/VPNavBarMenuGroup.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/client/theme-default/components/VPNavBarMenuLink.vue b/src/client/theme-default/components/VPNavBarMenuLink.vue new file mode 100644 index 00000000..ac495a0e --- /dev/null +++ b/src/client/theme-default/components/VPNavBarMenuLink.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarSearch.vue b/src/client/theme-default/components/VPNavBarSearch.vue new file mode 100644 index 00000000..3359fc49 --- /dev/null +++ b/src/client/theme-default/components/VPNavBarSearch.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarSocialLinks.vue b/src/client/theme-default/components/VPNavBarSocialLinks.vue new file mode 100644 index 00000000..e5dfd630 --- /dev/null +++ b/src/client/theme-default/components/VPNavBarSocialLinks.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarTitle.vue b/src/client/theme-default/components/VPNavBarTitle.vue new file mode 100644 index 00000000..1d4a8b6d --- /dev/null +++ b/src/client/theme-default/components/VPNavBarTitle.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarTranslations.vue b/src/client/theme-default/components/VPNavBarTranslations.vue new file mode 100644 index 00000000..a8218f1a --- /dev/null +++ b/src/client/theme-default/components/VPNavBarTranslations.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreen.vue b/src/client/theme-default/components/VPNavScreen.vue new file mode 100644 index 00000000..7204ac8f --- /dev/null +++ b/src/client/theme-default/components/VPNavScreen.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenAppearance.vue b/src/client/theme-default/components/VPNavScreenAppearance.vue new file mode 100644 index 00000000..452536b6 --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenAppearance.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenMenu.vue b/src/client/theme-default/components/VPNavScreenMenu.vue new file mode 100644 index 00000000..d75ef61d --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenMenu.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/client/theme-default/components/VPNavScreenMenuGroup.vue b/src/client/theme-default/components/VPNavScreenMenuGroup.vue new file mode 100644 index 00000000..140dcec6 --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenMenuGroup.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenMenuGroupLink.vue b/src/client/theme-default/components/VPNavScreenMenuGroupLink.vue new file mode 100644 index 00000000..61f5bd83 --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenMenuGroupLink.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenMenuGroupSection.vue b/src/client/theme-default/components/VPNavScreenMenuGroupSection.vue new file mode 100644 index 00000000..d45a336d --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenMenuGroupSection.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenMenuLink.vue b/src/client/theme-default/components/VPNavScreenMenuLink.vue new file mode 100644 index 00000000..f7ae9800 --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenMenuLink.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavScreenSocialLinks.vue b/src/client/theme-default/components/VPNavScreenSocialLinks.vue new file mode 100644 index 00000000..45f4d318 --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenSocialLinks.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/client/theme-default/components/VPNavScreenTranslations.vue b/src/client/theme-default/components/VPNavScreenTranslations.vue new file mode 100644 index 00000000..7305554e --- /dev/null +++ b/src/client/theme-default/components/VPNavScreenTranslations.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/client/theme-default/components/VPSidebar.vue b/src/client/theme-default/components/VPSidebar.vue new file mode 100644 index 00000000..166d90da --- /dev/null +++ b/src/client/theme-default/components/VPSidebar.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/client/theme-default/components/VPSidebarGroup.vue b/src/client/theme-default/components/VPSidebarGroup.vue new file mode 100644 index 00000000..09bf3c0d --- /dev/null +++ b/src/client/theme-default/components/VPSidebarGroup.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/theme-default/components/VPSidebarLink.vue b/src/client/theme-default/components/VPSidebarLink.vue new file mode 100644 index 00000000..c94d04bf --- /dev/null +++ b/src/client/theme-default/components/VPSidebarLink.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/client/theme-default/components/VPSkipLink.vue b/src/client/theme-default/components/VPSkipLink.vue new file mode 100644 index 00000000..5324e8bd --- /dev/null +++ b/src/client/theme-default/components/VPSkipLink.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/client/theme-default/components/VPSocialLink.vue b/src/client/theme-default/components/VPSocialLink.vue new file mode 100644 index 00000000..38ace87a --- /dev/null +++ b/src/client/theme-default/components/VPSocialLink.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/client/theme-default/components/VPSocialLinks.vue b/src/client/theme-default/components/VPSocialLinks.vue new file mode 100644 index 00000000..80348a2f --- /dev/null +++ b/src/client/theme-default/components/VPSocialLinks.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/client/theme-default/components/VPSwitch.vue b/src/client/theme-default/components/VPSwitch.vue new file mode 100644 index 00000000..94c47b70 --- /dev/null +++ b/src/client/theme-default/components/VPSwitch.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/client/theme-default/components/VPSwitchAppearance.vue b/src/client/theme-default/components/VPSwitchAppearance.vue new file mode 100644 index 00000000..cfac77ca --- /dev/null +++ b/src/client/theme-default/components/VPSwitchAppearance.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/client/theme-default/components/icons/OutboundLink.vue b/src/client/theme-default/components/icons/OutboundLink.vue deleted file mode 100644 index 4d74eeeb..00000000 --- a/src/client/theme-default/components/icons/OutboundLink.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/client/theme-default/components/icons/VPIconAlignJustify.vue b/src/client/theme-default/components/icons/VPIconAlignJustify.vue new file mode 100644 index 00000000..653dab13 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconAlignJustify.vue @@ -0,0 +1,8 @@ + diff --git a/src/client/theme-default/components/icons/VPIconAlignLeft.vue b/src/client/theme-default/components/icons/VPIconAlignLeft.vue new file mode 100644 index 00000000..8dc84eae --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconAlignLeft.vue @@ -0,0 +1,8 @@ + diff --git a/src/client/theme-default/components/icons/VPIconAlignRight.vue b/src/client/theme-default/components/icons/VPIconAlignRight.vue new file mode 100644 index 00000000..16cbb3c7 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconAlignRight.vue @@ -0,0 +1,8 @@ + diff --git a/src/client/theme-default/components/icons/ArrowLeft.vue b/src/client/theme-default/components/icons/VPIconArrowLeft.vue similarity index 100% rename from src/client/theme-default/components/icons/ArrowLeft.vue rename to src/client/theme-default/components/icons/VPIconArrowLeft.vue diff --git a/src/client/theme-default/components/icons/ArrowRight.vue b/src/client/theme-default/components/icons/VPIconArrowRight.vue similarity index 100% rename from src/client/theme-default/components/icons/ArrowRight.vue rename to src/client/theme-default/components/icons/VPIconArrowRight.vue diff --git a/src/client/theme-default/components/icons/VPIconChevronDown.vue b/src/client/theme-default/components/icons/VPIconChevronDown.vue new file mode 100644 index 00000000..d72f4ee8 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconChevronDown.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconChevronLeft.vue b/src/client/theme-default/components/icons/VPIconChevronLeft.vue new file mode 100644 index 00000000..013eb7fd --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconChevronLeft.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconChevronRight.vue b/src/client/theme-default/components/icons/VPIconChevronRight.vue new file mode 100644 index 00000000..cf72418f --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconChevronRight.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconChevronUp.vue b/src/client/theme-default/components/icons/VPIconChevronUp.vue new file mode 100644 index 00000000..0b6a873e --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconChevronUp.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconDiscord.vue b/src/client/theme-default/components/icons/VPIconDiscord.vue new file mode 100644 index 00000000..59174574 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconDiscord.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconEdit.vue b/src/client/theme-default/components/icons/VPIconEdit.vue new file mode 100644 index 00000000..f30a62dd --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconEdit.vue @@ -0,0 +1,6 @@ + diff --git a/src/client/theme-default/components/icons/VPIconExternalLink.vue b/src/client/theme-default/components/icons/VPIconExternalLink.vue new file mode 100644 index 00000000..72459909 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconExternalLink.vue @@ -0,0 +1,13 @@ + diff --git a/src/client/theme-default/components/icons/VPIconFacebook.vue b/src/client/theme-default/components/icons/VPIconFacebook.vue new file mode 100644 index 00000000..6d9b6740 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconFacebook.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconGitHub.vue b/src/client/theme-default/components/icons/VPIconGitHub.vue new file mode 100644 index 00000000..ef59cdab --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconGitHub.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconInstagram.vue b/src/client/theme-default/components/icons/VPIconInstagram.vue new file mode 100644 index 00000000..2b77d52c --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconInstagram.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconLanguages.vue b/src/client/theme-default/components/icons/VPIconLanguages.vue new file mode 100644 index 00000000..71a728fc --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconLanguages.vue @@ -0,0 +1,9 @@ + diff --git a/src/client/theme-default/components/icons/VPIconLinkedIn.vue b/src/client/theme-default/components/icons/VPIconLinkedIn.vue new file mode 100644 index 00000000..75b321fd --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconLinkedIn.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconMoon.vue b/src/client/theme-default/components/icons/VPIconMoon.vue new file mode 100644 index 00000000..a9b205c6 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconMoon.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconMoreHorizontal.vue b/src/client/theme-default/components/icons/VPIconMoreHorizontal.vue new file mode 100644 index 00000000..6fa7fca2 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconMoreHorizontal.vue @@ -0,0 +1,7 @@ + diff --git a/src/client/theme-default/components/icons/VPIconPlus.vue b/src/client/theme-default/components/icons/VPIconPlus.vue new file mode 100644 index 00000000..74d9f695 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconPlus.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconSlack.vue b/src/client/theme-default/components/icons/VPIconSlack.vue new file mode 100644 index 00000000..9a1896ce --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconSlack.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconSun.vue b/src/client/theme-default/components/icons/VPIconSun.vue new file mode 100644 index 00000000..8ecb25ba --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconSun.vue @@ -0,0 +1,13 @@ + diff --git a/src/client/theme-default/components/icons/VPIconTwitter.vue b/src/client/theme-default/components/icons/VPIconTwitter.vue new file mode 100644 index 00000000..53250404 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconTwitter.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconYouTube.vue b/src/client/theme-default/components/icons/VPIconYouTube.vue new file mode 100644 index 00000000..f5bc35a0 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconYouTube.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/composables/activeSidebarLink.ts b/src/client/theme-default/composables/activeSidebarLink.ts deleted file mode 100644 index 1b3b1d01..00000000 --- a/src/client/theme-default/composables/activeSidebarLink.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { onMounted, onUnmounted, onUpdated } from 'vue' - -export function useActiveSidebarLinks() { - let rootActiveLink: HTMLAnchorElement | null = null - let activeLink: HTMLAnchorElement | null = null - - const onScroll = throttleAndDebounce(setActiveLink, 300) - - function setActiveLink(): void { - const sidebarLinks = getSidebarLinks() - const anchors = getAnchors(sidebarLinks) - - for (let i = 0; i < anchors.length; i++) { - const anchor = anchors[i] - const nextAnchor = anchors[i + 1] - - const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor) - - if (isActive) { - history.replaceState(null, document.title, hash ? hash : ' ') - activateLink(hash) - return - } - } - } - - function activateLink(hash: string | null): void { - deactiveLink(activeLink) - deactiveLink(rootActiveLink) - - activeLink = document.querySelector(`.sidebar a[href="${hash}"]`) - - if (!activeLink) { - return - } - - activeLink.classList.add('active') - - // also add active class to parent h2 anchors - const rootLi = activeLink.closest('.sidebar-links > ul > li') - - if (rootLi && rootLi !== activeLink.parentElement) { - rootActiveLink = rootLi.querySelector('a') - rootActiveLink && rootActiveLink.classList.add('active') - } else { - rootActiveLink = null - } - } - - function deactiveLink(link: HTMLAnchorElement | null): void { - link && link.classList.remove('active') - } - - onMounted(() => { - setActiveLink() - window.addEventListener('scroll', onScroll) - }) - - onUpdated(() => { - // sidebar update means a route change - activateLink(decodeURIComponent(location.hash)) - }) - - onUnmounted(() => { - window.removeEventListener('scroll', onScroll) - }) -} - -function getSidebarLinks(): HTMLAnchorElement[] { - return [].slice.call( - document.querySelectorAll('.sidebar a.sidebar-link-item') - ) -} - -function getAnchors(sidebarLinks: HTMLAnchorElement[]): HTMLAnchorElement[] { - return [].slice - .call(document.querySelectorAll('.header-anchor')) - .filter((anchor: HTMLAnchorElement) => - sidebarLinks.some((sidebarLink) => sidebarLink.hash === anchor.hash) - ) as HTMLAnchorElement[] -} - -function getPageOffset(): number { - return (document.querySelector('.nav-bar') as HTMLElement).offsetHeight -} - -function getAnchorTop(anchor: HTMLAnchorElement): number { - const pageOffset = getPageOffset() - - return anchor.parentElement!.offsetTop - pageOffset - 15 -} - -function isAnchorActive( - index: number, - anchor: HTMLAnchorElement, - nextAnchor: HTMLAnchorElement -): [boolean, string | null] { - const scrollTop = window.scrollY - - if (index === 0 && scrollTop === 0) { - return [true, null] - } - - if (scrollTop < getAnchorTop(anchor)) { - return [false, null] - } - - if (!nextAnchor || scrollTop < getAnchorTop(nextAnchor)) { - return [true, decodeURIComponent(anchor.hash)] - } - - return [false, null] -} - -function throttleAndDebounce(fn: () => void, delay: number): () => void { - let timeout: number - let called = false - - return () => { - if (timeout) { - clearTimeout(timeout) - } - - if (!called) { - fn() - called = true - setTimeout(() => { - called = false - }, delay) - } else { - timeout = setTimeout(fn, delay) - } - } -} diff --git a/src/client/theme-default/composables/edit-link.ts b/src/client/theme-default/composables/edit-link.ts new file mode 100644 index 00000000..32bf66c2 --- /dev/null +++ b/src/client/theme-default/composables/edit-link.ts @@ -0,0 +1,26 @@ +import { computed } from 'vue' +import { useData } from 'vitepress' + +export function useEditLink() { + const { theme, page } = useData() + + return computed(() => { + const url = [ + 'https://github.com', + theme.value.editLink?.repo || '???', + 'edit', + theme.value.editLink?.branch || 'main', + theme.value.editLink?.dir || null, + page.value.relativePath + ] + .filter((v) => v) + .join('/') + + const text = theme.value.editLink?.text ?? 'Edit this page' + + return { + url, + text + } + }) +} diff --git a/src/client/theme-default/composables/editLink.ts b/src/client/theme-default/composables/editLink.ts deleted file mode 100644 index f6cfdcc3..00000000 --- a/src/client/theme-default/composables/editLink.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { computed } from 'vue' -import { useData } from 'vitepress' -import { endingSlashRE, isExternal } from '../utils' - -const bitbucketRE = /bitbucket.org/ - -export function useEditLink() { - const { page, theme, frontmatter } = useData() - - const url = computed(() => { - const { - repo, - docsDir = '', - docsBranch = 'master', - docsRepo = repo, - editLinks - } = theme.value - - const showEditLink = - frontmatter.value.editLink != null - ? frontmatter.value.editLink - : editLinks - const { relativePath } = page.value - - if (!showEditLink || !relativePath || !repo) { - return null - } - - return createUrl(repo, docsRepo, docsDir, docsBranch, relativePath) - }) - - const text = computed(() => { - return theme.value.editLinkText || 'Edit this page' - }) - - return { - url, - text - } -} - -function createUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string -): string { - return bitbucketRE.test(repo) - ? createBitbucketUrl(repo, docsRepo, docsDir, docsBranch, path) - : createGitHubUrl(repo, docsRepo, docsDir, docsBranch, path) -} - -function createGitHubUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string -): string { - const base = isExternal(docsRepo) - ? docsRepo - : `https://github.com/${docsRepo}` - - return ( - base.replace(endingSlashRE, '') + - `/edit` + - `/${docsBranch}/` + - (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '') + - path - ) -} - -function createBitbucketUrl( - repo: string, - docsRepo: string, - docsDir: string, - docsBranch: string, - path: string -): string { - const base = isExternal(docsRepo) ? docsRepo : repo - - return ( - base.replace(endingSlashRE, '') + - `/src` + - `/${docsBranch}/` + - (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '') + - path + - `?mode=edit&spa=0&at=${docsBranch}&fileviewer=file-view-default` - ) -} diff --git a/src/client/theme-default/composables/flyout.ts b/src/client/theme-default/composables/flyout.ts new file mode 100644 index 00000000..f71c1d54 --- /dev/null +++ b/src/client/theme-default/composables/flyout.ts @@ -0,0 +1,58 @@ +import { Ref, ref, watch, readonly, onUnmounted } from 'vue' + +interface UseFlyoutOptions { + el: Ref + onFocus?(): void + onBlur?(): void +} + +export const focusedElement = ref() + +let active = false +let listeners = 0 + +export function useFlyout(options: UseFlyoutOptions) { + const focus = ref(false) + + if (typeof window !== 'undefined') { + !active && activateFocusTracking() + + listeners++ + + const unwatch = watch(focusedElement, (el) => { + if (el === options.el.value || options.el.value?.contains(el as Node)) { + focus.value = true + options.onFocus?.() + } else { + focus.value = false + options.onBlur?.() + } + }) + + onUnmounted(() => { + unwatch() + + listeners-- + + if (!listeners) { + deactivateFocusTracking() + } + }) + } + + return readonly(focus) +} + +function activateFocusTracking() { + document.addEventListener('focusin', handleFocusIn) + active = true + focusedElement.value = document.activeElement as HTMLElement +} + +function deactivateFocusTracking() { + document.removeEventListener('focusin', handleFocusIn) +} + +function handleFocusIn() { + focusedElement.value = document.activeElement as HTMLElement +} diff --git a/src/client/theme-default/composables/nav.ts b/src/client/theme-default/composables/nav.ts index 7c935721..d719dbb3 100644 --- a/src/client/theme-default/composables/nav.ts +++ b/src/client/theme-default/composables/nav.ts @@ -1,7 +1,39 @@ -import { computed } from 'vue' +import { ref, computed } from 'vue' import { useData, useRoute } from 'vitepress' import type { DefaultTheme } from '../config' +export function useNav() { + const isScreenOpen = ref(false) + + function openScreen() { + isScreenOpen.value = true + window.addEventListener('resize', closeScreenOnTabletWindow) + } + + function closeScreen() { + isScreenOpen.value = false + window.removeEventListener('resize', closeScreenOnTabletWindow) + } + + function toggleScreen() { + isScreenOpen.value ? closeScreen() : openScreen() + } + + /** + * Close screen when the user resizes the window wider than tablet size. + */ + function closeScreenOnTabletWindow() { + window.outerWidth >= 768 && closeScreen() + } + + return { + isScreenOpen, + openScreen, + closeScreen, + toggleScreen + } +} + export function useLanguageLinks() { const { site, localePath, theme } = useData() diff --git a/src/client/theme-default/composables/navLink.ts b/src/client/theme-default/composables/navLink.ts deleted file mode 100644 index bc7a4d44..00000000 --- a/src/client/theme-default/composables/navLink.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { computed, Ref } from 'vue' -import { useRoute, withBase } from 'vitepress' -import { isExternal as isExternalCheck } from '../utils' -import type { DefaultTheme } from '../config' - -export function useNavLink(item: Ref) { - const route = useRoute() - - const isExternal = isExternalCheck(item.value.link) - - const props = computed(() => { - const routePath = normalizePath(`/${route.data.relativePath}`) - - let active = false - if (item.value.activeMatch) { - active = new RegExp(item.value.activeMatch).test(routePath) - } else { - const itemPath = normalizePath(item.value.link) - active = - itemPath === '/' - ? itemPath === routePath - : routePath.startsWith(itemPath) - } - - return { - class: { - active, - isExternal - }, - href: isExternal ? item.value.link : withBase(item.value.link), - target: item.value.target || (isExternal ? `_blank` : null), - rel: item.value.rel || (isExternal ? `noopener noreferrer` : null), - 'aria-label': item.value.ariaLabel - } - }) - - return { - props, - isExternal - } -} - -function normalizePath(path: string): string { - return path - .replace(/#.*$/, '') - .replace(/\?.*$/, '') - .replace(/\.(html|md)$/, '') - .replace(/\/index$/, '/') -} diff --git a/src/client/theme-default/composables/nextAndPrevLinks.ts b/src/client/theme-default/composables/nextAndPrevLinks.ts deleted file mode 100644 index d7006ea6..00000000 --- a/src/client/theme-default/composables/nextAndPrevLinks.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { computed } from 'vue' -import { useData } from 'vitepress' -import { isArray, ensureStartingSlash, removeExtention } from '../utils' -import { getSideBarConfig, getFlatSideBarLinks } from '../support/sideBar' - -export function useNextAndPrevLinks() { - const { page, theme } = useData() - - const path = computed(() => { - return removeExtention(ensureStartingSlash(page.value.relativePath)) - }) - - const candidates = computed(() => { - const config = getSideBarConfig(theme.value.sidebar, path.value) - - return isArray(config) ? getFlatSideBarLinks(config) : [] - }) - - const index = computed(() => { - return candidates.value.findIndex((item) => { - return item.link === path.value - }) - }) - - const next = computed(() => { - if ( - theme.value.nextLinks !== false && - index.value > -1 && - index.value < candidates.value.length - 1 - ) { - return candidates.value[index.value + 1] - } - }) - - const prev = computed(() => { - if (theme.value.prevLinks !== false && index.value > 0) { - return candidates.value[index.value - 1] - } - }) - - const hasLinks = computed(() => !!next.value || !!prev.value) - - return { - next, - prev, - hasLinks - } -} diff --git a/src/client/theme-default/composables/outline.ts b/src/client/theme-default/composables/outline.ts new file mode 100644 index 00000000..f1ce455a --- /dev/null +++ b/src/client/theme-default/composables/outline.ts @@ -0,0 +1,185 @@ +import { Ref, onMounted, onUpdated, onUnmounted } from 'vue' +import { Header } from 'vitepress' +import { useMediaQuery } from '@vueuse/core' + +interface HeaderWithChildren extends Header { + children?: Header[] + hidden?: boolean +} + +interface MenuItemWithLinkAndChildren { + text: string + link: string + children?: MenuItemWithLinkAndChildren[] + hidden?: boolean +} + +// magic number to avoid repeated retrieval +const PAGE_OFFSET = 56 + +export function resolveHeaders(headers: Header[]) { + return mapHeaders(groupHeaders(headers)) +} + +function groupHeaders(headers: Header[]): HeaderWithChildren[] { + headers = headers.map((h) => Object.assign({}, h)) + + let lastH2: HeaderWithChildren | undefined + + for (const h of headers) { + if (h.level === 2) { + lastH2 = h + } else if (lastH2 && h.level <= 3) { + ;(lastH2.children || (lastH2.children = [])).push(h) + } + } + + return headers.filter((h) => h.level === 2) +} + +function mapHeaders( + headers: HeaderWithChildren[] +): MenuItemWithLinkAndChildren[] { + return headers.map((header) => ({ + text: header.title, + link: `#${header.slug}`, + children: header.children ? mapHeaders(header.children) : undefined, + hidden: header.hidden + })) +} + +export function useActiveAnchor( + container: Ref, + marker: Ref +) { + const isOutlineEnabled = useMediaQuery('(min-width: 1280px)') + const onScroll = throttleAndDebounce(setActiveLink, 100) + + let prevActiveLink: HTMLAnchorElement | null = null + + onMounted(() => { + requestAnimationFrame(setActiveLink) + window.addEventListener('scroll', onScroll) + }) + + onUpdated(() => { + // sidebar update means a route change + activateLink(location.hash) + }) + + onUnmounted(() => { + window.removeEventListener('scroll', onScroll) + }) + + function setActiveLink() { + if (!isOutlineEnabled.value) { + return + } + + const links = [].slice.call( + container.value.querySelectorAll('.outline-link') + ) as HTMLAnchorElement[] + + const anchors = [].slice + .call(document.querySelectorAll('.content .header-anchor')) + .filter((anchor: HTMLAnchorElement) => { + return links.some((link) => { + return link.hash === anchor.hash && anchor.offsetParent !== null + }) + }) as HTMLAnchorElement[] + + const scrollY = window.scrollY + const innerHeight = window.innerHeight + const offsetHeight = document.body.offsetHeight + const isBottom = scrollY + innerHeight === offsetHeight + + // page bottom - highlight last one + if (anchors.length && isBottom) { + activateLink(anchors[anchors.length - 1].hash) + return + } + + for (let i = 0; i < anchors.length; i++) { + const anchor = anchors[i] + const nextAnchor = anchors[i + 1] + + const [isActive, hash] = isAnchorActive(i, anchor, nextAnchor) + + if (isActive) { + history.replaceState(null, document.title, hash ? hash : ' ') + activateLink(hash) + return + } + } + } + + function activateLink(hash: string | null) { + if (prevActiveLink) { + prevActiveLink.classList.remove('active') + } + + if (hash !== null) { + prevActiveLink = container.value.querySelector( + `a[href="${decodeURIComponent(hash)}"]` + ) as HTMLAnchorElement + } + + const activeLink = prevActiveLink + + if (activeLink) { + activeLink.classList.add('active') + marker.value.style.top = activeLink.offsetTop + 33 + 'px' + marker.value.style.opacity = '1' + } else { + marker.value.style.top = '33px' + marker.value.style.opacity = '0' + } + } +} + +function getAnchorTop(anchor: HTMLAnchorElement): number { + return anchor.parentElement!.offsetTop - PAGE_OFFSET - 15 +} + +function isAnchorActive( + index: number, + anchor: HTMLAnchorElement, + nextAnchor: HTMLAnchorElement | undefined +): [boolean, string | null] { + const scrollTop = window.scrollY + + if (index === 0 && scrollTop === 0) { + return [true, null] + } + + if (scrollTop < getAnchorTop(anchor)) { + return [false, null] + } + + if (!nextAnchor || scrollTop < getAnchorTop(nextAnchor)) { + return [true, anchor.hash] + } + + return [false, null] +} + +function throttleAndDebounce(fn: () => void, delay: number): () => void { + let timeout: number + let called = false + + return () => { + if (timeout) { + clearTimeout(timeout) + } + + if (!called) { + fn() + called = true + setTimeout(() => { + called = false + }, delay) + } else { + timeout = setTimeout(fn, delay) + } + } +} diff --git a/src/client/theme-default/composables/prev-next.ts b/src/client/theme-default/composables/prev-next.ts new file mode 100644 index 00000000..e09cb0e0 --- /dev/null +++ b/src/client/theme-default/composables/prev-next.ts @@ -0,0 +1,22 @@ +import { computed } from 'vue' +import { useData } from 'vitepress' +import { isActive } from '../support/utils' +import { getSidebar, getFlatSideBarLinks } from '../support/sidebar' + +export function usePrevNext() { + const { page, theme } = useData() + + return computed(() => { + const sidebar = getSidebar(theme.value.sidebar, page.value.relativePath) + const candidates = getFlatSideBarLinks(sidebar) + + const index = candidates.findIndex((link) => { + return isActive(page.value.relativePath, link.link) + }) + + return { + prev: candidates[index - 1], + next: candidates[index + 1] + } + }) +} diff --git a/src/client/theme-default/composables/repo.ts b/src/client/theme-default/composables/repo.ts deleted file mode 100644 index 5bb2112b..00000000 --- a/src/client/theme-default/composables/repo.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { computed } from 'vue' -import { useData } from 'vitepress' -import type { DefaultTheme } from '../config' -import { EXTERNAL_URL_RE } from '../../shared' - -export const platforms = ['GitHub', 'GitLab', 'Bitbucket'].map((platform) => { - return [platform, new RegExp(platform, 'i')] as const -}) - -export function useRepo() { - const { site } = useData() - - return computed(() => { - const theme = site.value.themeConfig as DefaultTheme.Config - const name = theme.docsRepo || theme.repo - - if (!name) { - return null - } - - const link = getRepoUrl(name) - const text = getRepoText(link, theme.repoLabel) - - return { text, link } - }) -} - -function getRepoUrl(repo: string): string { - // if the full url is not provided, default to GitHub repo - return EXTERNAL_URL_RE.test(repo) ? repo : `https://github.com/${repo}` -} - -function getRepoText(url: string, text?: string): string { - if (text) { - return text - } - - // if no label is provided, deduce it from the repo url - const hosts = url.match(/^https?:\/\/[^/]+/) - - if (!hosts) { - return 'Source' - } - - const platform = platforms.find(([_p, re]) => re.test(hosts[0])) - - if (platform && platform[0]) { - return platform[0] - } - - return 'Source' -} diff --git a/src/client/theme-default/composables/sideBar.ts b/src/client/theme-default/composables/sideBar.ts index 96fb6b24..2aa34a98 100644 --- a/src/client/theme-default/composables/sideBar.ts +++ b/src/client/theme-default/composables/sideBar.ts @@ -1,77 +1,71 @@ -import { computed } from 'vue' +import { Ref, ref, computed, watchEffect, onMounted, onUnmounted } from 'vue' import { useRoute, useData } from 'vitepress' -import { Header } from '../../shared' -import { useActiveSidebarLinks } from '../composables/activeSidebarLink' -import { getSideBarConfig } from '../support/sideBar' -import { DefaultTheme } from '../config' +import { getSidebar } from '../support/sidebar' -export function useSideBar() { +export function useSidebar() { const route = useRoute() - const { site } = useData() + const { theme, frontmatter } = useData() - useActiveSidebarLinks() + const isOpen = ref(false) - return computed(() => { - // at first, we'll check if we can find the sidebar setting in frontmatter. - const headers = route.data.headers - const frontSidebar = route.data.frontmatter.sidebar - const sidebarDepth = route.data.frontmatter.sidebarDepth + const sidebar = computed(() => { + const sidebarConfig = theme.value.sidebar + const relativePath = route.data.relativePath - // if it's `false`, we'll just return an empty array here. - if (frontSidebar === false) { - return [] - } + return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [] + }) - // if it's `auto`, render headers of the current page - if (frontSidebar === 'auto') { - return resolveAutoSidebar(headers, sidebarDepth) - } + const hasSidebar = computed(() => { + return frontmatter.value.sidebar !== false && sidebar.value.length > 0 + }) - // now, there's no sidebar setting at frontmatter; let's see the configs - const themeSidebar = getSideBarConfig( - site.value.themeConfig.sidebar, - route.data.relativePath - ) + function open() { + isOpen.value = true + } - if (themeSidebar === false) { - return [] - } + function close() { + isOpen.value = false + } - if (themeSidebar === 'auto') { - return resolveAutoSidebar(headers, sidebarDepth) - } + function toggle() { + isOpen.value ? close() : open() + } - return themeSidebar - }) + return { + isOpen, + sidebar, + hasSidebar, + open, + close, + toggle + } } -function resolveAutoSidebar( - headers: Header[], - depth: number -): DefaultTheme.SideBarItem[] { - const ret: DefaultTheme.SideBarItem[] = [] +/** + * a11y: cache the element that opened the Sidebar (the menu button) then + * focus that button again when Menu is closed with Escape key. + */ +export function useCloseSidebarOnEscape(isOpen: Ref, close: () => {}) { + let triggerElement: HTMLButtonElement | undefined - if (headers === undefined) { - return [] - } + watchEffect(() => { + triggerElement = isOpen.value + ? (document.activeElement as HTMLButtonElement) + : undefined + }) - let lastH2: DefaultTheme.SideBarItem | undefined = undefined - headers.forEach(({ level, title, slug }) => { - if (level - 1 > depth) { - return - } + onMounted(() => { + window.addEventListener('keyup', onEscape) + }) - const item: DefaultTheme.SideBarItem = { - text: title, - link: `#${slug}` - } - if (level === 2) { - lastH2 = item - ret.push(item) - } else if (lastH2) { - ;((lastH2 as any).children || ((lastH2 as any).children = [])).push(item) - } + onUnmounted(() => { + window.removeEventListener('keyup', onEscape) }) - return ret + function onEscape(e: KeyboardEvent) { + if (e.key === 'Escape' && isOpen.value) { + close() + triggerElement?.focus() + } + } } diff --git a/src/client/theme-default/fonts/inter-cyrillic-ext.woff2 b/src/client/theme-default/fonts/inter-cyrillic-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e5ccce41a9f719dc009d76a5b1fe9ca6f153ebe4 GIT binary patch literal 26924 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 z zq@5&vnT-F~NzdP%&T#l*C~+f^dR&Lg-D=-Fm-RN7s-ole%P)WZ^*=l2GkbIL++*z) zf1ShGZQZ@cYNh)JaRtsCvhVM(8I;UEN9-<|aVF7&2ZghZS-2%{-ow4wef-i0NxYmW zS@iJc@mIie;Qc)xd~B`;197hK-s0LPz7GkXmT4Py5&Crv`o<-4dG%sV?$M)M4j&_y z2>5qG1C7}A5Yg+#A~qFeiHT8!faRh_o=`}I%O;35McBYzOLOLS{$#gTtk&OUUCzuO zAvuds4AGS~`b?kVPdP7I3zCm>jnj-U!7R(9IaqYQ%~&qOum%j1QPMJ*Or~DFwRzim zT0)CNqT-Ps<5$vV8mzWSsHedf8#MAQ?<|HMyd1~FU)ha~E(VCw$^N*Ze)*bh3b10a z&9i_elFAb#86wF<*fZ$s?r}vAyZvAH_4WGv_J3623U2X0Up%LrwAAqbo9`i2CwfUeVC`l(DQpWdAY_-+P2nQzY5n^1LSti_Fzv zCB-oNN)78sA2~{@*+fHotxtz94n_z6mr6;uH*as!15Ibqnn4r2W-Miq&oo;gNG5N^ zu12E-!Oc9*<;(yG0I*o2GKQNAUN5e^kB{R60KnyKdlrnlzw5<2za?_5vl|Ei05+fi z0Du7er)09sP!cj30T6F}<=U$>WQ!(H+bCP`>b^se-588NcR=jcJIR3*12N zpilGUKFV1#kcl9}xF}>OYqo^Q5i^-&_9$zjTuvXOf*Js3>MAF$bUxtQ$sR>E<+Gf|1h!OJs9MBXA|BQyRuq$iGg!NJHJ1RNUd4a_ literal 0 HcmV?d00001 diff --git a/src/client/theme-default/index.ts b/src/client/theme-default/index.ts index bcd79051..c3d43d7a 100644 --- a/src/client/theme-default/index.ts +++ b/src/client/theme-default/index.ts @@ -1,14 +1,15 @@ +import './styles/fonts.css' import './styles/vars.css' -import './styles/layout.css' -import './styles/code.css' -import './styles/custom-blocks.css' -import './styles/sidebar-links.css' +import './styles/base.css' +import './styles/utils.css' +import './styles/vp-doc.css' import { Theme } from 'vitepress' import Layout from './Layout.vue' import NotFound from './NotFound.vue' export { DefaultTheme } from './config' + const theme: Theme = { Layout, NotFound diff --git a/src/client/theme-default/styles/base.css b/src/client/theme-default/styles/base.css new file mode 100644 index 00000000..6873ce91 --- /dev/null +++ b/src/client/theme-default/styles/base.css @@ -0,0 +1,200 @@ +*, +::before, +::after { + box-sizing: border-box; +} + +html { + line-height: 1.4; + font-size: 16px; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + width: 100%; + min-width: 320px; + min-height: 100vh; + line-height: 24px; + font-family: var(--vp-font-family-base); + font-size: 16px; + font-weight: 400; + color: var(--vp-c-text-1); + background-color: var(--vp-c-bg-content); + direction: ltr; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +main { + display: block; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; +} + +p { + margin: 0; +} + +strong, +b { + font-weight: 600; +} + +/** + * Avoid 300ms click delay on touch devices that support the `touch-action` + * CSS property. + * + * In particular, unlike most other browsers, IE11+Edge on Windows 10 on + * touch devices and IE Mobile 10-11 DON'T remove the click delay when + * `` is present. + * However, they DO support removing the click delay via + * `touch-action: manipulation`. + * + * See: + * - http://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch + * - http://caniuse.com/#feat=css-touch-action + * - http://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay + */ +a, +area, +button, +[role="button"], +input, +label, +select, +summary, +textarea { + touch-action: manipulation; +} + +a { + color: inherit; + text-decoration: inherit; +} + +ol, +ul { + list-style: none; + margin: 0; + padding: 0; +} + +pre, +code, +kbd, +samp { + font-family: var(--vp-font-family-mono); +} + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + vertical-align: middle; +} + +img, +video { + max-width: 100%; + height: auto; +} + +button, +input, +optgroup, +select, +textarea { + border: 0; + padding: 0; + line-height: inherit; + color: inherit; +} + +button { + padding: 0; + font-family: inherit;; + background-color: transparent; + background-image: none; +} + +button, +[role="button"] { + cursor: pointer; +} + +button:focus, +button:focus-visible { + outline: 1px dotted; + outline: 4px auto -webkit-focus-ring-color; +} + +button:focus:not(:focus-visible) { + outline: none !important; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; +} + +table { + border-collapse: collapse; +} + +input { + background-color: transparent; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: var(--vp-c-text-3); +} + +input::-ms-input-placeholder, +textarea::-ms-input-placeholder { + color: var(--vp-c-text-3); +} + +input::placeholder, +textarea::placeholder { + color: var(--vp-c-text-3); +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type="number"] { + -moz-appearance: textfield; +} + +textarea { + resize: vertical; +} + +select { + -webkit-appearance: none; +} + +fieldset { + margin: 0; + padding: 0; +} diff --git a/src/client/theme-default/styles/code.css b/src/client/theme-default/styles/code.css deleted file mode 100644 index 436e2baa..00000000 --- a/src/client/theme-default/styles/code.css +++ /dev/null @@ -1,299 +0,0 @@ -code { - margin: 0; - border-radius: 3px; - padding: 0.25rem 0.5rem; - font-family: var(--code-font-family); - font-size: 0.85em; - color: var(--c-text-light); - background-color: var(--code-inline-bg-color); -} - -code .token.deleted { - color: #ec5975; -} - -code .token.inserted { - color: var(--c-brand); -} - -div[class*='language-'] { - position: relative; - margin: 1rem -1.5rem; - background-color: var(--code-bg-color); - overflow-x: auto; -} - -li > div[class*='language-'] { - border-radius: 6px 0 0 6px; - margin: 1rem -1.5rem 1rem -1.25rem; - line-height: initial; -} - -@media (min-width: 420px) { - div[class*='language-'] { - margin: 1rem 0; - border-radius: 6px; - } - - li > div[class*='language-'] { - margin: 1rem 0 1rem 0rem; - border-radius: 6px; - } -} - -[class*='language-'] pre, -[class*='language-'] code { - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; - background: transparent; -} - -[class*='language-'] pre { - position: relative; - z-index: 1; - margin: 0; - padding: 1.25rem 1.5rem; - overflow-x: auto; -} - -[class*='language-'] code { - padding: 0; - line-height: var(--code-line-height); - font-size: var(--code-font-size); - color: #eee; -} - -/* Line highlighting */ - -.highlight-lines { - position: absolute; - top: 0; - bottom: 0; - left: 0; - padding: 1.25rem 0; - width: 100%; - line-height: var(--code-line-height); - font-family: var(--code-font-family); - font-size: var(--code-font-size); - user-select: none; - overflow: hidden; -} - -.highlight-lines .highlighted { - background-color: rgba(0, 0, 0, 0.66); -} - -/* Line numbers mode */ - -div[class*='language-'].line-numbers-mode { - padding-left: 3.5rem; -} - -.line-numbers-wrapper { - position: absolute; - top: 0; - bottom: 0; - left: 0; - z-index: 3; - border-right: 1px solid rgba(0, 0, 0, 0.5); - padding: 1.25rem 0; - width: 3.5rem; - text-align: center; - line-height: var(--code-line-height); - font-family: var(--code-font-family); - font-size: var(--code-font-size); - color: #888; -} - -/* Language marker */ - -div[class*='language-']:before { - position: absolute; - top: 0.6em; - right: 1em; - z-index: 2; - font-size: 0.8rem; - color: #888; -} - -div[class~='language-html']:before, -div[class~='language-markup']:before { - content: 'html'; -} - -div[class~='language-md']:before, -div[class~='language-markdown']:before { - content: 'md'; -} - -div[class~='language-css']:before { - content: 'css'; -} - -div[class~='language-sass']:before { - content: 'sass'; -} - -div[class~='language-scss']:before { - content: 'scss'; -} - -div[class~='language-less']:before { - content: 'less'; -} - -div[class~='language-stylus']:before { - content: 'styl'; -} - -div[class~='language-js']:before, -div[class~='language-javascript']:before { - content: 'js'; -} - -div[class~='language-ts']:before, -div[class~='language-typescript']:before { - content: 'ts'; -} - -div[class~='language-json']:before { - content: 'json'; -} - -div[class~='language-rb']:before, -div[class~='language-ruby']:before { - content: 'rb'; -} - -div[class~='language-py']:before, -div[class~='language-python']:before { - content: 'py'; -} - -div[class~='language-sh']:before, -div[class~='language-bash']:before { - content: 'sh'; -} - -div[class~='language-php']:before { - content: 'php'; -} - -div[class~='language-go']:before { - content: 'go'; -} - -div[class~='language-rust']:before { - content: 'rust'; -} - -div[class~='language-java']:before { - content: 'java'; -} - -div[class~='language-c']:before { - content: 'c'; -} - -div[class~='language-yaml']:before { - content: 'yaml'; -} - -div[class~='language-dockerfile']:before { - content: 'dockerfile'; -} - -div[class~='language-vue']:before { - content: 'vue'; -} - -/** - * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML. - * Based on https://github.com/chriskempson/tomorrow-theme - * - * @author Rose Pritchard - */ -.token.comment, -.token.block-comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #999; -} - -.token.punctuation { - color: #ccc; -} - -.token.tag, -.token.attr-name, -.token.namespace, -.token.deleted { - color: #e2777a; -} - -.token.function-name { - color: #6196cc; -} - -.token.boolean, -.token.number, -.token.function { - color: #f08d49; -} - -.token.property, -.token.class-name, -.token.constant, -.token.symbol { - color: #f8c555; -} - -.token.selector, -.token.important, -.token.atrule, -.token.keyword, -.token.builtin { - color: #cc99cd; -} - -.token.string, -.token.char, -.token.attr-value, -.token.regex, -.token.variable { - color: #7ec699; -} - -.token.operator, -.token.entity, -.token.url { - color: #67cdcc; -} - -.token.important, -.token.bold { - font-weight: bold; -} - -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.token.inserted { - color: green; -} diff --git a/src/client/theme-default/styles/custom-blocks.css b/src/client/theme-default/styles/custom-blocks.css deleted file mode 100644 index 38507ace..00000000 --- a/src/client/theme-default/styles/custom-blocks.css +++ /dev/null @@ -1,76 +0,0 @@ -.custom-block.tip, -.custom-block.info, -.custom-block.warning, -.custom-block.danger { - margin: 1rem 0; - border-left: 0.5rem solid; - padding: 0.1rem 1.5rem; - overflow-x: auto; -} - -.custom-block.tip { - background-color: #f3f5f7; - border-color: var(--c-brand); -} - -.custom-block.info { - background-color: #f3f5f7; - border-color: var(--c-text-light-2); -} - -.custom-block.warning { - border-color: #e7c000; - color: #6b5900; - background-color: rgba(255, 229, 100, 0.3); -} - -.custom-block.warning .custom-block-title { - color: #b29400; -} - -.custom-block.warning a { - color: var(--c-text); -} - -.custom-block.danger { - border-color: #c00; - color: #4d0000; - background-color: #ffe6e6; -} - -.custom-block.danger .custom-block-title { - color: #900; -} - -.custom-block.danger a { - color: var(--c-text); -} - -.custom-block.details { - position: relative; - display: block; - border-radius: 2px; - margin: 1.6em 0; - padding: 1.6em; - background-color: #eee; -} - -.custom-block.details h4 { - margin-top: 0; -} - -.custom-block.details figure:last-child, -.custom-block.details p:last-child { - margin-bottom: 0; - padding-bottom: 0; -} - -.custom-block.details summary { - outline: none; - cursor: pointer; -} - -.custom-block-title { - margin-bottom: -0.4rem; - font-weight: 600; -} diff --git a/src/client/theme-default/styles/fonts.css b/src/client/theme-default/styles/fonts.css new file mode 100644 index 00000000..e9c9db97 --- /dev/null +++ b/src/client/theme-default/styles/fonts.css @@ -0,0 +1,67 @@ +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 100 900; + font-display: swap; + src: url(../fonts/inter-latin.woff2) format('woff2'); + unicode-range: U+00??, U+0131, U+0152-0153, U+02bb-02bc, U+02c6, U+02da, + U+02dc, U+2000-206f, U+2074, U+20ac, U+2122, U+2191, U+2193, U+2212, U+2215, + U+feff, U+fffd; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-latin-ext.woff2) format('woff2'); + unicode-range: U+0100-024f, U+0259, U+1e??, U+2020, U+20a0-20ab, U+20ad-20cf, + U+2113, U+2c60-2c7f, U+a720-a7ff; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-cyrillic.woff2) format('woff2'); + unicode-range: U+0400-045f, U+0490-0491, U+04b0-04b1, U+2116; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-cyrillic-ext.woff2) format('woff2'); + unicode-range: U+0460-052f, U+1c80-1c88, U+20b4, U+2de0-2dff, U+a640-a69f, + U+fe2e-fe2f; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-greek.woff2) format('woff2'); + unicode-range: U+0370-03ff; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-greek-ext.woff2) format('woff2'); + unicode-range: U+1f??; +} + +@font-face { + font-family: Inter; + font-style: normal; + font-weight: 400 500 600 700 900; + font-display: swap; + src: url(../fonts/inter-vietnamese.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01a0-01a1, + U+01af-01b0, U+1ea0-1ef9, U+20ab; +} diff --git a/src/client/theme-default/styles/layout.css b/src/client/theme-default/styles/layout.css deleted file mode 100644 index 8d9e0a8e..00000000 --- a/src/client/theme-default/styles/layout.css +++ /dev/null @@ -1,236 +0,0 @@ -*, -::before, -::after { - box-sizing: border-box; -} - -html { - line-height: 1.4; - font-size: 16px; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; - width: 100%; - min-width: 320px; - min-height: 100vh; - line-height: 1.4; - font-family: var(--font-family-base); - font-size: 16px; - font-weight: 400; - color: var(--c-text); - background-color: var(--c-bg); - direction: ltr; - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -main { - display: block; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - line-height: 1.25; -} - -h1, -h2, -h3, -h4, -h5, -h6, -strong, -b { - font-weight: 600; -} - -h1:hover .header-anchor, -h1:focus .header-anchor, -h2:hover .header-anchor, -h2:focus .header-anchor, -h3:hover .header-anchor, -h3:focus .header-anchor, -h4:hover .header-anchor, -h4:focus .header-anchor, -h5:hover .header-anchor, -h5:focus .header-anchor, -h6:hover .header-anchor, -h6:focus .header-anchor { - opacity: 1; -} - -h1 { - margin-top: 1.5rem; - font-size: 1.9rem; -} - -@media screen and (min-width: 420px) { - h1 { - font-size: 2.2rem; - } -} - -h2 { - margin-top: 2.25rem; - margin-bottom: 1.25rem; - border-bottom: 1px solid var(--c-divider); - padding-bottom: 0.3rem; - line-height: 1.25; - font-size: 1.65rem; - /* overflow-x: auto; */ -} - -h2 + h3 { - margin-top: 1.5rem; -} - -h3 { - margin-top: 2rem; - font-size: 1.35rem; -} - -h4 { - font-size: 1.15rem; -} - -p, -ol, -ul { - margin: 1rem 0; - line-height: 1.7; -} - -a, -area, -button, -[role='button'], -input, -label, -select, -summary, -textarea { - touch-action: manipulation; -} - -a { - text-decoration: none; - color: var(--c-brand); -} - -a:hover { - text-decoration: underline; -} - -a.header-anchor { - float: left; - margin-top: 0.125em; - margin-left: -0.87em; - padding-right: 0.23em; - font-size: 0.85em; - opacity: 0; -} - -a.header-anchor:hover, -a.header-anchor:focus { - text-decoration: none; -} - -figure { - margin: 0; -} - -img { - max-width: 100%; -} - -ul, -ol { - padding-left: 1.25em; -} - -li > ul, -li > ol { - margin: 0; -} - -table { - display: block; - border-collapse: collapse; - margin: 1rem 0; - overflow-x: auto; -} - -tr { - border-top: 1px solid #dfe2e5; -} - -tr:nth-child(2n) { - background-color: #f6f8fa; -} - -th, -td { - border: 1px solid #dfe2e5; - padding: 0.6em 1em; -} - -blockquote { - margin: 1rem 0; - border-left: 0.2rem solid #dfe2e5; - padding: 0.25rem 0 0.25rem 1rem; - font-size: 1rem; - color: #999; -} - -blockquote > p { - margin: 0; -} - -form { - margin: 0; -} - -.theme.sidebar-open .sidebar-mask { - display: block; -} - -.theme.no-navbar > h1, -.theme.no-navbar > h2, -.theme.no-navbar > h3, -.theme.no-navbar > h4, -.theme.no-navbar > h5, -.theme.no-navbar > h6 { - margin-top: 1.5rem; - padding-top: 0; -} - -.theme.no-navbar aside { - top: 0; -} - -@media screen and (min-width: 720px) { - .theme.no-sidebar aside { - display: none; - } - - .theme.no-sidebar main { - margin-left: 0; - } -} - -.sidebar-mask { - position: fixed; - z-index: 2; - display: none; - width: 100vw; - height: 100vh; -} diff --git a/src/client/theme-default/styles/sidebar-links.css b/src/client/theme-default/styles/sidebar-links.css deleted file mode 100644 index c15f53fd..00000000 --- a/src/client/theme-default/styles/sidebar-links.css +++ /dev/null @@ -1,107 +0,0 @@ -.sidebar-links { - margin: 0; - padding: 0; - list-style: none; -} - -.sidebar-link-item { - display: block; - margin: 0; - border-left: 0.25rem solid transparent; - color: var(--c-text); -} - -a.sidebar-link-item:hover { - text-decoration: none; - color: var(--c-brand); -} - -a.sidebar-link-item.active { - color: var(--c-brand); -} - -.sidebar > .sidebar-links { - padding: 0.75rem 0 5rem; -} - -@media (min-width: 720px) { - .sidebar > .sidebar-links { - padding: 1.5rem 0; - } -} - -.sidebar > .sidebar-links > .sidebar-link + .sidebar-link { - padding-top: 0.5rem; -} - -@media (min-width: 720px) { - .sidebar > .sidebar-links > .sidebar-link + .sidebar-link { - padding-top: 1.25rem; - } -} - -.sidebar > .sidebar-links > .sidebar-link > .sidebar-link-item { - padding: 0.35rem 1.5rem 0.35rem 1.25rem; - font-size: 1.1rem; - font-weight: 700; -} - -.sidebar > .sidebar-links > .sidebar-link > a.sidebar-link-item.active { - border-left-color: var(--c-brand); - font-weight: 600; -} - -.sidebar - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-link-item { - display: block; - padding: 0.35rem 1.5rem 0.35rem 2rem; - line-height: 1.4; - font-size: 1rem; - font-weight: 400; -} - -.sidebar - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > a.sidebar-link-item.active { - border-left-color: var(--c-brand); - font-weight: 600; -} - -.sidebar - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-link-item { - display: block; - padding: 0.3rem 1.5rem 0.3rem 3rem; - line-height: 1.4; - font-size: 0.9rem; - font-weight: 400; -} - -.sidebar - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-links - > .sidebar-link - > .sidebar-link-item { - display: block; - padding: 0.3rem 1.5rem 0.3rem 4rem; - line-height: 1.4; - font-size: 0.9rem; - font-weight: 400; -} diff --git a/src/client/theme-default/styles/utils.css b/src/client/theme-default/styles/utils.css new file mode 100644 index 00000000..65c7e55e --- /dev/null +++ b/src/client/theme-default/styles/utils.css @@ -0,0 +1,9 @@ +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + white-space: nowrap; + clip: rect(0 0 0 0); + clip-path: inset(50%); + overflow: hidden; +} diff --git a/src/client/theme-default/styles/vars.css b/src/client/theme-default/styles/vars.css index 78ec1203..27a38271 100644 --- a/src/client/theme-default/styles/vars.css +++ b/src/client/theme-default/styles/vars.css @@ -1,74 +1,214 @@ -/** Base Styles */ +/** + * Colors Base + * + * These are the pure base color presets. Most of the time, you should not be + * using these colors directly in the theme but rather use "Colors Theme" + * instead because those are "Theme (light or dark)" dependant. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-white: #ffffff; + --vp-c-white-soft: #f9f9f9; + --vp-c-white-mute: #f1f1f1; + + --vp-c-black: #1a1a1a; + --vp-c-black-pure: #000000; + --vp-c-black-soft: #242424; + --vp-c-black-mute: #2f2f2f; + + --vp-c-gray: #8e8e8e; + --vp-c-gray-light-1: #aeaeae; + --vp-c-gray-light-2: #c7c7c7; + --vp-c-gray-light-3: #d1d1d1; + --vp-c-gray-light-4: #e5e5e5; + --vp-c-gray-light-5: #f2f2f2; + --vp-c-gray-dark-1: #636363; + --vp-c-gray-dark-2: #484848; + --vp-c-gray-dark-3: #3a3a3a; + --vp-c-gray-dark-4: #282828; + --vp-c-gray-dark-5: #202020; + + --vp-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vp-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vp-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vp-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vp-c-text-light-1: var(--vp-c-indigo); + --vp-c-text-light-2: rgba(60, 60, 60, 0.70); + --vp-c-text-light-3: rgba(60, 60, 60, 0.33); + --vp-c-text-light-4: rgba(60, 60, 60, 0.18); + + --vp-c-text-dark-1: rgba(255, 255, 255, 0.87); + --vp-c-text-dark-2: rgba(235, 235, 235, 0.60); + --vp-c-text-dark-3: rgba(235, 235, 235, 0.38); + --vp-c-text-dark-4: rgba(235, 235, 235, 0.18); + + --vp-c-green: #42b883; + --vp-c-green-light: #42d392; + --vp-c-green-lighter: #35eb9a; + --vp-c-green-dark: #33a06f; + --vp-c-green-darker: #155f3e; + + --vp-c-indigo: #213547; + --vp-c-indigo-soft: #476582; + --vp-c-indigo-light: #aac8e4; + + --vp-c-blue: #3b8eed; + --vp-c-blue-light: #549ced; + --vp-c-blue-lighter: #50a2ff; + --vp-c-blue-dark: #3468a3; + --vp-c-blue-darker: #255489; + + --vp-c-yellow: #ffc517; + --vp-c-yellow-light: #ffe417; + --vp-c-yellow-lighter: #ffff17; + --vp-c-yellow-dark: #e0ad15; + --vp-c-yellow-darker: #bc9112; + + --vp-c-red: #ed3c50; + --vp-c-red-light: #f43771; + --vp-c-red-lighter: #fd1d7c; + --vp-c-red-dark: #cd2d3f; + --vp-c-red-darker: #ab2131; + + --vp-c-purple: #de41e0; + --vp-c-purple-light: #e936eb; + --vp-c-purple-lighter: #f616f8; + --vp-c-purple-dark: #823c83; + --vp-c-purple-darker: #602960; +} + +/** + * Colors Theme + * -------------------------------------------------------------------------- */ + :root { - /** - * Colors - * --------------------------------------------------------------------- */ - - --c-white: #ffffff; - --c-white-dark: #f8f8f8; - --c-black: #000000; - - --c-divider-light: rgba(60, 60, 67, 0.12); - --c-divider-dark: rgba(84, 84, 88, 0.48); - - --c-text-light-1: #2c3e50; - --c-text-light-2: #476582; - --c-text-light-3: #90a4b7; - - --c-brand: #3eaf7c; - --c-brand-light: #4abf8a; - - /** - * Typography - * --------------------------------------------------------------------- */ - - --font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, - Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - --font-family-mono: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; - - /** - * Z Indexes - * - * Algolia SearchBox has a z-index of 200, so make sure not to go above - * that value. - * --------------------------------------------------------------------- */ - - --z-index-navbar: 10; - --z-index-sidebar: 6; - - /** - * Shadows - * --------------------------------------------------------------------- */ - - --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06); - --shadow-2: 0 3px 12px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.07); - --shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08); - --shadow-4: 0 14px 44px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.12); - --shadow-5: 0 18px 56px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.16); - - /** - * Sizes - * --------------------------------------------------------------------- */ - - --header-height: 3.6rem; + --vp-c-bg: var(--vp-c-white); + --vp-c-bg-soft: var(--vp-c-white-soft); + --vp-c-bg-mute: var(--vp-c-white-mute); + --vp-c-bg-content: var(--vp-c-white); + --vp-c-bg-sidebar: var(--vp-c-white-soft); + + --vp-c-divider: var(--vp-c-divider-light-1); + --vp-c-divider-light: var(--vp-c-divider-light-2); + + --vp-c-divider-inverse: var(--vp-c-divider-dark-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-dark-2); + + --vp-c-text-1: var(--vp-c-text-light-1); + --vp-c-text-2: var(--vp-c-text-light-2); + --vp-c-text-3: var(--vp-c-text-light-3); + --vp-c-text-4: var(--vp-c-text-light-4); + + --vp-c-text-inverse-1: var(--vp-c-text-dark-1); + --vp-c-text-inverse-2: var(--vp-c-text-dark-2); + --vp-c-text-inverse-3: var(--vp-c-text-dark-3); + --vp-c-text-inverse-4: var(--vp-c-text-dark-4); + + --vp-c-text-code: var(--vp-c-indigo-soft); + + --vp-c-brand: var(--vp-c-green); + --vp-c-brand-light: var(--vp-c-green-light); + --vp-c-brand-dark: var(--vp-c-green-dark); } -/** Fallback Styles */ +.dark { + --vp-c-bg: var(--vp-c-black); + --vp-c-bg-soft: var(--vp-c-black-soft); + --vp-c-bg-mute: var(--vp-c-black-mute); + --vp-c-bg-content: var(--vp-c-bg-soft); + --vp-c-bg-sidebar: var(--vp-c-bg); + + --vp-c-divider: var(--vp-c-divider-dark-1); + --vp-c-divider-light: var(--vp-c-divider-dark-2); + + --vp-c-divider-inverse: var(--vp-c-divider-light-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-light-2); + + --vp-c-text-1: var(--vp-c-text-dark-1); + --vp-c-text-2: var(--vp-c-text-dark-2); + --vp-c-text-3: var(--vp-c-text-dark-3); + --vp-c-text-4: var(--vp-c-text-dark-4); + + --vp-c-text-inverse-1: var(--vp-c-text-light-1); + --vp-c-text-inverse-2: var(--vp-c-text-light-2); + --vp-c-text-inverse-3: var(--vp-c-text-light-3); + --vp-c-text-inverse-4: var(--vp-c-text-light-4); + + --vp-c-text-code: var(--vp-c-indigo-light); +} + +/** + * Typography + * -------------------------------------------------------------------------- */ + :root { - --c-divider: var(--c-divider-light); + --vp-font-family-base: Inter, -apple-system, + BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, + 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + --vp-font-family-mono: Menlo, Monaco, Consolas, 'Courier New', monospace; +} - --c-text: var(--c-text-light-1); - --c-text-light: var(--c-text-light-2); - --c-text-lighter: var(--c-text-light-3); +/** + * Shadows + * -------------------------------------------------------------------------- */ - --c-bg: var(--c-white); - --c-bg-accent: var(--c-white-dark); +:root { + --vp-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06); + --vp-shadow-2: 0 3px 12px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.07); + --vp-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08); + --vp-shadow-4: 0 14px 44px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.12); + --vp-shadow-5: 0 18px 56px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.16); +} + +/** + * Z-indexes + * -------------------------------------------------------------------------- */ + +:root { + --vp-z-index-local-nav: 10; + --vp-z-index-nav: 20; + --vp-z-backdrop: 30; + --vp-z-index-sidebar: 40; +} + +/** + * Layouts + * -------------------------------------------------------------------------- */ + +:root { + --vp-layout-max-width: 1376px; +} + +/** + * Component: Nav + * -------------------------------------------------------------------------- */ + +:root { + --vp-nav-height-mobile: 56px; + --vp-nav-height-desktop: 72px; +} + +/** + * Component: Sidebar + * -------------------------------------------------------------------------- */ + +:root { + --vp-sidebar-width: 272px; +} + +/** + * Component: Code + * -------------------------------------------------------------------------- */ + +:root { + --vp-code-line-height: 24px; + --vp-code-font-size: 14px; + + --vp-code-block-color: var(--vp-c-text-dark-1); + --vp-code-block-bg: #292d3e; +} - --code-line-height: 24px; - --code-font-family: var(--font-family-mono); - --code-font-size: 14px; - --code-inline-bg-color: rgba(27, 31, 35, 0.05); - --code-bg-color: #282c34; +.dark { + --vp-code-block-bg: var(--vp-c-bg-sidebar); } diff --git a/src/client/theme-default/styles/vp-doc.css b/src/client/theme-default/styles/vp-doc.css new file mode 100644 index 00000000..6d950394 --- /dev/null +++ b/src/client/theme-default/styles/vp-doc.css @@ -0,0 +1,419 @@ +/** + * Headings + * -------------------------------------------------------------------------- */ + +.vp-doc h1, +.vp-doc h2, +.vp-doc h3, +.vp-doc h4, +.vp-doc h5, +.vp-doc h6 { + position: relative; + font-weight: 600; + outline: none; +} + +.vp-doc h1 { + letter-spacing: -0.02em; + line-height: 40px; + font-size: 28px; +} + +.vp-doc h2 { + margin: 48px 0 0; + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 24px; + letter-spacing: -0.02em; + line-height: 32px; + font-size: 24px; +} + +.vp-doc h3 { + margin: 48px 0 0; + letter-spacing: -0.01em; + line-height: 28px; + font-size: 20px; +} + +.vp-doc .header-anchor { + float: left; + margin-left: -0.87em; + padding-right: 0.23em; + font-weight: 500; + opacity: 0; + transition: color 0.25s, opacity 0.25s; +} + +.vp-doc h1:hover .header-anchor, +.vp-doc h1 .header-anchor:focus, +.vp-doc h2:hover .header-anchor, +.vp-doc h2 .header-anchor:focus, +.vp-doc h3:hover .header-anchor, +.vp-doc h3 .header-anchor:focus, +.vp-doc h4:hover .header-anchor, +.vp-doc h4 .header-anchor:focus, +.vp-doc h5:hover .header-anchor, +.vp-doc h5 .header-anchor:focus, +.vp-doc h6:hover .header-anchor, +.vp-doc h6 .header-anchor:focus { + opacity: 1; +} + +@media (min-width: 768px) { + .vp-doc h1 { + letter-spacing: -0.02em; + line-height: 40px; + font-size: 32px; + } +} + +/** + * Paragraph and inline elements + * -------------------------------------------------------------------------- */ + +.vp-doc p, +.vp-doc summary { + margin: 16px 0; +} + +.vp-doc p { + line-height: 28px; +} + +.vp-doc blockquote { + margin: 16px 0; + border-left: 2px solid var(--vp-c-divider); + padding-left: 16px; + transition: border-color 0.5s; +} + +.vp-doc blockquote > p { + margin: 0; + font-size: 16px; + color: var(--vp-c-text-2); + transition: color 0.5s; +} + +.vp-doc a { + font-weight: 500; + color: var(--vp-c-brand); + text-decoration-style: dotted; + transition: color 0.25s; +} + +.vp-doc a:hover { + color: var(--vp-c-brand-dark); +} + +.vp-doc strong { + font-weight: 600; +} + +/** + * Lists + * -------------------------------------------------------------------------- */ + +.vp-doc ul, +.vp-doc ol { + margin: 16px 0; +} + +.vp-doc ul { + padding-left: 1.25rem; + list-style: disc; +} + +/** + * Table + * -------------------------------------------------------------------------- */ + +.vp-doc table { + display: block; + border-collapse: collapse; + margin: 20px 0; + overflow-x: auto; +} + +.vp-doc tr { + border-top: 1px solid var(--vp-c-divider); + transition: background-color 0.5s; +} + +.vp-doc tr:nth-child(2n) { + background-color: var(--vp-c-bg-soft); +} + +.dark .vp-doc tr:nth-child(2n) { + background-color: var(--vp-c-bg-mute); +} + +.vp-doc th, +.vp-doc td { + border: 1px solid var(--vp-c-divider); + padding: 12px 16px; +} + +.vp-doc th { + font-size: 16px; + font-weight: 600; + background-color: var(--vp-c-white-soft); +} + +.dark .vp-doc th { + background-color: var(--vp-c-black); +} + +/** + * Decorational elements + * -------------------------------------------------------------------------- */ + +.vp-doc hr { + margin: 16px 0; + border: none; + border-top: 1px solid var(--vp-c-divider-light); +} + +/** + * Code + * -------------------------------------------------------------------------- */ + +/* inline code */ +.vp-doc :not(pre, h1, h2, h3, h4, h5, h6) > code { + font-size: var(--vp-code-font-size); +} + +.vp-doc :not(pre) > code { + border-radius: 4px; + padding: 4px 6px; + color: var(--vp-c-text-code); + background-color: var(--vp-c-bg-mute); + transition: color 0.5s, background-color 0.5s; +} + +.vp-doc h1 > code, +.vp-doc h2 > code, +.vp-doc h3 > code { + font-size: 0.9em; +} + +@media (min-width: 768px) { + .vp-doc :not(pre) > code { + white-space: nowrap; + } +} + +.vp-doc a > code { + color: var(--vp-c-brand-dark); +} + +.vp-doc div[class*='language-'] { + position: relative; + margin: 20px -24px; + background-color: var(--vp-code-block-bg); + overflow-x: auto; + transition: background-color 0.5s; +} + +@media (min-width: 640px) { + .vp-doc div[class*='language-'] { + border-radius: 8px; + margin: 20px 0; + } +} + +@media (max-width: 639px) { + .vp-doc li div[class*='language-'] { + border-radius: 8px 0 0 8px; + } +} + +.vp-doc div[class*='language-'] + div[class*='language-'], +.vp-doc div[class$='-api'] + div[class*='language-'], +.vp-doc div[class*='language-'] + div[class$='-api'] > div[class*='language-'] { + margin-top: -12px; +} + +.vp-doc [class*='language-'] pre, +.vp-doc [class*='language-'] code { + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.vp-doc [class*='language-'] pre { + position: relative; + z-index: 1; + margin: 0; + padding: 16px 24px; + background: transparent; + overflow-x: auto; +} + +.vp-doc [class*='language-'] code { + display: inline-block; + padding: 0; + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-block-color); + transition: color 0.5s; +} + +.vp-doc .highlight-lines { + position: absolute; + top: 0; + bottom: 0; + left: 0; + padding: 13px 0 11px; + width: 100%; + font-family: var(--vp-font-family-mono); + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + user-select: none; + overflow: hidden; +} + +.vp-doc .highlight-lines .highlighted { + background-color: rgba(0, 0, 0, 0.3); + transition: background-color 0.5s; +} + +.dark .vp-doc .highlight-lines .highlighted { + background-color: rgba(255, 255, 255, 0.05); +} + +.vp-doc div[class*='language-'].line-numbers-mode { + padding-left: 32px; +} + +.vp-doc .line-numbers-wrapper { + position: absolute; + top: 0; + bottom: 0; + left: 0; + z-index: 3; + border-right: 1px solid var(--vp-c-divider-light); + padding: 13px 0 11px; + width: 32px; + text-align: center; + font-family: var(--vp-font-family-mono); + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-c-text-3); + transition: border-color 0.5s, color 0.5s; +} + +.vp-doc [class*='language-']:before { + position: absolute; + top: 4px; + right: 10px; + z-index: 2; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-dark-3); + transition: color 0.5s; +} + +.vp-doc [class~='language-vue']:before { content: 'vue'; } +.vp-doc [class~='language-html']:before { content: 'html'; } +.vp-doc [class~='language-vue-html']:before { content: 'template'; } +.vp-doc [class~='language-css']:before { content: 'css'; } +.vp-doc [class~='language-js']:before { content: 'js'; } +.vp-doc [class~='language-jsx']:before { content: 'jsx'; } +.vp-doc [class~='language-ts']:before { content: 'ts'; } +.vp-doc [class~='language-tsx']:before { content: 'tsx'; } +.vp-doc [class~='language-json']:before { content: 'json'; } +.vp-doc [class~='language-sh']:before { content: 'sh'; } +.vp-doc [class~='language-bash']:before { content: 'sh'; } + +/** + * Code: Highlight + * + * prism.js tomorrow night eighties theme. + * https://github.com/chriskempson/tomorrow-theme + * + * @author Rose Pritchard + * -------------------------------------------------------------------------- */ + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #999; +} + +.token.punctuation { + color: #ccc; +} + +.token.tag, +.token.attr-name, +.token.namespace, +.token.deleted { + color: #e2777a; +} + +.token.function-name { + color: #6196cc; +} + +.token.boolean, +.token.number, +.token.function { + color: #f08d49; +} + +.token.property, +.token.class-name, +.token.constant, +.token.symbol { + color: #f8c555; +} + +.token.selector, +.token.important, +.token.atrule, +.token.keyword, +.token.builtin { + color: #cc99cd; +} + +.token.string, +.token.char, +.token.attr-value, +.token.regex, +.token.variable { + color: #7ec699; +} + +.token.operator, +.token.entity, +.token.url { + color: #67cdcc; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.inserted { + color: green; +} diff --git a/src/client/theme-default/support/sideBar.ts b/src/client/theme-default/support/sideBar.ts index 63ccce17..cbb057a1 100644 --- a/src/client/theme-default/support/sideBar.ts +++ b/src/client/theme-default/support/sideBar.ts @@ -1,33 +1,17 @@ import { DefaultTheme } from '../config' -import { isArray, ensureStartingSlash, removeExtention } from '../utils' - -export function isSideBarConfig( - sidebar: DefaultTheme.SideBarConfig | DefaultTheme.MultiSideBarConfig -): sidebar is DefaultTheme.SideBarConfig { - return sidebar === false || sidebar === 'auto' || isArray(sidebar) -} - -export function isSideBarGroup( - item: DefaultTheme.SideBarItem -): item is DefaultTheme.SideBarGroup { - return (item as DefaultTheme.SideBarGroup).children !== undefined -} - -export function isSideBarEmpty(sidebar?: DefaultTheme.SideBarConfig): boolean { - return isArray(sidebar) ? sidebar.length === 0 : !sidebar -} +import { ensureStartingSlash } from './utils' /** - * Get the `SideBarConfig` from sidebar option. This method will ensure to get - * correct sidebar config from `MultiSideBarConfig` with various path - * combinations such as matching `guide/` and `/guide/`. If no matching config - * was found, it will return `auto` as a fallback. + * Get the `Sidebar` from sidebar option. This method will ensure to get correct + * sidebar config from `MultiSideBarConfig` with various path combinations such + * as matching `guide/` and `/guide/`. If no matching config was found, it will + * return empty array. */ -export function getSideBarConfig( - sidebar: DefaultTheme.SideBarConfig | DefaultTheme.MultiSideBarConfig, +export function getSidebar( + sidebar: DefaultTheme.Sidebar, path: string -): DefaultTheme.SideBarConfig { - if (isSideBarConfig(sidebar)) { +): DefaultTheme.SidebarGroup[] { + if (Array.isArray(sidebar)) { return sidebar } @@ -40,27 +24,19 @@ export function getSideBarConfig( } } - return 'auto' + return [] } -/** - * Get flat sidebar links from the sidebar items. This method is useful for - * creating the "next and prev link" feature. It will ignore any items that - * don't have `link` property and removes `.md` or `.html` extension if a - * link contains it. - */ export function getFlatSideBarLinks( - sidebar: DefaultTheme.SideBarItem[] -): DefaultTheme.SideBarLink[] { - return sidebar.reduce((links, item) => { - if (item.link) { - links.push({ text: item.text, link: removeExtention(item.link) }) - } + sidebar: DefaultTheme.SidebarGroup[] +): DefaultTheme.SidebarItem[] { + const links: DefaultTheme.SidebarItem[] = [] - if (isSideBarGroup(item)) { - links = [...links, ...getFlatSideBarLinks(item.children)] + for (const group of sidebar) { + for (const link of group.items) { + links.push(link) } + } - return links - }, []) + return links } diff --git a/src/client/theme-default/support/utils.ts b/src/client/theme-default/support/utils.ts new file mode 100644 index 00000000..bc99d224 --- /dev/null +++ b/src/client/theme-default/support/utils.ts @@ -0,0 +1,64 @@ +import { ref } from 'vue' +import { withBase } from 'vitepress' + +export const HASH_RE = /#.*$/ +export const EXT_RE = /(index)?\.(md|html)$/ +export const OUTBOUND_RE = /^[a-z]+:/i + +const inBrowser = typeof window !== 'undefined' +const hashRef = ref(inBrowser ? location.hash : '') + +export function isExternal(path: string): boolean { + return OUTBOUND_RE.test(path) +} + +export function isActive( + currentPath: string, + matchPath?: string, + asRegex: boolean = false +): boolean { + if (matchPath === undefined) { + return false + } + + currentPath = normalize(`/${currentPath}`) + + if (asRegex) { + return new RegExp(matchPath).test(currentPath) + } + + if (normalize(matchPath) !== currentPath) { + return false + } + + const hashMatch = matchPath.match(HASH_RE) + + if (hashMatch) { + return hashRef.value === hashMatch[0] + } + + return true +} + +export function ensureStartingSlash(path: string): string { + return /^\//.test(path) ? path : `/${path}` +} + +export function normalize(path: string): string { + return decodeURI(path).replace(HASH_RE, '').replace(EXT_RE, '') +} + +export function normalizeLink(url: string): string { + if (isExternal(url)) { + return url + } + + const { pathname, search, hash } = new URL(url, 'http://example.com') + + const normalizedPath = + pathname.endsWith('/') || pathname.endsWith('.html') + ? url + : `${pathname.replace(/(\.md)?$/, '.html')}${search}${hash}` + + return withBase(normalizedPath) +} diff --git a/src/client/theme-default/utils.ts b/src/client/theme-default/utils.ts deleted file mode 100644 index 4c6f88de..00000000 --- a/src/client/theme-default/utils.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Route } from 'vitepress' - -export const hashRE = /#.*$/ -export const extRE = /(index)?\.(md|html)$/ -export const endingSlashRE = /\/$/ -export const outboundRE = /^[a-z]+:/i - -export function isNullish(value: any): value is null | undefined { - return value === null || value === undefined -} - -export function isArray(value: any): value is any[] { - return Array.isArray(value) -} - -export function isExternal(path: string): boolean { - return outboundRE.test(path) -} - -export function isActive(route: Route, path?: string): boolean { - if (path === undefined) { - return false - } - - const routePath = normalize(`/${route.data.relativePath}`) - const pagePath = normalize(path) - - return routePath === pagePath -} - -export function normalize(path: string): string { - return decodeURI(path).replace(hashRE, '').replace(extRE, '') -} - -export function joinUrl(base: string, path: string): string { - const baseEndsWithSlash = base.endsWith('/') - const pathStartsWithSlash = path.startsWith('/') - - if (baseEndsWithSlash && pathStartsWithSlash) { - return base.slice(0, -1) + path - } - - if (!baseEndsWithSlash && !pathStartsWithSlash) { - return `${base}/${path}` - } - - return base + path -} - -/** - * get the path without filename (the last segment). for example, if the given - * path is `/guide/getting-started.html`, this method will return `/guide/`. - * Always with a trailing slash. - */ -export function getPathDirName(path: string): string { - const segments = path.split('/') - - if (segments[segments.length - 1]) { - segments.pop() - } - - return ensureEndingSlash(segments.join('/')) -} - -export function ensureSlash(path: string): string { - return ensureEndingSlash(ensureStartingSlash(path)) -} - -export function ensureStartingSlash(path: string): string { - return /^\//.test(path) ? path : `/${path}` -} - -export function ensureEndingSlash(path: string): string { - return /(\.html|\/)$/.test(path) ? path : `${path}/` -} - -/** - * Remove `.md` or `.html` extention from the given path. It also converts - * `index` to slush. - */ -export function removeExtention(path: string): string { - return path.replace(/(index)?(\.(md|html))?$/, '') || '/' -} diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index 60a45fa7..2cfd0ea7 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -1,125 +1,156 @@ export namespace DefaultTheme { export interface Config { - logo?: string - nav?: NavItem[] | false - sidebar?: SideBarConfig | MultiSideBarConfig - /** - * GitHub repository following the format /. + * The logo file of the site. * - * @example `"vuejs/vue-next"` + * @example '/logo.svg' */ - repo?: string + logo?: string /** - * Customize the header label. Defaults to GitHub/Gitlab/Bitbucket - * depending on the provided repo. - * - * @example `"Contribute!"` + * The nav items. */ - repoLabel?: string + nav?: NavItem[] /** - * If your docs are in a different repository from your main project. - * - * @example `"vuejs/docs-next"` + * The sidebar items. */ - docsRepo?: string + sidebar?: Sidebar /** - * If your docs are not at the root of the repo. - * - * @example `"docs"` + * Info for the edit link. If it's undefined, the edit link feature will + * be disabled. */ - docsDir?: string + editLink?: EditLink /** - * If your docs are in a different branch. Defaults to `master`. - * - * @example `"next"` + * The social links to be displayed at the end of the nav bar. Perfect for + * placing links to social services such as GitHub, Twitter, Facebook, etc. */ - docsBranch?: string + socialLinks?: SocialLink[] /** - * Enable links to edit pages at the bottom of the page. + * Adds locale menu to the nav. This option should be used when you have + * your translated sites outside of the project. */ - editLinks?: boolean + localeLinks?: LocaleLinks /** - * Custom text for edit link. Defaults to "Edit this page". + * The algolia options. Leave it undefined to disable the search feature. */ - editLinkText?: string + algolia?: AlgoliaSearchOptions /** - * Show last updated time at the bottom of the page. Defaults to `false`. - * If given a string, it will be displayed as a prefix (default value: - * "Last Updated"). + * The carbon ads options. Leave it undefined to disable the ads feature. */ - lastUpdated?: string | boolean - - prevLinks?: boolean - nextLinks?: boolean - - locales?: Record> - - algolia?: AlgoliaSearchOptions - - carbonAds?: { - carbon: string - custom?: string - placement: string - } + carbonAds?: CarbonAdsOptions } - // navbar -------------------------------------------------------------------- + // nav ----------------------------------------------------------------------- export type NavItem = NavItemWithLink | NavItemWithChildren - export interface NavItemBase { + export type NavItemWithLink = { text: string - target?: string - rel?: string - ariaLabel?: string - activeMatch?: string - } - - export interface NavItemWithLink extends NavItemBase { link: string + + /** + * `activeMatch` is expected to be a regex string. We can't use actual + * RegExp object here because it isn't serializable + */ + activeMatch?: string } - export interface NavItemWithChildren extends NavItemBase { + export interface NavItemWithChildren { + text?: string items: NavItemWithLink[] } // sidebar ------------------------------------------------------------------- - export type SideBarConfig = SideBarItem[] | 'auto' | false + export type Sidebar = SidebarGroup[] | SidebarMulti - export interface MultiSideBarConfig { - [path: string]: SideBarConfig + export interface SidebarMulti { + [path: string]: SidebarGroup[] } - export type SideBarItem = SideBarLink | SideBarGroup + export interface SidebarGroup { + text: string + items: SidebarItem[] + } - export interface SideBarLink { + export interface SidebarItem { text: string link: string } - export interface SideBarGroup { - text: string - link?: string + // edit link ----------------------------------------------------------------- + + export interface EditLink { + /** + * Repo of the site. + * + * @example 'vuejs/docs' + */ + repo: string + + /** + * Branch of the repo. + * + * @default 'main' + */ + branch?: string /** - * @default false + * If your docs are not at the root of the repo. + * + * @example 'docs' */ - collapsable?: boolean + dir?: string - children: SideBarItem[] + /** + * Custom text for edit link. + * + * @default 'Edit this page' + */ + text?: string } - // algolia ------------------------------------------------------------------ - // partially copied from @docsearch/react/dist/esm/DocSearch.d.ts + // social link --------------------------------------------------------------- + + export interface SocialLink { + icon: SocialLinkIcon + link: string + } + + export type SocialLinkIcon = + | 'discord' + | 'facebook' + | 'github' + | 'instagram' + | 'linkedin' + | 'slack' + | 'twitter' + | 'youtube' + + // locales ------------------------------------------------------------------- + + export interface LocaleLinks { + text: string + items: LocaleLink[] + } + + export interface LocaleLink { + text: string + link: string + } + + // algolia ------------------------------------------------------------------ + + /** + * The Algolia search options. Partially copied from + * `@docsearch/react/dist/esm/DocSearch.d.ts` + */ export interface AlgoliaSearchOptions { appId: string apiKey: string @@ -130,17 +161,11 @@ export namespace DefaultTheme { initialQuery?: string } - // locales ------------------------------------------------------------------- + // carbon ads ---------------------------------------------------------------- - export interface LocaleConfig { - /** - * Text for the language dropdown. - */ - selectText?: string - - /** - * Label for this locale in the language dropdown. - */ - label?: string + export interface CarbonAdsOptions { + carbon: string + custom?: string + placement: string } } From 9250460b3ff79121200e9bc3b27a39e64fcf284c Mon Sep 17 00:00:00 2001 From: Kia Ishii Date: Thu, 19 May 2022 21:35:46 +0900 Subject: [PATCH 012/128] feat: make appearance configurable --- docs/.vitepress/config.ts | 27 ++---- docs/config/app-configs.md | 82 +++++++++++++++++++ docs/config/theme-configs.md | 3 + .../theme-default/components/VPNavBar.vue | 1 + .../components/VPNavBarAppearance.vue | 5 +- .../components/VPNavBarExtra.vue | 4 +- .../components/VPNavScreenAppearance.vue | 5 +- .../components/VPSwitchAppearance.vue | 6 +- src/client/theme-default/styles/vp-doc.css | 2 +- src/node/build/render.ts | 6 +- src/node/config.ts | 39 +++++++-- src/shared/shared.ts | 1 + types/shared.d.ts | 17 ++-- 13 files changed, 154 insertions(+), 44 deletions(-) create mode 100644 docs/config/app-configs.md create mode 100644 docs/config/theme-configs.md diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index d0acaa99..19c7e415 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -5,28 +5,10 @@ export default defineConfig({ title: 'VitePress', description: 'Vite & Vue powered static site generator.', - // TODO: Do something about this. - head: [ - [ - 'script', - {}, - ` - ;(() => { - const saved = localStorage.getItem('vitepress-theme-appearance') - const prefereDark = window.matchMedia('(prefers-color-scheme: dark)').matches - - if (!saved || saved === 'auto' ? prefereDark : saved === 'dark') { - document.documentElement.classList.add('dark') - } - })() - ` - ] - ], - themeConfig: { nav: [ { text: 'Guide', link: '/guide/what-is-vitepress' }, - { text: 'Config', link: '/config/app-basics' }, + { text: 'Configs', link: '/config/app-configs' }, { text: 'Release Notes', link: 'https://github.com/vuejs/vitepress/releases' @@ -70,8 +52,11 @@ function getGuideSidebar() { function getConfigSidebar() { return [ { - text: 'App Config', - items: [{ text: 'Basics', link: '/config/app-basics' }] + text: 'Config', + items: [ + { text: 'App Configs', link: '/config/app-configs' }, + { text: 'Theme Configs', link: '/config/theme-configs' } + ] } ] } diff --git a/docs/config/app-configs.md b/docs/config/app-configs.md new file mode 100644 index 00000000..d3092f20 --- /dev/null +++ b/docs/config/app-configs.md @@ -0,0 +1,82 @@ +# App Configs + +App configs are where you can define the global settings of the site. App configs define fundamental settings that are not only limited to the theme configs such as configuration for "base directory", or the "title" of the site. + +```ts +export default { + // These are app level configs. + lang: 'en-US', + title: 'VitePress', + description: 'Vite & Vue powered static site generator.', + ... +} +``` + +## base + +- Type: `string` +- Default: `/` + +The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to `https://foo.github.io/bar/`, then you should set base to `'/bar/'`. It should always start and end with a slash. + +The base is automatically prepended to all the URLs that start with / in other options, so you only need to specify it once. + +```ts +export default { + base: '/base/' +} +``` + +## lang + +- Type: `string` +- Default: `en-US` + +The lang attribute for the site. This will render as a `` tag in the page HTML. + +```ts +export default { + lang: 'en-US' +} +``` + +## title + +- Type: `string` +- Default: `VitePress` + +Title for the site. This will be the suffix for all page titles, and displayed in the nav bar. + +```ts +export default { + title: 'VitePress' +} +``` + +## description + +- Type: `string` +- Default: `A VitePress site` + +Description for the site. This will render as a `` tag in the page HTML. + +```ts +export default { + description: 'A VitePress site' +} +``` + +## appearance + +- Type: `boolean` +- Default: `true` + +Whether to enable "Dark Mode" or not. If the option is set to `true`, it adds `.dark` class to the `` tag. + +It also injects inline script that tries to read users settings from local storage by `vitepress-theme-appearance` key and restores users preferred color mode. + +```ts +export default { + appearance: true +} +``` diff --git a/docs/config/theme-configs.md b/docs/config/theme-configs.md new file mode 100644 index 00000000..3bd5693f --- /dev/null +++ b/docs/config/theme-configs.md @@ -0,0 +1,3 @@ +# Theme Configs + +Coming soon... diff --git a/src/client/theme-default/components/VPNavBar.vue b/src/client/theme-default/components/VPNavBar.vue index 7d5c3196..7f8a15c3 100644 --- a/src/client/theme-default/components/VPNavBar.vue +++ b/src/client/theme-default/components/VPNavBar.vue @@ -84,6 +84,7 @@ defineEmits<{ .menu + .translations::before, .menu + .appearance::before, +.menu + .social-links::before, .translations + .appearance::before, .appearance + .social-links::before { margin-right: 8px; diff --git a/src/client/theme-default/components/VPNavBarAppearance.vue b/src/client/theme-default/components/VPNavBarAppearance.vue index 39add39a..62c8d9fc 100644 --- a/src/client/theme-default/components/VPNavBarAppearance.vue +++ b/src/client/theme-default/components/VPNavBarAppearance.vue @@ -1,9 +1,12 @@ diff --git a/src/client/theme-default/components/VPNavBarExtra.vue b/src/client/theme-default/components/VPNavBarExtra.vue index 13abe687..8f27f502 100644 --- a/src/client/theme-default/components/VPNavBarExtra.vue +++ b/src/client/theme-default/components/VPNavBarExtra.vue @@ -4,7 +4,7 @@ import VPFlyout from './VPFlyout.vue' import VPSwitchAppearance from './VPSwitchAppearance.vue' import VPSocialLinks from './VPSocialLinks.vue' -const { theme } = useData() +const { site, theme } = useData() diff --git a/src/client/theme-default/components/VPHero.vue b/src/client/theme-default/components/VPHero.vue new file mode 100644 index 00000000..89258050 --- /dev/null +++ b/src/client/theme-default/components/VPHero.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/client/theme-default/components/VPHome.vue b/src/client/theme-default/components/VPHome.vue index da120e7c..12e85c39 100644 --- a/src/client/theme-default/components/VPHome.vue +++ b/src/client/theme-default/components/VPHome.vue @@ -1,9 +1,33 @@ + + diff --git a/src/client/theme-default/components/VPHomeFeatures.vue b/src/client/theme-default/components/VPHomeFeatures.vue new file mode 100644 index 00000000..b0248cf4 --- /dev/null +++ b/src/client/theme-default/components/VPHomeFeatures.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/client/theme-default/components/VPHomeHero.vue b/src/client/theme-default/components/VPHomeHero.vue index 0899ade0..1e98618b 100644 --- a/src/client/theme-default/components/VPHomeHero.vue +++ b/src/client/theme-default/components/VPHomeHero.vue @@ -1,106 +1,17 @@ - - diff --git a/src/client/theme-default/components/VPHomeSponsors.vue b/src/client/theme-default/components/VPHomeSponsors.vue new file mode 100644 index 00000000..86173ee4 --- /dev/null +++ b/src/client/theme-default/components/VPHomeSponsors.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/client/theme-default/components/VPNavBarSearch.vue b/src/client/theme-default/components/VPNavBarSearch.vue index 3359fc49..227dfba4 100644 --- a/src/client/theme-default/components/VPNavBarSearch.vue +++ b/src/client/theme-default/components/VPNavBarSearch.vue @@ -3,9 +3,9 @@ import '@docsearch/css' import { useData } from 'vitepress' import { defineAsyncComponent, ref, onMounted, onUnmounted } from 'vue' -const VPAlgoliaSearchBox = defineAsyncComponent( - () => import('./VPAlgoliaSearchBox.vue') -) +const VPAlgoliaSearchBox = defineAsyncComponent(() => { + return import('./VPAlgoliaSearchBox.vue') +}) const { theme } = useData() diff --git a/src/client/theme-default/components/VPSponsors.vue b/src/client/theme-default/components/VPSponsors.vue new file mode 100644 index 00000000..fe90add9 --- /dev/null +++ b/src/client/theme-default/components/VPSponsors.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/client/theme-default/components/VPSponsorsGrid.vue b/src/client/theme-default/components/VPSponsorsGrid.vue new file mode 100644 index 00000000..68790653 --- /dev/null +++ b/src/client/theme-default/components/VPSponsorsGrid.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/client/theme-default/components/icons/VPIconHeart.vue b/src/client/theme-default/components/icons/VPIconHeart.vue new file mode 100644 index 00000000..d408828f --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconHeart.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/composables/outline.ts b/src/client/theme-default/composables/outline.ts index f1ce455a..460e5ca8 100644 --- a/src/client/theme-default/composables/outline.ts +++ b/src/client/theme-default/composables/outline.ts @@ -1,6 +1,7 @@ import { Ref, onMounted, onUpdated, onUnmounted } from 'vue' import { Header } from 'vitepress' import { useMediaQuery } from '@vueuse/core' +import { throttleAndDebounce } from '../support/utils' interface HeaderWithChildren extends Header { children?: Header[] @@ -162,24 +163,3 @@ function isAnchorActive( return [false, null] } - -function throttleAndDebounce(fn: () => void, delay: number): () => void { - let timeout: number - let called = false - - return () => { - if (timeout) { - clearTimeout(timeout) - } - - if (!called) { - fn() - called = true - setTimeout(() => { - called = false - }, delay) - } else { - timeout = setTimeout(fn, delay) - } - } -} diff --git a/src/client/theme-default/composables/sponsor-grid.ts b/src/client/theme-default/composables/sponsor-grid.ts new file mode 100644 index 00000000..cd356c74 --- /dev/null +++ b/src/client/theme-default/composables/sponsor-grid.ts @@ -0,0 +1,130 @@ +import { Ref, onMounted, onUnmounted } from 'vue' +import { throttleAndDebounce } from '../support/utils' + +export interface GridSetting { + [size: string]: [number, number][] +} + +export type GridSize = 'small' | 'medium' | 'big' + +export interface UseSponsorsGridOprions { + el: Ref + size: GridSize +} + +/** + * Defines grid configuration for each sponsor size in touple. + * + * [Screen widh, Column size] + * + * It sets grid size on matching screen size. For example, `[768, 5]` will set + * 5 columns when screen size is bigger or equal to 768px. + * + * Column will set only when item size is bigger than the column size. For + * example, even we want 5 columns, if we only have 1 sponsor yet, we would + * like to show it in 1 column. + */ +const GridSettings: GridSetting = { + small: [ + [920, 6], + [768, 5], + [640, 4], + [480, 3], + [0, 2] + ], + medium: [ + [960, 5], + [832, 4], + [640, 3], + [480, 2] + ], + big: [ + [832, 3], + [640, 2] + ] +} + +export function useSponsorsGrid(options: UseSponsorsGridOprions) { + const onResize = throttleAndDebounce(manage, 100) + + onMounted(() => { + manage() + window.addEventListener('resize', onResize) + }) + + onUnmounted(() => { + window.removeEventListener('resize', onResize) + }) + + function manage() { + adjustSlots(options.el.value!, options.size) + } +} + +function adjustSlots(el: HTMLElement, size: GridSize) { + const tsize = el.children.length + const asize = el.querySelectorAll('.vp-sponsor-grid-item:not(.empty)').length + + const grid = setGrid(el, size, asize) + + manageSlots(el, grid, tsize, asize) +} + +function setGrid(el: HTMLElement, size: GridSize, items: number) { + const settings = GridSettings[size] + const screen = window.innerWidth + + let grid = 1 + + settings.some(([breakpoint, value]) => { + if (screen >= breakpoint) { + grid = items < value ? items : value + return true + } + }) + + setGridData(el, grid) + + return grid +} + +function setGridData(el: HTMLElement, value: number) { + el.dataset.vpGrid = String(value) +} + +function manageSlots( + el: HTMLElement, + grid: number, + tsize: number, + asize: number +) { + const diff = tsize - asize + const rem = asize % grid + const drem = rem === 0 ? rem : grid - rem + + neutralizeSlots(el, drem - diff) +} + +function neutralizeSlots(el: HTMLElement, count: number) { + if (count === 0) { + return + } + + count > 0 ? addSlots(el, count) : removeSlots(el, count * -1) +} + +function addSlots(el: HTMLElement, count: number) { + for (let i = 0; i < count; i++) { + const slot = document.createElement('div') + + slot.classList.add('vp-sponsor-grid-item', 'empty') + + el.append(slot) + } +} + +function removeSlots(el: HTMLElement, count: number) { + for (let i = 0; i < count; i++) { + el.removeChild(el.lastElementChild!) + } +} diff --git a/src/client/theme-default/index.ts b/src/client/theme-default/index.ts index c3d43d7a..ca744086 100644 --- a/src/client/theme-default/index.ts +++ b/src/client/theme-default/index.ts @@ -3,6 +3,7 @@ import './styles/vars.css' import './styles/base.css' import './styles/utils.css' import './styles/vp-doc.css' +import './styles/vp-sponsor.css' import { Theme } from 'vitepress' import Layout from './Layout.vue' @@ -10,6 +11,10 @@ import NotFound from './NotFound.vue' export { DefaultTheme } from './config' +export { default as VPHomeHero } from './components/VPHomeHero.vue' +export { default as VPHomeFeatures } from './components/VPHomeFeatures.vue' +export { default as VPHomeSponsors } from './components/VPHomeSponsors.vue' + const theme: Theme = { Layout, NotFound diff --git a/src/client/theme-default/styles/vars.css b/src/client/theme-default/styles/vars.css index fe6e2a5d..0ec0581d 100644 --- a/src/client/theme-default/styles/vars.css +++ b/src/client/theme-default/styles/vars.css @@ -52,6 +52,9 @@ --vp-c-indigo: #213547; --vp-c-indigo-soft: #476582; --vp-c-indigo-light: #aac8e4; + --vp-c-indigo-lighter: #c9def1; + --vp-c-indigo-dark: #1d2f3f; + --vp-c-indigo-darker: #14212e; --vp-c-blue: #3b8eed; --vp-c-blue-light: #549ced; @@ -109,7 +112,11 @@ --vp-c-brand: var(--vp-c-green); --vp-c-brand-light: var(--vp-c-green-light); + --vp-c-brand-lighter: var(--vp-c-green-lighter); --vp-c-brand-dark: var(--vp-c-green-dark); + --vp-c-brand-darker: var(--vp-c-green-darker); + + --vp-c-sponsor: #fd1d7c; } .dark { @@ -168,8 +175,9 @@ :root { --vp-z-index-local-nav: 10; --vp-z-index-nav: 20; - --vp-z-backdrop: 30; + --vp-z-index-backdrop: 30; --vp-z-index-sidebar: 40; + --vp-z-index-footer: 50; } /** @@ -221,13 +229,71 @@ } /** - * Component: Home + * Component: Button * -------------------------------------------------------------------------- */ :root { - + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand); + --vp-button-brand-hover-border: var(--vp-c-brand-light); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-light); + --vp-button-brand-active-border: var(--vp-c-brand-light); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + + --vp-button-alt-border: var(--vp-c-gray-light-3); + --vp-button-alt-text: var(--vp-c-text-light-1); + --vp-button-alt-bg: var(--vp-c-gray-light-5); + --vp-button-alt-hover-border: var(--vp-c-gray-light-3); + --vp-button-alt-hover-text: var(--vp-c-text-light-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-light-4); + --vp-button-alt-active-border: var(--vp-c-gray-light-3); + --vp-button-alt-active-text: var(--vp-c-text-light-1); + --vp-button-alt-active-bg: var(--vp-c-gray-light-3); + + --vp-button-sponsor-border: var(--vp-c-gray-light-3); + --vp-button-sponsor-text: var(--vp-c-text-light-2); + --vp-button-sponsor-bg: transparent; + --vp-button-sponsor-hover-border: var(--vp-c-sponsor); + --vp-button-sponsor-hover-text: var(--vp-c-sponsor); + --vp-button-sponsor-hover-bg: transparent; + --vp-button-sponsor-active-border: var(--vp-c-sponsor); + --vp-button-sponsor-active-text: var(--vp-c-sponsor); + --vp-button-sponsor-active-bg: transparent; } .dark { + --vp-button-brand-border: var(--vp-c-brand-lighter); + --vp-button-brand-text: var(--vp-c-text-light-1); + --vp-button-brand-bg: var(--vp-c-brand-light); + --vp-button-brand-hover-border: var(--vp-c-brand-lighter); + --vp-button-brand-hover-text: var(--vp-c-text-light-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-lighter); + --vp-button-brand-active-border: var(--vp-c-brand-lighter); + --vp-button-brand-active-text: var(--vp-c-text-light-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + + --vp-button-alt-border: var(--vp-c-gray-dark-2); + --vp-button-alt-text: var(--vp-c-text-dark-1); + --vp-button-alt-bg: var(--vp-c-bg-mute); + --vp-button-alt-hover-border: var(--vp-c-gray-dark-2); + --vp-button-alt-hover-text: var(--vp-c-text-dark-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-dark-3); + --vp-button-alt-active-border: var(--vp-c-gray-dark-2); + --vp-button-alt-active-text: var(--vp-c-text-dark-1); + --vp-button-alt-active-bg: var(--vp-button-alt-bg); + + --vp-button-sponsor-border: var(--vp-c-gray-dark-1); + --vp-button-sponsor-text: var(--vp-c-text-dark-2); +} +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: var(--vp-c-brand); + --vp-home-hero-name-background: transparent; } diff --git a/src/client/theme-default/styles/vp-doc.css b/src/client/theme-default/styles/vp-doc.css index 44f79bf5..e664afbc 100644 --- a/src/client/theme-default/styles/vp-doc.css +++ b/src/client/theme-default/styles/vp-doc.css @@ -221,7 +221,7 @@ @media (min-width: 640px) { .vp-doc div[class*='language-'] { border-radius: 8px; - margin: 20px 0; + margin: 24px 0; } } diff --git a/src/client/theme-default/styles/vp-sponsor.css b/src/client/theme-default/styles/vp-sponsor.css new file mode 100644 index 00000000..877e0216 --- /dev/null +++ b/src/client/theme-default/styles/vp-sponsor.css @@ -0,0 +1,86 @@ +.vp-sponsor-grid { + display: flex; + flex-wrap: wrap; + gap: 4px; +} + +.vp-sponsor-grid.small .vp-sponsor-grid-link { height: 96px; } +.vp-sponsor-grid.small .vp-sponsor-grid-image { max-width: 96px; max-height: 24px } + +.vp-sponsor-grid.medium .vp-sponsor-grid-link { height: 112px; } +.vp-sponsor-grid.medium .vp-sponsor-grid-image { max-width: 120px; max-height: 36px } + +.vp-sponsor-grid.big .vp-sponsor-grid-link { height: 184px; } +.vp-sponsor-grid.big .vp-sponsor-grid-image { max-width: 192px; max-height: 56px } + +.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item { + width: calc((100% - 4px) / 2); +} + +.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 2) / 3); +} + +.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 3) / 4); +} + +.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 4) / 5); +} + +.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 5) / 6); +} + +.vp-sponsor-grid-item { + flex-shrink: 0; + width: 100%; + background-color: var(--vp-c-white-soft); + transition: background-color 0.25s; +} + +.vp-sponsor-grid-item:hover { + background-color: var(--vp-c-white-mute); +} + +.vp-sponsor-grid-item:hover .vp-sponsor-grid-image { + filter: grayscale(0) invert(0); +} + +.vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-white-soft); +} + +.dark .vp-sponsor-grid-item { + background-color: var(--vp-c-black-mute); +} + +.dark .vp-sponsor-grid-item:hover { + background-color: var(--vp-c-white-soft); +} + +.dark .vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-black-mute); +} + +.vp-sponsor-grid-link { + display: flex; +} + +.vp-sponsor-grid-box { + display: flex; + justify-content: center; + align-items: center; + width: 100%; +} + +.vp-sponsor-grid-image { + max-width: 100%; + filter: grayscale(1); + transition: filter 0.25s; +} + +.dark .vp-sponsor-grid-image { + filter: grayscale(1) invert(1); +} diff --git a/src/client/theme-default/support/utils.ts b/src/client/theme-default/support/utils.ts index bc99d224..be2a39c8 100644 --- a/src/client/theme-default/support/utils.ts +++ b/src/client/theme-default/support/utils.ts @@ -12,6 +12,27 @@ export function isExternal(path: string): boolean { return OUTBOUND_RE.test(path) } +export function throttleAndDebounce(fn: () => void, delay: number): () => void { + let timeout: number + let called = false + + return () => { + if (timeout) { + clearTimeout(timeout) + } + + if (!called) { + fn() + called = true + setTimeout(() => { + called = false + }, delay) + } else { + timeout = setTimeout(fn, delay) + } + } +} + export function isActive( currentPath: string, matchPath?: string, diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index 2cfd0ea7..ef6d7a9e 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -29,6 +29,11 @@ export namespace DefaultTheme { */ socialLinks?: SocialLink[] + /** + * The footer configuration. + */ + footer?: Footer + /** * Adds locale menu to the nav. This option should be used when you have * your translated sites outside of the project. @@ -133,6 +138,13 @@ export namespace DefaultTheme { | 'twitter' | 'youtube' + // footer -------------------------------------------------------------------- + + export interface Footer { + message?: string + copyright?: string + } + // locales ------------------------------------------------------------------- export interface LocaleLinks { From 0e9ef436347772c2040484c706dd5043ef1d6539 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Sat, 21 May 2022 23:54:29 +0900 Subject: [PATCH 020/128] release: v1.0.0-draft.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0db7eb95..0959dc08 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vitepress", - "version": "1.0.0-draft.1", + "version": "1.0.0-draft.2", "packageManager": "pnpm@7.0.1", "description": "Vite & Vue powered static site generator", "main": "dist/node/index.js", From 86b49dde6b07d49465c79754a533318d0a1aa271 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Sat, 21 May 2022 23:56:04 +0900 Subject: [PATCH 021/128] release: v1.0.0-draft.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0959dc08..7096ed26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vitepress", - "version": "1.0.0-draft.2", + "version": "1.0.0-draft.3", "packageManager": "pnpm@7.0.1", "description": "Vite & Vue powered static site generator", "main": "dist/node/index.js", From 67e77f787188019c2c5f402cbf952290529297ea Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Sun, 22 May 2022 14:35:29 +0900 Subject: [PATCH 022/128] feat: add option to customize title template close #303 --- docs/config/app-configs.md | 17 +++++++++++++++- docs/config/frontmatter-configs.md | 13 ++++++++++++ docs/index.md | 3 +++ src/client/app/composables/head.ts | 6 +++--- src/client/app/data.ts | 11 ++++++---- src/node/build/render.ts | 8 ++------ src/node/config.ts | 2 ++ src/node/markdownToVue.ts | 9 +++++---- src/shared/shared.ts | 32 +++++++++++++++++++++++++++++- types/shared.d.ts | 3 +++ 10 files changed, 85 insertions(+), 19 deletions(-) diff --git a/docs/config/app-configs.md b/docs/config/app-configs.md index 2b85ce90..51632242 100644 --- a/docs/config/app-configs.md +++ b/docs/config/app-configs.md @@ -45,7 +45,7 @@ export default { - Type: `string` - Default: `VitePress` -Title for the site. This will be the suffix for all page titles, and displayed in the nav bar. +Title for the site. This will be displayed in the nav bar. Also used as the suffix for all page titles unless `titleTemplate` is defined. ```ts export default { @@ -53,6 +53,21 @@ export default { } ``` +## titleTemplate + +- Type: `string | boolean` + +The suffix for the title. For example, if you set `title` as `VitePress` and set `titleTemplate` as `My Site`, the html title becomes `VitePress | My Site`. + +Set `false` to disable the feature. If the option is `undefined`, then the value of `title` option will be used. + +```ts +export default { + title: 'VitePress', + titleTemplate: 'Vite & Vue powered static site generator.' +} +``` + ## description - Type: `string` diff --git a/docs/config/frontmatter-configs.md b/docs/config/frontmatter-configs.md index a8834a67..ed1f5f09 100644 --- a/docs/config/frontmatter-configs.md +++ b/docs/config/frontmatter-configs.md @@ -27,6 +27,19 @@ title: VitePress --- ``` +## titleTemplate + +- Type: `string | boolean` + +The suffix for the title. It's same as [config.titleTemplate](../config/app-configs#titleTemplate), and it overrides the app config. + +```yaml +--- +title: VitePress, +titleTemplate: Vite & Vue powered static site generator. +--- +``` + ## description - Type: `string` diff --git a/docs/index.md b/docs/index.md index 3a95aca1..ac33ff2b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,9 @@ --- layout: home +title: VitePress +titleTemplate: Vite & Vue powered static site generator. + hero: name: VitePress text: Vite & Vue powered static site generator. diff --git a/src/client/app/composables/head.ts b/src/client/app/composables/head.ts index b1f92529..91a46d21 100644 --- a/src/client/app/composables/head.ts +++ b/src/client/app/composables/head.ts @@ -1,5 +1,5 @@ import { watchEffect, Ref } from 'vue' -import { HeadConfig, SiteData } from '../../shared' +import { HeadConfig, SiteData, createTitle } from '../../shared' import { Route } from '../router' export function useUpdateHead(route: Route, siteDataByRouteRef: Ref) { @@ -56,12 +56,12 @@ export function useUpdateHead(route: Route, siteDataByRouteRef: Ref) { watchEffect(() => { const pageData = route.data const siteData = siteDataByRouteRef.value - const pageTitle = pageData && pageData.title const pageDescription = pageData && pageData.description const frontmatterHead = pageData && pageData.frontmatter.head // update title and description - document.title = (pageTitle ? pageTitle + ` | ` : ``) + siteData.title + document.title = createTitle(siteData, pageData) + document .querySelector(`meta[name=description]`)! .setAttribute('content', pageDescription || siteData.description) diff --git a/src/client/app/data.ts b/src/client/app/data.ts index a3ce5369..fb68378f 100644 --- a/src/client/app/data.ts +++ b/src/client/app/data.ts @@ -1,7 +1,12 @@ import { InjectionKey, Ref, shallowRef, readonly, computed, inject } from 'vue' import { Route } from './router' import serializedSiteData from '@siteData' -import { resolveSiteDataByRoute, PageData, SiteData } from '../shared' +import { + PageData, + SiteData, + resolveSiteDataByRoute, + createTitle +} from '../shared' import { withBase } from './utils' export const dataSymbol: InjectionKey = Symbol() @@ -54,9 +59,7 @@ export function initData(route: Route): VitePressData { return withBase(path || '/') }), title: computed(() => { - return route.data.title - ? route.data.title + ' | ' + site.value.title - : site.value.title + return createTitle(site.value, route.data) }), description: computed(() => { return route.data.description || site.value.description diff --git a/src/node/build/render.ts b/src/node/build/render.ts index 31d81465..1a57d4c3 100644 --- a/src/node/build/render.ts +++ b/src/node/build/render.ts @@ -1,7 +1,7 @@ import path from 'path' import fs from 'fs-extra' import { SiteConfig, resolveSiteDataByRoute } from '../config' -import { HeadConfig } from '../shared' +import { HeadConfig, createTitle } from '../shared' import { normalizePath, transformWithEsbuild } from 'vite' import { RollupOutput, OutputChunk, OutputAsset } from 'rollup' import { slash } from '../utils/slash' @@ -92,11 +92,7 @@ export async function renderPage( ? `` : '' - const title: string = - pageData.title && pageData.title !== 'Home' - ? `${pageData.title} | ${siteData.title}` - : siteData.title - + const title: string = createTitle(siteData, pageData) const description: string = pageData.description || siteData.description const head = addSocialTags( diff --git a/src/node/config.ts b/src/node/config.ts index 5ccecc31..b02bf083 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -32,6 +32,7 @@ export interface UserConfig { base?: string lang?: string title?: string + titleTemplate?: string | boolean description?: string head?: HeadConfig[] appearance?: boolean @@ -248,6 +249,7 @@ export async function resolveSiteData( return { lang: userConfig.lang || 'en-US', title: userConfig.title || 'VitePress', + titleTemplate: userConfig.titleTemplate, description: userConfig.description || 'A VitePress site', base: userConfig.base ? userConfig.base.replace(/([^/])$/, '$1/') : '/', head: resolveSiteDataHead(userConfig), diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index 22b9eb38..f3bb2542 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -134,6 +134,7 @@ export function createMarkdownToVueRenderFn( const pageData: PageData = { title: inferTitle(frontmatter, content), + titleTemplate: frontmatter.titleTemplate, description: inferDescription(frontmatter), frontmatter, headers: data.headers || [], @@ -197,17 +198,17 @@ function genPageDataCode(tags: string[], data: PageData) { return tags } -const inferTitle = (frontmatter: any, content: string) => { +const inferTitle = (frontmatter: Record, content: string) => { if (frontmatter.title) { return deeplyParseHeader(frontmatter.title) } - if (frontmatter.home) { - return 'Home' - } + const match = content.match(/^\s*#+\s+(.*)/m) + if (match) { return deeplyParseHeader(match[1].trim()) } + return '' } diff --git a/src/shared/shared.ts b/src/shared/shared.ts index 7679fc35..f296f026 100644 --- a/src/shared/shared.ts +++ b/src/shared/shared.ts @@ -1,4 +1,4 @@ -import { LocaleConfig, SiteData } from '../../types/shared' +import { SiteData, PageData, LocaleConfig } from '../../types/shared' export type { SiteData, @@ -83,6 +83,36 @@ export function resolveSiteDataByRoute( }) } +/** + * Create the page title string based on configs. + */ +export function createTitle(siteData: SiteData, pageData: PageData): string { + const title = pageData.title || siteData.title + const template = pageData.titleTemplate ?? siteData.titleTemplate + const templateString = createTitleTemplate(siteData.title, template) + + return `${title}${templateString}` +} + +function createTitleTemplate( + siteTitle: string, + template?: string | boolean +): string { + if (template === false) { + return '' + } + + if (template === true || template === undefined) { + return ` | ${siteTitle}` + } + + if (siteTitle === template) { + return '' + } + + return ` | ${template}` +} + /** * Clean up the route by removing the `base` path if it's set in config. */ diff --git a/types/shared.d.ts b/types/shared.d.ts index 2027eb8f..d23dfae4 100644 --- a/types/shared.d.ts +++ b/types/shared.d.ts @@ -5,6 +5,7 @@ export { DefaultTheme } from './default-theme' export interface PageData { relativePath: string title: string + titleTemplate?: string | boolean description: string headers: Header[] frontmatter: Record @@ -28,6 +29,7 @@ export interface SiteData { lang: string title: string + titleTemplate?: string | boolean description: string head: HeadConfig[] appearance: boolean @@ -64,6 +66,7 @@ export type HeadConfig = export interface LocaleConfig { lang: string title?: string + titleTemplate?: string | boolean description?: string head?: HeadConfig[] label?: string From 68ebd436648093084734680de21e8064d44f0eb6 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Sun, 22 May 2022 16:27:31 +0900 Subject: [PATCH 023/128] fix: doc page layout on mobile is broken --- src/client/theme-default/components/VPContent.vue | 1 + src/client/theme-default/components/VPDoc.vue | 1 + 2 files changed, 2 insertions(+) diff --git a/src/client/theme-default/components/VPContent.vue b/src/client/theme-default/components/VPContent.vue index 9a93b63c..ac30460c 100644 --- a/src/client/theme-default/components/VPContent.vue +++ b/src/client/theme-default/components/VPContent.vue @@ -39,6 +39,7 @@ const { hasSidebar } = useSidebar() .VPContent { flex-grow: 1; margin: 0 auto; + width: 100%; max-width: var(--vp-layout-max-width); } diff --git a/src/client/theme-default/components/VPDoc.vue b/src/client/theme-default/components/VPDoc.vue index 5e81a30e..98830b8a 100644 --- a/src/client/theme-default/components/VPDoc.vue +++ b/src/client/theme-default/components/VPDoc.vue @@ -37,6 +37,7 @@ const pageName = computed(() => { diff --git a/src/client/theme-default/components/VPDoc.vue b/src/client/theme-default/components/VPDoc.vue index 98830b8a..cd53d906 100644 --- a/src/client/theme-default/components/VPDoc.vue +++ b/src/client/theme-default/components/VPDoc.vue @@ -1,10 +1,12 @@

&r1`lfRwKIx}u`B~r-v4F)I(k)6o2*p}L@Stc?k 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 aKX literal 0 HcmV?d00001 diff --git a/src/client/theme-default/fonts/inter-greek.woff2 b/src/client/theme-default/fonts/inter-greek.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..94c69138488adce270975bd1da9c4a2234894e9a GIT binary patch literal 22452 zcmV(@K-Rx^Pew8T0RR9109UjC5&!@I0Gdz$09Q)@0RR9100000000000000000000 z0000QfioMOavUl@NLE2oggORbKT}jeR3re57%yxQ2nyB^#eEBcL;x^>n=}D70we>4 z1Oy-jg<1z78^Mni)6Jd8?Ev=eyY1Odrki`@c1R^c;}KC*i>8tN|8+sy7^d;`Qy8dD zD1~mtB#O!Csb4h4Y9XTRrKm@`lE6au#6Pa}o^OY`L@+PGL^ud0*zZXh7)I*$^8z^U z_+vQmsZ%$0Rw@Eu9IpsoM+BQ_gGsbtvR|?j zYazw)YQXf6QaYe7i|)y2SW}zVly17|rt~yQ&$7+Kcy~?LB+h@s^SJH*-0f~$#sw~8 z;spjS8G4~<6BjNWc!v`fEt@uB>e8tzsX!62hqZLOTS`X0y*~M=&)21>XT0u;=Y_}JhxNE)2_--V5sHL1lptA~ z@}h(qS@31@#eiWeygV0KoZZ%kb?|1k*Y}>s$-{rkzP(W0Gntr#L?bLxA-n$US(J@d zV??UUL;q|2`@7ER(=(R?q_UzTOzcb$jRE>XcHRC!B!PtklxUfCUYAe*y7gyUXWp`% z*}>AWbnGFyK-AzyjhfYn*$^=zVwM*mLcmx0SF7c#*Uw)6)D1-cV{P`MA<~+9x`f;7 zCdsq}66qQm8mV67c8(`E`+2(yHcYGDFSTwHN%^hzUBHq~N+%wcuUwAgP*FD?XV4ID z<6&G460i`Wh=_=*5+#cJhUfL{RT5$cAwg8kb*R|}i56w2HA=;p$q^c3$4;$XV#RDZ zrFG>>NyX?;P1TXBf2~!gt-I=WTS2-iophyH=^*$?5M<6OF*P9^(=pF^CkOxqfd6nV z!2$Xv5(ipzmi^z4Rp?dRxAr=7_w&=t?gr4d?E0$8x-1U@2s<~WpE$C01d`bC^9SJq z`C9$htG?L~U6^fz`@#fRS-_i1SiK-(NhlIBjq3Oc3#4?V1+=x5m9AH+R_QdjWI^k> zdxm%ShI)%LK1km9FoFPTmjI*}2uWWcDP4i2v`a#}f1ukNQqmdw)|dex-GPL(N4t(% zV{G=uhQ?NY(T5)dsgFJgKS+~@$S%|!n@vWbApZ2p7Y=Gt0Ic`Vxjx$-lg7-fv3K&M zO5SUdzNB5Cxor1iKQJuW6Ou?sA|X%9Osj#`;j;p!i=(j^4MlSqKVEz7&3&Pl-tpvB z%%m|=B+CXC$U&p`?_0*q2$qgb$5=PiLxc#35xMsNX$V||6hki%1Bz;92$Eqm3{%Q5 zFEPwIhS4+3s|-`YFt0Jp4u*M?;HiKpTmUts>4RIqa9#lrL{2Oy1VHY((&vw*)o39W zGryYD^JFNt#gA_x7KptPofVHT7(fsy1#p^YaRNH5zQ{8pE1$#CDhX7oTIRY=dkM+A*{Z>q?FdLt>$9WcTi(VjoP?Mnjd$ z@ggT&VO;p4?q(?{SSs;Bf96wUM)*URq1_;j-2?K9 z?;?#m=}tTC`jYtC;o_mq38rfw4S#{%dXT4%CUfY*($rpn9n&3IZA4tb} zgr0Uy+(%5ERm=I#x%ht@6jj=`#3nYxzR}_wt6|3mmVBpe0paLhm!?|Iqap7>niSk;3`5uxV{EUCP!ir+vYB z>a&1fDpnpV=c7r!cG~_nT3)xsVT&NQ6LSs`Yvdn8P@zC1S`3&lW5tH*ba{M%U?dtF z7oV7%`oaIMoV>!~lCm!WGpp*_J37A#yzJ2M$mrzM-2B4g((+e=soM{~6yic;A}#AM zXb9fuae=LP;1k<}<26}edomkHjcXwzOG^$r@;FeaK~zRi26k4kflBsQv5`78Vl^f@ z!8*Fw-96GZG^*e>g1JS>j9|spi{6;o2CEP3`PCy(NOuKV2$ES)L8uX^*eu+FO9jCy zwklkNgs`+h2RjH42m=J%CHl{-IgUaPLV>EruWchu^baUbLt_-C6C0UP5 Xbi!e4 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 literal 0 HcmV?d00001 diff --git a/src/client/theme-default/fonts/inter-latin.woff2 b/src/client/theme-default/fonts/inter-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2fbab974a9e1d56cafcd93c4a0a30b66dd1409ec GIT binary patch literal 36532 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