@inkandswitch/patchwork-pkg-base 0.0.23 → 0.0.25

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-Cg7zrpH9.js","sources":["../../src/tool.tsx"],"sourcesContent":["// Embed frame: chrome (title, tool picker, open button) around a nested\n// <patchwork-view>. Hosts mount it via <patchwork-view tool-id=\"embed\">, pin\n// the inner tool with the `embed-tool-id` attribute, and persist picks by\n// listening for the bubbling `patchwork:embed-tool-changed` event.\n\nimport {\n getFallbackTool,\n getRegistry,\n getSupportedToolsForType,\n isLoadedPlugin,\n type DatatypeImplementation,\n type ToolDescription,\n type ToolImplementation,\n} from \"@inkandswitch/patchwork-plugins\";\nimport { getType } from \"@inkandswitch/patchwork-filesystem\";\nimport { openDocument } from \"@inkandswitch/patchwork-elements\";\nimport type { DocHandle } from \"@automerge/automerge-repo\";\nimport { createEffect, createSignal, For, onCleanup, Show } from \"solid-js\";\nimport { render } from \"solid-js/web\";\nimport { version } from \"../package.json\";\nimport \"./embed.css\";\n\nconst EMBED_TOOL_ID = \"embed\";\n\nconst EmbedFrame: ToolImplementation<any> = (handle, element) =>\n render(() => <Frame handle={handle} element={element} />, element);\n\nexport default EmbedFrame;\n\ntype FrameProps = {\n handle: DocHandle<any>;\n element: HTMLElement;\n};\n\nfunction Frame(props: FrameProps) {\n // Static per mount (the render contract passes them once); safe to unwrap.\n const { handle, element } = props;\n\n // `element` is the inner <patchwork-view-legacy>; hosts set `embed-tool-id`\n // on the outer <patchwork-view>, so check there too.\n const [pinnedToolId, setPinnedToolId] = createSignal(\n element.getAttribute(\"embed-tool-id\") ||\n element.closest(\"patchwork-view\")?.getAttribute(\"embed-tool-id\") ||\n null\n );\n const [doc, setDoc] = createSignal<any>(handle.doc(), { equals: false });\n const [datatype, setDatatype] =\n createSignal<DatatypeImplementation<any> | null>(null);\n const [renaming, setRenaming] = createSignal(false);\n const [menuOpen, setMenuOpen] = createSignal(false);\n\n const onDocChange = () => setDoc(handle.doc());\n handle.on(\"change\", onDocChange);\n onCleanup(() => handle.off(\"change\", onDocChange));\n void loadDatatype();\n\n let menuEl!: HTMLDivElement;\n let toolButtonEl!: HTMLButtonElement;\n\n const title = () => {\n try {\n return datatype()?.getTitle(doc()) || \"Untitled\";\n } catch {\n // getTitle throws on unexpected doc shapes\n return \"Untitled\";\n }\n };\n\n const canRename = () => Boolean(datatype()?.setTitle);\n\n // With no pinned tool the nested view renders the doc's fallback tool, so\n // surface that as the selection rather than a special \"unselected\" state.\n const effectiveToolId = () => {\n datatype(); // re-check once the datatype (and the tools it ships) loaded\n if (pinnedToolId()) return pinnedToolId();\n try {\n return getFallbackTool(doc())?.id ?? null;\n } catch {\n return null;\n }\n };\n\n const toolName = () => {\n const toolId = effectiveToolId();\n if (!toolId) return \"\";\n const tool = getRegistry<ToolDescription>(\"patchwork:tool\").get(toolId);\n return tool?.name ?? toolId;\n };\n\n function setTool(toolId: string): void {\n if (!toolId || toolId === pinnedToolId()) return;\n setPinnedToolId(toolId);\n element.dispatchEvent(\n new CustomEvent(\"patchwork:embed-tool-changed\", {\n detail: { url: handle.url, toolId },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n function finishRename(commit: boolean, value: string): void {\n if (!renaming()) return;\n setRenaming(false);\n const trimmed = value.trim();\n if (commit && trimmed && trimmed !== title()) {\n handle.change((d: any) => datatype()!.setTitle!(d, trimmed));\n }\n }\n\n function toggleMenu(): void {\n if (menuEl.matches(\":popover-open\")) {\n menuEl.hidePopover();\n return;\n }\n setMenuOpen(true);\n const rect = toolButtonEl.getBoundingClientRect();\n const menuWidth = Math.max(rect.width, 180);\n menuEl.style.top = `${rect.bottom + 2}px`;\n menuEl.style.minWidth = `${menuWidth}px`;\n if (rect.left + menuWidth > window.innerWidth - 8) {\n menuEl.style.left = \"\";\n menuEl.style.right = `${window.innerWidth - rect.right}px`;\n } else {\n menuEl.style.right = \"\";\n menuEl.style.left = `${rect.left}px`;\n }\n menuEl.showPopover();\n }\n\n function listTools(): ToolDescription[] {\n const d = doc();\n const type = d && getType(d);\n if (!type) return [];\n const list = getSupportedToolsForType(type).filter(\n (t) => !t.unlisted && !t.forTitleBar && t.id !== EMBED_TOOL_ID\n );\n // Datatype-specific tools before the generic wildcard ones.\n list.sort((a, b) => Number(isWildcard(a)) - Number(isWildcard(b)));\n return list;\n }\n\n // Built imperatively rather than as JSX so we don't have to teach Solid's\n // JSX types about the custom element.\n const nestedView = document.createElement(\"patchwork-view\");\n nestedView.setAttribute(\"doc-url\", handle.url);\n createEffect(() => {\n const toolId = pinnedToolId();\n if (toolId) nestedView.setAttribute(\"tool-id\", toolId);\n else nestedView.removeAttribute(\"tool-id\");\n });\n\n // Load the datatype (for getTitle/setTitle and its tools).\n async function loadDatatype(): Promise<void> {\n const d = handle.doc();\n const type = d && getType(d);\n if (!type) return;\n const registry = getRegistry(\"patchwork:datatype\");\n try {\n await registry.load(type);\n } catch {\n // datatype unavailable; keep the fallbacks\n }\n const loaded = registry.get(type);\n if (loaded && isLoadedPlugin(loaded)) {\n setDatatype(() => loaded.module as DatatypeImplementation<any>);\n }\n }\n\n return (\n <div class=\"embed-frame\">\n <div class=\"header\">\n <Show\n when={!renaming()}\n fallback={\n <input\n class=\"rename-input\"\n value={title()}\n ref={(el) =>\n queueMicrotask(() => {\n el.focus();\n el.select();\n })\n }\n onKeyDown={(e) => {\n e.stopPropagation();\n if (e.key === \"Enter\") finishRename(true, e.currentTarget.value);\n if (e.key === \"Escape\")\n finishRename(false, e.currentTarget.value);\n }}\n onBlur={(e) => finishRename(true, e.currentTarget.value)}\n />\n }\n >\n <span\n class=\"title\"\n data-renamable={canRename() ? \"\" : undefined}\n title={canRename() ? \"Click to rename\" : undefined}\n onClick={() => canRename() && setRenaming(true)}\n >\n {title()}\n </span>\n </Show>\n {/* Deploy check: which build is actually running. */}\n <span class=\"version\">v{version}</span>\n <button\n class=\"tool-btn\"\n title={\"Open with\\u2026\"}\n ref={toolButtonEl}\n onClick={toggleMenu}\n >\n {toolName()}\n </button>\n <button\n class=\"open-btn\"\n title=\"Open document\"\n innerHTML={openIcon}\n onClick={() =>\n openDocument(element, handle.url, pinnedToolId() || undefined)\n }\n />\n </div>\n <div class=\"content\">{nestedView}</div>\n <div\n class=\"tool-menu\"\n popover=\"auto\"\n ref={(el) => {\n menuEl = el;\n // Unrender the item list while closed.\n el.addEventListener(\"toggle\", (e) => {\n if ((e as { newState?: string }).newState === \"closed\") {\n setMenuOpen(false);\n }\n });\n }}\n >\n <Show when={menuOpen()}>\n <div class=\"list\">\n <For each={listTools()}>\n {(tool) => (\n <button\n class=\"item\"\n data-current={tool.id === effectiveToolId() ? \"\" : undefined}\n onClick={() => {\n menuEl.hidePopover();\n setTool(tool.id);\n }}\n >\n {tool.name || tool.id}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n </div>\n );\n}\n\nfunction isWildcard(tool: ToolDescription): boolean {\n return (\n tool.supportedDatatypes === \"*\" ||\n (Array.isArray(tool.supportedDatatypes) &&\n tool.supportedDatatypes.includes(\"*\"))\n );\n}\n\nconst openIcon = `<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n\t<path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>\n\t<polyline points=\"15 3 21 3 21 9\"></polyline>\n\t<line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\n</svg>`;\n"],"names":["EMBED_TOOL_ID","EmbedFrame","handle","element","render","_$createComponent","Frame","props","pinnedToolId","setPinnedToolId","createSignal","getAttribute","closest","doc","setDoc","equals","datatype","setDatatype","renaming","setRenaming","menuOpen","setMenuOpen","onDocChange","on","onCleanup","off","loadDatatype","menuEl","toolButtonEl","title","getTitle","canRename","Boolean","setTitle","effectiveToolId","getFallbackTool","id","toolName","toolId","tool","getRegistry","get","name","setTool","dispatchEvent","CustomEvent","detail","url","bubbles","composed","finishRename","commit","value","trimmed","trim","change","d","toggleMenu","matches","hidePopover","rect","getBoundingClientRect","menuWidth","Math","max","width","style","top","bottom","minWidth","left","window","innerWidth","right","showPopover","listTools","type","getType","list","getSupportedToolsForType","filter","t","unlisted","forTitleBar","sort","a","b","Number","isWildcard","nestedView","document","createElement","setAttribute","createEffect","removeAttribute","registry","load","loaded","isLoadedPlugin","module","_el$","_tmpl$3","_el$2","firstChild","_el$4","_el$6","nextSibling","_el$7","_el$8","_el$9","_$insert","Show","when","fallback","_el$1","_tmpl$4","addEventListener","e","currentTarget","$$keydown","stopPropagation","key","_$use","el","queueMicrotask","focus","select","_$effect","children","_el$3","_tmpl$","$$click","_p$","_v$","undefined","_v$2","_$setAttribute","version","_ref$","openDocument","innerHTML","openIcon","newState","_el$0","_tmpl$2","For","each","_el$10","_tmpl$5","supportedDatatypes","Array","isArray","includes","_$delegateEvents"],"mappings":";;;;;;;AAsBA,MAAMA,gBAAgB;AAEtB,MAAMC,aAAsCA,CAACC,QAAQC,YACnDC,OAAO,MAAAC,gBAAOC,OAAK;AAAA,EAACJ;AAAAA,EAAgBC;AAAgB,CAAA,GAAMA,OAAO;AASnE,SAASG,MAAMC,OAAmB;;AAEhC,QAAM;AAAA,IAAEL;AAAAA,IAAQC;AAAAA,EAAAA,IAAYI;AAI5B,QAAM,CAACC,cAAcC,eAAe,IAAIC,aACtCP,QAAQQ,aAAa,eAAe,OAClCR,aAAQS,QAAQ,gBAAgB,MAAhCT,mBAAmCQ,aAAa,qBAChD,IACJ;AACA,QAAM,CAACE,KAAKC,MAAM,IAAIJ,aAAkBR,OAAOW,OAAO;AAAA,IAAEE,QAAQ;AAAA,EAAA,CAAO;AACvE,QAAM,CAACC,UAAUC,WAAW,IAC1BP,aAAiD,IAAI;AACvD,QAAM,CAACQ,UAAUC,WAAW,IAAIT,aAAa,KAAK;AAClD,QAAM,CAACU,UAAUC,WAAW,IAAIX,aAAa,KAAK;AAElD,QAAMY,cAAcA,MAAMR,OAAOZ,OAAOW,KAAK;AAC7CX,SAAOqB,GAAG,UAAUD,WAAW;AAC/BE,YAAU,MAAMtB,OAAOuB,IAAI,UAAUH,WAAW,CAAC;AACjD,OAAKI,aAAAA;AAEL,MAAIC;AACJ,MAAIC;AAEJ,QAAMC,QAAQA,MAAM;;AAClB,QAAI;AACF,eAAOb,MAAAA,SAAAA,MAAAA,gBAAAA,IAAYc,SAASjB,IAAAA,OAAU;AAAA,IACxC,QAAQ;AAEN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAMkB,YAAYA,MAAAA;;AAAMC,oBAAQhB,MAAAA,SAAAA,MAAAA,gBAAAA,IAAYiB,QAAQ;AAAA;AAIpD,QAAMC,kBAAkBA,MAAM;;AAC5BlB,aAAAA;AACA,QAAIR,aAAAA,EAAgB,QAAOA,aAAAA;AAC3B,QAAI;AACF,eAAO2B,MAAAA,gBAAgBtB,KAAK,MAArBsB,gBAAAA,IAAwBC,OAAM;AAAA,IACvC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAMC,WAAWA,MAAM;AACrB,UAAMC,SAASJ,gBAAAA;AACf,QAAI,CAACI,OAAQ,QAAO;AACpB,UAAMC,OAAOC,YAA6B,gBAAgB,EAAEC,IAAIH,MAAM;AACtE,YAAOC,6BAAMG,SAAQJ;AAAAA,EACvB;AAEA,WAASK,QAAQL,QAAsB;AACrC,QAAI,CAACA,UAAUA,WAAW9B,eAAgB;AAC1CC,oBAAgB6B,MAAM;AACtBnC,YAAQyC,cACN,IAAIC,YAAY,gCAAgC;AAAA,MAC9CC,QAAQ;AAAA,QAAEC,KAAK7C,OAAO6C;AAAAA,QAAKT;AAAAA,MAAAA;AAAAA,MAC3BU,SAAS;AAAA,MACTC,UAAU;AAAA,IAAA,CACX,CACH;AAAA,EACF;AAEA,WAASC,aAAaC,QAAiBC,OAAqB;AAC1D,QAAI,CAAClC,WAAY;AACjBC,gBAAY,KAAK;AACjB,UAAMkC,UAAUD,MAAME,KAAAA;AACtB,QAAIH,UAAUE,WAAWA,YAAYxB,MAAAA,GAAS;AAC5C3B,aAAOqD,OAAO,CAACC,MAAWxC,SAAAA,EAAYiB,SAAUuB,GAAGH,OAAO,CAAC;AAAA,IAC7D;AAAA,EACF;AAEA,WAASI,aAAmB;AAC1B,QAAI9B,OAAO+B,QAAQ,eAAe,GAAG;AACnC/B,aAAOgC,YAAAA;AACP;AAAA,IACF;AACAtC,gBAAY,IAAI;AAChB,UAAMuC,OAAOhC,aAAaiC,sBAAAA;AAC1B,UAAMC,YAAYC,KAAKC,IAAIJ,KAAKK,OAAO,GAAG;AAC1CtC,WAAOuC,MAAMC,MAAM,GAAGP,KAAKQ,SAAS,CAAC;AACrCzC,WAAOuC,MAAMG,WAAW,GAAGP,SAAS;AACpC,QAAIF,KAAKU,OAAOR,YAAYS,OAAOC,aAAa,GAAG;AACjD7C,aAAOuC,MAAMI,OAAO;AACpB3C,aAAOuC,MAAMO,QAAQ,GAAGF,OAAOC,aAAaZ,KAAKa,KAAK;AAAA,IACxD,OAAO;AACL9C,aAAOuC,MAAMO,QAAQ;AACrB9C,aAAOuC,MAAMI,OAAO,GAAGV,KAAKU,IAAI;AAAA,IAClC;AACA3C,WAAO+C,YAAAA;AAAAA,EACT;AAEA,WAASC,YAA+B;AACtC,UAAMnB,IAAI3C,IAAAA;AACV,UAAM+D,OAAOpB,KAAKqB,QAAQrB,CAAC;AAC3B,QAAI,CAACoB,KAAM,QAAO,CAAA;AAClB,UAAME,OAAOC,yBAAyBH,IAAI,EAAEI,OACzCC,CAAAA,MAAM,CAACA,EAAEC,YAAY,CAACD,EAAEE,eAAeF,EAAE7C,OAAOpC,aACnD;AAEA8E,SAAKM,KAAK,CAACC,GAAGC,MAAMC,OAAOC,WAAWH,CAAC,CAAC,IAAIE,OAAOC,WAAWF,CAAC,CAAC,CAAC;AACjE,WAAOR;AAAAA,EACT;AAIA,QAAMW,aAAaC,SAASC,cAAc,gBAAgB;AAC1DF,aAAWG,aAAa,WAAW1F,OAAO6C,GAAG;AAC7C8C,eAAa,MAAM;AACjB,UAAMvD,SAAS9B,aAAAA;AACf,QAAI8B,OAAQmD,YAAWG,aAAa,WAAWtD,MAAM;AAAA,QAChDmD,YAAWK,gBAAgB,SAAS;AAAA,EAC3C,CAAC;AAGD,iBAAepE,eAA8B;AAC3C,UAAM8B,IAAItD,OAAOW,IAAAA;AACjB,UAAM+D,OAAOpB,KAAKqB,QAAQrB,CAAC;AAC3B,QAAI,CAACoB,KAAM;AACX,UAAMmB,WAAWvD,YAAY,oBAAoB;AACjD,QAAI;AACF,YAAMuD,SAASC,KAAKpB,IAAI;AAAA,IAC1B,QAAQ;AAAA,IACN;AAEF,UAAMqB,SAASF,SAAStD,IAAImC,IAAI;AAChC,QAAIqB,UAAUC,eAAeD,MAAM,GAAG;AACpChF,kBAAY,MAAMgF,OAAOE,MAAqC;AAAA,IAChE;AAAA,EACF;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,WAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC;AAAAC,UAAAD;QAAAE,QAAAD,MAAAE,aAAAC,QAAAF,MAAAC,aAAAE,QAAAN,MAAAI,aAAAG,QAAAD,MAAAF;AAAAI,WAAAR,OAAAjG,gBAGO0G,MAAI;AAAA,MAAA,IACHC,OAAI;AAAA,eAAE,CAAC9F,SAAAA;AAAAA,MAAU;AAAA,MAAA,IACjB+F,WAAQ;AAAA,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAAA;AAAAD,gBAAAE,iBAAA,QAgBKC,CAAAA,MAAMnE,aAAa,MAAMmE,EAAEC,cAAclE,KAAK,CAAC;AAAA8D,gBAAAK,YAN5CF,CAAAA,MAAM;AAChBA,cAAEG,gBAAAA;AACF,gBAAIH,EAAEI,QAAQ,sBAAsB,MAAMJ,EAAEC,cAAclE,KAAK;AAC/D,gBAAIiE,EAAEI,QAAQ,uBACC,OAAOJ,EAAEC,cAAclE,KAAK;AAAA,UAC7C;AAACsE,cAXKC,CAAAA,OACJC,eAAe,MAAM;AACnBD,eAAGE,MAAAA;AACHF,eAAGG,OAAAA;AAAAA,UACL,CAAC,GAACZ,KAAA;AAAAa,uBAAAb,MAAA9D,QALGvB,MAAAA,CAAO;AAAA,iBAAAqF;AAAAA,QAAA,GAAA;AAAA,MAAA;AAAA,MAAA,IAAAc,WAAA;AAAA,YAAAC,QAAAC,OAAAA;AAAAD,cAAAE,UAqBP,MAAMpG,UAAAA,KAAeZ,YAAY,IAAI;AAAC2F,eAAAmB,OAE9CpG,KAAK;AAAAkG,eAAAK,CAAAA,QAAA;AAAA,cAAAC,MAJUtG,cAAc,KAAKuG,QAASC,OACrCxG,cAAc,oBAAoBuG;AAASD,kBAAAD,IAAAf,KAAAmB,aAAAP,OAAA,kBAAAG,IAAAf,IAAAgB,GAAA;AAAAE,mBAAAH,IAAAnD,KAAAuD,aAAAP,OAAA,SAAAG,IAAAnD,IAAAsD,IAAA;AAAA,iBAAAH;AAAAA,QAAA,GAAA;AAAA,UAAAf,GAAAiB;AAAAA,UAAArD,GAAAqD;AAAAA,QAAAA,CAAA;AAAA,eAAAL;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAzB,KAAA;AAAAM,WAAAN,OAO9BiC,SAAO,IAAA;AAAAhC,UAAA0B,UAKpB1E;AAAU,QAAAiF,QADd9G;AAAY,WAAA8G,UAAA,aAAAhB,IAAAgB,OAAAjC,KAAA,IAAZ7E,eAAY6E;AAAAK,WAAAL,OAGhBpE,QAAQ;AAAAsE,UAAAwB,UAMA,MACPQ,aAAaxI,SAASD,OAAO6C,KAAKvC,aAAAA,KAAkB8H,MAAS;AAAC3B,UAAAiC,YAFrDC;AAAQ/B,WAAAF,OAMDnB,UAAU;AAAAiC,QAIxBC,CAAAA,OAAO;AACXhG,eAASgG;AAETA,SAAGP,iBAAiB,UAAWC,CAAAA,MAAM;AACnC,YAAKA,EAA4ByB,aAAa,UAAU;AACtDzH,sBAAY,KAAK;AAAA,QACnB;AAAA,MACF,CAAC;AAAA,IACH,GAACwF,KAAA;AAAAC,WAAAD,OAAAxG,gBAEA0G,MAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAE5F,SAAAA;AAAAA,MAAU;AAAA,MAAA,IAAA4G,WAAA;AAAA,YAAAe,QAAAC,QAAAA;AAAAlC,eAAAiC,OAAA1I,gBAEjB4I,KAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEvE,UAAAA;AAAAA,UAAW;AAAA,UAAAqD,UAClBzF,WAAI,MAAA;AAAA,gBAAA4G,SAAAC,QAAAA;AAAAD,mBAAAhB,UAIO,MAAM;AACbxG,qBAAOgC,YAAAA;AACPhB,sBAAQJ,KAAKH,EAAE;AAAA,YACjB;AAAC0E,mBAAAqC,QAAA,MAEA5G,KAAKG,QAAQH,KAAKH,EAAE;AAAA2F,mBAAA,MAAAS,aAAAW,wBANP5G,KAAKH,OAAOF,gBAAAA,IAAoB,KAAKoG,MAAS,CAAA;AAAA,mBAAAa;AAAAA,UAAA,GAAA;AAAA,QAAA,CAQ/D,CAAA;AAAA,eAAAJ;AAAAA,MAAA;AAAA,IAAA,CAAA,CAAA;AAAA,WAAA3C;AAAAA,EAAA,GAAA;AAOf;AAEA,SAASZ,WAAWjD,MAAgC;AAClD,SACEA,KAAK8G,uBAAuB,OAC3BC,MAAMC,QAAQhH,KAAK8G,kBAAkB,KACpC9G,KAAK8G,mBAAmBG,SAAS,GAAG;AAE1C;AAEA,MAAMX,WAAW;AAAA;AAAA;AAAA;AAAA;AAITY,eAAA,CAAA,SAAA,SAAA,CAAA;"}
@@ -0,0 +1,94 @@
1
+ const scriptRel = "modulepreload";
2
+ const assetsURL = function(dep, importerUrl) {
3
+ return new URL(dep, importerUrl).href;
4
+ };
5
+ const seen = {};
6
+ const __vitePreload = function preload(baseModule, deps, importerUrl) {
7
+ let promise = Promise.resolve();
8
+ if (deps && deps.length > 0) {
9
+ const links = document.getElementsByTagName("link");
10
+ const cspNonceMeta = document.querySelector(
11
+ "meta[property=csp-nonce]"
12
+ );
13
+ const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
14
+ promise = Promise.allSettled(
15
+ deps.map((dep) => {
16
+ dep = assetsURL(dep, importerUrl);
17
+ if (dep in seen) return;
18
+ seen[dep] = true;
19
+ const isCss = dep.endsWith(".css");
20
+ const cssSelector = isCss ? '[rel="stylesheet"]' : "";
21
+ const isBaseRelative = !!importerUrl;
22
+ if (isBaseRelative) {
23
+ for (let i = links.length - 1; i >= 0; i--) {
24
+ const link2 = links[i];
25
+ if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
26
+ return;
27
+ }
28
+ }
29
+ } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
30
+ return;
31
+ }
32
+ const link = document.createElement("link");
33
+ link.rel = isCss ? "stylesheet" : scriptRel;
34
+ if (!isCss) {
35
+ link.as = "script";
36
+ }
37
+ link.crossOrigin = "";
38
+ link.href = dep;
39
+ if (cspNonce) {
40
+ link.setAttribute("nonce", cspNonce);
41
+ }
42
+ document.head.appendChild(link);
43
+ if (isCss) {
44
+ return new Promise((res, rej) => {
45
+ link.addEventListener("load", res);
46
+ link.addEventListener(
47
+ "error",
48
+ () => rej(new Error(`Unable to preload CSS for ${dep}`))
49
+ );
50
+ });
51
+ }
52
+ })
53
+ );
54
+ }
55
+ function handlePreloadError(err) {
56
+ const e = new Event("vite:preloadError", {
57
+ cancelable: true
58
+ });
59
+ e.payload = err;
60
+ window.dispatchEvent(e);
61
+ if (!e.defaultPrevented) {
62
+ throw err;
63
+ }
64
+ }
65
+ return promise.then((res) => {
66
+ for (const item of res || []) {
67
+ if (item.status !== "rejected") continue;
68
+ handlePreloadError(item.reason);
69
+ }
70
+ return baseModule().catch(handlePreloadError);
71
+ });
72
+ };
73
+ const plugins = [
74
+ {
75
+ type: "patchwork:tool",
76
+ id: "embed",
77
+ name: "Embed",
78
+ icon: "PictureInPicture2",
79
+ supportedDatatypes: "*",
80
+ // Load-bearing: keeps "Embed" out of pickers and out of getFallbackTool,
81
+ // which would otherwise recurse (embed frame falling back to itself).
82
+ unlisted: true,
83
+ async load() {
84
+ return (await __vitePreload(async () => {
85
+ const { default: __vite_default__ } = await import("./assets/tool-Cg7zrpH9.js");
86
+ return { default: __vite_default__ };
87
+ }, true ? [] : void 0, import.meta.url)).default;
88
+ }
89
+ }
90
+ ];
91
+ export {
92
+ plugins
93
+ };
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,UAAkB;AAAA,EAC7B;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,oBAAoB;AAAA;AAAA;AAAA,IAGpB,UAAU;AAAA,IACV,MAAM,OAAO;AACX,cAAQ;AAAA,oDAAM,OAAO,2BAAQ;AAAA;AAAA,+CAAG;AAAA,IAClC;AAAA;AAEJ","names":[],"ignoreList":[],"sources":["../src/index.ts"],"sourcesContent":["// Metadata only: Patchwork evaluates this entry in a worker (no importmap, no\n// DOM), so no runtime imports here — the implementation loads lazily.\nimport type { Tool } from \"@inkandswitch/patchwork-plugins\";\n\nexport const plugins: Tool[] = [\n {\n type: \"patchwork:tool\",\n id: \"embed\",\n name: \"Embed\",\n icon: \"PictureInPicture2\",\n supportedDatatypes: \"*\",\n // Load-bearing: keeps \"Embed\" out of pickers and out of getFallbackTool,\n // which would otherwise recurse (embed frame falling back to itself).\n unlisted: true,\n async load() {\n return (await import(\"./tool\")).default;\n },\n },\n];\n"],"file":"index.js"}
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "embed",
3
+ "version": "0.0.2",
4
+ "description": "Shared embed frame: title bar, tool picker, and open button around a nested patchwork-view",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "scripts": {
8
+ "build": "vite build",
9
+ "typecheck": "tsc --noEmit",
10
+ "push": "pnpm build && pushwork sync",
11
+ "register": "pw-modules add \"$MODULE_SETTINGS_DOC_URL\" \"$(pushwork url)\""
12
+ },
13
+ "dependencies": {
14
+ "@inkandswitch/patchwork-bootloader": "^0.2.8",
15
+ "@inkandswitch/patchwork-elements": "1.0.0",
16
+ "@inkandswitch/patchwork-filesystem": "^0.0.8",
17
+ "@inkandswitch/patchwork-plugins": "^0.0.11",
18
+ "solid-js": "^1.9.11"
19
+ },
20
+ "devDependencies": {
21
+ "@automerge/automerge-repo": "^2.6.0-subduction.9",
22
+ "typescript": "~5.9.3",
23
+ "vite": "^5.4.21",
24
+ "vite-plugin-css-injected-by-js": "^3.5.2",
25
+ "vite-plugin-solid": "^2.11.10"
26
+ }
27
+ }
@@ -38531,50 +38531,6 @@ registerTldrawLibraryVersion(
38531
38531
  "esm"
38532
38532
  );
