diff --git a/.vitepress/config.ts b/.vitepress/config.ts index aebd9668..3e81b2ac 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -45,6 +45,7 @@ const nav: ThemeConfig['nav'] = [ items: [ { text: 'Партнери', link: '/partners/' }, { text: 'Теми', link: '/ecosystem/themes' }, + { text: 'UI компоненти', link: 'https://ui-libs.vercel.app/' }, { text: 'Сертифікація', link: 'https://certification.vuejs.org/?ref=vuejs-nav' diff --git a/.vitepress/inlined-scripts/restorePreference.js b/.vitepress/inlined-scripts/restorePreference.js index 5e18b50f..265db273 100644 --- a/.vitepress/inlined-scripts/restorePreference.js +++ b/.vitepress/inlined-scripts/restorePreference.js @@ -8,6 +8,6 @@ restore('vue-docs-prefer-composition', 'prefer-composition', true) restore('vue-docs-prefer-sfc', 'prefer-sfc', true) - // window.__VUE_BANNER_ID__ = '' - // restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed') + window.__VUE_BANNER_ID__ = 'herodevs-vue2-nes' + restore(`vue-docs-banner-${__VUE_BANNER_ID__}`, 'banner-dismissed') })() diff --git a/.vitepress/theme/components/Banner.vue b/.vitepress/theme/components/Banner.vue index 59f9c9c9..21baa50e 100644 --- a/.vitepress/theme/components/Banner.vue +++ b/.vitepress/theme/components/Banner.vue @@ -34,38 +34,168 @@ function dismiss() { diff --git a/.vitepress/theme/components/Home.vue b/.vitepress/theme/components/Home.vue index 4fa89abd..2ede14c8 100644 --- a/.vitepress/theme/components/Home.vue +++ b/.vitepress/theme/components/Home.vue @@ -41,28 +41,26 @@ onMounted(async () => {

-
+
Спеціальний спонсор -
diff --git a/.vitepress/theme/components/VueMasteryBanner.vue b/.vitepress/theme/components/VueMasteryBanner.vue new file mode 100644 index 00000000..a2d01c75 --- /dev/null +++ b/.vitepress/theme/components/VueMasteryBanner.vue @@ -0,0 +1,284 @@ + + + + + + diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 7084831a..0ecda552 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -9,7 +9,8 @@ import { } from './components/preferences' import SponsorsAside from './components/SponsorsAside.vue' import VueSchoolLink from './components/VueSchoolLink.vue' -// import Banner from './components/Banner.vue' +import Banner from './components/Banner.vue' +import VueMasteryBanner from './components/VueMasteryBanner.vue' // import TextAd from './components/TextAd.vue' export default Object.assign({}, VPTheme, { @@ -17,6 +18,7 @@ export default Object.assign({}, VPTheme, { // @ts-ignore return h(VPTheme.Layout, null, { // banner: () => h(Banner), + banner: () => h(VueMasteryBanner), 'sidebar-top': () => h(PreferenceSwitch), 'aside-mid': () => h(SponsorsAside) }) diff --git a/.vitepress/theme/styles/index.css b/.vitepress/theme/styles/index.css index 920fe2ea..2f76b7da 100644 --- a/.vitepress/theme/styles/index.css +++ b/.vitepress/theme/styles/index.css @@ -5,12 +5,7 @@ @import "./utilities.css"; @import "./style-guide.css"; -:root { - --vp-sidebar-width-small: 289px !important; -} - -/* bugfix: https://github.com/vuejs/theme/pull/95 */ - -.vt-flyout-menu { - max-height: calc(100vh - var(--vt-nav-height) - var(--vt-banner-height, 0px)) !important; +/* vitepress rc.31 migrated to shijiki and need this to apply code styles */ +.vp-code span { + color: var(--shiki-dark, inherit); } diff --git a/package.json b/package.json index 38ef23fc..766e362d 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "engines": { "node": ">=14.0.0" }, + "type": "module", "scripts": { "dev": "vitepress", "build": "vitepress build", @@ -9,19 +10,22 @@ "preinstall": "npx only-allow pnpm" }, "dependencies": { - "@vue/repl": "^1.5.0", - "@vue/theme": "^2.2.4", + "@vue/repl": "^3.0.0", + "@vue/theme": "^2.2.5", "dynamics.js": "^1.1.5", "gsap": "^3.9.0", - "vitepress": "1.0.0-beta.7", - "vue": "^3.3.4" + "vitepress": "1.0.0-rc.33", + "vue": "^3.4.0-rc.3" }, "devDependencies": { "@types/markdown-it": "^12.2.3", - "@types/node": "^16.9.1", + "@types/node": "^20.10.1", "terser": "^5.14.2" }, "pnpm": { + "overrides": { + "@vitejs/plugin-vue": "5.0.0-beta.1" + }, "peerDependencyRules": { "ignoreMissing": [ "@algolia/client-search", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c40f4253..ad549846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,13 +4,16 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@vitejs/plugin-vue': 5.0.0-beta.1 + dependencies: '@vue/repl': - specifier: ^1.5.0 - version: 1.5.0(vue@3.3.8) + specifier: ^3.0.0 + version: 3.1.0 '@vue/theme': - specifier: ^2.2.4 - version: 2.2.5(vitepress@1.0.0-beta.7)(vue@3.3.8) + specifier: ^2.2.5 + version: 2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.0-rc.3) dynamics.js: specifier: ^1.1.5 version: 1.1.5 @@ -18,19 +21,19 @@ dependencies: specifier: ^3.9.0 version: 3.9.0 vitepress: - specifier: 1.0.0-beta.7 - version: 1.0.0-beta.7(@types/node@16.9.1)(terser@5.14.2) + specifier: 1.0.0-rc.33 + version: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2) vue: - specifier: ^3.3.4 - version: 3.3.8 + specifier: ^3.4.0-rc.3 + version: 3.4.0-rc.3 devDependencies: '@types/markdown-it': specifier: ^12.2.3 version: 12.2.3 '@types/node': - specifier: ^16.9.1 - version: 16.9.1 + specifier: ^20.10.1 + version: 20.10.1 terser: specifier: ^5.14.2 version: 5.14.2 @@ -187,8 +190,8 @@ packages: engines: {node: '>=6.9.0'} dev: false - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -204,14 +207,14 @@ packages: to-fast-properties: 2.0.0 dev: false - /@docsearch/css@3.5.1: - resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==} + /@docsearch/css@3.5.2: + resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} dev: false - /@docsearch/js@3.5.1: - resolution: {integrity: sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==} + /@docsearch/js@3.5.2: + resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} dependencies: - '@docsearch/react': 3.5.1 + '@docsearch/react': 3.5.2 preact: 10.16.0 transitivePeerDependencies: - '@algolia/client-search' @@ -221,12 +224,13 @@ packages: - search-insights dev: false - /@docsearch/react@3.5.1: - resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} + /@docsearch/react@3.5.2: + resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' peerDependenciesMeta: '@types/react': optional: true @@ -234,18 +238,19 @@ packages: optional: true react-dom: optional: true + search-insights: + optional: true dependencies: '@algolia/autocomplete-core': 1.9.3(algoliasearch@4.19.1) '@algolia/autocomplete-preset-algolia': 1.9.3(algoliasearch@4.19.1) - '@docsearch/css': 3.5.1 + '@docsearch/css': 3.5.2 algoliasearch: 4.19.1 transitivePeerDependencies: - '@algolia/client-search' - - search-insights dev: false - /@esbuild/android-arm64@0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} + /@esbuild/android-arm64@0.19.8: + resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -253,8 +258,8 @@ packages: dev: false optional: true - /@esbuild/android-arm@0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} + /@esbuild/android-arm@0.19.8: + resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -262,8 +267,8 @@ packages: dev: false optional: true - /@esbuild/android-x64@0.18.17: - resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} + /@esbuild/android-x64@0.19.8: + resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -271,8 +276,8 @@ packages: dev: false optional: true - /@esbuild/darwin-arm64@0.18.17: - resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} + /@esbuild/darwin-arm64@0.19.8: + resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -280,8 +285,8 @@ packages: dev: false optional: true - /@esbuild/darwin-x64@0.18.17: - resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} + /@esbuild/darwin-x64@0.19.8: + resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -289,8 +294,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-arm64@0.18.17: - resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} + /@esbuild/freebsd-arm64@0.19.8: + resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -298,8 +303,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64@0.18.17: - resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} + /@esbuild/freebsd-x64@0.19.8: + resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -307,8 +312,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm64@0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} + /@esbuild/linux-arm64@0.19.8: + resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -316,8 +321,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm@0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} + /@esbuild/linux-arm@0.19.8: + resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -325,8 +330,8 @@ packages: dev: false optional: true - /@esbuild/linux-ia32@0.18.17: - resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} + /@esbuild/linux-ia32@0.19.8: + resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -334,8 +339,8 @@ packages: dev: false optional: true - /@esbuild/linux-loong64@0.18.17: - resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} + /@esbuild/linux-loong64@0.19.8: + resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -343,8 +348,8 @@ packages: dev: false optional: true - /@esbuild/linux-mips64el@0.18.17: - resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} + /@esbuild/linux-mips64el@0.19.8: + resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -352,8 +357,8 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64@0.18.17: - resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} + /@esbuild/linux-ppc64@0.19.8: + resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -361,8 +366,8 @@ packages: dev: false optional: true - /@esbuild/linux-riscv64@0.18.17: - resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} + /@esbuild/linux-riscv64@0.19.8: + resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -370,8 +375,8 @@ packages: dev: false optional: true - /@esbuild/linux-s390x@0.18.17: - resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} + /@esbuild/linux-s390x@0.19.8: + resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -379,8 +384,8 @@ packages: dev: false optional: true - /@esbuild/linux-x64@0.18.17: - resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} + /@esbuild/linux-x64@0.19.8: + resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -388,8 +393,8 @@ packages: dev: false optional: true - /@esbuild/netbsd-x64@0.18.17: - resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} + /@esbuild/netbsd-x64@0.19.8: + resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -397,8 +402,8 @@ packages: dev: false optional: true - /@esbuild/openbsd-x64@0.18.17: - resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} + /@esbuild/openbsd-x64@0.19.8: + resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -406,8 +411,8 @@ packages: dev: false optional: true - /@esbuild/sunos-x64@0.18.17: - resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} + /@esbuild/sunos-x64@0.19.8: + resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -415,8 +420,8 @@ packages: dev: false optional: true - /@esbuild/win32-arm64@0.18.17: - resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} + /@esbuild/win32-arm64@0.19.8: + resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -424,8 +429,8 @@ packages: dev: false optional: true - /@esbuild/win32-ia32@0.18.17: - resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} + /@esbuild/win32-ia32@0.19.8: + resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -433,8 +438,8 @@ packages: dev: false optional: true - /@esbuild/win32-x64@0.18.17: - resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} + /@esbuild/win32-x64@0.19.8: + resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -476,9 +481,104 @@ packages: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + /@rollup/rollup-android-arm-eabi@4.6.0: + resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-android-arm64@4.6.0: + resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-arm64@4.6.0: + resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-darwin-x64@4.6.0: + resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.6.0: + resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.6.0: + resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-arm64-musl@4.6.0: + resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-gnu@4.6.0: + resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-linux-x64-musl@4.6.0: + resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.6.0: + resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.6.0: + resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@rollup/rollup-win32-x64-msvc@4.6.0: + resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@types/linkify-it@3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} - dev: true /@types/markdown-it@12.2.3: resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} @@ -487,138 +587,132 @@ packages: '@types/mdurl': 1.0.2 dev: true + /@types/markdown-it@13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 + dev: false + /@types/mdurl@1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} - dev: true - /@types/node@16.9.1: - resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} + /@types/node@20.10.1: + resolution: {integrity: sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==} + dependencies: + undici-types: 5.26.5 /@types/web-bluetooth@0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: false - /@types/web-bluetooth@0.0.17: - resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==} + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: false - /@vitejs/plugin-vue@4.2.3(vite@4.4.8)(vue@3.3.8): - resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} - engines: {node: ^14.18.0 || >=16.0.0} + /@vitejs/plugin-vue@5.0.0-beta.1(vite@5.0.10)(vue@3.4.0-rc.3): + resolution: {integrity: sha512-zFAHH6RJH2w/LQlFyqrml96yjYmT8n8e3O4esRxHzCn250uOlkuc0IAqFJWqdxLmQquEM4q5/ECnQJRGsKjoIw==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^4.0.0 + vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.8(@types/node@16.9.1)(terser@5.14.2) - vue: 3.3.8 + vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2) + vue: 3.4.0-rc.3 dev: false - /@vue/compiler-core@3.3.8: - resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} + /@vue/compiler-core@3.4.0-rc.3: + resolution: {integrity: sha512-95BL62LmfjoFe5QgE3eFYliOxg/euI3iDqAZWvh1XRlj/33bNrnyQo4eZI4Mmf+/e/8pOX4RBCer12STtotQIg==} dependencies: - '@babel/parser': 7.23.0 - '@vue/shared': 3.3.8 + '@babel/parser': 7.23.6 + '@vue/shared': 3.4.0-rc.3 + entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 dev: false - /@vue/compiler-dom@3.3.8: - resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} + /@vue/compiler-dom@3.4.0-rc.3: + resolution: {integrity: sha512-oPY5qFm80A+WfuH96XyaG2iN85fR5JcDcIcZ6bdKl10DsF3GxDMRzQ+XrTJQ/MCLs/kTQ89aYlfJsCu937Fysg==} dependencies: - '@vue/compiler-core': 3.3.8 - '@vue/shared': 3.3.8 + '@vue/compiler-core': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 dev: false - /@vue/compiler-sfc@3.3.8: - resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} + /@vue/compiler-sfc@3.4.0-rc.3: + resolution: {integrity: sha512-aeQmKzHhBPXtTKwzlsR9fsmZQwN+IUMOmyIrrTjUiIzqZEA5ra1+1uBsyOFNX00ci/j09OpTjOkGLdNxfy4DDw==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.8 - '@vue/compiler-dom': 3.3.8 - '@vue/compiler-ssr': 3.3.8 - '@vue/reactivity-transform': 3.3.8 - '@vue/shared': 3.3.8 + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.4.0-rc.3 + '@vue/compiler-dom': 3.4.0-rc.3 + '@vue/compiler-ssr': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 estree-walker: 2.0.2 magic-string: 0.30.5 - postcss: 8.4.31 + postcss: 8.4.32 source-map-js: 1.0.2 dev: false - /@vue/compiler-ssr@3.3.8: - resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==} + /@vue/compiler-ssr@3.4.0-rc.3: + resolution: {integrity: sha512-xZ38otNwqiWOHFhVrRBaZReqrBNfSBCvT9//gPbgPX39qwMEw8WeNGyWa4jhn7F54aiBzo48Nw+b5C1ez1Jr/Q==} dependencies: - '@vue/compiler-dom': 3.3.8 - '@vue/shared': 3.3.8 + '@vue/compiler-dom': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 dev: false - /@vue/devtools-api@6.5.0: - resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false - /@vue/reactivity-transform@3.3.8: - resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} + /@vue/reactivity@3.4.0-rc.3: + resolution: {integrity: sha512-B/7Yx2sfx6mJlSlzcVquFjmp3MO5i2mbPKHd/2lqnZtKh3wk3jbsz5g9fAXgIY/6Ih2CQ+4tQTPIK7/6nbJjvQ==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.8 - '@vue/shared': 3.3.8 - estree-walker: 2.0.2 - magic-string: 0.30.5 + '@vue/shared': 3.4.0-rc.3 dev: false - /@vue/reactivity@3.3.8: - resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==} - dependencies: - '@vue/shared': 3.3.8 - dev: false - - /@vue/repl@1.5.0(vue@3.3.8): - resolution: {integrity: sha512-qFqKtvA2FM9viYXzbWrpGrL8mDGswsqDsEjfaibr/YOqeza7i49VmO0AKPrOdQDOS2qmq9uV+G6OPX1rGhUSIQ==} - peerDependencies: - vue: ^3.2.13 - dependencies: - vue: 3.3.8 + /@vue/repl@3.1.0: + resolution: {integrity: sha512-lnR010NTkysg71Z0TVsFCTfiF5ARZbyohqymGpOxOrSuSI4o9RlSvWH6YmJdv9OHm5j69HKLVVUhXlCScMCQrg==} dev: false - /@vue/runtime-core@3.3.8: - resolution: {integrity: sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==} + /@vue/runtime-core@3.4.0-rc.3: + resolution: {integrity: sha512-TOa0qrKaqDo1uFQyYBjDnX2/uVAXglFpfe1sgkMIINkgR023U1QxjAJt3W4K+m8SUSx492lnP0bnuSX6YEqtsA==} dependencies: - '@vue/reactivity': 3.3.8 - '@vue/shared': 3.3.8 + '@vue/reactivity': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 dev: false - /@vue/runtime-dom@3.3.8: - resolution: {integrity: sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==} + /@vue/runtime-dom@3.4.0-rc.3: + resolution: {integrity: sha512-PT19ABVq+Cc82YMPk5CKE1zZGhlzlQ3BfZkQoh9jyU1ntcwUikj2hR93azRPMn37vEdCJqrUWPb6xOAIqMhD9A==} dependencies: - '@vue/runtime-core': 3.3.8 - '@vue/shared': 3.3.8 - csstype: 3.1.2 + '@vue/runtime-core': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 + csstype: 3.1.3 dev: false - /@vue/server-renderer@3.3.8(vue@3.3.8): - resolution: {integrity: sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==} + /@vue/server-renderer@3.4.0-rc.3(vue@3.4.0-rc.3): + resolution: {integrity: sha512-n7mPsj0NV8bLtsMhgSszC4Swx6m0O47hHK8DyDMdGKIYoKPguxJk9OlnFqZp1b9ImUimfTM1i8TiTeVoGvYU8A==} peerDependencies: - vue: 3.3.8 + vue: 3.4.0-rc.3 dependencies: - '@vue/compiler-ssr': 3.3.8 - '@vue/shared': 3.3.8 - vue: 3.3.8 + '@vue/compiler-ssr': 3.4.0-rc.3 + '@vue/shared': 3.4.0-rc.3 + vue: 3.4.0-rc.3 dev: false - /@vue/shared@3.3.8: - resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} + /@vue/shared@3.4.0-rc.3: + resolution: {integrity: sha512-tUMGBEKC6QP3ekhSLt/7oAGQu98gXgaMXrbZKay9Haijf5oXhsQQb8533hxxc4+MBup+WeWGn0/uxiEBCoK9tw==} dev: false - /@vue/theme@2.2.5(vitepress@1.0.0-beta.7)(vue@3.3.8): + /@vue/theme@2.2.5(vitepress@1.0.0-rc.33)(vue@3.4.0-rc.3): resolution: {integrity: sha512-UUPD0XxlRa69Ytely8JEU/cu8Pae5f4UqZNIXANPN8KT6j/O23dCbOfp1cKlSn+Q/xXLYp0K+vRh4IqZjt/9BQ==} peerDependencies: vitepress: ^1.0.0-alpha.60 dependencies: - '@docsearch/css': 3.5.1 - '@docsearch/js': 3.5.1 - '@vueuse/core': 9.13.0(vue@3.3.8) + '@docsearch/css': 3.5.2 + '@docsearch/js': 3.5.2 + '@vueuse/core': 9.13.0(vue@3.4.0-rc.3) body-scroll-lock: 3.1.5 normalize.css: 8.0.1 - vitepress: 1.0.0-beta.7(@types/node@16.9.1)(terser@5.14.2) + vitepress: 1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2) transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -629,32 +723,32 @@ packages: - vue dev: false - /@vueuse/core@10.3.0(vue@3.3.8): - resolution: {integrity: sha512-BEM5yxcFKb5btFjTSAFjTu5jmwoW66fyV9uJIP4wUXXU8aR5Hl44gndaaXp7dC5HSObmgbnR2RN+Un1p68Mf5Q==} + /@vueuse/core@10.7.0(vue@3.4.0-rc.3): + resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==} dependencies: - '@types/web-bluetooth': 0.0.17 - '@vueuse/metadata': 10.3.0 - '@vueuse/shared': 10.3.0(vue@3.3.8) - vue-demi: 0.14.5(vue@3.3.8) + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.7.0 + '@vueuse/shared': 10.7.0(vue@3.4.0-rc.3) + vue-demi: 0.14.6(vue@3.4.0-rc.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/core@9.13.0(vue@3.3.8): + /@vueuse/core@9.13.0(vue@3.4.0-rc.3): resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} dependencies: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0(vue@3.3.8) - vue-demi: 0.14.5(vue@3.3.8) + '@vueuse/shared': 9.13.0(vue@3.4.0-rc.3) + vue-demi: 0.14.6(vue@3.4.0-rc.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/integrations@10.3.0(focus-trap@7.5.2)(vue@3.3.8): - resolution: {integrity: sha512-Jgiv7oFyIgC6BxmDtiyG/fxyGysIds00YaY7sefwbhCZ2/tjEx1W/1WcsISSJPNI30in28+HC2J4uuU8184ekg==} + /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.3): + resolution: {integrity: sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==} peerDependencies: async-validator: '*' axios: '*' @@ -694,36 +788,36 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.3.0(vue@3.3.8) - '@vueuse/shared': 10.3.0(vue@3.3.8) - focus-trap: 7.5.2 - vue-demi: 0.14.5(vue@3.3.8) + '@vueuse/core': 10.7.0(vue@3.4.0-rc.3) + '@vueuse/shared': 10.7.0(vue@3.4.0-rc.3) + focus-trap: 7.5.4 + vue-demi: 0.14.6(vue@3.4.0-rc.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/metadata@10.3.0: - resolution: {integrity: sha512-Ema3YhNOa4swDsV0V7CEY5JXvK19JI/o1szFO1iWxdFg3vhdFtCtSTP26PCvbUpnUtNHBY2wx5y3WDXND5Pvnw==} + /@vueuse/metadata@10.7.0: + resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==} dev: false /@vueuse/metadata@9.13.0: resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} dev: false - /@vueuse/shared@10.3.0(vue@3.3.8): - resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} + /@vueuse/shared@10.7.0(vue@3.4.0-rc.3): + resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==} dependencies: - vue-demi: 0.14.5(vue@3.3.8) + vue-demi: 0.14.6(vue@3.4.0-rc.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/shared@9.13.0(vue@3.3.8): + /@vueuse/shared@9.13.0(vue@3.4.0-rc.3): resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - vue-demi: 0.14.5(vue@3.3.8) + vue-demi: 0.14.6(vue@3.4.0-rc.3) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -753,74 +847,71 @@ packages: '@algolia/transporter': 4.19.1 dev: false - /ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: false - /body-scroll-lock@3.1.5: resolution: {integrity: sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==} dev: false - /body-scroll-lock@4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - dev: false - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: false /dynamics.js@1.1.5: resolution: {integrity: sha512-c+LHNccaJS67T4Jfk9b/5CwYsZCHmc10+MplWB8WPFyqTMEqOf8MI56Rg0JRILWjtXnjuBO7xmrNevNnPX+NHg==} dev: false - /esbuild@0.18.17: - resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + + /esbuild@0.19.8: + resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.17 - '@esbuild/android-arm64': 0.18.17 - '@esbuild/android-x64': 0.18.17 - '@esbuild/darwin-arm64': 0.18.17 - '@esbuild/darwin-x64': 0.18.17 - '@esbuild/freebsd-arm64': 0.18.17 - '@esbuild/freebsd-x64': 0.18.17 - '@esbuild/linux-arm': 0.18.17 - '@esbuild/linux-arm64': 0.18.17 - '@esbuild/linux-ia32': 0.18.17 - '@esbuild/linux-loong64': 0.18.17 - '@esbuild/linux-mips64el': 0.18.17 - '@esbuild/linux-ppc64': 0.18.17 - '@esbuild/linux-riscv64': 0.18.17 - '@esbuild/linux-s390x': 0.18.17 - '@esbuild/linux-x64': 0.18.17 - '@esbuild/netbsd-x64': 0.18.17 - '@esbuild/openbsd-x64': 0.18.17 - '@esbuild/sunos-x64': 0.18.17 - '@esbuild/win32-arm64': 0.18.17 - '@esbuild/win32-ia32': 0.18.17 - '@esbuild/win32-x64': 0.18.17 + '@esbuild/android-arm': 0.19.8 + '@esbuild/android-arm64': 0.19.8 + '@esbuild/android-x64': 0.19.8 + '@esbuild/darwin-arm64': 0.19.8 + '@esbuild/darwin-x64': 0.19.8 + '@esbuild/freebsd-arm64': 0.19.8 + '@esbuild/freebsd-x64': 0.19.8 + '@esbuild/linux-arm': 0.19.8 + '@esbuild/linux-arm64': 0.19.8 + '@esbuild/linux-ia32': 0.19.8 + '@esbuild/linux-loong64': 0.19.8 + '@esbuild/linux-mips64el': 0.19.8 + '@esbuild/linux-ppc64': 0.19.8 + '@esbuild/linux-riscv64': 0.19.8 + '@esbuild/linux-s390x': 0.19.8 + '@esbuild/linux-x64': 0.19.8 + '@esbuild/netbsd-x64': 0.19.8 + '@esbuild/openbsd-x64': 0.19.8 + '@esbuild/sunos-x64': 0.19.8 + '@esbuild/win32-arm64': 0.19.8 + '@esbuild/win32-ia32': 0.19.8 + '@esbuild/win32-x64': 0.19.8 dev: false /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: false - /focus-trap@7.5.2: - resolution: {integrity: sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==} + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 dev: false - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -831,10 +922,6 @@ packages: resolution: {integrity: sha512-YfIBNHJu4UHES1Vj780+sXtQuiD78QQwgJqktaXE9PO9OuXz5l4ETz05pnhxUfJcxJy4SUINXJxT9ZZhuYwU2g==} dev: false - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: false - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -846,12 +933,17 @@ packages: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} dev: false - /minisearch@6.1.0: - resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} + /minisearch@6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} + dev: false + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} dev: false - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: false @@ -864,11 +956,11 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: false @@ -877,21 +969,40 @@ packages: resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} dev: false - /rollup@3.27.0: - resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + /rollup@4.6.0: + resolution: {integrity: sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + '@rollup/rollup-android-arm-eabi': 4.6.0 + '@rollup/rollup-android-arm64': 4.6.0 + '@rollup/rollup-darwin-arm64': 4.6.0 + '@rollup/rollup-darwin-x64': 4.6.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.6.0 + '@rollup/rollup-linux-arm64-gnu': 4.6.0 + '@rollup/rollup-linux-arm64-musl': 4.6.0 + '@rollup/rollup-linux-x64-gnu': 4.6.0 + '@rollup/rollup-linux-x64-musl': 4.6.0 + '@rollup/rollup-win32-arm64-msvc': 4.6.0 + '@rollup/rollup-win32-ia32-msvc': 4.6.0 + '@rollup/rollup-win32-x64-msvc': 4.6.0 + fsevents: 2.3.3 + dev: false + + /shikiji-core@0.9.12: + resolution: {integrity: sha512-AYsAtsbZuq0FPT3mdskNMa+yxD5VwXrFC2sH7R2ELmncVGNYvSzR6Zlfq8iEzINq7/kKL5prtt81UFzFWTTbxQ==} + dev: false + + /shikiji-transformers@0.9.12: + resolution: {integrity: sha512-ge+47j4MLTbKAnTnhTTolD9DKGW2Fhp80MV7Tb2E+p4HsJixu4slq2SDV/eFR34iH/egtyi/cjGMD8vJbNLBUA==} + dependencies: + shikiji: 0.9.12 dev: false - /shiki@0.14.3: - resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==} + /shikiji@0.9.12: + resolution: {integrity: sha512-jYbulSGcPKYKu2uFZOSg4lgrF7s9s8/ITFzRvczE6633wypMjnnTcRnG/mCFe6v1Dbov7bRCMsXVINBUD2FV9w==} dependencies: - ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + shikiji-core: 0.9.12 dev: false /source-map-js@1.0.2: @@ -928,12 +1039,15 @@ packages: engines: {node: '>=4'} dev: false - /vite@4.4.8(@types/node@16.9.1)(terser@5.14.2): - resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} - engines: {node: ^14.18.0 || >=16.0.0} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /vite@5.0.10(@types/node@20.10.1)(terser@5.14.2): + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' @@ -956,32 +1070,42 @@ packages: terser: optional: true dependencies: - '@types/node': 16.9.1 - esbuild: 0.18.17 - postcss: 8.4.31 - rollup: 3.27.0 + '@types/node': 20.10.1 + esbuild: 0.19.8 + postcss: 8.4.32 + rollup: 4.6.0 terser: 5.14.2 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: false - /vitepress@1.0.0-beta.7(@types/node@16.9.1)(terser@5.14.2): - resolution: {integrity: sha512-P9Rw+FXatKIU4fVdtKxqwHl6fby8E/8zE3FIfep6meNgN4BxbWqoKJ6yfuuQQR9IrpQqwnyaBh4LSabyll6tWg==} + /vitepress@1.0.0-rc.33(@types/node@20.10.1)(terser@5.14.2): + resolution: {integrity: sha512-XMwr5eXEB3KB1uCuOkojVaqsVSijmd6N9QmaM2M6aqJqzXzxNwuvWSiEGYl4qbwRAX6/nFRofhx9+FndtCNjGQ==} hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + postcss: ^8.4.32 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true dependencies: - '@docsearch/css': 3.5.1 - '@docsearch/js': 3.5.1 - '@vitejs/plugin-vue': 4.2.3(vite@4.4.8)(vue@3.3.8) - '@vue/devtools-api': 6.5.0 - '@vueuse/core': 10.3.0(vue@3.3.8) - '@vueuse/integrations': 10.3.0(focus-trap@7.5.2)(vue@3.3.8) - body-scroll-lock: 4.0.0-beta.0 - focus-trap: 7.5.2 + '@docsearch/css': 3.5.2 + '@docsearch/js': 3.5.2 + '@types/markdown-it': 13.0.7 + '@vitejs/plugin-vue': 5.0.0-beta.1(vite@5.0.10)(vue@3.4.0-rc.3) + '@vue/devtools-api': 6.5.1 + '@vueuse/core': 10.7.0(vue@3.4.0-rc.3) + '@vueuse/integrations': 10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.3) + focus-trap: 7.5.4 mark.js: 8.11.1 - minisearch: 6.1.0 - shiki: 0.14.3 - vite: 4.4.8(@types/node@16.9.1)(terser@5.14.2) - vue: 3.3.8 + minisearch: 6.3.0 + mrmime: 2.0.0 + shikiji: 0.9.12 + shikiji-transformers: 0.9.12 + vite: 5.0.10(@types/node@20.10.1)(terser@5.14.2) + vue: 3.4.0-rc.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -1010,16 +1134,8 @@ packages: - universal-cookie dev: false - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: false - - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: false - - /vue-demi@0.14.5(vue@3.3.8): - resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + /vue-demi@0.14.6(vue@3.4.0-rc.3): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -1030,20 +1146,20 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.8 + vue: 3.4.0-rc.3 dev: false - /vue@3.3.8: - resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} + /vue@3.4.0-rc.3: + resolution: {integrity: sha512-2UqOv58PSVsxIXQxS7QrHmaHwJgBHBSrQL6wjKf8HVuZoWxf45rVUTGXMP3Z1fS1jb+3hYcniPt5icdLVV9+VA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.3.8 - '@vue/compiler-sfc': 3.3.8 - '@vue/runtime-dom': 3.3.8 - '@vue/server-renderer': 3.3.8(vue@3.3.8) - '@vue/shared': 3.3.8 + '@vue/compiler-dom': 3.4.0-rc.3 + '@vue/compiler-sfc': 3.4.0-rc.3 + '@vue/runtime-dom': 3.4.0-rc.3 + '@vue/server-renderer': 3.4.0-rc.3(vue@3.4.0-rc.3) + '@vue/shared': 3.4.0-rc.3 dev: false diff --git a/src/about/coc.md b/src/about/coc.md index e73eea5c..e7555c6d 100644 --- a/src/about/coc.md +++ b/src/about/coc.md @@ -42,4 +42,6 @@ Цей Кодекс поведінки адаптовано згідно з [Угодою учасника][homepage], версія 1.4, доступної за адресою https://www.contributor-covenant.org/version/1/4/code-of-conduct.html +Щоб отримати відповіді на поширені запитання щодо цих норм етики, див. https://www.contributor-covenant.org/faq + [homepage]: https://www.contributor-covenant.org diff --git a/src/api/composition-api-dependency-injection.md b/src/api/composition-api-dependency-injection.md index 373447a1..71ba558a 100644 --- a/src/api/composition-api-dependency-injection.md +++ b/src/api/composition-api-dependency-injection.md @@ -23,17 +23,17 @@ ```vue ``` @@ -81,19 +81,19 @@ ```vue ``` +## hasInjectionContext() {#has-injection-context} + +Повертає true, якщо [inject()](#inject) можна використовувати без попередження про те, що його викликають не в тому місці (наприклад, поза `setup()`). Цей метод призначений для використання бібліотеками, які хочуть використовувати `inject()` всередині без ініціювання попередження для кінцевого користувача. + +- **Type** + + ```ts + function hasInjectionContext(): boolean + ``` + - **Також до вашої уваги**: - [Гід - Provide / Inject](/guide/components/provide-inject) - [Гід - Типізація Provide / Inject](/guide/typescript/composition-api#typing-provide-inject) diff --git a/src/api/options-misc.md b/src/api/options-misc.md index 9e78c1f8..ef2d8297 100644 --- a/src/api/options-misc.md +++ b/src/api/options-misc.md @@ -99,27 +99,6 @@ ``` - Починаючи з версії 3.3, ви також можете використовувати `defineOptions` безпосередньо в ` - - - ``` - - **Також до вашої уваги:** [Прохідні атрибути](/guide/components/attrs) @@ -185,6 +164,4 @@ ``` - Хеш директив, які будуть доступні для екземпляра компонента. - - **Також до вашої уваги:** [Користувацькі директиви](/guide/reusability/custom-directives) diff --git a/src/examples/ExampleRepl.vue b/src/examples/ExampleRepl.vue index 98edcd4c..f54d912c 100644 --- a/src/examples/ExampleRepl.vue +++ b/src/examples/ExampleRepl.vue @@ -1,6 +1,6 @@ + # Події компонентів {#component-events} > Ця сторінка передбачає, що ви вже прочитали [основи компонентів](/guide/essentials/component-basics). Прочитайте це спочатку, якщо ви новачок у компонентах. @@ -176,16 +177,16 @@ export default { -Параметр `emits`, а також `defineEmits()` підтримують синтаксис об’єкта, який дозволяє виконувати перевірку даних випромінюваних подій: +Параметр `emits` і макрос `defineEmits()` також підтримують синтаксис об’єкта. Якщо ви використовуєте TypeScript, ви можете вводити аргументи, що дозволяє нам виконувати перевірку під час виконання корисного навантаження випущених подій:
```vue @@ -210,9 +211,9 @@ const emit = defineEmits<{ ```js export default { emits: { - submit(payload) { - // повертає `true` або `false` для вказівки - // чи пройшла/не пройшла перевірка + submit(payload: { email: string, password: string }) { + // повертає `true` або `false`, щоб вказати, + // що перевірка пройшла/не пройшла } } } @@ -287,3 +288,15 @@ export default { ```
+ +## Події як реквізити {#events-props} + +Ви також можете оголосити та передати `events` як `props`, додавши `on` перед назвою події з великої літери. + +Використання `props.onEvent` має іншу поведінку, ніж використання `emit('event')`, оскільки перше передасть лише обробку прослухувача на основі властивості (`@event` або `:on-event`). + +:::warning +Якщо передано і `:onEvent`, і `@event`, `props.onEvent` може бути масивом `функцій` замість `функції`, така поведінка не є стабільною та може змінитися в майбутньому. +::: + +Через це рекомендується використовувати `emit('event')` замість `props.onEvent` під час випромінювання подій. diff --git a/src/guide/components/provide-inject.md b/src/guide/components/provide-inject.md index c06737b3..c1987f44 100644 --- a/src/guide/components/provide-inject.md +++ b/src/guide/components/provide-inject.md @@ -315,10 +315,6 @@ export default { Функція `computed()` зазвичай використовується в компонентах композиційного API, але також може використовуватися для доповнення певних випадків використання в опційному API. Ви можете дізнатися більше про його використання, прочитавши [основи реактивності](/guide/essentials/reactivity-fundamentals) і [обчислювані властивості](/guide/essentials/computed) із вподобанням API, встановленим як Композиційний. -:::warning Потрібна тимчасова конфігурація -Наведене вище використання вимагає налаштування `app.config.unwrapInjectedRef = true`, щоб введення автоматично розгортали обчислювані посилання. Це стане типовою поведінкою у Vue 3.3, і цю конфігурацію введено тимчасово, щоб уникнути поломки. Після 3.3 він більше не потрібен. -::: - ## Робота з ключами типу Symbol {#working-with-symbol-keys} diff --git a/src/guide/essentials/template-refs.md b/src/guide/essentials/template-refs.md index 7a959f9f..ed2ce961 100644 --- a/src/guide/essentials/template-refs.md +++ b/src/guide/essentials/template-refs.md @@ -67,7 +67,7 @@ export default { -Зауважте, що ви можете отримати доступ до референції лише **після монтування компонента**. Якщо ви спробуєте отримати доступ до `$refs.input``input` у виразі шаблону, він буде `null` при першому рендері. Це тому, що елемент існує лише після першого рендера! +Зауважте, що ви можете отримати доступ до посилання **після того, як компонент змонтовано.** Якщо ви спробуєте отримати доступ до `$refs.input``input` у виразі шаблону буде `undefined``null` на першому рендері. Це тому, що елемент існує лише після першого відтворення!
diff --git a/src/guide/extras/ways-of-using-vue.md b/src/guide/extras/ways-of-using-vue.md index 5411c335..f4c6590f 100644 --- a/src/guide/extras/ways-of-using-vue.md +++ b/src/guide/extras/ways-of-using-vue.md @@ -53,7 +53,7 @@ Vue надає першокласні API для «рендерингу» про Незважаючи на те, що Vue в основному призначений для створення вебдодатків, він аж ніяк не обмежується лише браузером. Ви можете: -- Створювати комп'ютерні програми за допомогою [Electron](https://www.electronjs.org/) або [Tauri](https://tauri.studio/en/) -- Створювати мобільні програми за допомогою [Ionic Vue](https://ionicframework.com/docs/vue/overview) -- Створювати комп'ютерні та мобільні додатки з однієї кодової бази за допомогою [Quasar](https://quasar.dev/) -- Використовувати [АРІ користувацького рендерингу](/api/custom-renderer) від Vue для створення користувацьких засобів візуалізації, націлених на [WebGL](https://troisjs.github.io/) або навіть на [термінал](https://github.com/vue-terminal/vue-termui)! +- Створюйте настільні програми за допомогою [Electron](https://www.electronjs.org/) або [Tauri](https://tauri.app) +- Створюйте мобільні програми за допомогою [Ionic Vue](https://ionicframework.com/docs/vue/overview) +- Створюйте настільні та мобільні додатки з однієї кодової бази за допомогою [Quasar](https://quasar.dev/) +- Використовуйте [Custom Renderer API](/api/custom-renderer) Vue, щоб створювати користувацькі рендерери, націлені на [WebGL](https://troisjs.github.io/) або навіть на [термінал](https://github.com). /vue-terminal/vue-termui)! diff --git a/src/guide/introduction.md b/src/guide/introduction.md index 8981fed5..a6da2b9c 100644 --- a/src/guide/introduction.md +++ b/src/guide/introduction.md @@ -281,3 +281,4 @@ onMounted(() => {

Ознайомтеся з прикладами основних функцій і типових завдань при розробці інтерфейсу користувача.

+ diff --git a/src/guide/quick-start.md b/src/guide/quick-start.md index 34829302..a8db567c 100644 --- a/src/guide/quick-start.md +++ b/src/guide/quick-start.md @@ -2,6 +2,10 @@ footer: false --- + + # Швидкий старт {#quick-start} ## Спробуйте Vue онлайн {#try-vue-online} @@ -17,14 +21,43 @@ footer: false :::tip Передумови - Знайомство з командним рядком -- Встановіть [Node.js](https://nodejs.org/uk/) версії 16.0 або новішу +- Встановіть [Node.js](https://nodejs.org/uk/) версії 18.0 або новішу ::: У цій секції ми розповімо, як створити Vue [одно-сторінковий додаток](/guide/extras/ways-of-using-vue#single-page-application-spa) на вашому локальному комп'ютері. Створений проєкт буде використовувати збірку, яка заснована на [Vite](https://vitejs.dev), і дозволяє використовувати [одно-файлові компоненти](/guide/scaling-up/sfc) Vue (SFC). -Переконайтеся, що у вас встановлено найновішу версію [Node.js](https://nodejs.org/uk/), і ваш поточний робочий каталог є тим, у якому ви збираєтеся створити проект. Виконайте наступну команду в командному рядку (без знаку `>`): +Переконайтеся, що у вас встановлено найновішу версію [Node.js](https://nodejs.org/uk/), і ваш поточний робочий каталог є тим, у якому ви збираєтеся створити проект. Виконайте наступну команду в командному рядку (без знаку `$`): + + + + + ```sh + $ npm create vue@latest + ``` + + + + + ```sh + $ pnpm create vue@latest + ``` + + + + + ```sh + $ yarn create vue@latest + ``` + + + + + ```sh + $ bun create vue@latest + ``` -
> npm create vue@latest
+
+
Ця команда встановить і виконає [create-vue](https://github.com/vuejs/create-vue), офіційний інструмент створення проєктів Vue. Вам буде надано підказки щодо ряду додаткових функцій, таких як TypeScript з підтримкою тестування: @@ -43,10 +76,44 @@ footer: false Якщо ви не впевнені щодо варіанту, просто виберіть «No» (Ні), натиснувши Enter. Після створення проєкту дотримуйтесь інструкцій для встановлення залежностей та запуску сервера в режимі розробки: -
> cd <назва-вашого-проєкту-без-пробілів>
-> npm install
-> npm run dev
-
+ + + + ```sh + $ cd + $ npm install + $ npm run dev + ``` + + + + + ```sh + $ cd + $ pnpm install + $ pnpm run dev + ``` + + + + + ```sh + $ cd + $ yarn + $ yarn dev + ``` + + + + + ```sh + $ cd + $ bun install + $ bun run dev + ``` + + + Вітаємо, тепер у вас має бути запущений перший проєкт на Vue! Зауважте, що приклади компонентів у створеному проєкті написані за допомогою [Композиційного API](/guide/introduction#composition-api) і ` - - - - diff --git a/src/guide/scaling-up/testing.md b/src/guide/scaling-up/testing.md index 81dc53c1..0f050432 100644 --- a/src/guide/scaling-up/testing.md +++ b/src/guide/scaling-up/testing.md @@ -1,5 +1,5 @@ # Тестування {#testing} @@ -105,8 +105,6 @@ describe('increment', () => { ### Інші варіанти {#other-options} -- [Peeky](https://peeky.dev/) - це ще один швидкий модуль тестування з першокласною інтеграцією Vite. Він також створений членом основної команди Vue і пропонує графічний інтерфейс тестування. - - [Jest](https://jestjs.io/) - популярний фреймворк модульного тестування, який можна налаштувати для роботи з Vite через [vite-jest](https://github.com/sodatea/vite-jest) пакет. Однак ми рекомендуємо Jest тільки в тому випадку, якщо в вас є наявний набір тестів Jest, який потрібно перенести до проєкту на основі Vite, оскільки Vitest пропонує більш повну інтеграцію та кращу продуктивність. ## Компонентне тестування {#component-testing} @@ -128,76 +126,68 @@ describe('increment', () => { Ми нічого не знаємо про реалізацію Stepper, лише те, що "вхід" - це реквізит `max`, а "вихід" - це стан DOM, яким його побачить користувач. - - -
- -```js -const { getByText } = render(Stepper, { - props: { - max: 1 - } -}) - -getByText('0') // Неявне твердження, що "0" знаходиться в межах компонента + + -const button = getByRole('button', { name: /increment/i }) + ```js + const valueSelector = '[data-testid=stepper-value]' + const buttonSelector = '[data-testid=increment]' -// Надсилання події натискання до нашої кнопки збільшення. -await fireEvent.click(button) - -getByText('1') + const wrapper = mount(Stepper, { + props: { + max: 1 + } + }) -await fireEvent.click(button) -``` + expect(wrapper.find(valueSelector).text()).toContain('0') -
+ await wrapper.find(buttonSelector).trigger('click') -
+ expect(wrapper.find(valueSelector).text()).toContain('1') + ``` -```js -const valueSelector = '[data-testid=stepper-value]' -const buttonSelector = '[data-testid=increment]' + + -const wrapper = mount(Stepper, { - props: { - max: 1 - } -}) + ```js + const valueSelector = '[data-testid=stepper-value]' + const buttonSelector = '[data-testid=increment]' -expect(wrapper.find(valueSelector).text()).toContain('0') + mount(Stepper, { + props: { + max: 1 + } + }) -await wrapper.find(buttonSelector).trigger('click') + cy.get(valueSelector).should('be.visible').and('contain.text', '0') + .get(buttonSelector).click() + .get(valueSelector).should('contain.text', '1') + ``` -expect(wrapper.find(valueSelector).text()).toContain('1') -``` + + -
+ ```js + const { getByText } = render(Stepper, { + props: { + max: 1 + } + }) -
+ getByText('0') // Неявне твердження, що "0" знаходиться всередині компонента -```js -const valueSelector = '[data-testid=stepper-value]' -const buttonSelector = '[data-testid=increment]' + const button = getByRole('button', { name: /increment/i }) -mount(Stepper, { - props: { - max: 1 - } -}) + // Надішліть подію клацання до нашої кнопки збільшення. + await fireEvent.click(button) -cy.get(valueSelector) - .should('be.visible') - .and('contain.text', '0') - .get(buttonSelector) - .click() - .get(valueSelector) - .should('contain.text', '1') -``` + getByText('1') -
+ await fireEvent.click(button) + ``` -
+ + - **НЕ РОБІТЬ** diff --git a/src/guide/typescript/composition-api.md b/src/guide/typescript/composition-api.md index f3b15142..6bef3609 100644 --- a/src/guide/typescript/composition-api.md +++ b/src/guide/typescript/composition-api.md @@ -50,6 +50,16 @@ const props = defineProps() ``` +Це також працює, якщо `Props` імпортовано із зовнішнього джерела. Ця функція вимагає, щоб TypeScript був одноранговою (peer) залежністю від Vue. + +```vue + +``` + #### Синтаксичні обмеження {#syntax-limitations} У версії 3.2 і нижче параметр загального типу для `defineProps()` обмежувався літералом типу або посиланням на локальний інтерфейс. @@ -143,6 +153,18 @@ export default defineComponent({ // під час виконання const emit = defineEmits(['change', 'update']) +// на основі опцій +const emit = defineEmits({ + change: (id: number) => { + // повертає `true` або `false`, щоб вказати, + // що перевірка пройшла/не пройшла + }, + update: (value: string) => { + // повертає `true` або `false`, щоб вказати, + // що перевірка пройшла/не пройшла + } +}) + // на основі типу const emit = defineEmits<{ (e: 'change', id: number): void diff --git a/src/guide/typescript/overview.md b/src/guide/typescript/overview.md index ff64d46b..c9e337c7 100644 --- a/src/guide/typescript/overview.md +++ b/src/guide/typescript/overview.md @@ -42,7 +42,7 @@ Vue написаний на TypeScript, тому забезпечує першо Під час ручної конфігурації `tsconfig.json` зверніть увагу на важливі опції: -- [`compilerOptions.isolatedModules`](https://www.typescriptlang.org/tsconfig#isolatedModules) має значення `true`, оскільки Vite використовує [esbuild](https://esbuild.github.io/) для транспіляції TypeScript і має обмеження на транспілювання одного файлу. +- [`compilerOptions.isolatedModules`](https://www.typescriptlang.org/tsconfig#isolatedModules) має значення `true`, оскільки Vite використовує [esbuild](https://esbuild.github.io/) для транспіляції TypeScript і має обмеження на транспілювання одного файлу. [`compilerOptions.verbatimModuleSyntax`](https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax) є [надмножиною `isolatedModules`](https://github.com/microsoft/TypeScript/issues/53601) і є також хороший вибір - це те, що використовує [`@vue/tsconfig`](https://github.com/vuejs/tsconfig). - Якщо ви використовуєте опційний АРІ, вам потрібно встановити [`compilerOptions.strict`](https://www.typescriptlang.org/tsconfig#strict) на `true` (або принаймні увімкнути [`compilerOptions.noImplicitThis`](https://www.typescriptlang.org/tsconfig#noImplicitThis), який є частиною `strict`), щоб використовувати перевірку типів `this` в опціях компонента. Інакше `this` розглядатиметься як `any`. diff --git a/src/partners/partners.json b/src/partners/partners.json index 43660d57..b8940159 100644 --- a/src/partners/partners.json +++ b/src/partners/partners.json @@ -53,6 +53,7 @@ { "name": "Monterail", "logo": "monterail.png", + "hero": "monterail-hero.png", "flipLogo": true, "intro": "Monterail — польська компанія з розробки програмного забезпечення, що надає повний спектр послуг. З 2010 року ми створюємо інноваційне програмне забезпечення для стартапів, малого та середнього бізнесу та підприємств з різних галузей у всьому світі. Наші експерти Vue, використовуючи випробувані в боях технології та фреймворки, створили понад 30 проєктів на основі Vue.", "description": [ @@ -176,36 +177,6 @@ "contact": "we@webreinvent.com", "hiring": "https://webreinvent.com/career?utm_source=vuejs.org&utm_medium=website&utm_campaign=partner-hiring-link" }, - { - "name": "Dreamonkey", - "logo": "dreamonkey.png", - "hero": "dreamonkey-hero.png", - "intro": "Ми є італійським виробником програмного забезпечення, до якого входять міжнародні співробітники, з 8-річним досвідом проєктування та розробки програмного забезпечення. Ми створюємо програмне забезпечення з нуля або переробляємо його та підтримуємо команди інших компаній, особливо для промислового Інтернету речей, доставки, фінансів, медицини, автомобілебудування та ланцюга поставок, працюючи переважно для американських та канадських клієнтів. Ми пишаємось спонсорами Quasar Framework і членами його основної команди.", - "description": [ - "Наш стек включає Vue, Quasar, Laravel і, якщо потрібно, також Angular. Ми прагнемо створювати високоякісний, чистий і добре задокументований код, роблячи його надійним за допомогою автоматичних тестів. Наш зовнішній інтерфейс відповідає основним принципам Google Material Design.", - "Ми можемо керувати проєктами від самого початку до їх розгортання, включаючи аналіз вимог, розробку UX/UI, передачу проєктних ресурсів, розробку та налаштування конвеєрів CI/CD на AWS. Ми можемо об’єднатися з гнучкою методологією клієнта та, за запитом, можемо також подбати про управління проєктом за допомогою відданого фахівця.", - "Ми маємо досвід роботи з проєктами різної складності, від стартапу до корпоративного рівня. Ми можемо надати статичні інтерфейси користувача, робочі MPV, повністю оперативні SPA або мобільні програми. Ми також розділили нашу команду, щоб надати клієнту лише ті конкретні знання, які необхідні, будь то розробка, дизайн чи просто техніко-економічний аналіз.", - "Якщо вам потрібно інтегрувати нові навички у свою команду, ми можемо скласти навчальну програму, зосереджену на темах розробки або дизайну, які вас цікавлять, і допомогти вашим співробітникам розвиватися за допомогою спеціальних уроків." - ], - "proficiencies": [ - "Vue", - "Quasar", - "Angular", - "Capacitor", - "Laravel", - "Node.js", - "NestJS", - "UX Design", - "AWS" - ], - "region": ["Europe", "North America"], - "website": { - "text": "dreamonkey.com", - "url": "https://dreamonkey.com/en/vue-partner" - }, - "contact": "info@dreamonkey.com", - "hiring": "https://dreamonkey.com/en/work-with-us" - }, { "name": "HeroDevs", "logo": "herodevs.png", diff --git a/src/public/images/partners/dreamonkey-hero.png b/src/public/images/partners/dreamonkey-hero.png deleted file mode 100644 index 5f032c32..00000000 Binary files a/src/public/images/partners/dreamonkey-hero.png and /dev/null differ diff --git a/src/public/images/partners/dreamonkey.png b/src/public/images/partners/dreamonkey.png deleted file mode 100644 index 4430739a..00000000 Binary files a/src/public/images/partners/dreamonkey.png and /dev/null differ diff --git a/src/public/images/partners/monterail-hero.jpg b/src/public/images/partners/monterail-hero.jpg deleted file mode 100644 index 48fc7d48..00000000 Binary files a/src/public/images/partners/monterail-hero.jpg and /dev/null differ diff --git a/src/public/images/partners/monterail-hero.png b/src/public/images/partners/monterail-hero.png new file mode 100644 index 00000000..7f869a55 Binary files /dev/null and b/src/public/images/partners/monterail-hero.png differ diff --git a/src/public/vuemastery/background-bubbles-vuemastery.svg b/src/public/vuemastery/background-bubbles-vuemastery.svg new file mode 100644 index 00000000..8f5ec7e8 --- /dev/null +++ b/src/public/vuemastery/background-bubbles-vuemastery.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/public/vuemastery/lock-vuemastery.svg b/src/public/vuemastery/lock-vuemastery.svg new file mode 100644 index 00000000..c9583a1a --- /dev/null +++ b/src/public/vuemastery/lock-vuemastery.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/public/vuemastery/unlock-vuemastery.svg b/src/public/vuemastery/unlock-vuemastery.svg new file mode 100644 index 00000000..917b2bd2 --- /dev/null +++ b/src/public/vuemastery/unlock-vuemastery.svg @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/public/vuemastery/vuemastery-white.svg b/src/public/vuemastery/vuemastery-white.svg new file mode 100644 index 00000000..8b3b9171 --- /dev/null +++ b/src/public/vuemastery/vuemastery-white.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/style-guide/index.md b/src/style-guide/index.md index ab3ce511..537e6599 100644 --- a/src/style-guide/index.md +++ b/src/style-guide/index.md @@ -4,10 +4,6 @@ outline: deep # Style Guide {#style-guide} -:::warning Status Notice -The style guide is currently a bit outdated. Most examples are in Options API only, and there are no rules regarding ` + + +``` + +```vue + + + +``` + + + +
+

Good

+ +```vue + + + +``` + +```vue + + + +``` + +
+ + diff --git a/src/tutorial/TutorialRepl.vue b/src/tutorial/TutorialRepl.vue index b4fda865..471ec77f 100644 --- a/src/tutorial/TutorialRepl.vue +++ b/src/tutorial/TutorialRepl.vue @@ -1,5 +1,6 @@