From 17591de9fcbc4aa71883c6a556bb4ca82c6ae304 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Mon, 26 Jun 2023 14:32:03 +0200 Subject: [PATCH 1/9] chore: Svelte 4 - update transitions tutorial (now global instead of local) - bump deps - remove now unnecessary local modifier --- .../07-global-transitions/README.md | 17 ++ .../app-a/src/lib/App.svelte | 0 .../app-b/src/lib/App.svelte | 2 +- .../07-local-transitions/README.md | 16 -- content/tutorial/common/package.json | 4 +- package.json | 10 +- pnpm-lock.yaml | 266 ++++++++++++------ src/routes/tutorial/[slug]/+page.server.js | 10 +- src/routes/tutorial/[slug]/Menu.svelte | 8 +- 9 files changed, 225 insertions(+), 108 deletions(-) create mode 100644 content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/README.md rename content/tutorial/02-advanced-svelte/02-transitions/{07-local-transitions => 07-global-transitions}/app-a/src/lib/App.svelte (100%) rename content/tutorial/02-advanced-svelte/02-transitions/{07-local-transitions => 07-global-transitions}/app-b/src/lib/App.svelte (94%) delete mode 100644 content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/README.md diff --git a/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/README.md b/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/README.md new file mode 100644 index 000000000..8f3162062 --- /dev/null +++ b/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/README.md @@ -0,0 +1,17 @@ +--- +title: Global transitions +--- + +Ordinarily, transitions will only play on elements when their direct containing block is added or destroyed. In the example here, toggling the visibility of the entire list does not apply transitions to individual list elements. + +Instead, we'd like transitions to not only play when individual items are added and removed with the slider but also when we toggle the checkbox. + +We can achieve this with a _global_ transition, which plays when _any_ block containing the transitions is added or removed: + +```svelte +
+ {item} +
+``` + +> In Svelte 3, transitions were global by default and you had to use the `|local` modifier to make them local. diff --git a/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/app-a/src/lib/App.svelte b/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/app-a/src/lib/App.svelte similarity index 100% rename from content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/app-a/src/lib/App.svelte rename to content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/app-a/src/lib/App.svelte diff --git a/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/app-b/src/lib/App.svelte b/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/app-b/src/lib/App.svelte similarity index 94% rename from content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/app-b/src/lib/App.svelte rename to content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/app-b/src/lib/App.svelte index 57f24e93b..93de6a0cd 100644 --- a/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/app-b/src/lib/App.svelte +++ b/content/tutorial/02-advanced-svelte/02-transitions/07-global-transitions/app-b/src/lib/App.svelte @@ -17,7 +17,7 @@ {#if showItems} {#each items.slice(0, i) as item} -
+
{item}
{/each} diff --git a/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/README.md b/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/README.md deleted file mode 100644 index 24b5d10f1..000000000 --- a/content/tutorial/02-advanced-svelte/02-transitions/07-local-transitions/README.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Local transitions ---- - -Ordinarily, transitions will play on elements when any container block is added or destroyed. In the example here, toggling the visibility of the entire list also applies transitions to individual list elements. - -Instead, we'd like transitions to play only when individual items are added and removed — in other words, when the user drags the slider. - -We can achieve this with a _local_ transition, which only plays when the block with the transition itself is added or removed: - -```svelte -/// file: App.svelte -
- {item} -
-``` diff --git a/content/tutorial/common/package.json b/content/tutorial/common/package.json index 6fae5d7af..cf6a63e69 100644 --- a/content/tutorial/common/package.json +++ b/content/tutorial/common/package.json @@ -7,9 +7,9 @@ "preview": "./node_modules/vite/bin/vite.js preview" }, "devDependencies": { - "@sveltejs/kit": "^1.15.4", + "@sveltejs/kit": "^1.20.4", "esbuild-wasm": "^0.17.12", - "svelte": "^3.57.0", + "svelte": "^4.0.0", "vite": "^4.2.1" }, "type": "module" diff --git a/package.json b/package.json index 81f27794d..d7778fccb 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@playwright/test": "^1.31.2", "@sveltejs/adapter-vercel": "2.3.1", - "@sveltejs/kit": "^1.15.4", + "@sveltejs/kit": "^1.20.4", "@sveltejs/site-kit": "^5.2.2", "@types/diff": "^5.0.2", "@types/marked": "^4.0.8", @@ -24,11 +24,11 @@ "diff": "^5.1.0", "esbuild": "^0.17.12", "prettier": "^2.8.5", - "prettier-plugin-svelte": "^2.9.0", - "svelte": "^3.57.0", - "svelte-check": "^3.1.4", + "prettier-plugin-svelte": "^2.10.1", + "svelte": "^4.0.0", + "svelte-check": "^3.4.3", "tiny-glob": "^0.2.9", - "typescript": "~4.9.5", + "typescript": "^5.0.0", "vite": "^4.2.1" }, "type": "module", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a04fa60ef..4d57094cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,7 +58,7 @@ dependencies: version: 6.0.11(@codemirror/commands@6.2.2)(@codemirror/language@6.6.0)(@codemirror/search@6.3.0)(@codemirror/state@6.2.0)(@codemirror/view@6.9.2) '@rich_harris/svelte-split-pane': specifier: ^1.1.0 - version: 1.1.0(svelte@3.57.0) + version: 1.1.0(svelte@4.0.0) '@webcontainer/api': specifier: ^1.1.0 version: 1.1.0 @@ -99,13 +99,13 @@ devDependencies: version: 1.31.2 '@sveltejs/adapter-vercel': specifier: 2.3.1 - version: 2.3.1(@sveltejs/kit@1.15.4) + version: 2.3.1(@sveltejs/kit@1.20.5) '@sveltejs/kit': - specifier: ^1.15.4 - version: 1.15.4(svelte@3.57.0)(vite@4.2.1) + specifier: ^1.20.4 + version: 1.20.5(svelte@4.0.0)(vite@4.2.1) '@sveltejs/site-kit': specifier: ^5.2.2 - version: 5.2.2(@sveltejs/kit@1.15.4)(svelte@3.57.0) + version: 5.2.2(@sveltejs/kit@1.20.5)(svelte@4.0.0) '@types/diff': specifier: ^5.0.2 version: 5.0.2 @@ -128,26 +128,33 @@ devDependencies: specifier: ^2.8.5 version: 2.8.5 prettier-plugin-svelte: - specifier: ^2.9.0 - version: 2.9.0(prettier@2.8.5)(svelte@3.57.0) + specifier: ^2.10.1 + version: 2.10.1(prettier@2.8.5)(svelte@4.0.0) svelte: - specifier: ^3.57.0 - version: 3.57.0 + specifier: ^4.0.0 + version: 4.0.0 svelte-check: - specifier: ^3.1.4 - version: 3.1.4(svelte@3.57.0) + specifier: ^3.4.3 + version: 3.4.3(svelte@4.0.0) tiny-glob: specifier: ^0.2.9 version: 0.2.9 typescript: - specifier: ~4.9.5 - version: 4.9.5 + specifier: ^5.0.0 + version: 5.0.2 vite: specifier: ^4.2.1 version: 4.2.1 packages: + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + /@codemirror/autocomplete@6.4.2(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.9.2)(@lezer/common@1.0.2): resolution: {integrity: sha512-8WE2xp+D0MpWEv5lZ6zPW1/tf4AGb358T5GWYiKEuCP8MvFfT3tH2mIF9Y2yr2e3KbHuSvsVhosiEyqCpiJhZQ==} peerDependencies: @@ -648,14 +655,27 @@ packages: resolution: {integrity: sha512-KrJdmkqz6DszT2wV/bbhXef4r0hV3B0vw2mAqei8A2kRnvq+gcJLmmIeQ94vu9VEXrUQzos5M9lH1TAAXpRphw==} dev: false + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -664,6 +684,12 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + /@lezer/common@1.0.2: resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} dev: false @@ -800,12 +826,12 @@ packages: '@codemirror/view': 6.9.2 dev: false - /@rich_harris/svelte-split-pane@1.1.0(svelte@3.57.0): + /@rich_harris/svelte-split-pane@1.1.0(svelte@4.0.0): resolution: {integrity: sha512-gxDfPqRSRx11/t+cs5ao0pXzKSO6CiBDmbcVwD8o/zToNZZTZjompoRmvRRICT9OhPxwwl/87nXJEToorPyICg==} peerDependencies: svelte: ^3.54.0 dependencies: - svelte: 3.57.0 + svelte: 4.0.0 dev: false /@rollup/pluginutils@4.2.1: @@ -816,12 +842,12 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-vercel@2.3.1(@sveltejs/kit@1.15.4): + /@sveltejs/adapter-vercel@2.3.1(@sveltejs/kit@1.20.5): resolution: {integrity: sha512-EanZoRgqaZw4EaT3yGbkUtswYW3cQFVL/7aRunbiZ86mmDEyn6liuYNpmMCiqhgnz6hwhfJErpR7p8l71zcKRA==} peerDependencies: '@sveltejs/kit': ^1.5.0 dependencies: - '@sveltejs/kit': 1.15.4(svelte@3.57.0)(vite@4.2.1) + '@sveltejs/kit': 1.20.5(svelte@4.0.0)(vite@4.2.1) '@vercel/nft': 0.22.6 esbuild: 0.16.17 transitivePeerDependencies: @@ -829,19 +855,19 @@ packages: - supports-color dev: true - /@sveltejs/kit@1.15.4(svelte@3.57.0)(vite@4.2.1): - resolution: {integrity: sha512-m+Tid9nbtFawmiu85lDlal0AQ7UeuV48UsuKMe06QLr3ntMQSUzIPqyswNRZqFrar6NhVTUXQ0aO61M3U4MWpQ==} + /@sveltejs/kit@1.20.5(svelte@4.0.0)(vite@4.2.1): + resolution: {integrity: sha512-8rJYZ2boRlO75lwpbpB+DlSzIwmTuamXTpVlDtw4dBk86o3UaDe/+Ro4xCsV/4FtTw2U8xPHyV83edAWbQHG0w==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true peerDependencies: - svelte: ^3.54.0 + svelte: ^3.54.0 || ^4.0.0-next.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.0.3(svelte@3.57.0)(vite@4.2.1) + '@sveltejs/vite-plugin-svelte': 2.4.2(svelte@4.0.0)(vite@4.2.1) '@types/cookie': 0.5.1 cookie: 0.5.0 - devalue: 4.3.0 + devalue: 4.3.2 esm-env: 1.0.0 kleur: 4.1.5 magic-string: 0.30.0 @@ -849,39 +875,55 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.2 - svelte: 3.57.0 - tiny-glob: 0.2.9 - undici: 5.20.0 + svelte: 4.0.0 + undici: 5.22.1 vite: 4.2.1 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/site-kit@5.2.2(@sveltejs/kit@1.15.4)(svelte@3.57.0): + /@sveltejs/site-kit@5.2.2(@sveltejs/kit@1.20.5)(svelte@4.0.0): resolution: {integrity: sha512-XLLxVUV/dYytCsUeODAkjtzlaIBSn1kdcH5U36OuN7gMsPEHDy5L/dsWjf1/vDln3JStH5lqZPEN8Fovm33KhA==} peerDependencies: '@sveltejs/kit': ^1.0.0 svelte: ^3.54.0 dependencies: - '@sveltejs/kit': 1.15.4(svelte@3.57.0)(vite@4.2.1) + '@sveltejs/kit': 1.20.5(svelte@4.0.0)(vite@4.2.1) esm-env: 1.0.0 - svelte: 3.57.0 - svelte-local-storage-store: 0.4.0(svelte@3.57.0) + svelte: 4.0.0 + svelte-local-storage-store: 0.4.0(svelte@4.0.0) dev: true - /@sveltejs/vite-plugin-svelte@2.0.3(svelte@3.57.0)(vite@4.2.1): - resolution: {integrity: sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==} + /@sveltejs/vite-plugin-svelte-inspector@1.0.3(@sveltejs/vite-plugin-svelte@2.4.2)(svelte@4.0.0)(vite@4.2.1): + resolution: {integrity: sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==} engines: {node: ^14.18.0 || >= 16} peerDependencies: - svelte: ^3.54.0 + '@sveltejs/vite-plugin-svelte': ^2.2.0 + svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 dependencies: + '@sveltejs/vite-plugin-svelte': 2.4.2(svelte@4.0.0)(vite@4.2.1) + debug: 4.3.4 + svelte: 4.0.0 + vite: 4.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@2.4.2(svelte@4.0.0)(vite@4.2.1): + resolution: {integrity: sha512-ePfcC48ftMKhkT0OFGdOyycYKnnkT6i/buzey+vHRTR/JpQvuPzzhf1PtKqCDQfJRgoPSN2vscXs6gLigx/zGw==} + engines: {node: ^14.18.0 || >= 16} + peerDependencies: + svelte: ^3.54.0 || ^4.0.0 + vite: ^4.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 1.0.3(@sveltejs/vite-plugin-svelte@2.4.2)(svelte@4.0.0)(vite@4.2.1) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.29.0 - svelte: 3.57.0 - svelte-hmr: 0.15.1(svelte@3.57.0) + magic-string: 0.30.0 + svelte: 4.0.0 + svelte-hmr: 0.15.2(svelte@4.0.0) vite: 4.2.1 vitefu: 0.2.4(vite@4.2.1) transitivePeerDependencies: @@ -896,6 +938,9 @@ packages: resolution: {integrity: sha512-uw8eYMIReOwstQ0QKF0sICefSy8cNO/v7gOTiIy9SbwuHyEecJUm7qlgueOO5S1udZ5I/irVydHVwMchgzbKTg==} dev: true + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/marked@4.0.8: resolution: {integrity: sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw==} dev: true @@ -951,7 +996,6 @@ packages: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /adm-zip@0.5.10: resolution: {integrity: sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==} @@ -1000,10 +1044,20 @@ packages: readable-stream: 3.6.2 dev: true + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + /async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: true + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true @@ -1073,6 +1127,15 @@ packages: engines: {node: '>=10'} dev: true + /code-red@1.0.3: + resolution: {integrity: sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.1 + acorn: 8.8.2 + estree-walker: 3.0.3 + periscopic: 3.1.0 + /codemirror@6.0.1(@lezer/common@1.0.2): resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: @@ -1109,6 +1172,13 @@ packages: resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} dev: false + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1130,6 +1200,10 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + /detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -1140,8 +1214,8 @@ packages: engines: {node: '>=8'} dev: true - /devalue@4.3.0: - resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: true /diff@5.1.0: @@ -1229,6 +1303,11 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.1 + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -1400,11 +1479,19 @@ packages: engines: {node: '>=0.12.0'} dev: true + /is-reference@3.0.1: + resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} + dependencies: + '@types/estree': 1.0.1 + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -1416,14 +1503,7 @@ packages: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - - /magic-string@0.29.0: - resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /magic-string@0.30.0: @@ -1431,7 +1511,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -1446,6 +1525,9 @@ packages: hasBin: true dev: false + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1599,6 +1681,13 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.1 + estree-walker: 3.0.3 + is-reference: 3.0.1 + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -1627,14 +1716,14 @@ packages: source-map-js: 1.0.2 dev: true - /prettier-plugin-svelte@2.9.0(prettier@2.8.5)(svelte@3.57.0): - resolution: {integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==} + /prettier-plugin-svelte@2.10.1(prettier@2.8.5)(svelte@4.0.0): + resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 - svelte: ^3.2.0 + svelte: ^3.2.0 || ^4.0.0-next.0 dependencies: prettier: 2.8.5 - svelte: 3.57.0 + svelte: 4.0.0 dev: true /prettier@2.8.5: @@ -1782,7 +1871,7 @@ packages: resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} hasBin: true dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 buffer-crc32: 0.2.13 minimist: 1.2.8 sander: 0.5.1 @@ -1791,7 +1880,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -1836,11 +1924,11 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.1.4(svelte@3.57.0): - resolution: {integrity: sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==} + /svelte-check@3.4.3(svelte@4.0.0): + resolution: {integrity: sha512-O07soQFY3X0VDt+bcGc6D5naz0cLtjwnmNP9JsEBPVyMemFEqUhL2OdLqvkl5H/u8Jwm50EiAU4BPRn5iin/kg==} hasBin: true peerDependencies: - svelte: ^3.55.0 + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 dependencies: '@jridgewell/trace-mapping': 0.3.17 chokidar: 3.5.3 @@ -1848,9 +1936,9 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 3.57.0 - svelte-preprocess: 5.0.3(svelte@3.57.0)(typescript@4.9.5) - typescript: 4.9.5 + svelte: 4.0.0 + svelte-preprocess: 5.0.3(svelte@4.0.0)(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -1863,25 +1951,25 @@ packages: - sugarss dev: true - /svelte-hmr@0.15.1(svelte@3.57.0): - resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} + /svelte-hmr@0.15.2(svelte@4.0.0): + resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: - svelte: '>=3.19.0' + svelte: ^3.19.0 || ^4.0.0-next.0 dependencies: - svelte: 3.57.0 + svelte: 4.0.0 dev: true - /svelte-local-storage-store@0.4.0(svelte@3.57.0): + /svelte-local-storage-store@0.4.0(svelte@4.0.0): resolution: {integrity: sha512-ctPykTt4S3BE5bF0mfV0jKiUR1qlmqLvnAkQvYHLeb9wRyO1MdIFDVI23X+TZEFleATHkTaOpYZswIvf3b2tWA==} engines: {node: '>=0.14'} peerDependencies: svelte: ^3.48.0 dependencies: - svelte: 3.57.0 + svelte: 4.0.0 dev: true - /svelte-preprocess@5.0.3(svelte@3.57.0)(typescript@4.9.5): + /svelte-preprocess@5.0.3(svelte@4.0.0)(typescript@5.1.3): resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -1924,13 +2012,27 @@ packages: magic-string: 0.27.0 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 3.57.0 - typescript: 4.9.5 + svelte: 4.0.0 + typescript: 5.1.3 dev: true - /svelte@3.57.0: - resolution: {integrity: sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==} - engines: {node: '>= 8'} + /svelte@4.0.0: + resolution: {integrity: sha512-+yCYu3AEUu9n91dnQNGIbnVp8EmNQtuF/YImW4+FTXRHard7NMo+yTsWzggPAbj3fUEJ1FBJLkql/jkp6YB5pg==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + acorn: 8.8.2 + aria-query: 5.3.0 + axobject-query: 3.2.1 + code-red: 1.0.3 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.1 + locate-character: 3.0.0 + magic-string: 0.30.0 + periscopic: 3.1.0 /tar@6.1.13: resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} @@ -1967,15 +2069,21 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.0.2: + resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} hasBin: true dev: true - /undici@5.20.0: - resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==} - engines: {node: '>=12.18'} + /undici@5.22.1: + resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} + engines: {node: '>=14.0'} dependencies: busboy: 1.6.0 dev: true diff --git a/src/routes/tutorial/[slug]/+page.server.js b/src/routes/tutorial/[slug]/+page.server.js index 4ea9a924e..d72f8b5dd 100644 --- a/src/routes/tutorial/[slug]/+page.server.js +++ b/src/routes/tutorial/[slug]/+page.server.js @@ -1,7 +1,15 @@ import { get_exercise } from '$lib/server/content'; -import { error } from '@sveltejs/kit'; +import { error, redirect } from '@sveltejs/kit'; + +export function entries() { + return [{ slug: 'transition-local' }]; +} export function load({ params }) { + if (params.slug === 'transition-local') { + throw redirect(307, '/tutorial/transition-global'); + } + const exercise = get_exercise(params.slug); if (!exercise) { diff --git a/src/routes/tutorial/[slug]/Menu.svelte b/src/routes/tutorial/[slug]/Menu.svelte index 52628d66d..3d5731c5e 100644 --- a/src/routes/tutorial/[slug]/Menu.svelte +++ b/src/routes/tutorial/[slug]/Menu.svelte @@ -99,7 +99,7 @@ class="part" class:expanded={part.slug === expanded_part} aria-current={part.slug === current.part.slug ? 'step' : undefined} - transition:slide|local={{ duration }} + transition:slide={{ duration }} > {#if search.length >= 2 || part.slug === expanded_part} -