38533
38533
 
38534
- // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useEditor.mjs
38535
- var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
38536
- var import_react2 = __toESM(require_react(), 1);
38537
-
38538
- // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useSafeId.mjs
38539
- var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
38540
- var import_react = __toESM(require_react(), 1);
38541
- function suffixSafeId(id, suffix) {
38542
- return sanitizeId(`${id}_${suffix}`);
38543
- }
38544
- function useUniqueSafeId(suffix) {
38545
- return sanitizeId(`${(0, import_react.useId)()}${suffix ?? ""}`);
38546
- }
38547
- function useSharedSafeId(id) {
38548
- const idScope = assertExists((0, import_react.useContext)(IdContext));
38549
- return sanitizeId(`${idScope}_${id}`);
38550
- }
38551
- function sanitizeId(id) {
38552
- return id.replace(/:/g, "_");
38553
- }
38554
- var IdContext = (0, import_react.createContext)(null);
38555
- function IdProvider({ children }) {
38556
- const id = useUniqueSafeId();
38557
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IdContext.Provider, { value: id, children });
38558
- }
38559
-
38560
- // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useEditor.mjs
38561
- var EditorContext = (0, import_react2.createContext)(null);
38562
- function useEditor() {
38563
- const editor = import_react2.default.useContext(EditorContext);
38564
- if (!editor) {
38565
- throw new Error(
38566
- "useEditor must be used inside of the <Tldraw /> or <TldrawEditor /> components"
38567
- );
38568
- }
38569
- return editor;
38570
- }
38571
- function useMaybeEditor() {
38572
- return import_react2.default.useContext(EditorContext);
38573
- }
38574
- function EditorProvider({ editor, children }) {
38575
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(EditorContext.Provider, { value: editor, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IdProvider, { children }) });
38576
- }
38577
-
38578
38534
  // ../node_modules/.pnpm/@tldraw+store@4.3.1_react@18.3.1/node_modules/@tldraw/store/dist-esm/lib/ImmutableMap.mjs
