@100mslive/hms-whiteboard 0.1.3-alpha.8 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var at=Object.create;var D=Object.defineProperty,lt=Object.defineProperties,ut=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ft=Object.getOwnPropertyNames,xe=Object.getOwnPropertySymbols,pt=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable;var ne=(s,e,t)=>e in s?D(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,P=(s,e)=>{for(var t in e||(e={}))Oe.call(e,t)&&ne(s,t,e[t]);if(xe)for(var t of xe(e))ht.call(e,t)&&ne(s,t,e[t]);return s},re=(s,e)=>lt(s,ct(e));var dt=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),mt=(s,e)=>{for(var t in e)D(s,t,{get:e[t],enumerable:!0})},Ie=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ft(e))!Oe.call(s,n)&&n!==t&&D(s,n,{get:()=>e[n],enumerable:!(r=ut(e,n))||r.enumerable});return s};var V=(s,e,t)=>(t=s!=null?at(pt(s)):{},Ie(e||!s||!s.__esModule?D(t,"default",{value:s,enumerable:!0}):t,s)),yt=s=>Ie(D({},"__esModule",{value:!0}),s);var d=(s,e,t)=>(ne(s,typeof e!="symbol"?e+"":e,t),t);var I=(s,e,t)=>new Promise((r,n)=>{var o=l=>{try{c(t.next(l))}catch(a){n(a)}},u=l=>{try{c(t.throw(l))}catch(a){n(a)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,u);c((t=t.apply(s,e)).next())});var Ke=dt((Mr,X)=>{"use strict";(function(){"use strict";var s={}.hasOwnProperty;function e(){for(var n="",o=0;o<arguments.length;o++){var u=arguments[o];u&&(n=r(n,t(u)))}return n}function t(n){if(typeof n=="string"||typeof n=="number")return n;if(typeof n!="object")return"";if(Array.isArray(n))return e.apply(null,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]"))return n.toString();var o="";for(var u in n)s.call(n,u)&&n[u]&&(o=r(o,u));return o}function r(n,o){return o?n?n+" "+o:n+o:n}typeof X!="undefined"&&X.exports?(e.default=e,X.exports=e):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return e}):window.classNames=e})()});var $t={};mt($t,{Whiteboard:()=>it});module.exports=yt($t);var O=V(require("react")),ot=require("@tldraw/tldraw");var U=require("react"),qe=require("@tldraw/tldraw");function We({store:s}){let{addToast:e,removeToast:t}=(0,qe.useToasts)(),r=(0,U.useRef)(void 0),n=(0,U.useRef)(void 0);return(0,U.useEffect)(()=>{let o=s.status==="synced-remote"?s.connectionStatus:void 0;o!==r.current&&(n.current&&o==="online"&&(t(n.current),n.current=void 0),o==="offline"?n.current=e({title:"Connection lost",description:"Attempting to reconnect...",icon:"warning-triangle",keepOpen:!0}):o==="online"&&r.current==="offline"&&e({title:"Connected",description:"Connection restored",icon:"check"}),r.current=o)},[s,e,t]),null}var h=V(require("react"));var M=class{constructor(){d(this,"arraySize",0);d(this,"array",Array(8));d(this,"set",null)}get isEmpty(){if(this.array)return this.arraySize===0;if(this.set)return this.set.size===0;throw new Error("no set or array")}add(e){if(this.array)return this.array.indexOf(e)!==-1?!1:this.arraySize<8?(this.array[this.arraySize]=e,this.arraySize++,!0):(this.set=new Set(this.array),this.array=null,this.set.add(e),!0);if(this.set)return this.set.has(e)?!1:(this.set.add(e),!0);throw new Error("no set or array")}remove(e){if(this.array){let t=this.array.indexOf(e);return t===-1?!1:(this.array[t]=void 0,this.arraySize--,t!==this.arraySize&&(this.array[t]=this.array[this.arraySize],this.array[this.arraySize]=void 0),!0)}if(this.set)return this.set.has(e)?(this.set.delete(e),!0):!1;throw new Error("no set or array")}visit(e){if(this.array){for(let t=0;t<this.arraySize;t++){let r=this.array[t];typeof r!="undefined"&&e(r)}return}if(this.set){this.set.forEach(e);return}throw new Error("no set or array")}};var v=Symbol("RESET_VALUE");var F=class{constructor(e){d(this,"index",0);d(this,"buffer");this.capacity=e,this.buffer=new Array(e)}pushEntry(e,t,r){if(r!==void 0){if(r===v){this.clear();return}this.buffer[this.index]=[e,t,r],this.index=(this.index+1)%this.capacity}}clear(){this.index=0,this.buffer.fill(void 0)}getChangesSince(e){let{index:t,capacity:r,buffer:n}=this;for(let o=0;o<r;o++){let u=(t-1+r-o)%r,c=n[u];if(!c)return v;let[l,a]=c;if(o===0&&e>=a)return[];if(l<=e&&e<a){let f=o+1,p=new Array(f);for(let y=0;y<f;y++)p[y]=n[(u+y)%r][2];return p}}return v}};function Ae(s){return s&&typeof s=="object"&&"parents"in s}function $(s){for(let e=0,t=s.parents.length;e<t;e++)if(s.parents[e].__unsafe__getWithoutCapture(),s.parents[e].lastChangedEpoch!==s.parentEpochs[e])return!0;return!1}var A=(s,e)=>{if(s.children.remove(e)&&s.children.isEmpty&&Ae(s))for(let t=0,r=s.parents.length;t<r;t++)A(s.parents[t],s)},G=(s,e)=>{if(s.children.add(e)&&Ae(s))for(let t=0,r=s.parents.length;t<r;t++)G(s.parents[t],s)};function se(s,e){return s===e||Object.is(s,e)||!!(s&&e&&typeof s.equals=="function"&&s.equals(e))}var H=Object.freeze([]);var Ne=Symbol.for("__@tldraw/state__"),Le=globalThis;Le[Ne]?console.error('Multiple versions of @tldraw/state detected. This will cause unexpected behavior. Please add "resolutions" (yarn/pnpm) or "overrides" (npm) in your package.json to ensure only one version of @tldraw/state is loaded.'):Le[Ne]=!0;var oe=class{constructor(e,t){d(this,"offset",0);d(this,"numNewParents",0);d(this,"maybeRemoved");this.below=e,this.child=t}},R=null;function j(s){R=new oe(R,s)}function Y(){let s=R;if(R=s.below,s.numNewParents>0||s.offset!==s.child.parents.length){for(let t=s.offset;t<s.child.parents.length;t++){let r=s.child.parents[t];s.child.parents.indexOf(r)>=s.offset&&A(r,s.child)}if(s.child.parents.length=s.offset,s.child.parentEpochs.length=s.offset,R!=null&&R.maybeRemoved)for(let t=0;t<R.maybeRemoved.length;t++){let r=R.maybeRemoved[t];s.child.parents.indexOf(r)===-1&&A(r,s.child)}}}function ie(s){if(R){let e=R.child.parents.indexOf(s);if(e<0&&(R.numNewParents++,R.child.isActivelyListening&&G(s,R.child)),e<0||e>=R.offset){if(e!==R.offset&&e>0){let t=R.child.parents[R.offset];R.maybeRemoved?R.maybeRemoved.indexOf(t)===-1&&R.maybeRemoved.push(t):R.maybeRemoved=[t]}R.child.parents[R.offset]=s,R.child.parentEpochs[R.offset]=s.lastChangedEpoch,R.offset++}}}var C=-1+1;var De=!1;function ae(){De||(De=!0,console.warn("Using Signal.value is deprecated and will be removed in the near future. Please use Signal.get() instead."))}var Pe=!1;function Ue(){Pe||(Pe=!0,console.warn(`Using \`@computed\` as a decorator for getters is deprecated and will be removed in the near future. Please refactor to use \`@computed\` as a decorator for methods.
1
+ "use strict";var at=Object.create;var D=Object.defineProperty,lt=Object.defineProperties,ut=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ft=Object.getOwnPropertyNames,xe=Object.getOwnPropertySymbols,pt=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable;var ne=(s,e,t)=>e in s?D(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,P=(s,e)=>{for(var t in e||(e={}))Oe.call(e,t)&&ne(s,t,e[t]);if(xe)for(var t of xe(e))ht.call(e,t)&&ne(s,t,e[t]);return s},re=(s,e)=>lt(s,ct(e));var dt=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),mt=(s,e)=>{for(var t in e)D(s,t,{get:e[t],enumerable:!0})},Ie=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ft(e))!Oe.call(s,n)&&n!==t&&D(s,n,{get:()=>e[n],enumerable:!(r=ut(e,n))||r.enumerable});return s};var V=(s,e,t)=>(t=s!=null?at(pt(s)):{},Ie(e||!s||!s.__esModule?D(t,"default",{value:s,enumerable:!0}):t,s)),yt=s=>Ie(D({},"__esModule",{value:!0}),s);var d=(s,e,t)=>ne(s,typeof e!="symbol"?e+"":e,t);var I=(s,e,t)=>new Promise((r,n)=>{var o=l=>{try{c(t.next(l))}catch(a){n(a)}},u=l=>{try{c(t.throw(l))}catch(a){n(a)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,u);c((t=t.apply(s,e)).next())});var Ke=dt((Pr,X)=>{"use strict";(function(){"use strict";var s={}.hasOwnProperty;function e(){for(var n="",o=0;o<arguments.length;o++){var u=arguments[o];u&&(n=r(n,t(u)))}return n}function t(n){if(typeof n=="string"||typeof n=="number")return n;if(typeof n!="object")return"";if(Array.isArray(n))return e.apply(null,n);if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]"))return n.toString();var o="";for(var u in n)s.call(n,u)&&n[u]&&(o=r(o,u));return o}function r(n,o){return o?n?n+" "+o:n+o:n}typeof X!="undefined"&&X.exports?(e.default=e,X.exports=e):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return e}):window.classNames=e})()});var $t={};mt($t,{Whiteboard:()=>it});module.exports=yt($t);var O=V(require("react")),ot=require("@tldraw/tldraw");var U=require("react"),qe=require("@tldraw/tldraw");function We({store:s}){let{addToast:e,removeToast:t}=(0,qe.useToasts)(),r=(0,U.useRef)(void 0),n=(0,U.useRef)(void 0);return(0,U.useEffect)(()=>{let o=s.status==="synced-remote"?s.connectionStatus:void 0;o!==r.current&&(n.current&&o==="online"&&(t(n.current),n.current=void 0),o==="offline"?n.current=e({title:"Connection lost",description:"Attempting to reconnect...",icon:"warning-triangle",keepOpen:!0}):o==="online"&&r.current==="offline"&&e({title:"Connected",description:"Connection restored",icon:"check"}),r.current=o)},[s,e,t]),null}var h=V(require("react"));var M=class{constructor(){d(this,"arraySize",0);d(this,"array",Array(8));d(this,"set",null)}get isEmpty(){if(this.array)return this.arraySize===0;if(this.set)return this.set.size===0;throw new Error("no set or array")}add(e){if(this.array)return this.array.indexOf(e)!==-1?!1:this.arraySize<8?(this.array[this.arraySize]=e,this.arraySize++,!0):(this.set=new Set(this.array),this.array=null,this.set.add(e),!0);if(this.set)return this.set.has(e)?!1:(this.set.add(e),!0);throw new Error("no set or array")}remove(e){if(this.array){let t=this.array.indexOf(e);return t===-1?!1:(this.array[t]=void 0,this.arraySize--,t!==this.arraySize&&(this.array[t]=this.array[this.arraySize],this.array[this.arraySize]=void 0),!0)}if(this.set)return this.set.has(e)?(this.set.delete(e),!0):!1;throw new Error("no set or array")}visit(e){if(this.array){for(let t=0;t<this.arraySize;t++){let r=this.array[t];typeof r!="undefined"&&e(r)}return}if(this.set){this.set.forEach(e);return}throw new Error("no set or array")}};var v=Symbol("RESET_VALUE");var F=class{constructor(e){d(this,"index",0);d(this,"buffer");this.capacity=e,this.buffer=new Array(e)}pushEntry(e,t,r){if(r!==void 0){if(r===v){this.clear();return}this.buffer[this.index]=[e,t,r],this.index=(this.index+1)%this.capacity}}clear(){this.index=0,this.buffer.fill(void 0)}getChangesSince(e){let{index:t,capacity:r,buffer:n}=this;for(let o=0;o<r;o++){let u=(t-1+r-o)%r,c=n[u];if(!c)return v;let[l,a]=c;if(o===0&&e>=a)return[];if(l<=e&&e<a){let f=o+1,p=new Array(f);for(let y=0;y<f;y++)p[y]=n[(u+y)%r][2];return p}}return v}};function Ae(s){return s&&typeof s=="object"&&"parents"in s}function $(s){for(let e=0,t=s.parents.length;e<t;e++)if(s.parents[e].__unsafe__getWithoutCapture(),s.parents[e].lastChangedEpoch!==s.parentEpochs[e])return!0;return!1}var A=(s,e)=>{if(s.children.remove(e)&&s.children.isEmpty&&Ae(s))for(let t=0,r=s.parents.length;t<r;t++)A(s.parents[t],s)},G=(s,e)=>{if(s.children.add(e)&&Ae(s))for(let t=0,r=s.parents.length;t<r;t++)G(s.parents[t],s)};function se(s,e){return s===e||Object.is(s,e)||!!(s&&e&&typeof s.equals=="function"&&s.equals(e))}var H=Object.freeze([]);var Ne=Symbol.for("__@tldraw/state__"),Le=globalThis;Le[Ne]?console.error('Multiple versions of @tldraw/state detected. This will cause unexpected behavior. Please add "resolutions" (yarn/pnpm) or "overrides" (npm) in your package.json to ensure only one version of @tldraw/state is loaded.'):Le[Ne]=!0;var oe=class{constructor(e,t){d(this,"offset",0);d(this,"numNewParents",0);d(this,"maybeRemoved");this.below=e,this.child=t}},R=null;function j(s){R=new oe(R,s)}function Y(){let s=R;if(R=s.below,s.numNewParents>0||s.offset!==s.child.parents.length){for(let t=s.offset;t<s.child.parents.length;t++){let r=s.child.parents[t];s.child.parents.indexOf(r)>=s.offset&&A(r,s.child)}if(s.child.parents.length=s.offset,s.child.parentEpochs.length=s.offset,R!=null&&R.maybeRemoved)for(let t=0;t<R.maybeRemoved.length;t++){let r=R.maybeRemoved[t];s.child.parents.indexOf(r)===-1&&A(r,s.child)}}}function ie(s){if(R){let e=R.child.parents.indexOf(s);if(e<0&&(R.numNewParents++,R.child.isActivelyListening&&G(s,R.child)),e<0||e>=R.offset){if(e!==R.offset&&e>0){let t=R.child.parents[R.offset];R.maybeRemoved?R.maybeRemoved.indexOf(t)===-1&&R.maybeRemoved.push(t):R.maybeRemoved=[t]}R.child.parents[R.offset]=s,R.child.parentEpochs[R.offset]=s.lastChangedEpoch,R.offset++}}}var C=0;var De=!1;function ae(){De||(De=!0,console.warn("Using Signal.value is deprecated and will be removed in the near future. Please use Signal.get() instead."))}var Pe=!1;function Ue(){Pe||(Pe=!0,console.warn(`Using \`@computed\` as a decorator for getters is deprecated and will be removed in the near future. Please refactor to use \`@computed\` as a decorator for methods.
2
2
 
3
3
  // Before
4
4
  @computed
@@ -11,7 +11,7 @@ get foo() {
11
11
  getFoo() {
12
12
  return 'foo'
13
13
  }
14
- `))}var Me=Symbol("UNINITIALIZED");var z=class{constructor(e,t){this.value=e,this.diff=t}};var N=class{constructor(e,t,r){d(this,"lastChangedEpoch",-1);d(this,"lastTraversedEpoch",-1);d(this,"lastCheckedEpoch",-1);d(this,"parents",[]);d(this,"parentEpochs",[]);d(this,"children",new M);d(this,"historyBuffer");d(this,"state",Me);d(this,"computeDiff");d(this,"isEqual");var n;this.name=e,this.derive=t,r!=null&&r.historyLength&&(this.historyBuffer=new F(r.historyLength)),this.computeDiff=r==null?void 0:r.computeDiff,this.isEqual=(n=r==null?void 0:r.isEqual)!=null?n:se}get isActivelyListening(){return!this.children.isEmpty}__unsafe__getWithoutCapture(){var t,r;let e=this.lastChangedEpoch===-1;if(!e&&(this.lastCheckedEpoch===C||!$(this)))return this.lastCheckedEpoch=C,this.state;try{j(this);let n=this.derive(this.state,this.lastCheckedEpoch),o=n instanceof z?n.value:n;if(this.state===Me||!this.isEqual(o,this.state)){if(this.historyBuffer&&!e){let u=n instanceof z?n.diff:void 0;this.historyBuffer.pushEntry(this.lastChangedEpoch,C,(r=u!=null?u:(t=this.computeDiff)==null?void 0:t.call(this,this.state,o,this.lastCheckedEpoch,C))!=null?r:v)}this.lastChangedEpoch=C,this.state=o}return this.lastCheckedEpoch=C,this.state}finally{Y()}}get(){let e=this.__unsafe__getWithoutCapture();return ie(this),e}get value(){return ae(),this.get()}getDiffSince(e){var t,r;return this.get(),e>=this.lastChangedEpoch?H:(r=(t=this.historyBuffer)==null?void 0:t.getChangesSince(e))!=null?r:v}};function gt(s={},e,t,r){let n=r.value,o=Symbol.for("__@tldraw/state__computed__"+t);return r.value=function(){let u=this[o];return u||(u=new N(t,n.bind(this),s),Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:u})),u.get()},r.value[bt]=!0,r}function Fe(s={},e,t,r){return r.get?(Ue(),Rt(s,e,t,r)):gt(s,e,t,r)}function Rt(s={},e,t,r){let n=r.get,o=Symbol.for("__@tldraw/state__computed__"+t);return r.get=function(){let u=this[o];return u||(u=new N(t,n.bind(this),s),Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:u})),u.get()},r}var bt="@@__isComputedMethod__@@";function J(){if(arguments.length===1){let s=arguments[0];return(e,t,r)=>Fe(s,e,t,r)}else return typeof arguments[0]=="string"?new N(arguments[0],arguments[1],arguments[2]):Fe(void 0,arguments[0],arguments[1],arguments[2])}var q=class{constructor(e,t,r){d(this,"_isActivelyListening",!1);d(this,"lastTraversedEpoch",-1);d(this,"lastReactedEpoch",-1);d(this,"_scheduleCount",0);d(this,"parentEpochs",[]);d(this,"parents",[]);d(this,"_scheduleEffect");d(this,"maybeExecute",()=>{this._isActivelyListening&&this.execute()});this.name=e,this.runEffect=t,this._scheduleEffect=r==null?void 0:r.scheduleEffect}get isActivelyListening(){return this._isActivelyListening}get scheduleCount(){return this._scheduleCount}maybeScheduleEffect(){if(this._isActivelyListening&&this.lastReactedEpoch!==C){if(this.parents.length&&!$(this)){this.lastReactedEpoch=C;return}this.scheduleEffect()}}scheduleEffect(){this._scheduleCount++,this._scheduleEffect?this._scheduleEffect(this.maybeExecute):this.execute()}attach(){this._isActivelyListening=!0;for(let e=0,t=this.parents.length;e<t;e++)G(this.parents[e],this)}detach(){this._isActivelyListening=!1;for(let e=0,t=this.parents.length;e<t;e++)A(this.parents[e],this)}execute(){try{j(this);let e=this.runEffect(this.lastReactedEpoch);return this.lastReactedEpoch=C,e}finally{Y()}}};function le(s,e,t){let r=new q(s,e,t);return r.attach(),r.scheduleEffect(),()=>{r.detach()}}var Ge=require("react");var Et=V(require("react"),1);var fr=Symbol.for("react.memo"),pr=Symbol.for("react.forward_ref");var kt=require("react");var Ct=require("react");var _t=require("react");var He=require("react");var W=require("react");function ue(){let s=arguments,e=s.length===3?s[2]:[s[0]],t=s.length===3?s[0]:`useValue(${s[0].name})`,r=(0,W.useRef)(!0);r.current=!0;let n=(0,W.useMemo)(()=>s.length===1?s[0]:J(t,()=>{if(r.current)return s[1]();try{return s[1]()}catch(o){return{}}}),e);try{let{subscribe:o,getSnapshot:u}=(0,W.useMemo)(()=>({subscribe:c=>le(`useValue(${t})`,()=>{n.get(),c()}),getSnapshot:()=>n.get()}),[n]);return(0,W.useSyncExternalStore)(o,u,u)}finally{r.current=!1}}var Ve=require("@tldraw/tldraw"),ce=V(Ke());var Tt="https://dashboard.100ms.live/dashboard",$e=({error:s,editor:e,refresh:t})=>{let r=(0,h.useRef)(null),[n,o]=(0,h.useState)(!1),[u,c]=(0,h.useState)(!1),[l,a]=(0,h.useState)(!1),f=s instanceof Error?s.message:String(s),p=s instanceof Error?s.stack:null;(0,h.useEffect)(()=>{console.error("Whiteboard ErrorFallback:",f,p)},[f,p]);let y=ue("isDarkMode",()=>{try{if(e)return e.user.getIsDarkMode()}catch(m){}return null},[e]),[,S]=(0,h.useState)(null);(0,h.useLayoutEffect)(()=>{var b;y!==null&&S(y);let m=(b=r.current)==null?void 0:b.parentElement,E=!1;for(;m;){if(m.classList.contains("tl-theme__dark")||m.classList.contains("tl-theme__light")){E=!0;break}m=m.parentElement}if(E){S(null);return}S(window.matchMedia("(prefers-color-scheme: dark)").matches)},[y]),(0,h.useEffect)(()=>{if(u){let m=setTimeout(()=>{c(!1)},2e3);return()=>clearTimeout(m)}},[u]);let T=()=>{let m=document.createElement("textarea");m.value=p!=null?p:f,document.body.appendChild(m),m.select(),document.execCommand("copy"),m.remove(),c(!0)},g=()=>I(void 0,null,function*(){(0,Ve.hardResetEditor)()});return h.default.createElement("div",{ref:r,className:(0,ce.default)("tl-container tl-error-boundary","tl-theme__light"),style:{position:"static"}},h.default.createElement("div",{className:"tl-error-boundary__overlay"}),h.default.createElement("div",{className:(0,ce.default)("tl-modal","tl-error-boundary__content",{"tl-error-boundary__content__expanded":n&&!l})},l?h.default.createElement(h.default.Fragment,null,h.default.createElement("h2",null,"Are you sure?"),h.default.createElement("p",null,"Resetting your data will delete your drawing and cannot be undone."),h.default.createElement("div",{className:"tl-error-boundary__content__actions"},h.default.createElement("button",{onClick:()=>a(!1)},"Cancel"),h.default.createElement("button",{className:"tl-error-boundary__reset",onClick:g},"Reset data"))):h.default.createElement(h.default.Fragment,null,h.default.createElement("h2",null,"Something's gone wrong."),h.default.createElement("p",null,"Sorry, we encountered an error. Please refresh the page to continue. If you keep seeing this error, you can ",h.default.createElement("a",{href:Tt},"ask for help on Dashboard"),"."),n&&h.default.createElement("div",{className:"tl-error-boundary__content__error"},h.default.createElement("pre",null,h.default.createElement("code",null,p!=null?p:f)),h.default.createElement("button",{onClick:T},u?"Copied!":"Copy")),h.default.createElement("div",{className:"tl-error-boundary__content__actions"},h.default.createElement("button",{onClick:()=>o(!n)},n?"Hide details":"Show details"),h.default.createElement("div",{className:"tl-error-boundary__content__actions__group"},h.default.createElement("button",{className:"tl-error-boundary__refresh",onClick:t},"Refresh"))))))};var _=require("react"),w=require("@tldraw/tldraw");var je={store:{"document:document":{gridSize:10,name:"",meta:{},id:"document:document",typeName:"document"},"pointer:pointer":{id:"pointer:pointer",typeName:"pointer",x:0,y:0,lastActivityTimestamp:0,meta:{}},"page:page":{meta:{},id:"page:page",name:"Page 1",index:"a1",typeName:"page"},"camera:page:page":{x:0,y:0,z:1,meta:{},id:"camera:page:page",typeName:"camera"},"instance_page_state:page:page":{editingShapeId:null,croppingShapeId:null,selectedShapeIds:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{},id:"instance_page_state:page:page",pageId:"page:page",typeName:"instance_page_state"},"instance:instance":{followingUserId:null,opacityForNextShape:1,stylesForNextShape:{},brush:null,scribble:null,cursor:{type:"default",rotation:0},isFocusMode:!1,exportBackground:!0,isDebugMode:!1,isToolLocked:!1,screenBounds:{x:0,y:0,w:720,h:400},zoomBrush:null,isGridMode:!1,isPenMode:!1,chatMessage:"",isChatting:!1,highlightedUserIds:[],canMoveCamera:!0,isFocused:!0,devicePixelRatio:2,isCoarsePointer:!1,isHoveringCanvas:!1,openMenus:[],isChangingStyle:!1,isReadonly:!1,meta:{},id:"instance:instance",currentPageId:"page:page",typeName:"instance"}},schema:{schemaVersion:1,storeVersion:4,recordVersions:{asset:{version:1,subTypeKey:"type",subTypeVersions:{image:2,video:2,bookmark:0}},camera:{version:1},document:{version:2},instance:{version:21},instance_page_state:{version:5},page:{version:1},shape:{version:3,subTypeKey:"type",subTypeVersions:{group:0,text:1,bookmark:1,draw:1,geo:7,note:4,line:1,frame:0,arrow:1,highlight:0,embed:4,image:2,video:1}},instance_presence:{version:5},pointer:{version:1}}}};var tt=require("react");var et=require("@protobuf-ts/grpcweb-transport");var i=require("@protobuf-ts/runtime"),Be=require("@protobuf-ts/runtime-rpc"),Ye=(o=>(o[o.NONE=0]="NONE",o[o.BYTES=1]="BYTES",o[o.STRING=2]="STRING",o[o.INTEGER=3]="INTEGER",o[o.FLOAT=4]="FLOAT",o))(Ye||{}),pe=class extends i.MessageType{constructor(){super("sessionstorepb.HelloRequest",[{no:1,name:"name",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.name="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.name=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.name!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.name);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},vt=new pe,he=class extends i.MessageType{constructor(){super("sessionstorepb.HelloResponse",[{no:1,name:"response",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.response="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.response=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.response!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.response);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Bt=new he,de=class extends i.MessageType{constructor(){super("sessionstorepb.SubscribeRequest",[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"offset",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.name="",t.offset="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.name=e.string();break;case 2:o.offset=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.name!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.name),e.offset!=="0"&&t.tag(2,i.WireType.Varint).int64(e.offset);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},xt=new de,me=class extends i.MessageType{constructor(){super("sessionstorepb.Event",[{no:1,name:"message",kind:"scalar",T:9},{no:2,name:"sequence",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.message="",t.sequence="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.message=e.string();break;case 2:o.sequence=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.message!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.message),e.sequence!=="0"&&t.tag(2,i.WireType.Varint).int64(e.sequence);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Ot=new me,ye=class extends i.MessageType{constructor(){super("sessionstorepb.Value",[{no:1,name:"type",kind:"enum",T:()=>["sessionstorepb.Value.Type",Ye]},{no:2,name:"number",kind:"scalar",oneof:"data",T:3},{no:3,name:"float",kind:"scalar",oneof:"data",T:2},{no:4,name:"str",kind:"scalar",oneof:"data",T:9},{no:5,name:"raw_bytes",kind:"scalar",oneof:"data",T:12}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.type=0,t.data={oneofKind:void 0},e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.type=e.int32();break;case 2:o.data={oneofKind:"number",number:e.int64().toString()};break;case 3:o.data={oneofKind:"float",float:e.float()};break;case 4:o.data={oneofKind:"str",str:e.string()};break;case 5:o.data={oneofKind:"rawBytes",rawBytes:e.bytes()};break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.type!==0&&t.tag(1,i.WireType.Varint).int32(e.type),e.data.oneofKind==="number"&&t.tag(2,i.WireType.Varint).int64(e.data.number),e.data.oneofKind==="float"&&t.tag(3,i.WireType.Bit32).float(e.data.float),e.data.oneofKind==="str"&&t.tag(4,i.WireType.LengthDelimited).string(e.data.str),e.data.oneofKind==="rawBytes"&&t.tag(5,i.WireType.LengthDelimited).bytes(e.data.rawBytes);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},x=new ye,ge=class extends i.MessageType{constructor(){super("sessionstorepb.GetRequest",[{no:1,name:"key",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},It=new ge,Re=class extends i.MessageType{constructor(){super("sessionstorepb.GetResponse",[{no:1,name:"key",kind:"scalar",T:9},{no:2,name:"namespace",kind:"scalar",T:9},{no:3,name:"value",kind:"message",T:()=>x}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",t.namespace="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;case 2:o.namespace=e.string();break;case 3:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key),e.namespace!==""&&t.tag(2,i.WireType.LengthDelimited).string(e.namespace),e.value&&x.internalBinaryWrite(e.value,t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},qt=new Re,be=class extends i.MessageType{constructor(){super("sessionstorepb.DeleteRequest",[{no:1,name:"key",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Wt=new be,Se=class extends i.MessageType{constructor(){super("sessionstorepb.DeleteResponse",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},At=new Se,Ee=class extends i.MessageType{constructor(){super("sessionstorepb.SetRequest",[{no:1,name:"key",kind:"scalar",T:9},{no:3,name:"value",kind:"message",T:()=>x}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;case 3:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key),e.value&&x.internalBinaryWrite(e.value,t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Nt=new Ee,we=class extends i.MessageType{constructor(){super("sessionstorepb.SetResponse",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Lt=new we,ke=class extends i.MessageType{constructor(){super("sessionstorepb.ChangeStream",[{no:1,name:"change_id",kind:"scalar",T:9},{no:2,name:"key",kind:"scalar",T:9},{no:3,name:"namespace",kind:"scalar",T:9},{no:4,name:"value",kind:"message",T:()=>x},{no:5,name:"from_id",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.changeId="",t.key="",t.namespace="",t.fromId="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.changeId=e.string();break;case 2:o.key=e.string();break;case 3:o.namespace=e.string();break;case 4:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;case 5:o.fromId=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.changeId!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.changeId),e.key!==""&&t.tag(2,i.WireType.LengthDelimited).string(e.key),e.namespace!==""&&t.tag(3,i.WireType.LengthDelimited).string(e.namespace),e.value&&x.internalBinaryWrite(e.value,t.tag(4,i.WireType.LengthDelimited).fork(),r).join(),e.fromId!==""&&t.tag(5,i.WireType.LengthDelimited).string(e.fromId);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Dt=new ke,Ce=class extends i.MessageType{constructor(){super("sessionstorepb.Select",[{no:1,name:"all",kind:"scalar",oneof:"match",T:9},{no:2,name:"key",kind:"scalar",oneof:"match",T:9},{no:3,name:"prefix",kind:"scalar",oneof:"match",T:9},{no:4,name:"suffix",kind:"scalar",oneof:"match",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.match={oneofKind:void 0},e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.match={oneofKind:"all",all:e.string()};break;case 2:o.match={oneofKind:"key",key:e.string()};break;case 3:o.match={oneofKind:"prefix",prefix:e.string()};break;case 4:o.match={oneofKind:"suffix",suffix:e.string()};break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.match.oneofKind==="all"&&t.tag(1,i.WireType.LengthDelimited).string(e.match.all),e.match.oneofKind==="key"&&t.tag(2,i.WireType.LengthDelimited).string(e.match.key),e.match.oneofKind==="prefix"&&t.tag(3,i.WireType.LengthDelimited).string(e.match.prefix),e.match.oneofKind==="suffix"&&t.tag(4,i.WireType.LengthDelimited).string(e.match.suffix);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},fe=new Ce,_e=class extends i.MessageType{constructor(){super("sessionstorepb.OpenRequest",[{no:1,name:"change_id",kind:"scalar",T:9},{no:3,name:"select",kind:"message",repeat:1,T:()=>fe}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.changeId="",t.select=[],e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.changeId=e.string();break;case 3:o.select.push(fe.internalBinaryRead(e,e.uint32(),r));break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.changeId!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.changeId);for(let o=0;o<e.select.length;o++)fe.internalBinaryWrite(e.select[o],t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Pt=new _e,Te=class extends i.MessageType{constructor(){super("sessionstorepb.CountRequest",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Ut=new Te,ve=class extends i.MessageType{constructor(){super("sessionstorepb.CountResponse",[{no:1,name:"count",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.count="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.count=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.count!=="0"&&t.tag(1,i.WireType.Varint).int64(e.count);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Mt=new ve,Ft=new Be.ServiceType("sessionstorepb.Api",[{name:"Hello",options:{},I:vt,O:Bt},{name:"Subscribe",serverStreaming:!0,options:{},I:xt,O:Ot}]),Z=new Be.ServiceType("sessionstorepb.Store",[{name:"open",serverStreaming:!0,options:{},I:Pt,O:Dt},{name:"get",options:{},I:It,O:qt},{name:"set",options:{},I:Nt,O:Lt},{name:"delete",options:{},I:Wt,O:At},{name:"count",options:{},I:Ut,O:Mt}]);var L=require("@protobuf-ts/runtime-rpc");var Q=class{constructor(e){this._transport=e;this.typeName=Z.typeName;this.methods=Z.methods;this.options=Z.options}open(e,t){let r=this.methods[0],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("serverStreaming",this._transport,r,n,e)}get(e,t){let r=this.methods[1],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}set(e,t){let r=this.methods[2],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}delete(e,t){let r=this.methods[3],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}count(e,t){let r=this.methods[4],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}};var ze="currentPage";var Je="client whiteboard abort",Xe=["network error","failed to fetch"];function K(s){if(!s||s.length===0)throw Error("Token cannot be an empty string or undefined or null");let e=s.split(".");if(e.length!==3)throw Error("Expected 3 '.' separate fields - header, payload and signature respectively");let t=atob(e[1]);try{return JSON.parse(t)}catch(r){throw Error(`couldn't parse to json - ${r.message}`)}}var Ze=s=>{let e=Math.min(s.currentDelay*2,3e4),t=e*.2*(Math.random()*2-1);return Math.floor(e+t)};var ee=class{constructor(e,t){let r=new et.GrpcWebFetchTransport({baseUrl:e,meta:{Authorization:`Bearer ${t}`}});this.storeClient=new Q(r)}open(o){return I(this,arguments,function*({handleOpen:e,handleChange:t,handleError:r},n={attempt:0,currentDelay:1e3}){let u=new AbortController,c=this.storeClient.open({changeId:"",select:[]},{abort:u.signal}),l,a=[],f=!1;c.responses.onMessage(y=>{var S;if(f||(f=!0,n={attempt:0,currentDelay:1e3}),y.value){if(((S=y.value)==null?void 0:S.data.oneofKind)==="str"){let T=JSON.parse(y.value.data.str);a.length===l?t(y.key,T):(a.push(T),a.length===l&&e(a))}}else t(y.key)});let p=()=>{window.removeEventListener("online",p),u.abort("reconnecting due to online event"),this.open({handleOpen:e,handleChange:t,handleError:r})};window.addEventListener("online",p),c.responses.onError(y=>{if(console.error("GRPCOpenStreamError: ",y),y.message.includes("abort"))return;r(y);let S=Ze(n),T={attempt:n.attempt+1,currentDelay:S};setTimeout(()=>{window.removeEventListener("online",p),u.abort("closing to open new conn"),this.open({handleOpen:e,handleChange:t,handleError:r},T)},n.currentDelay)});try{l=yield this.getKeysCountWithDelay(),e(l?a:[])}catch(y){console.error("GRPCCountError: ",y);let S=Xe.includes(y.message.toLowerCase());r(y,S)}return()=>{window.removeEventListener("online",p),u.abort(Je)}})}set(e,t){let r=t?JSON.stringify(t):void 0;return this.storeClient.set({key:e,value:r?{data:{str:r,oneofKind:"str"},type:2}:{data:{oneofKind:void 0},type:0}})}get(e){return I(this,null,function*(){var r;let{response:t}=yield this.storeClient.get({key:e});if(((r=t.value)==null?void 0:r.data.oneofKind)==="str")return JSON.parse(t.value.data.str)})}getKeysCount(){return I(this,null,function*(){let{response:e}=yield this.storeClient.count({});return Number(e.count)})}delete(e){return this.storeClient.delete({key:e})}getKeysCountWithDelay(){return I(this,null,function*(){for(let r=0;r<3;r++)try{return yield new Promise(n=>setTimeout(n,200)),yield this.getKeysCount()}catch(n){if(console.warn(n),n.message!=="peer not found"||r===3-1)throw n}})}};var nt=({token:s,endpoint:e="https://store-prod-in3-grpc.100ms.live",handleError:t})=>(0,tt.useMemo)(()=>{try{K(s)}catch(o){return t(o)}if(!e||!s)return t(new Error("Missing GRPC endpoint or token"));let n=new ee(e,s);return window.sessionStore=n,n},[e,s,t]);var te=require("react");var rt=({token:s,editor:e,zoomToContent:t=!1,handleError:r})=>{let{permissions:n}=(0,te.useMemo)(()=>{try{return K(s)}catch(o){return r(o),{}}},[s,r]);return(0,te.useEffect)(()=>{if(e==null||e.updateInstanceState({canMoveCamera:!!t}),!n)return;let o=!n.includes("write");e==null||e.updateInstanceState({isReadonly:o})},[n,t,e]),n};var Kt=["camera","document","instance","instance_page_state","page"];function st({endpoint:s,token:e,editor:t,shapeUtils:r=[],zoomToContent:n=!1}){let[o]=(0,_.useState)(()=>{let g=(0,w.createTLStore)({shapeUtils:[...w.defaultShapeUtils,...r]});return g.loadSnapshot(je),g}),[u,c]=(0,_.useState)(t==null?void 0:t.getCurrentPage()),[l,a]=(0,_.useState)({status:"loading"}),f=(0,_.useCallback)((g,m)=>{a(m?{error:g,status:"error"}:{store:o,status:"synced-remote",connectionStatus:"offline"})},[o]),p=nt({token:e,endpoint:s,handleError:f}),y=rt({token:e,editor:t,zoomToContent:n,handleError:f}),S=(0,_.useCallback)(g=>{if(!p)return;if(Kt.every(E=>g.filter(b=>b.typeName===E).length>0)){let E=o.allRecords().filter(k=>k.typeName==="shape"),b=new Set(g.map(k=>k.id));o.mergeRemoteChanges(()=>{o.clear(),o.put(g)});for(let k of E)b.has(k.id)||(o.put([k]),p.set(k.id,k))}else for(let E of o.allRecords())p.set(E.id,E);a({store:o,status:"synced-remote",connectionStatus:"online"})},[o,p]),T=(0,_.useCallback)((g,m)=>{o.mergeRemoteChanges(()=>{if(!m)return o.remove([g]);g===ze?c(m):(0,w.transact)(()=>{o.put([m]),g===w.TLINSTANCE_ID&&o.put([re(P({},m),{canMoveCamera:!!n,isReadonly:!y.includes("write")})])})})},[o,y,n]);return(0,_.useEffect)(()=>{if(!p)return;a({status:"loading"});let g=[];return p.open({handleOpen:S,handleChange:T,handleError:f}).then(m=>g.push(m)),g.push(o.listen((0,w.throttle)(function({changes:E}){Object.values(E.added).forEach(b=>{p.set(b.id,b)}),Object.values(E.updated).forEach(([,b])=>{p.set(b.id,b)}),Object.values(E.removed).forEach(b=>{p.delete(b.id)})},11),{source:"user",scope:"document"})),()=>{g.forEach(m=>m()),g.length=0}},[o,p,T,S,f]),(0,_.useEffect)(()=>{if(!t||!p)return;let g=[];return g.push(o.listen((0,w.debounce)(({changes:m})=>{Object.keys(m.updated).forEach(E=>{if(!E.includes("instance"))return;let b=t==null?void 0:t.getCurrentPage();(b==null?void 0:b.id)!==(u==null?void 0:u.id)&&(p.get(w.TLINSTANCE_ID).then(k=>{k&&(p==null||p.set(k.id,re(P({},k),{currentPageId:b==null?void 0:b.id})))}),c(b))})},200),{source:"user",scope:"session"})),()=>{g.forEach(m=>m()),g.length=0}},[u,t,p,o]),(0,_.useEffect)(()=>{var g;!t||!((g=t.getInstanceState())!=null&&g.isReadonly)||!n||o.listen(()=>{t.zoomToFit()},{source:"remote",scope:"document"})},[t,o,n]),l}function it(s){let[e,t]=(0,O.useState)(Date.now()+s.token);return O.default.createElement(Vt,P({key:e,refresh:()=>t(Date.now()+s.token)},s))}function Vt({endpoint:s,token:e,zoomToContent:t,transparentCanvas:r,onMount:n,refresh:o}){var p,y;let[u,c]=(0,O.useState)(),l=st({endpoint:s,token:e,editor:u,zoomToContent:t}),a=l.status==="synced-remote"?l.connectionStatus:void 0;return O.default.createElement(ot.Tldraw,{className:r?"transparent-canvas":"",autoFocus:!0,store:l,onMount:S=>{c(S),window.editor=S,n==null||n({store:l.store,editor:S})},components:{ErrorFallback:({error:S,editor:T})=>O.default.createElement($e,{editor:T,error:S,refresh:o})},hideUi:((p=u==null?void 0:u.getInstanceState())==null?void 0:p.isReadonly)&&a=="online",initialState:(y=u==null?void 0:u.getInstanceState())!=null&&y.isReadonly?"hand":"select"},O.default.createElement(We,{store:l}))}
14
+ `))}var Me=Symbol("UNINITIALIZED");var z=class{constructor(e,t){this.value=e,this.diff=t}};var N=class{constructor(e,t,r){d(this,"lastChangedEpoch",-1);d(this,"lastTraversedEpoch",-1);d(this,"lastCheckedEpoch",-1);d(this,"parents",[]);d(this,"parentEpochs",[]);d(this,"children",new M);d(this,"historyBuffer");d(this,"state",Me);d(this,"computeDiff");d(this,"isEqual");var n;this.name=e,this.derive=t,r!=null&&r.historyLength&&(this.historyBuffer=new F(r.historyLength)),this.computeDiff=r==null?void 0:r.computeDiff,this.isEqual=(n=r==null?void 0:r.isEqual)!=null?n:se}get isActivelyListening(){return!this.children.isEmpty}__unsafe__getWithoutCapture(){var t,r;let e=this.lastChangedEpoch===-1;if(!e&&(this.lastCheckedEpoch===C||!$(this)))return this.lastCheckedEpoch=C,this.state;try{j(this);let n=this.derive(this.state,this.lastCheckedEpoch),o=n instanceof z?n.value:n;if(this.state===Me||!this.isEqual(o,this.state)){if(this.historyBuffer&&!e){let u=n instanceof z?n.diff:void 0;this.historyBuffer.pushEntry(this.lastChangedEpoch,C,(r=u!=null?u:(t=this.computeDiff)==null?void 0:t.call(this,this.state,o,this.lastCheckedEpoch,C))!=null?r:v)}this.lastChangedEpoch=C,this.state=o}return this.lastCheckedEpoch=C,this.state}finally{Y()}}get(){let e=this.__unsafe__getWithoutCapture();return ie(this),e}get value(){return ae(),this.get()}getDiffSince(e){var t,r;return this.get(),e>=this.lastChangedEpoch?H:(r=(t=this.historyBuffer)==null?void 0:t.getChangesSince(e))!=null?r:v}};function gt(s={},e,t,r){let n=r.value,o=Symbol.for("__@tldraw/state__computed__"+t);return r.value=function(){let u=this[o];return u||(u=new N(t,n.bind(this),s),Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:u})),u.get()},r.value[bt]=!0,r}function Fe(s={},e,t,r){return r.get?(Ue(),Rt(s,e,t,r)):gt(s,e,t,r)}function Rt(s={},e,t,r){let n=r.get,o=Symbol.for("__@tldraw/state__computed__"+t);return r.get=function(){let u=this[o];return u||(u=new N(t,n.bind(this),s),Object.defineProperty(this,o,{enumerable:!1,configurable:!1,writable:!1,value:u})),u.get()},r}var bt="@@__isComputedMethod__@@";function J(){if(arguments.length===1){let s=arguments[0];return(e,t,r)=>Fe(s,e,t,r)}else return typeof arguments[0]=="string"?new N(arguments[0],arguments[1],arguments[2]):Fe(void 0,arguments[0],arguments[1],arguments[2])}var q=class{constructor(e,t,r){d(this,"_isActivelyListening",!1);d(this,"lastTraversedEpoch",-1);d(this,"lastReactedEpoch",-1);d(this,"_scheduleCount",0);d(this,"parentEpochs",[]);d(this,"parents",[]);d(this,"_scheduleEffect");d(this,"maybeExecute",()=>{this._isActivelyListening&&this.execute()});this.name=e,this.runEffect=t,this._scheduleEffect=r==null?void 0:r.scheduleEffect}get isActivelyListening(){return this._isActivelyListening}get scheduleCount(){return this._scheduleCount}maybeScheduleEffect(){if(this._isActivelyListening&&this.lastReactedEpoch!==C){if(this.parents.length&&!$(this)){this.lastReactedEpoch=C;return}this.scheduleEffect()}}scheduleEffect(){this._scheduleCount++,this._scheduleEffect?this._scheduleEffect(this.maybeExecute):this.execute()}attach(){this._isActivelyListening=!0;for(let e=0,t=this.parents.length;e<t;e++)G(this.parents[e],this)}detach(){this._isActivelyListening=!1;for(let e=0,t=this.parents.length;e<t;e++)A(this.parents[e],this)}execute(){try{j(this);let e=this.runEffect(this.lastReactedEpoch);return this.lastReactedEpoch=C,e}finally{Y()}}};function le(s,e,t){let r=new q(s,e,t);return r.attach(),r.scheduleEffect(),()=>{r.detach()}}var Ge=require("react");var Et=V(require("react"),1);var kt=require("react");var Ct=require("react");var _t=require("react");var He=require("react");var W=require("react");function ue(){let s=arguments,e=s.length===3?s[2]:[s[0]],t=s.length===3?s[0]:`useValue(${s[0].name})`,r=(0,W.useRef)(!0);r.current=!0;let n=(0,W.useMemo)(()=>s.length===1?s[0]:J(t,()=>{if(r.current)return s[1]();try{return s[1]()}catch(o){return{}}}),e);try{let{subscribe:o,getSnapshot:u}=(0,W.useMemo)(()=>({subscribe:c=>le(`useValue(${t})`,()=>{n.get(),c()}),getSnapshot:()=>n.get()}),[n]);return(0,W.useSyncExternalStore)(o,u,u)}finally{r.current=!1}}var Ve=require("@tldraw/tldraw"),ce=V(Ke());var Tt="https://dashboard.100ms.live/dashboard",$e=({error:s,editor:e,refresh:t})=>{let r=(0,h.useRef)(null),[n,o]=(0,h.useState)(!1),[u,c]=(0,h.useState)(!1),[l,a]=(0,h.useState)(!1),f=s instanceof Error?s.message:String(s),p=s instanceof Error?s.stack:null;(0,h.useEffect)(()=>{console.error("Whiteboard ErrorFallback:",f,p)},[f,p]);let y=ue("isDarkMode",()=>{try{if(e)return e.user.getIsDarkMode()}catch(m){}return null},[e]),[,S]=(0,h.useState)(null);(0,h.useLayoutEffect)(()=>{var b;y!==null&&S(y);let m=(b=r.current)==null?void 0:b.parentElement,E=!1;for(;m;){if(m.classList.contains("tl-theme__dark")||m.classList.contains("tl-theme__light")){E=!0;break}m=m.parentElement}if(E){S(null);return}S(window.matchMedia("(prefers-color-scheme: dark)").matches)},[y]),(0,h.useEffect)(()=>{if(u){let m=setTimeout(()=>{c(!1)},2e3);return()=>clearTimeout(m)}},[u]);let T=()=>{let m=document.createElement("textarea");m.value=p!=null?p:f,document.body.appendChild(m),m.select(),document.execCommand("copy"),m.remove(),c(!0)},g=()=>I(null,null,function*(){(0,Ve.hardResetEditor)()});return h.default.createElement("div",{ref:r,className:(0,ce.default)("tl-container tl-error-boundary","tl-theme__light"),style:{position:"static"}},h.default.createElement("div",{className:"tl-error-boundary__overlay"}),h.default.createElement("div",{className:(0,ce.default)("tl-modal","tl-error-boundary__content",{"tl-error-boundary__content__expanded":n&&!l})},l?h.default.createElement(h.default.Fragment,null,h.default.createElement("h2",null,"Are you sure?"),h.default.createElement("p",null,"Resetting your data will delete your drawing and cannot be undone."),h.default.createElement("div",{className:"tl-error-boundary__content__actions"},h.default.createElement("button",{onClick:()=>a(!1)},"Cancel"),h.default.createElement("button",{className:"tl-error-boundary__reset",onClick:g},"Reset data"))):h.default.createElement(h.default.Fragment,null,h.default.createElement("h2",null,"Something's gone wrong."),h.default.createElement("p",null,"Sorry, we encountered an error. Please refresh the page to continue. If you keep seeing this error, you can ",h.default.createElement("a",{href:Tt},"ask for help on Dashboard"),"."),n&&h.default.createElement("div",{className:"tl-error-boundary__content__error"},h.default.createElement("pre",null,h.default.createElement("code",null,p!=null?p:f)),h.default.createElement("button",{onClick:T},u?"Copied!":"Copy")),h.default.createElement("div",{className:"tl-error-boundary__content__actions"},h.default.createElement("button",{onClick:()=>o(!n)},n?"Hide details":"Show details"),h.default.createElement("div",{className:"tl-error-boundary__content__actions__group"},h.default.createElement("button",{className:"tl-error-boundary__refresh",onClick:t},"Refresh"))))))};var _=require("react"),w=require("@tldraw/tldraw");var je={store:{"document:document":{gridSize:10,name:"",meta:{},id:"document:document",typeName:"document"},"pointer:pointer":{id:"pointer:pointer",typeName:"pointer",x:0,y:0,lastActivityTimestamp:0,meta:{}},"page:page":{meta:{},id:"page:page",name:"Page 1",index:"a1",typeName:"page"},"camera:page:page":{x:0,y:0,z:1,meta:{},id:"camera:page:page",typeName:"camera"},"instance_page_state:page:page":{editingShapeId:null,croppingShapeId:null,selectedShapeIds:[],hoveredShapeId:null,erasingShapeIds:[],hintingShapeIds:[],focusedGroupId:null,meta:{},id:"instance_page_state:page:page",pageId:"page:page",typeName:"instance_page_state"},"instance:instance":{followingUserId:null,opacityForNextShape:1,stylesForNextShape:{},brush:null,scribble:null,cursor:{type:"default",rotation:0},isFocusMode:!1,exportBackground:!0,isDebugMode:!1,isToolLocked:!1,screenBounds:{x:0,y:0,w:720,h:400},zoomBrush:null,isGridMode:!1,isPenMode:!1,chatMessage:"",isChatting:!1,highlightedUserIds:[],canMoveCamera:!0,isFocused:!0,devicePixelRatio:2,isCoarsePointer:!1,isHoveringCanvas:!1,openMenus:[],isChangingStyle:!1,isReadonly:!1,meta:{},id:"instance:instance",currentPageId:"page:page",typeName:"instance"}},schema:{schemaVersion:1,storeVersion:4,recordVersions:{asset:{version:1,subTypeKey:"type",subTypeVersions:{image:2,video:2,bookmark:0}},camera:{version:1},document:{version:2},instance:{version:21},instance_page_state:{version:5},page:{version:1},shape:{version:3,subTypeKey:"type",subTypeVersions:{group:0,text:1,bookmark:1,draw:1,geo:7,note:4,line:1,frame:0,arrow:1,highlight:0,embed:4,image:2,video:1}},instance_presence:{version:5},pointer:{version:1}}}};var tt=require("react");var et=require("@protobuf-ts/grpcweb-transport");var i=require("@protobuf-ts/runtime"),Be=require("@protobuf-ts/runtime-rpc"),Ye=(o=>(o[o.NONE=0]="NONE",o[o.BYTES=1]="BYTES",o[o.STRING=2]="STRING",o[o.INTEGER=3]="INTEGER",o[o.FLOAT=4]="FLOAT",o))(Ye||{}),pe=class extends i.MessageType{constructor(){super("sessionstorepb.HelloRequest",[{no:1,name:"name",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.name="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.name=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.name!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.name);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},vt=new pe,he=class extends i.MessageType{constructor(){super("sessionstorepb.HelloResponse",[{no:1,name:"response",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.response="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.response=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.response!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.response);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Bt=new he,de=class extends i.MessageType{constructor(){super("sessionstorepb.SubscribeRequest",[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"offset",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.name="",t.offset="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.name=e.string();break;case 2:o.offset=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.name!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.name),e.offset!=="0"&&t.tag(2,i.WireType.Varint).int64(e.offset);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},xt=new de,me=class extends i.MessageType{constructor(){super("sessionstorepb.Event",[{no:1,name:"message",kind:"scalar",T:9},{no:2,name:"sequence",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.message="",t.sequence="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.message=e.string();break;case 2:o.sequence=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.message!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.message),e.sequence!=="0"&&t.tag(2,i.WireType.Varint).int64(e.sequence);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Ot=new me,ye=class extends i.MessageType{constructor(){super("sessionstorepb.Value",[{no:1,name:"type",kind:"enum",T:()=>["sessionstorepb.Value.Type",Ye]},{no:2,name:"number",kind:"scalar",oneof:"data",T:3},{no:3,name:"float",kind:"scalar",oneof:"data",T:2},{no:4,name:"str",kind:"scalar",oneof:"data",T:9},{no:5,name:"raw_bytes",kind:"scalar",oneof:"data",T:12}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.type=0,t.data={oneofKind:void 0},e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.type=e.int32();break;case 2:o.data={oneofKind:"number",number:e.int64().toString()};break;case 3:o.data={oneofKind:"float",float:e.float()};break;case 4:o.data={oneofKind:"str",str:e.string()};break;case 5:o.data={oneofKind:"rawBytes",rawBytes:e.bytes()};break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.type!==0&&t.tag(1,i.WireType.Varint).int32(e.type),e.data.oneofKind==="number"&&t.tag(2,i.WireType.Varint).int64(e.data.number),e.data.oneofKind==="float"&&t.tag(3,i.WireType.Bit32).float(e.data.float),e.data.oneofKind==="str"&&t.tag(4,i.WireType.LengthDelimited).string(e.data.str),e.data.oneofKind==="rawBytes"&&t.tag(5,i.WireType.LengthDelimited).bytes(e.data.rawBytes);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},x=new ye,ge=class extends i.MessageType{constructor(){super("sessionstorepb.GetRequest",[{no:1,name:"key",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},It=new ge,Re=class extends i.MessageType{constructor(){super("sessionstorepb.GetResponse",[{no:1,name:"key",kind:"scalar",T:9},{no:2,name:"namespace",kind:"scalar",T:9},{no:3,name:"value",kind:"message",T:()=>x}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",t.namespace="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;case 2:o.namespace=e.string();break;case 3:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key),e.namespace!==""&&t.tag(2,i.WireType.LengthDelimited).string(e.namespace),e.value&&x.internalBinaryWrite(e.value,t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},qt=new Re,be=class extends i.MessageType{constructor(){super("sessionstorepb.DeleteRequest",[{no:1,name:"key",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Wt=new be,Se=class extends i.MessageType{constructor(){super("sessionstorepb.DeleteResponse",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},At=new Se,Ee=class extends i.MessageType{constructor(){super("sessionstorepb.SetRequest",[{no:1,name:"key",kind:"scalar",T:9},{no:3,name:"value",kind:"message",T:()=>x}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.key="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.key=e.string();break;case 3:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.key!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.key),e.value&&x.internalBinaryWrite(e.value,t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Nt=new Ee,we=class extends i.MessageType{constructor(){super("sessionstorepb.SetResponse",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Lt=new we,ke=class extends i.MessageType{constructor(){super("sessionstorepb.ChangeStream",[{no:1,name:"change_id",kind:"scalar",T:9},{no:2,name:"key",kind:"scalar",T:9},{no:3,name:"namespace",kind:"scalar",T:9},{no:4,name:"value",kind:"message",T:()=>x},{no:5,name:"from_id",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.changeId="",t.key="",t.namespace="",t.fromId="",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.changeId=e.string();break;case 2:o.key=e.string();break;case 3:o.namespace=e.string();break;case 4:o.value=x.internalBinaryRead(e,e.uint32(),r,o.value);break;case 5:o.fromId=e.string();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.changeId!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.changeId),e.key!==""&&t.tag(2,i.WireType.LengthDelimited).string(e.key),e.namespace!==""&&t.tag(3,i.WireType.LengthDelimited).string(e.namespace),e.value&&x.internalBinaryWrite(e.value,t.tag(4,i.WireType.LengthDelimited).fork(),r).join(),e.fromId!==""&&t.tag(5,i.WireType.LengthDelimited).string(e.fromId);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Dt=new ke,Ce=class extends i.MessageType{constructor(){super("sessionstorepb.Select",[{no:1,name:"all",kind:"scalar",oneof:"match",T:9},{no:2,name:"key",kind:"scalar",oneof:"match",T:9},{no:3,name:"prefix",kind:"scalar",oneof:"match",T:9},{no:4,name:"suffix",kind:"scalar",oneof:"match",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.match={oneofKind:void 0},e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.match={oneofKind:"all",all:e.string()};break;case 2:o.match={oneofKind:"key",key:e.string()};break;case 3:o.match={oneofKind:"prefix",prefix:e.string()};break;case 4:o.match={oneofKind:"suffix",suffix:e.string()};break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.match.oneofKind==="all"&&t.tag(1,i.WireType.LengthDelimited).string(e.match.all),e.match.oneofKind==="key"&&t.tag(2,i.WireType.LengthDelimited).string(e.match.key),e.match.oneofKind==="prefix"&&t.tag(3,i.WireType.LengthDelimited).string(e.match.prefix),e.match.oneofKind==="suffix"&&t.tag(4,i.WireType.LengthDelimited).string(e.match.suffix);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},fe=new Ce,_e=class extends i.MessageType{constructor(){super("sessionstorepb.OpenRequest",[{no:1,name:"change_id",kind:"scalar",T:9},{no:3,name:"select",kind:"message",repeat:1,T:()=>fe}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.changeId="",t.select=[],e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.changeId=e.string();break;case 3:o.select.push(fe.internalBinaryRead(e,e.uint32(),r));break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.changeId!==""&&t.tag(1,i.WireType.LengthDelimited).string(e.changeId);for(let o=0;o<e.select.length;o++)fe.internalBinaryWrite(e.select[o],t.tag(3,i.WireType.LengthDelimited).fork(),r).join();let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Pt=new _e,Te=class extends i.MessageType{constructor(){super("sessionstorepb.CountRequest",[])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){return n!=null?n:this.create()}internalBinaryWrite(e,t,r){let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Ut=new Te,ve=class extends i.MessageType{constructor(){super("sessionstorepb.CountResponse",[{no:1,name:"count",kind:"scalar",T:3}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.count="0",e!==void 0&&(0,i.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,r,n){let o=n!=null?n:this.create(),u=e.pos+t;for(;e.pos<u;){let[c,l]=e.tag();switch(c){case 1:o.count=e.int64().toString();break;default:let a=r.readUnknownField;if(a==="throw")throw new globalThis.Error(`Unknown field ${c} (wire type ${l}) for ${this.typeName}`);let f=e.skip(l);a!==!1&&(a===!0?i.UnknownFieldHandler.onRead:a)(this.typeName,o,c,l,f)}}return o}internalBinaryWrite(e,t,r){e.count!=="0"&&t.tag(1,i.WireType.Varint).int64(e.count);let n=r.writeUnknownFields;return n!==!1&&(n==!0?i.UnknownFieldHandler.onWrite:n)(this.typeName,e,t),t}},Mt=new ve,Ft=new Be.ServiceType("sessionstorepb.Api",[{name:"Hello",options:{},I:vt,O:Bt},{name:"Subscribe",serverStreaming:!0,options:{},I:xt,O:Ot}]),Z=new Be.ServiceType("sessionstorepb.Store",[{name:"open",serverStreaming:!0,options:{},I:Pt,O:Dt},{name:"get",options:{},I:It,O:qt},{name:"set",options:{},I:Nt,O:Lt},{name:"delete",options:{},I:Wt,O:At},{name:"count",options:{},I:Ut,O:Mt}]);var L=require("@protobuf-ts/runtime-rpc");var Q=class{constructor(e){this._transport=e;this.typeName=Z.typeName;this.methods=Z.methods;this.options=Z.options}open(e,t){let r=this.methods[0],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("serverStreaming",this._transport,r,n,e)}get(e,t){let r=this.methods[1],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}set(e,t){let r=this.methods[2],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}delete(e,t){let r=this.methods[3],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}count(e,t){let r=this.methods[4],n=this._transport.mergeOptions(t);return(0,L.stackIntercept)("unary",this._transport,r,n,e)}};var ze="currentPage";var Je="client whiteboard abort",Xe=["network error","failed to fetch"];function K(s){if(!s||s.length===0)throw Error("Token cannot be an empty string or undefined or null");let e=s.split(".");if(e.length!==3)throw Error("Expected 3 '.' separate fields - header, payload and signature respectively");let t=atob(e[1]);try{return JSON.parse(t)}catch(r){throw Error(`couldn't parse to json - ${r.message}`)}}var Ze=s=>{let e=Math.min(s.currentDelay*2,3e4),t=e*.2*(Math.random()*2-1);return Math.floor(e+t)};var ee=class{constructor(e,t){let r=new et.GrpcWebFetchTransport({baseUrl:e,meta:{Authorization:`Bearer ${t}`}});this.storeClient=new Q(r)}open(o){return I(this,arguments,function*({handleOpen:e,handleChange:t,handleError:r},n={attempt:0,currentDelay:1e3}){let u=new AbortController,c=this.storeClient.open({changeId:"",select:[]},{abort:u.signal}),l,a=[],f=!1;c.responses.onMessage(y=>{var S;if(f||(f=!0,n={attempt:0,currentDelay:1e3}),y.value){if(((S=y.value)==null?void 0:S.data.oneofKind)==="str"){let T=JSON.parse(y.value.data.str);a.length===l?t(y.key,T):(a.push(T),a.length===l&&e(a))}}else t(y.key)});let p=()=>{window.removeEventListener("online",p),u.abort("reconnecting due to online event"),this.open({handleOpen:e,handleChange:t,handleError:r})};window.addEventListener("online",p),c.responses.onError(y=>{if(console.error("GRPCOpenStreamError: ",y),y.message.includes("abort"))return;r(y);let S=Ze(n),T={attempt:n.attempt+1,currentDelay:S};setTimeout(()=>{window.removeEventListener("online",p),u.abort("closing to open new conn"),this.open({handleOpen:e,handleChange:t,handleError:r},T)},n.currentDelay)});try{l=yield this.getKeysCountWithDelay(),e(l?a:[])}catch(y){console.error("GRPCCountError: ",y);let S=Xe.includes(y.message.toLowerCase());r(y,S)}return()=>{window.removeEventListener("online",p),u.abort(Je)}})}set(e,t){let r=t?JSON.stringify(t):void 0;return this.storeClient.set({key:e,value:r?{data:{str:r,oneofKind:"str"},type:2}:{data:{oneofKind:void 0},type:0}})}get(e){return I(this,null,function*(){var r;let{response:t}=yield this.storeClient.get({key:e});if(((r=t.value)==null?void 0:r.data.oneofKind)==="str")return JSON.parse(t.value.data.str)})}getKeysCount(){return I(this,null,function*(){let{response:e}=yield this.storeClient.count({});return Number(e.count)})}delete(e){return this.storeClient.delete({key:e})}getKeysCountWithDelay(){return I(this,null,function*(){for(let r=0;r<3;r++)try{return yield new Promise(n=>setTimeout(n,200)),yield this.getKeysCount()}catch(n){if(console.warn(n),n.message!=="peer not found"||r===2)throw n}})}};var nt=({token:s,endpoint:e="https://store-prod-in3-grpc.100ms.live",handleError:t})=>(0,tt.useMemo)(()=>{try{K(s)}catch(o){return t(o)}if(!e||!s)return t(new Error("Missing GRPC endpoint or token"));let n=new ee(e,s);return window.sessionStore=n,n},[e,s,t]);var te=require("react");var rt=({token:s,editor:e,zoomToContent:t=!1,handleError:r})=>{let{permissions:n}=(0,te.useMemo)(()=>{try{return K(s)}catch(o){return r(o),{}}},[s,r]);return(0,te.useEffect)(()=>{if(e==null||e.updateInstanceState({canMoveCamera:!!t}),!n)return;let o=!n.includes("write");e==null||e.updateInstanceState({isReadonly:o})},[n,t,e]),n};var Kt=["camera","document","instance","instance_page_state","page"];function st({endpoint:s,token:e,editor:t,shapeUtils:r=[],zoomToContent:n=!1}){let[o]=(0,_.useState)(()=>{let g=(0,w.createTLStore)({shapeUtils:[...w.defaultShapeUtils,...r]});return g.loadSnapshot(je),g}),[u,c]=(0,_.useState)(t==null?void 0:t.getCurrentPage()),[l,a]=(0,_.useState)({status:"loading"}),f=(0,_.useCallback)((g,m)=>{a(m?{error:g,status:"error"}:{store:o,status:"synced-remote",connectionStatus:"offline"})},[o]),p=nt({token:e,endpoint:s,handleError:f}),y=rt({token:e,editor:t,zoomToContent:n,handleError:f}),S=(0,_.useCallback)(g=>{if(!p)return;if(Kt.every(E=>g.filter(b=>b.typeName===E).length>0)){let E=o.allRecords().filter(k=>k.typeName==="shape"),b=new Set(g.map(k=>k.id));o.mergeRemoteChanges(()=>{o.clear(),o.put(g)});for(let k of E)b.has(k.id)||(o.put([k]),p.set(k.id,k))}else for(let E of o.allRecords())p.set(E.id,E);a({store:o,status:"synced-remote",connectionStatus:"online"})},[o,p]),T=(0,_.useCallback)((g,m)=>{o.mergeRemoteChanges(()=>{if(!m)return o.remove([g]);g===ze?c(m):(0,w.transact)(()=>{o.put([m]),g===w.TLINSTANCE_ID&&o.put([re(P({},m),{canMoveCamera:!!n,isReadonly:!y.includes("write")})])})})},[o,y,n]);return(0,_.useEffect)(()=>{if(!p)return;a({status:"loading"});let g=[];return p.open({handleOpen:S,handleChange:T,handleError:f}).then(m=>g.push(m)),g.push(o.listen((0,w.throttle)(function({changes:E}){Object.values(E.added).forEach(b=>{p.set(b.id,b)}),Object.values(E.updated).forEach(([,b])=>{p.set(b.id,b)}),Object.values(E.removed).forEach(b=>{p.delete(b.id)})},11),{source:"user",scope:"document"})),()=>{g.forEach(m=>m()),g.length=0}},[o,p,T,S,f]),(0,_.useEffect)(()=>{if(!t||!p)return;let g=[];return g.push(o.listen((0,w.debounce)(({changes:m})=>{Object.keys(m.updated).forEach(E=>{if(!E.includes("instance"))return;let b=t==null?void 0:t.getCurrentPage();(b==null?void 0:b.id)!==(u==null?void 0:u.id)&&(p.get(w.TLINSTANCE_ID).then(k=>{k&&(p==null||p.set(k.id,re(P({},k),{currentPageId:b==null?void 0:b.id})))}),c(b))})},200),{source:"user",scope:"session"})),()=>{g.forEach(m=>m()),g.length=0}},[u,t,p,o]),(0,_.useEffect)(()=>{var g;!t||!((g=t.getInstanceState())!=null&&g.isReadonly)||!n||o.listen(()=>{t.zoomToFit()},{source:"remote",scope:"document"})},[t,o,n]),l}function it(s){let[e,t]=(0,O.useState)(Date.now()+s.token);return O.default.createElement(Vt,P({key:e,refresh:()=>t(Date.now()+s.token)},s))}function Vt({endpoint:s,token:e,zoomToContent:t,transparentCanvas:r,onMount:n,refresh:o}){var p,y;let[u,c]=(0,O.useState)(),l=st({endpoint:s,token:e,editor:u,zoomToContent:t}),a=l.status==="synced-remote"?l.connectionStatus:void 0;return O.default.createElement(ot.Tldraw,{className:r?"transparent-canvas":"",autoFocus:!0,store:l,onMount:S=>{c(S),window.editor=S,n==null||n({store:l.store,editor:S})},components:{ErrorFallback:({error:S,editor:T})=>O.default.createElement($e,{editor:T,error:S,refresh:o})},hideUi:((p=u==null?void 0:u.getInstanceState())==null?void 0:p.isReadonly)&&a=="online",initialState:(y=u==null?void 0:u.getInstanceState())!=null&&y.isReadonly?"hand":"select"},O.default.createElement(We,{store:l}))}
15
15
  /*! Bundled license information:
16
16
 
17
17
  classnames/index.js: