diff --git a/docs/assets/scripts/turbo.js b/docs/assets/scripts/turbo.js
index 7075217f..6d506ef6 100644
--- a/docs/assets/scripts/turbo.js
+++ b/docs/assets/scripts/turbo.js
@@ -1,4 +1,4 @@
-import * as Turbo from 'https://cdn.jsdelivr.net/npm/@hotwired/turbo@7.3.0/+esm';
+import * as Turbo from 'https://cdn.jsdelivr.net/npm/@hotwired/turbo@8.0.10/+esm';
(() => {
if (!window.scrollPositions) {
@@ -6,13 +6,13 @@ import * as Turbo from 'https://cdn.jsdelivr.net/npm/@hotwired/turbo@7.3.0/+esm'
}
function preserveScroll() {
- document.querySelectorAll('[data-preserve-scroll').forEach(element => {
+ document.querySelectorAll('[data-preserve-scroll]').forEach(element => {
scrollPositions[element.id] = element.scrollTop;
});
}
function restoreScroll(event) {
- document.querySelectorAll('[data-preserve-scroll').forEach(element => {
+ document.querySelectorAll('[data-preserve-scroll]').forEach(element => {
element.scrollTop = scrollPositions[element.id];
});
diff --git a/docs/pages/frameworks/svelte.md b/docs/pages/frameworks/svelte.md
new file mode 100644
index 00000000..0e11967b
--- /dev/null
+++ b/docs/pages/frameworks/svelte.md
@@ -0,0 +1,85 @@
+---
+meta:
+ title: Svelte
+ description: Tips for using Shoelace in your Svelte app.
+---
+
+# Svelte
+
+Svelte [plays nice](https://custom-elements-everywhere.com/#svelte) with custom elements, so you can use Shoelace in your Svelte apps with ease.
+
+## Installation
+
+To add Shoelace to your Svelte app, install the package from npm.
+
+```bash
+npm install @shoelace-style/shoelace
+```
+
+Next, [include a theme](/getting-started/themes) and set the [base path](/getting-started/installation#setting-the-base-path) for icons and other assets. In this example, we'll import the light theme and use the CDN as a base path.
+
+```jsx
+// main.js or main.ts
+import '@shoelace-style/shoelace/dist/themes/light.css';
+import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path';
+
+setBasePath('https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@%VERSION%/%CDNDIR%/');
+```
+
+:::tip
+If you'd rather not use the CDN for assets, you can create a build task that copies `node_modules/@shoelace-style/shoelace/dist/assets` into a public folder in your app. Then you can point the base path to that folder instead.
+:::
+
+## Usage
+
+### QR code generator example
+
+```jsx
+
Live editing
+
+ message = event.target.value}>
+
+
+
+ {message}
+
+
+
+```
+
+### Two-way Binding
+
+One caveat is there's currently Svelte only supports `bind:value` directive in ``, `