38579
38535
  function smi(i32) {
38580
38536
  return i32 >>> 1 & 1073741824 | i32 & 3221225471;
@@ -44085,6 +44041,9 @@ registerTldrawLibraryVersion(
44085
44041
  "esm"
44086
44042
  );
44087
44043
 
44044
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/TLOpacity.mjs
44045
+ var opacityValidator = validation_exports.unitInterval;
44046
+
44088
44047
  // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/id-validator.mjs
44089
44048
  function idValidator(prefix) {
44090
44049
  return validation_exports.string.refine((id) => {
@@ -44095,34 +44054,6 @@ function idValidator(prefix) {
44095
44054
  });
44096
44055
  }
44097
44056
 
44098
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/assets/TLBaseAsset.mjs
44099
- var assetIdValidator = idValidator("asset");
44100
- function createAssetValidator(type, props) {
44101
- return validation_exports.object({
44102
- id: assetIdValidator,
44103
- typeName: validation_exports.literal("asset"),
44104
- type: validation_exports.literal(type),
44105
- props,
44106
- meta: validation_exports.jsonValue
44107
- });
44108
- }
44109
-
44110
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/geometry-types.mjs
44111
- var vecModelValidator = validation_exports.object({
44112
- x: validation_exports.number,
44113
- y: validation_exports.number,
44114
- z: validation_exports.number.optional()
44115
- });
44116
- var boxModelValidator = validation_exports.object({
44117
- x: validation_exports.number,
44118
- y: validation_exports.number,
44119
- w: validation_exports.number,
44120
- h: validation_exports.number
44121
- });
44122
-
44123
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/TLOpacity.mjs
44124
- var opacityValidator = validation_exports.unitInterval;
44125
-
44126
44057
  // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/shapes/TLBaseShape.mjs
44127
44058
  var parentIdValidator = validation_exports.string.refine((id) => {
44128
44059
  if (!id.startsWith("page:") && !id.startsWith("shape:")) {
@@ -44148,79 +44079,6 @@ function createShapeValidator(type, props, meta) {
44148
44079
  });
44149
44080
  }
44150
44081
 
44151
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/bindings/TLBaseBinding.mjs
44152
- var bindingIdValidator = idValidator("binding");
44153
- function createBindingValidator(type, props, meta) {
44154
- return validation_exports.object({
44155
- id: bindingIdValidator,
44156
- typeName: validation_exports.literal("binding"),
44157
- type: validation_exports.literal(type),
44158
- fromId: shapeIdValidator,
44159
- toId: shapeIdValidator,
44160
- props: props ? validation_exports.object(props) : validation_exports.jsonValue,
44161
- meta: meta ? validation_exports.object(meta) : validation_exports.jsonValue
44162
- });
44163
- }
44164
-
44165
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/records/TLBinding.mjs
44166
- var rootBindingVersions = createMigrationIds("com.tldraw.binding", {});
44167
- var rootBindingMigrations = createRecordMigrationSequence({
44168
- sequenceId: "com.tldraw.binding",
44169
- recordType: "binding",
44170
- sequence: []
44171
- });
44172
- function createBindingId(id) {
44173
- return `binding:${id ?? uniqueId()}`;
44174
- }
44175
- function createBindingPropsMigrationSequence(migrations) {
44176
- return migrations;
44177
- }
44178
- function createBindingPropsMigrationIds(bindingType, ids) {
44179
- return mapObjectMapValues(ids, (_k, v) => `com.tldraw.binding.${bindingType}/${v}`);
44180
- }
44181
- function createBindingRecordType(bindings) {
44182
- return createRecordType("binding", {
44183
- scope: "document",
44184
- validator: validation_exports.model(
44185
- "binding",
44186
- validation_exports.union(
44187
- "type",
44188
- mapObjectMapValues(
44189
- bindings,
44190
- (type, { props, meta }) => createBindingValidator(type, props, meta)
44191
- )
44192
- )
44193
- )
44194
- }).withDefaultProperties(() => ({
44195
- meta: {}
44196
- }));
44197
- }
44198
-
44199
- // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/TLRichText.mjs
44200
- var richTextValidator = validation_exports.object({
44201
- type: validation_exports.string,
44202
- content: validation_exports.arrayOf(validation_exports.unknown),
44203
- attrs: validation_exports.any.optional()
44204
- });
44205
- function toRichText(text) {
44206
- const lines = text.split("\n");
44207
- const content = lines.map((text2) => {
44208
- if (!text2) {
44209
- return {
44210
- type: "paragraph"
44211
- };
44212
- }
44213
- return {
44214
- type: "paragraph",
44215
- content: [{ type: "text", text: text2 }]
44216
- };
44217
- });
44218
- return {
44219
- type: "doc",
44220
- content
44221
- };
44222
- }
44223
-
44224
44082
  // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/styles/StyleProp.mjs
44225
44083
  var StyleProp = class _StyleProp {
44226
44084
  /** @internal */
@@ -44405,6 +44263,104 @@ function createShapeRecordType(shapes) {
44405
44263
  }));
44406
44264
  }
44407
44265
 
44266
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/assets/TLBaseAsset.mjs
44267
+ var assetIdValidator = idValidator("asset");
44268
+ function createAssetValidator(type, props) {
44269
+ return validation_exports.object({
44270
+ id: assetIdValidator,
44271
+ typeName: validation_exports.literal("asset"),
44272
+ type: validation_exports.literal(type),
44273
+ props,
44274
+ meta: validation_exports.jsonValue
44275
+ });
44276
+ }
44277
+
44278
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/geometry-types.mjs
44279
+ var vecModelValidator = validation_exports.object({
44280
+ x: validation_exports.number,
44281
+ y: validation_exports.number,
44282
+ z: validation_exports.number.optional()
44283
+ });
44284
+ var boxModelValidator = validation_exports.object({
44285
+ x: validation_exports.number,
44286
+ y: validation_exports.number,
44287
+ w: validation_exports.number,
44288
+ h: validation_exports.number
44289
+ });
44290
+
44291
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/bindings/TLBaseBinding.mjs
44292
+ var bindingIdValidator = idValidator("binding");
44293
+ function createBindingValidator(type, props, meta) {
44294
+ return validation_exports.object({
44295
+ id: bindingIdValidator,
44296
+ typeName: validation_exports.literal("binding"),
44297
+ type: validation_exports.literal(type),
44298
+ fromId: shapeIdValidator,
44299
+ toId: shapeIdValidator,
44300
+ props: props ? validation_exports.object(props) : validation_exports.jsonValue,
44301
+ meta: meta ? validation_exports.object(meta) : validation_exports.jsonValue
44302
+ });
44303
+ }
44304
+
44305
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/records/TLBinding.mjs
44306
+ var rootBindingVersions = createMigrationIds("com.tldraw.binding", {});
44307
+ var rootBindingMigrations = createRecordMigrationSequence({
44308
+ sequenceId: "com.tldraw.binding",
44309
+ recordType: "binding",
44310
+ sequence: []
44311
+ });
44312
+ function createBindingId(id) {
44313
+ return `binding:${id ?? uniqueId()}`;
44314
+ }
44315
+ function createBindingPropsMigrationSequence(migrations) {
44316
+ return migrations;
44317
+ }
44318
+ function createBindingPropsMigrationIds(bindingType, ids) {
44319
+ return mapObjectMapValues(ids, (_k, v) => `com.tldraw.binding.${bindingType}/${v}`);
44320
+ }
44321
+ function createBindingRecordType(bindings) {
44322
+ return createRecordType("binding", {
44323
+ scope: "document",
44324
+ validator: validation_exports.model(
44325
+ "binding",
44326
+ validation_exports.union(
44327
+ "type",
44328
+ mapObjectMapValues(
44329
+ bindings,
44330
+ (type, { props, meta }) => createBindingValidator(type, props, meta)
44331
+ )
44332
+ )
44333
+ )
44334
+ }).withDefaultProperties(() => ({
44335
+ meta: {}
44336
+ }));
44337
+ }
44338
+
44339
+ // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/misc/TLRichText.mjs
44340
+ var richTextValidator = validation_exports.object({
44341
+ type: validation_exports.string,
44342
+ content: validation_exports.arrayOf(validation_exports.unknown),
44343
+ attrs: validation_exports.any.optional()
44344
+ });
44345
+ function toRichText(text) {
44346
+ const lines = text.split("\n");
44347
+ const content = lines.map((text2) => {
44348
+ if (!text2) {
44349
+ return {
44350
+ type: "paragraph"
44351
+ };
44352
+ }
44353
+ return {
44354
+ type: "paragraph",
44355
+ content: [{ type: "text", text: text2 }]
44356
+ };
44357
+ });
44358
+ return {
44359
+ type: "doc",
44360
+ content
44361
+ };
44362
+ }
44363
+
44408
44364
  // ../node_modules/.pnpm/@tldraw+tlschema@4.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tldraw/tlschema/dist-esm/recordsWithProps.mjs
44409
44365
  function processPropsMigrations(typeName, records) {
44410
44366
  const result = [];
@@ -48320,6 +48276,50 @@ registerTldrawLibraryVersion(
48320
48276
  "esm"
48321
48277
  );
48322
48278
 
48279
+ // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useEditor.mjs
48280
+ var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
48281
+ var import_react2 = __toESM(require_react(), 1);
48282
+
48283
+ // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useSafeId.mjs
48284
+ var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
48285
+ var import_react = __toESM(require_react(), 1);
48286
+ function suffixSafeId(id, suffix) {
48287
+ return sanitizeId(`${id}_${suffix}`);
48288
+ }
48289
+ function useUniqueSafeId(suffix) {
48290
+ return sanitizeId(`${(0, import_react.useId)()}${suffix ?? ""}`);
48291
+ }
48292
+ function useSharedSafeId(id) {
48293
+ const idScope = assertExists((0, import_react.useContext)(IdContext));
48294
+ return sanitizeId(`${idScope}_${id}`);
48295
+ }
48296
+ function sanitizeId(id) {
48297
+ return id.replace(/:/g, "_");
48298
+ }
48299
+ var IdContext = (0, import_react.createContext)(null);
48300
+ function IdProvider({ children }) {
48301
+ const id = useUniqueSafeId();
48302
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(IdContext.Provider, { value: id, children });
48303
+ }
48304
+
48305
+ // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/hooks/useEditor.mjs
48306
+ var EditorContext = (0, import_react2.createContext)(null);
48307
+ function useEditor() {
48308
+ const editor = import_react2.default.useContext(EditorContext);
48309
+ if (!editor) {
48310
+ throw new Error(
48311
+ "useEditor must be used inside of the <Tldraw /> or <TldrawEditor /> components"
48312
+ );
48313
+ }
48314
+ return editor;
48315
+ }
48316
+ function useMaybeEditor() {
48317
+ return import_react2.default.useContext(EditorContext);
48318
+ }
48319
+ function EditorProvider({ editor, children }) {
48320
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(EditorContext.Provider, { value: editor, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IdProvider, { children }) });
48321
+ }
48322
+
48323
48323
  // ../node_modules/.pnpm/@tldraw+editor@4.3.1_@floating-ui+dom@1.8.0_@types+react-dom@18.3.7_@types+react@18.3.3_3081f05cd840b04b22960e65d9baabe3/node_modules/@tldraw/editor/dist-esm/lib/editor/Editor.mjs
48324
48324
  var import_eventemitter3 = __toESM(require_eventemitter3(), 1);
48325
48325
 
@@ -140891,4 +140891,4 @@ tldraw/dist-esm/lib/shapes/shared/PathBuilder.mjs:
140891
140891
  * https://github.com/adobe-webplatform/Snap.svg/blob/c8e483c9694517e24b282f8f59f985629f4994ce/dist/snap.svg.js#L5786
140892
140892
  *)
140893
140893
  */
140894
- //# sourceMappingURL=chunk-VF5CY24G.js.map
140894
+ //# sourceMappingURL=chunk-GDYMD4VT.js.map