diff --git a/packages/www/pages/_document.tsx b/packages/www/pages/_document.tsx
deleted file mode 100644
index 210cdb86e..000000000
--- a/packages/www/pages/_document.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import NextDocument, { Html, Head, Main, NextScript, DocumentContext } from 'next/document'
-import { getCssText } from '-styles'
-import { GA_TRACKING_ID } from '-utils/gtag'
-
-class MyDocument extends NextDocument {
- static async getInitialProps(ctx: DocumentContext) {
- const initialProps = await NextDocument.getInitialProps(ctx)
-
- return {
- ...initialProps,
- styles: (
- <>
- {initialProps.styles}
-
- >
- ),
- }
- }
-
- render(): JSX.Element {
- const APP_NAME = 'tldraw'
- const APP_DESCRIPTION = 'A tiny little drawing app.'
- const APP_URL = 'https://tldraw.com'
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
- }
-}
-
-export default MyDocument
diff --git a/packages/www/public/sw.js b/packages/www/public/sw.js
index a13be2dc0..24e329441 100644
--- a/packages/www/public/sw.js
+++ b/packages/www/public/sw.js
@@ -1,2 +1,2 @@
-if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return n[e]||(s=new Promise((async s=>{if("document"in self){const n=document.createElement("script");n.src=e,document.head.appendChild(n),n.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!n[e])throw new Error(`Module ${e} didn’t register its module`);return n[e]}))},s=(s,n)=>{Promise.all(s.map(e)).then((e=>n(1===e.length?e[0]:e)))},n={require:Promise.resolve(s)};self.define=(s,i,c)=>{n[s]||(n[s]=Promise.resolve().then((()=>{let n={};const a={uri:location.origin+s.slice(1)};return Promise.all(i.map((s=>{switch(s){case"exports":return n;case"module":return a;default:return e(s)}}))).then((e=>{const s=c(...e);return n.default||(n.default=s),n}))})))}}define("./sw.js",["./workbox-e9cae24d"],(function(e){"use strict";importScripts("worker-RLYRNpR89QQ6VOuUX6fZ3.js"),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/RLYRNpR89QQ6VOuUX6fZ3/_buildManifest.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/RLYRNpR89QQ6VOuUX6fZ3/_ssgManifest.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/735-ba27aca2225e6314c5f3.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/735-ba27aca2225e6314c5f3.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/main-1fd13886f63948e5452c.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/main-1fd13886f63948e5452c.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/css/2946e48fdf8b8c44ed3f.css",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/_next/static/css/2946e48fdf8b8c44ed3f.css.map",revision:"RLYRNpR89QQ6VOuUX6fZ3"},{url:"/android-chrome-192x192.png",revision:"57c9c4cd91d24d48b7ffdda0768fd225"},{url:"/android-chrome-512x512.png",revision:"8d2454e6cf551f8ca1e1d5670b13a8d1"},{url:"/android-chrome-maskable-192x192.png",revision:"71c93ce0b34d2fbb4c6654a9131a3d9d"},{url:"/android-chrome-maskable-512x512.png",revision:"4265b8c09997b16ac1493500b43f3755"},{url:"/android-chrome-maskable-beta-512x512.png",revision:"145800cf2381faf1c0f4a61c29a88448"},{url:"/apple-touch-icon.png",revision:"8081d08be3673ec33dbeecab06706b2b"},{url:"/favicon-16x16.png",revision:"ac17d75b1ee007781212853a57b88285"},{url:"/favicon-32x32.png",revision:"360bc7cd4706c0657917f3b78fed6b71"},{url:"/favicon.ico",revision:"b2bf6bb7b4d0234f3e6df44fd7d5707e"},{url:"/flat.png",revision:"e0460141713b5c94104ce19b36c4b462"},{url:"/icons/Redo.svg",revision:"6196f61a2053ff606d5746eb3ab380e3"},{url:"/icons/Trash.svg",revision:"5f2c42a17b7d8459f2e556b6209a61c6"},{url:"/icons/Undo.svg",revision:"24de701870630f51132f9bed3f18ee8f"},{url:"/icons/grab.svg",revision:"a1ca9e5c31d1edd2558ab075f72fde4e"},{url:"/icons/pointer.svg",revision:"dff260f896fe23adb83341639fdf93be"},{url:"/icons/resize.svg",revision:"0a3cb701d15731e25919783801d18f95"},{url:"/images/hello.mp4",revision:"b716f249cc6c781c91b0ac9dc23423b3"},{url:"/manifest.json",revision:"91129377e4594b2e8b0823f3ad6e0595"},{url:"/vercel.svg",revision:"4b4f1876502eb6721764637fe5c41702"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:n,state:i})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")}));
+if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return c[e]||(s=new Promise((async s=>{if("document"in self){const c=document.createElement("script");c.src=e,document.head.appendChild(c),c.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!c[e])throw new Error(`Module ${e} didn’t register its module`);return c[e]}))},s=(s,c)=>{Promise.all(s.map(e)).then((e=>c(1===e.length?e[0]:e)))},c={require:Promise.resolve(s)};self.define=(s,n,i)=>{c[s]||(c[s]=Promise.resolve().then((()=>{let c={};const a={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return c;case"module":return a;default:return e(s)}}))).then((e=>{const s=i(...e);return c.default||(c.default=s),c}))})))}}define("./sw.js",["./workbox-e9cae24d"],(function(e){"use strict";importScripts("worker-eJsZLpVkBbTZjjQcpsL_0.js"),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/735-ba27aca2225e6314c5f3.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/735-ba27aca2225e6314c5f3.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/main-1fd13886f63948e5452c.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/main-1fd13886f63948e5452c.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/css/2946e48fdf8b8c44ed3f.css",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/css/2946e48fdf8b8c44ed3f.css.map",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/eJsZLpVkBbTZjjQcpsL_0/_buildManifest.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/_next/static/eJsZLpVkBbTZjjQcpsL_0/_ssgManifest.js",revision:"eJsZLpVkBbTZjjQcpsL_0"},{url:"/android-chrome-192x192.png",revision:"57c9c4cd91d24d48b7ffdda0768fd225"},{url:"/android-chrome-512x512.png",revision:"8d2454e6cf551f8ca1e1d5670b13a8d1"},{url:"/android-chrome-maskable-192x192.png",revision:"71c93ce0b34d2fbb4c6654a9131a3d9d"},{url:"/android-chrome-maskable-512x512.png",revision:"4265b8c09997b16ac1493500b43f3755"},{url:"/android-chrome-maskable-beta-512x512.png",revision:"145800cf2381faf1c0f4a61c29a88448"},{url:"/apple-touch-icon.png",revision:"8081d08be3673ec33dbeecab06706b2b"},{url:"/favicon-16x16.png",revision:"ac17d75b1ee007781212853a57b88285"},{url:"/favicon-32x32.png",revision:"360bc7cd4706c0657917f3b78fed6b71"},{url:"/favicon.ico",revision:"b2bf6bb7b4d0234f3e6df44fd7d5707e"},{url:"/flat.png",revision:"e0460141713b5c94104ce19b36c4b462"},{url:"/icons/Redo.svg",revision:"6196f61a2053ff606d5746eb3ab380e3"},{url:"/icons/Trash.svg",revision:"5f2c42a17b7d8459f2e556b6209a61c6"},{url:"/icons/Undo.svg",revision:"24de701870630f51132f9bed3f18ee8f"},{url:"/icons/grab.svg",revision:"a1ca9e5c31d1edd2558ab075f72fde4e"},{url:"/icons/pointer.svg",revision:"dff260f896fe23adb83341639fdf93be"},{url:"/icons/resize.svg",revision:"0a3cb701d15731e25919783801d18f95"},{url:"/images/hello.mp4",revision:"b716f249cc6c781c91b0ac9dc23423b3"},{url:"/manifest.json",revision:"91129377e4594b2e8b0823f3ad6e0595"},{url:"/vercel.svg",revision:"4b4f1876502eb6721764637fe5c41702"},{url:"/x_document.tsx",revision:"0e4b835ecb9edf0f4b1dc86accbb3e83"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:c,state:n})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")}));
//# sourceMappingURL=sw.js.map
diff --git a/packages/www/public/sw.js.map b/packages/www/public/sw.js.map
index 2f5d5821a..4f6fe8935 100644
--- a/packages/www/public/sw.js.map
+++ b/packages/www/public/sw.js.map
@@ -1 +1 @@
-{"version":3,"file":"sw.js","sources":["../../../../../../../private/var/folders/g7/7xq6v0ls5lq_ks1yh3lbgrr00000gn/T/00aa811227f07e8e5e6ff000bd59d298/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {ExpirationPlugin as workbox_expiration_ExpirationPlugin} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-expiration/ExpirationPlugin.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {StaleWhileRevalidate as workbox_strategies_StaleWhileRevalidate} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/StaleWhileRevalidate.mjs';\nimport {RangeRequestsPlugin as workbox_range_requests_RangeRequestsPlugin} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-range-requests/RangeRequestsPlugin.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \"worker-RLYRNpR89QQ6VOuUX6fZ3.js\"\n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/_next/static/RLYRNpR89QQ6VOuUX6fZ3/_buildManifest.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/RLYRNpR89QQ6VOuUX6fZ3/_ssgManifest.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/735-ba27aca2225e6314c5f3.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/735-ba27aca2225e6314c5f3.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/main-1fd13886f63948e5452c.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/main-1fd13886f63948e5452c.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/css/2946e48fdf8b8c44ed3f.css\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/_next/static/css/2946e48fdf8b8c44ed3f.css.map\",\n \"revision\": \"RLYRNpR89QQ6VOuUX6fZ3\"\n },\n {\n \"url\": \"/android-chrome-192x192.png\",\n \"revision\": \"57c9c4cd91d24d48b7ffdda0768fd225\"\n },\n {\n \"url\": \"/android-chrome-512x512.png\",\n \"revision\": \"8d2454e6cf551f8ca1e1d5670b13a8d1\"\n },\n {\n \"url\": \"/android-chrome-maskable-192x192.png\",\n \"revision\": \"71c93ce0b34d2fbb4c6654a9131a3d9d\"\n },\n {\n \"url\": \"/android-chrome-maskable-512x512.png\",\n \"revision\": \"4265b8c09997b16ac1493500b43f3755\"\n },\n {\n \"url\": \"/android-chrome-maskable-beta-512x512.png\",\n \"revision\": \"145800cf2381faf1c0f4a61c29a88448\"\n },\n {\n \"url\": \"/apple-touch-icon.png\",\n \"revision\": \"8081d08be3673ec33dbeecab06706b2b\"\n },\n {\n \"url\": \"/favicon-16x16.png\",\n \"revision\": \"ac17d75b1ee007781212853a57b88285\"\n },\n {\n \"url\": \"/favicon-32x32.png\",\n \"revision\": \"360bc7cd4706c0657917f3b78fed6b71\"\n },\n {\n \"url\": \"/favicon.ico\",\n \"revision\": \"b2bf6bb7b4d0234f3e6df44fd7d5707e\"\n },\n {\n \"url\": \"/flat.png\",\n \"revision\": \"e0460141713b5c94104ce19b36c4b462\"\n },\n {\n \"url\": \"/icons/Redo.svg\",\n \"revision\": \"6196f61a2053ff606d5746eb3ab380e3\"\n },\n {\n \"url\": \"/icons/Trash.svg\",\n \"revision\": \"5f2c42a17b7d8459f2e556b6209a61c6\"\n },\n {\n \"url\": \"/icons/Undo.svg\",\n \"revision\": \"24de701870630f51132f9bed3f18ee8f\"\n },\n {\n \"url\": \"/icons/grab.svg\",\n \"revision\": \"a1ca9e5c31d1edd2558ab075f72fde4e\"\n },\n {\n \"url\": \"/icons/pointer.svg\",\n \"revision\": \"dff260f896fe23adb83341639fdf93be\"\n },\n {\n \"url\": \"/icons/resize.svg\",\n \"revision\": \"0a3cb701d15731e25919783801d18f95\"\n },\n {\n \"url\": \"/images/hello.mp4\",\n \"revision\": \"b716f249cc6c781c91b0ac9dc23423b3\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"91129377e4594b2e8b0823f3ad6e0595\"\n },\n {\n \"url\": \"/vercel.svg\",\n \"revision\": \"4b4f1876502eb6721764637fe5c41702\"\n }\n], {\n \"ignoreURLParametersMatching\": []\n});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({request, response, event, state}) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, {status: 200, statusText: 'OK', headers: response.headers}); } return response; } }] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:gstatic)\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"google-fonts-webfonts\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 31536000 })] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:googleapis)\\.com\\/.*/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"google-fonts-stylesheets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-font-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-image-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/image\\?url=.+$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-image\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp3|wav|ogg)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-audio-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp4)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-video-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:js)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-js-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:css|less)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-style-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/data\\/.+\\/.+\\.json$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-data\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:json|xml|csv)$/i, new workbox_strategies_NetworkFirst({ \"cacheName\":\"static-data-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n // Exclude /api/auth/callback/* to fix OAuth workflow in Safari without impact other environment\n // Above route is default for next-auth, you may need to change it if your OAuth workflow has a different callback route\n // Issue: https://github.com/shadowwalker/next-pwa/issues/131#issuecomment-821894809\n if (pathname.startsWith('/api/auth/')) return false\n if (pathname.startsWith('/api/')) return true\n return false\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"apis\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 16, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n if (pathname.startsWith('/api/')) return false\n return true\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"others\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n return !isSameOrigin\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"cross-origin\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 3600 })] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_strategies_NetworkFirst","plugins","cacheWillUpdate","async","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_CacheFirst","workbox_expiration_ExpirationPlugin","maxEntries","maxAgeSeconds","workbox_strategies_StaleWhileRevalidate","workbox_range_requests_RangeRequestsPlugin","url","origin","pathname","startsWith"],"mappings":"0yBAqBAA,cACE,mCASFC,KAAKC,kDAU+B,CAClC,KACS,iEACK,yBAEd,KACS,+DACK,yBAEd,KACS,4DACK,yBAEd,KACS,gEACK,yBAEd,KACS,4DACK,yBAEd,KACS,gEACK,yBAEd,KACS,kEACK,yBAEd,KACS,sEACK,yBAEd,KACS,6DACK,yBAEd,KACS,iEACK,yBAEd,KACS,mEACK,yBAEd,KACS,uEACK,yBAEd,KACS,qEACK,yBAEd,KACS,yEACK,yBAEd,KACS,oEACK,yBAEd,KACS,wEACK,yBAEd,KACS,yEACK,yBAEd,KACS,6EACK,yBAEd,KACS,mEACK,yBAEd,KACS,uEACK,yBAEd,KACS,sEACK,yBAEd,KACS,0EACK,yBAEd,KACS,0EACK,yBAEd,KACS,8EACK,yBAEd,KACS,yEACK,yBAEd,KACS,6EACK,yBAEd,KACS,kEACK,yBAEd,KACS,sEACK,yBAEd,KACS,gEACK,yBAEd,KACS,oEACK,yBAEd,KACS,sDACK,yBAEd,KACS,0DACK,yBAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,gDACK,oCAEd,KACS,gDACK,oCAEd,KACS,qDACK,oCAEd,KACS,iCACK,oCAEd,KACS,8BACK,oCAEd,KACS,8BACK,oCAEd,KACS,wBACK,oCAEd,KACS,qBACK,oCAEd,KACS,2BACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,2BACK,oCAEd,KACS,8BACK,oCAEd,KACS,6BACK,oCAEd,KACS,6BACK,oCAEd,KACS,0BACK,oCAEd,KACS,uBACK,qCAEb,6BAC8B,+CAMH,IAAK,IAAIC,eAAgC,WAAc,YAAaC,QAAS,CAAC,CAAEC,gBAAiBC,OAAQC,QAAAA,EAASC,SAAAA,EAAUC,MAAAA,EAAOC,MAAAA,KAAiBF,GAA8B,mBAAlBA,EAASG,KAAoC,IAAIC,SAASJ,EAASK,KAAM,CAACC,OAAQ,IAAKC,WAAY,KAAMC,QAASR,EAASQ,UAAoBR,MAAmB,uBAClU,0CAA2C,IAAIS,aAA8B,WAAc,wBAAyBb,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,aAAiB,uBACvN,6CAA8C,IAAIC,uBAAwC,WAAc,2BAA4BjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,YAAe,uBACrO,8CAA+C,IAAIC,uBAAwC,WAAc,qBAAsBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,YAAe,uBAChO,wCAAyC,IAAIC,uBAAwC,WAAc,sBAAuBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBAC3N,2BAA4B,IAAIC,uBAAwC,WAAc,aAAcjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACrM,sBAAuB,IAAIH,aAA8B,WAAc,sBAAuBb,QAAS,CAAC,IAAIkB,sBAA8C,IAAIJ,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACjP,cAAe,IAAIH,aAA8B,WAAc,sBAAuBb,QAAS,CAAC,IAAIkB,sBAA8C,IAAIJ,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACzO,aAAc,IAAIC,uBAAwC,WAAc,mBAAoBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBAC7L,mBAAoB,IAAIC,uBAAwC,WAAc,sBAAuBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACtM,gCAAiC,IAAIC,uBAAwC,WAAc,YAAajB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACzM,uBAAwB,IAAIjB,eAAgC,WAAc,qBAAsBC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBACjM,EAAEG,IAAAA,WACLtB,KAAKuB,SAAWD,EAAIC,QACtB,OAAO,QACpBC,EAAWF,EAAIE,gBAIjBA,EAASC,WAAW,iBACpBD,EAASC,WAAW,WAEvB,IAAIvB,eAAgC,WAAc,6BAA+B,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBAC/J,EAAEG,IAAAA,WACLtB,KAAKuB,SAAWD,EAAIC,QACtB,OAAO,SACTD,EAAIE,SACRC,WAAW,WAEvB,IAAIvB,eAAgC,WAAc,+BAAiC,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBACjK,EAAEG,IAAAA,OACLtB,KAAKuB,SAAWD,EAAIC,SAExC,IAAIrB,eAAgC,WAAc,qCAAuC,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,UAAa"}
\ No newline at end of file
+{"version":3,"file":"sw.js","sources":["../../../../../../../private/var/folders/g7/7xq6v0ls5lq_ks1yh3lbgrr00000gn/T/84ca4772fa542572db10325a2ddef13d/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {ExpirationPlugin as workbox_expiration_ExpirationPlugin} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-expiration/ExpirationPlugin.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {StaleWhileRevalidate as workbox_strategies_StaleWhileRevalidate} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-strategies/StaleWhileRevalidate.mjs';\nimport {RangeRequestsPlugin as workbox_range_requests_RangeRequestsPlugin} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-range-requests/RangeRequestsPlugin.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/Users/steve/Developer/Github/tldraw/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \"worker-eJsZLpVkBbTZjjQcpsL_0.js\"\n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/288.0f8b5ac46fdecffd2cc4.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/735-ba27aca2225e6314c5f3.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/735-ba27aca2225e6314c5f3.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-6904c37ecf5b200e4e2e.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/main-1fd13886f63948e5452c.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/main-1fd13886f63948e5452c.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_app-1b1c09f4b9b07d988fc8.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1cd1e11cd5e9c8211770.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-bf5703ccee8e7430ed2a.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/r/%5Bid%5D-22c98f064aaf55fccee2.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/shhh-27b1502b04f60e3f1c5d.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/signout-bf0779b7caa9ea2189b2.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sponsorware-baeafb7f62f75b8230cd.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/u/%5Bid%5D-3e3c5cc071f0a68d97b4.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-7510a95ef9a46fd369c3.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-4c5303772df9e100b4ed.js.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/css/2946e48fdf8b8c44ed3f.css\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/css/2946e48fdf8b8c44ed3f.css.map\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/eJsZLpVkBbTZjjQcpsL_0/_buildManifest.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/_next/static/eJsZLpVkBbTZjjQcpsL_0/_ssgManifest.js\",\n \"revision\": \"eJsZLpVkBbTZjjQcpsL_0\"\n },\n {\n \"url\": \"/android-chrome-192x192.png\",\n \"revision\": \"57c9c4cd91d24d48b7ffdda0768fd225\"\n },\n {\n \"url\": \"/android-chrome-512x512.png\",\n \"revision\": \"8d2454e6cf551f8ca1e1d5670b13a8d1\"\n },\n {\n \"url\": \"/android-chrome-maskable-192x192.png\",\n \"revision\": \"71c93ce0b34d2fbb4c6654a9131a3d9d\"\n },\n {\n \"url\": \"/android-chrome-maskable-512x512.png\",\n \"revision\": \"4265b8c09997b16ac1493500b43f3755\"\n },\n {\n \"url\": \"/android-chrome-maskable-beta-512x512.png\",\n \"revision\": \"145800cf2381faf1c0f4a61c29a88448\"\n },\n {\n \"url\": \"/apple-touch-icon.png\",\n \"revision\": \"8081d08be3673ec33dbeecab06706b2b\"\n },\n {\n \"url\": \"/favicon-16x16.png\",\n \"revision\": \"ac17d75b1ee007781212853a57b88285\"\n },\n {\n \"url\": \"/favicon-32x32.png\",\n \"revision\": \"360bc7cd4706c0657917f3b78fed6b71\"\n },\n {\n \"url\": \"/favicon.ico\",\n \"revision\": \"b2bf6bb7b4d0234f3e6df44fd7d5707e\"\n },\n {\n \"url\": \"/flat.png\",\n \"revision\": \"e0460141713b5c94104ce19b36c4b462\"\n },\n {\n \"url\": \"/icons/Redo.svg\",\n \"revision\": \"6196f61a2053ff606d5746eb3ab380e3\"\n },\n {\n \"url\": \"/icons/Trash.svg\",\n \"revision\": \"5f2c42a17b7d8459f2e556b6209a61c6\"\n },\n {\n \"url\": \"/icons/Undo.svg\",\n \"revision\": \"24de701870630f51132f9bed3f18ee8f\"\n },\n {\n \"url\": \"/icons/grab.svg\",\n \"revision\": \"a1ca9e5c31d1edd2558ab075f72fde4e\"\n },\n {\n \"url\": \"/icons/pointer.svg\",\n \"revision\": \"dff260f896fe23adb83341639fdf93be\"\n },\n {\n \"url\": \"/icons/resize.svg\",\n \"revision\": \"0a3cb701d15731e25919783801d18f95\"\n },\n {\n \"url\": \"/images/hello.mp4\",\n \"revision\": \"b716f249cc6c781c91b0ac9dc23423b3\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"91129377e4594b2e8b0823f3ad6e0595\"\n },\n {\n \"url\": \"/vercel.svg\",\n \"revision\": \"4b4f1876502eb6721764637fe5c41702\"\n },\n {\n \"url\": \"/x_document.tsx\",\n \"revision\": \"0e4b835ecb9edf0f4b1dc86accbb3e83\"\n }\n], {\n \"ignoreURLParametersMatching\": []\n});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({request, response, event, state}) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, {status: 200, statusText: 'OK', headers: response.headers}); } return response; } }] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:gstatic)\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"google-fonts-webfonts\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 31536000 })] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:googleapis)\\.com\\/.*/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"google-fonts-stylesheets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-font-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-image-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/image\\?url=.+$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-image\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp3|wav|ogg)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-audio-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp4)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-video-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:js)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-js-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:css|less)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-style-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/data\\/.+\\/.+\\.json$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-data\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:json|xml|csv)$/i, new workbox_strategies_NetworkFirst({ \"cacheName\":\"static-data-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n // Exclude /api/auth/callback/* to fix OAuth workflow in Safari without impact other environment\n // Above route is default for next-auth, you may need to change it if your OAuth workflow has a different callback route\n // Issue: https://github.com/shadowwalker/next-pwa/issues/131#issuecomment-821894809\n if (pathname.startsWith('/api/auth/')) return false\n if (pathname.startsWith('/api/')) return true\n return false\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"apis\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 16, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n if (pathname.startsWith('/api/')) return false\n return true\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"others\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({url}) => {\n const isSameOrigin = self.origin === url.origin\n return !isSameOrigin\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"cross-origin\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 3600 })] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_strategies_NetworkFirst","plugins","cacheWillUpdate","async","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_CacheFirst","workbox_expiration_ExpirationPlugin","maxEntries","maxAgeSeconds","workbox_strategies_StaleWhileRevalidate","workbox_range_requests_RangeRequestsPlugin","url","origin","pathname","startsWith"],"mappings":"0yBAqBAA,cACE,mCASFC,KAAKC,kDAU+B,CAClC,KACS,4DACK,yBAEd,KACS,gEACK,yBAEd,KACS,4DACK,yBAEd,KACS,gEACK,yBAEd,KACS,kEACK,yBAEd,KACS,sEACK,yBAEd,KACS,6DACK,yBAEd,KACS,iEACK,yBAEd,KACS,mEACK,yBAEd,KACS,uEACK,yBAEd,KACS,qEACK,yBAEd,KACS,yEACK,yBAEd,KACS,oEACK,yBAEd,KACS,wEACK,yBAEd,KACS,yEACK,yBAEd,KACS,6EACK,yBAEd,KACS,mEACK,yBAEd,KACS,uEACK,yBAEd,KACS,sEACK,yBAEd,KACS,0EACK,yBAEd,KACS,0EACK,yBAEd,KACS,8EACK,yBAEd,KACS,yEACK,yBAEd,KACS,6EACK,yBAEd,KACS,kEACK,yBAEd,KACS,sEACK,yBAEd,KACS,gEACK,yBAEd,KACS,oEACK,yBAEd,KACS,sDACK,yBAEd,KACS,0DACK,yBAEd,KACS,iEACK,yBAEd,KACS,+DACK,yBAEd,KACS,uCACK,oCAEd,KACS,uCACK,oCAEd,KACS,gDACK,oCAEd,KACS,gDACK,oCAEd,KACS,qDACK,oCAEd,KACS,iCACK,oCAEd,KACS,8BACK,oCAEd,KACS,8BACK,oCAEd,KACS,wBACK,oCAEd,KACS,qBACK,oCAEd,KACS,2BACK,oCAEd,KACS,4BACK,oCAEd,KACS,2BACK,oCAEd,KACS,2BACK,oCAEd,KACS,8BACK,oCAEd,KACS,6BACK,oCAEd,KACS,6BACK,oCAEd,KACS,0BACK,oCAEd,KACS,uBACK,oCAEd,KACS,2BACK,qCAEb,6BAC8B,+CAMH,IAAK,IAAIC,eAAgC,WAAc,YAAaC,QAAS,CAAC,CAAEC,gBAAiBC,OAAQC,QAAAA,EAASC,SAAAA,EAAUC,MAAAA,EAAOC,MAAAA,KAAiBF,GAA8B,mBAAlBA,EAASG,KAAoC,IAAIC,SAASJ,EAASK,KAAM,CAACC,OAAQ,IAAKC,WAAY,KAAMC,QAASR,EAASQ,UAAoBR,MAAmB,uBAClU,0CAA2C,IAAIS,aAA8B,WAAc,wBAAyBb,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,aAAiB,uBACvN,6CAA8C,IAAIC,uBAAwC,WAAc,2BAA4BjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,YAAe,uBACrO,8CAA+C,IAAIC,uBAAwC,WAAc,qBAAsBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,EAAGC,cAAe,YAAe,uBAChO,wCAAyC,IAAIC,uBAAwC,WAAc,sBAAuBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBAC3N,2BAA4B,IAAIC,uBAAwC,WAAc,aAAcjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACrM,sBAAuB,IAAIH,aAA8B,WAAc,sBAAuBb,QAAS,CAAC,IAAIkB,sBAA8C,IAAIJ,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACjP,cAAe,IAAIH,aAA8B,WAAc,sBAAuBb,QAAS,CAAC,IAAIkB,sBAA8C,IAAIJ,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACzO,aAAc,IAAIC,uBAAwC,WAAc,mBAAoBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBAC7L,mBAAoB,IAAIC,uBAAwC,WAAc,sBAAuBjB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACtM,gCAAiC,IAAIC,uBAAwC,WAAc,YAAajB,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,uBACzM,uBAAwB,IAAIjB,eAAgC,WAAc,qBAAsBC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBACjM,EAAEG,IAAAA,WACLtB,KAAKuB,SAAWD,EAAIC,QACtB,OAAO,QACpBC,EAAWF,EAAIE,gBAIjBA,EAASC,WAAW,iBACpBD,EAASC,WAAW,WAEvB,IAAIvB,eAAgC,WAAc,6BAA+B,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBAC/J,EAAEG,IAAAA,WACLtB,KAAKuB,SAAWD,EAAIC,QACtB,OAAO,SACTD,EAAIE,SACRC,WAAW,WAEvB,IAAIvB,eAAgC,WAAc,+BAAiC,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,WAAc,wBACjK,EAAEG,IAAAA,OACLtB,KAAKuB,SAAWD,EAAIC,SAExC,IAAIrB,eAAgC,WAAc,qCAAuC,GAAIC,QAAS,CAAC,IAAIc,mBAAoC,CAAEC,WAAY,GAAIC,cAAe,UAAa"}
\ No newline at end of file
diff --git a/packages/www/public/worker-RLYRNpR89QQ6VOuUX6fZ3.js b/packages/www/public/worker-eJsZLpVkBbTZjjQcpsL_0.js
similarity index 100%
rename from packages/www/public/worker-RLYRNpR89QQ6VOuUX6fZ3.js
rename to packages/www/public/worker-eJsZLpVkBbTZjjQcpsL_0.js
diff --git a/packages/www/public/x_document.tsx b/packages/www/public/x_document.tsx
new file mode 100644
index 000000000..81c5f64f1
--- /dev/null
+++ b/packages/www/public/x_document.tsx
@@ -0,0 +1,78 @@
+// import NextDocument, { Html, Head, Main, NextScript, DocumentContext } from 'next/document'
+// import { getCssText } from '-styles'
+// import { GA_TRACKING_ID } from '-utils/gtag'
+
+// class MyDocument extends NextDocument {
+// static async getInitialProps(ctx: DocumentContext) {
+// const initialProps = await NextDocument.getInitialProps(ctx)
+
+// return {
+// ...initialProps,
+// styles: (
+// <>
+// {initialProps.styles}
+//
+// >
+// ),
+// }
+// }
+
+// render(): JSX.Element {
+// const APP_NAME = 'tldraw'
+// const APP_DESCRIPTION = 'A tiny little drawing app.'
+// const APP_URL = 'https://tldraw.com'
+
+// return (
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+//
+//
+//
+//
+//
+
+//
+//
+//
+//
+//
+
+//
+//
+//
+
+//
+//
+//
+//
+//
+//
+//
+//
+// )
+// }
+// }
+
+// export default MyDocument
+
+export {}