@inkandswitch/patchwork-pkg-base 0.0.74 → 0.0.76
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/module-settings-url +1 -1
- package/package.json +1 -1
- package/packages/comments-view/dist/assets/{main-DfvTgZ-4.js → main-51fB7vpU.js} +12 -8
- package/packages/comments-view/dist/assets/main-51fB7vpU.js.map +1 -0
- package/packages/comments-view/dist/index.js +3 -3
- package/packages/llm-host/dist/LlmConfigTray-Ck7LaNf9.js +595 -0
- package/packages/llm-host/dist/index.js +1 -1
- package/packages/threepane/dist/IsolatedDocumentArea-TH3ENI3M.js +2 -0
- package/packages/threepane/dist/PatchworkFrame-WMZ3SLEE.js +2 -0
- package/packages/threepane/dist/PatchworkFrame-WMZ3SLEE.js.map +7 -0
- package/packages/threepane/dist/{chunk-DV7PRUYR.js → chunk-FRVSEOM5.js} +3 -3
- package/packages/threepane/dist/{chunk-DV7PRUYR.js.map → chunk-FRVSEOM5.js.map} +3 -3
- package/packages/threepane/dist/index.js +1 -1
- package/plugin-registry-url +1 -1
- package/packages/comments-view/dist/assets/main-DfvTgZ-4.js.map +0 -1
- package/packages/llm-host/dist/LlmConfigTray-BPL_cmra.js +0 -591
- package/packages/threepane/dist/IsolatedDocumentArea-54ZI7TNY.js +0 -2
- package/packages/threepane/dist/PatchworkFrame-REYVVXOP.js +0 -2
- package/packages/threepane/dist/PatchworkFrame-REYVVXOP.js.map +0 -7
- /package/packages/threepane/dist/{IsolatedDocumentArea-54ZI7TNY.js.map → IsolatedDocumentArea-TH3ENI3M.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/PatchworkFrame.tsx", "../src/components/SidebarWidgets.tsx", "../src/components/Tray.tsx", "../src/account/ensureThreepaneConfig.ts", "../src/account/loadDatatypeWhenReady.ts", "../src/account/seedExampleDocuments.ts"],
|
|
4
|
+
"sourcesContent": ["import { template as _$template } from \"solid-js/web\";\nimport { delegateEvents as _$delegateEvents } from \"solid-js/web\";\nimport { memo as _$memo } from \"solid-js/web\";\nimport { setStyleProperty as _$setStyleProperty } from \"solid-js/web\";\nimport { setAttribute as _$setAttribute } from \"solid-js/web\";\nimport { effect as _$effect } from \"solid-js/web\";\nimport { getOwner as _$getOwner } from \"solid-js/web\";\nimport { use as _$use } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { createComponent as _$createComponent } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<div class=frame-shell><aside class=frame-warning-banner>research grade software. do not share links. sharing a doc is sharing your account.</aside><div class=frame><patchwork-view component=patchwork-selected-doc-provider><patchwork-view component=patchwork-account-provider><patchwork-view component=patchwork-tool-storage-provider><patchwork-view component=patchwork-worker-provider>`, true, false, false),\n _tmpl$2 = /*#__PURE__*/_$template(`<div style=display:contents>`),\n _tmpl$3 = /*#__PURE__*/_$template(`<div class=main-area>`),\n _tmpl$4 = /*#__PURE__*/_$template(`<div class=frame__popover-backdrop><div class=frame__popover role=dialog aria-modal=true><div class=frame__popover-toolbar><patchwork-view tool-id=doc-openwith></patchwork-view></div><div class=frame__popover-body><patchwork-view>`, true, false, false),\n _tmpl$5 = /*#__PURE__*/_$template(`<button type=button class=\"frame__sidebar-toggle frame__left-toggle\">`),\n _tmpl$6 = /*#__PURE__*/_$template(`<div class=threepane-sidebar><div class=threepane-sidebar__footer><footer class=threepane-account-bar><button type=button class=threepane-account-bar__button>Settings`),\n _tmpl$7 = /*#__PURE__*/_$template(`<div class=frame__tray-dock>`),\n _tmpl$8 = /*#__PURE__*/_$template(`<button type=button class=\"threepane-account-bar__button threepane-account-bar__avatar\"title=Account aria-label=Account><patchwork-view tool-id=contact-avatar>`, true, false, false),\n _tmpl$9 = /*#__PURE__*/_$template(`<button type=button class=threepane-account-bar__button>Packages`),\n _tmpl$0 = /*#__PURE__*/_$template(`<svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox=\"0 0 24 24\"fill=none stroke=var(--studio-chrome-line) stroke-width=1.75 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d=\"M9 3v18\">`);\nimport \"@inkandswitch/patchwork-elements\";\nimport { useDocHandle } from \"solid-automerge\";\nimport { subscribe } from \"@inkandswitch/patchwork-providers\";\nimport { useSidebarState, useSidebarResize, useMainDocMounted, useDebugRegistryToast, DebugRegistryToast, SIDEBAR_KEYS, COLLAPSE_CONTEXT_SIDEBAR_EVENT, getStoredNumber, getStoredBoolean, DEFAULT_SIDEBAR_WIDTH } from \"./hooks\";\nimport { Sidebar } from \"./components/Sidebar\";\nimport { SidebarWidgets } from \"./components/SidebarWidgets\";\nimport { DocumentAreaRoot } from \"./components/DocumentAreaRoot\";\nimport { IsolatedDocumentArea } from \"./components/IsolatedDocumentArea\";\nimport { MainDocumentView } from \"./components/MainDocumentView\";\nimport { Tray } from \"./components/Tray\";\nimport { createEffect, createMemo, createSignal, onCleanup, onMount, Show } from \"solid-js\";\nimport { render } from \"solid-js/web\";\nimport { ensureThreepaneConfig } from \"./account/ensureThreepaneConfig\";\nimport { seedExampleDocuments } from \"./account/seedExampleDocuments\";\nimport { ensureFrameStyles } from \"./ensureFrameStyles\";\nconst MIN_SIDEBAR_WIDTH = 180;\nconst MAX_SIDEBAR_WIDTH = 720;\nconst AUTO_CLOSE_WIDTH = 120;\nconst DRAG_THRESHOLD = 3;\nconst useFrameProviderReady = (componentId, element) => {\n const [isReady, setReady] = createSignal(false);\n createEffect(() => {\n const el = element();\n if (!el) return;\n setReady(false);\n const onMounted = event => {\n const detail = event.detail;\n if (detail?.componentId !== componentId) return;\n setReady(true);\n };\n el.addEventListener(\"patchwork:mounted\", onMounted);\n onCleanup(() => el.removeEventListener(\"patchwork:mounted\", onMounted));\n });\n return isReady;\n};\nfunction dispatchOpen(el, detail) {\n el.dispatchEvent(new CustomEvent(\"patchwork:open-document\", {\n detail,\n bubbles: true,\n composed: true\n }));\n}\nexport function PatchworkFrame({\n handle,\n repo,\n ...props\n}) {\n ensureFrameStyles();\n const accountDocUrl = handle.url;\n const [accountProviderElement, setAccountProviderElement] = createSignal();\n const isAccountProviderReady = useFrameProviderReady(\"patchwork-account-provider\", accountProviderElement);\n const [toolStorageProviderElement, setToolStorageProviderElement] = createSignal();\n const isToolStorageProviderReady = useFrameProviderReady(\"patchwork-tool-storage-provider\", toolStorageProviderElement);\n const [selectedDocProviderElement, setSelectedDocProviderElement] = createSignal();\n const isSelectedDocProviderReady = useFrameProviderReady(\"patchwork-selected-doc-provider\", selectedDocProviderElement);\n const areProvidersReady = createMemo(() => isSelectedDocProviderReady() && isAccountProviderReady() && isToolStorageProviderReady());\n return (() => {\n var _el$ = _tmpl$(),\n _el$2 = _el$.firstChild,\n _el$3 = _el$2.firstChild,\n _el$4 = _el$2.nextSibling,\n _el$5 = _el$4.firstChild,\n _el$6 = _el$5.firstChild,\n _el$7 = _el$6.firstChild,\n _el$8 = _el$7.firstChild;\n _$insert(_el$2, _$createComponent(Show, {\n get when() {\n return props.isolation;\n },\n get children() {\n return [\" \", \"isolation is highly experimental. if things are broken, switch back to wild west.\"];\n }\n }), null);\n _$use(setSelectedDocProviderElement, _el$5);\n _el$5._$owner = _$getOwner();\n _$use(setAccountProviderElement, _el$6);\n _el$6.docUrl = accountDocUrl;\n _el$6._$owner = _$getOwner();\n _$use(setToolStorageProviderElement, _el$7);\n _el$7.docUrl = accountDocUrl;\n _el$7._$owner = _$getOwner();\n _el$8._$owner = _$getOwner();\n _$insert(_el$8, _$createComponent(Show, {\n get when() {\n return areProvidersReady();\n },\n get children() {\n return _$createComponent(PatchworkFrameInner, {\n handle: handle,\n repo: repo,\n get isolation() {\n return props.isolation;\n }\n });\n }\n }));\n return _el$;\n })();\n}\nfunction PatchworkFrameInner(props) {\n const accountDocHandle = useDocHandle(() => props.handle.url, {\n repo: props.repo\n });\n void (async () => {\n await ensureThreepaneConfig(props.handle, props.repo);\n await seedExampleDocuments(props.handle, props.repo);\n })().catch(err => {\n console.error(\"frame: account bootstrap failed\", err);\n });\n const [docVersion, setDocVersion] = createSignal(0);\n createEffect(() => {\n const h = accountDocHandle();\n if (!h) return;\n const onChange = () => setDocVersion(v => v + 1);\n h.on(\"change\", onChange);\n onCleanup(() => h.off(\"change\", onChange));\n });\n const accountDoc = createMemo(() => {\n docVersion();\n return accountDocHandle()?.doc();\n });\n const accountDocUrl = props.handle.url;\n const threepaneUrl = () => accountDoc()?.tools?.[\"threepane\"];\n const threepaneConfigHandle = useDocHandle(() => threepaneUrl(), {\n repo: props.repo\n });\n const [threepaneVersion, setThreepaneVersion] = createSignal(0);\n createEffect(() => {\n const h = threepaneConfigHandle();\n if (!h) return;\n const onChange = () => setThreepaneVersion(v => v + 1);\n h.on(\"change\", onChange);\n onCleanup(() => h.off(\"change\", onChange));\n });\n const threepaneConfig = createMemo(() => {\n threepaneVersion();\n return threepaneConfigHandle()?.doc();\n });\n const doctitleSlots = () => threepaneConfig()?.doctitle?.tools;\n const sidebarWidgets = () => threepaneConfig()?.sidebar?.widgets ?? [];\n const traySlots = () => threepaneConfig()?.tray ?? [];\n const rootFolderUrl = () => accountDoc()?.rootFolderUrl;\n const sidebarState = useSidebarState();\n const sidebarResize = useSidebarResize({\n setLeftSidebarWidth: sidebarState.setLeftSidebarWidth,\n setRightSidebarWidth: sidebarState.setRightSidebarWidth,\n setIsSidebarCollapsed: sidebarState.setIsSidebarCollapsed,\n setIsRightSidebarCollapsed: sidebarState.setIsRightSidebarCollapsed,\n isLeftCollapsed: sidebarState.isSidebarCollapsed,\n isRightCollapsed: sidebarState.isRightSidebarCollapsed,\n minWidth: MIN_SIDEBAR_WIDTH,\n maxWidth: MAX_SIDEBAR_WIDTH,\n autoCloseWidth: AUTO_CLOSE_WIDTH,\n dragThreshold: DRAG_THRESHOLD\n });\n const {\n events: debugEvents,\n dismissEvent,\n clearAll\n } = useDebugRegistryToast();\n let element;\n const [selectedView, setSelectedView] = createSignal(null);\n const [popoverView, setPopoverView] = createSignal(null);\n onMount(() => {\n const unsubscribeSelectedView = subscribe(element, {\n type: \"patchwork:selected-view\"\n }, view => setSelectedView(view));\n onCleanup(unsubscribeSelectedView);\n });\n const selectedDocUrl = () => selectedView()?.url;\n const selectedToolId = () => selectedView()?.toolId ?? void 0;\n const initialRightWidth = () => getStoredNumber(SIDEBAR_KEYS.rightWidth, DEFAULT_SIDEBAR_WIDTH);\n const initialRightCollapsed = () => getStoredBoolean(SIDEBAR_KEYS.rightCollapsed);\n const [mainDocElement, setMainDocElement] = createSignal();\n const isMainDocMounted = useMainDocMounted(mainDocElement, selectedDocUrl);\n const [widgetsReady, setWidgetsReady] = createSignal(false);\n createEffect(() => {\n if (widgetsReady()) return;\n if (props.isolation || !selectedDocUrl() || isMainDocMounted()) setWidgetsReady(true);\n });\n return (() => {\n var _el$9 = _tmpl$2();\n var _ref$ = element;\n typeof _ref$ === \"function\" ? _$use(_ref$, _el$9) : element = _el$9;\n _$insert(_el$9, _$createComponent(DebugRegistryToast, {\n get events() {\n return debugEvents();\n },\n onDismiss: dismissEvent,\n onClearAll: clearAll\n }), null);\n _$insert(_el$9, _$createComponent(FrameLayout, {\n accountDocUrl: accountDocUrl,\n sidebarState: sidebarState,\n sidebarResize: sidebarResize,\n sidebarWidgets: sidebarWidgets,\n traySlots: traySlots,\n configHandle: threepaneConfigHandle,\n rootFolderUrl: rootFolderUrl,\n widgetsReady: widgetsReady,\n contactUrl: () => accountDoc()?.contactUrl,\n moduleSettingsUrl: () => accountDoc()?.moduleSettingsUrl,\n get isolation() {\n return props.isolation;\n },\n onInterceptOpen: setPopoverView,\n get children() {\n return _$createComponent(Show, {\n get when() {\n return selectedDocUrl();\n },\n get fallback() {\n return (() => {\n var _el$0 = _tmpl$3();\n _$insert(_el$0, _$createComponent(MainDocumentView, {\n viewKey: selectedDocUrl,\n selectedDocUrl: selectedDocUrl,\n toolId: selectedToolId,\n ref: setMainDocElement\n }));\n return _el$0;\n })();\n },\n get children() {\n return _$createComponent(Show, {\n get when() {\n return props.isolation;\n },\n get fallback() {\n return _$createComponent(DocumentAreaRoot, {\n setMainDocElement: setMainDocElement,\n selectedDocUrl: selectedDocUrl,\n selectedToolId: selectedToolId,\n doctitleSlots: doctitleSlots,\n get isLeftCollapsed() {\n return sidebarState.isSidebarCollapsed;\n },\n initialRightWidth: initialRightWidth,\n initialRightCollapsed: initialRightCollapsed\n });\n },\n get children() {\n return _$createComponent(IsolatedDocumentArea, {\n get contactUrl() {\n return accountDoc()?.contactUrl;\n },\n selectedDocUrl: selectedDocUrl,\n selectedToolId: selectedToolId,\n doctitleSlots: doctitleSlots,\n get isLeftCollapsed() {\n return sidebarState.isSidebarCollapsed;\n },\n initialRightWidth: initialRightWidth,\n initialRightCollapsed: initialRightCollapsed\n });\n }\n });\n }\n });\n }\n }), null);\n _$insert(_el$9, _$createComponent(Show, {\n get when() {\n return popoverView();\n },\n children: view => _$createComponent(FramePopover, {\n get view() {\n return view();\n },\n onClose: () => setPopoverView(null)\n })\n }), null);\n return _el$9;\n })();\n}\nfunction FramePopover(props) {\n const [toolId, setToolId] = createSignal(props.view.toolId ?? void 0);\n createEffect(() => setToolId(props.view.toolId ?? void 0));\n let popoverEl;\n onMount(() => {\n const onKey = e => {\n if (e.key === \"Escape\") props.onClose();\n };\n window.addEventListener(\"keydown\", onKey);\n onCleanup(() => window.removeEventListener(\"keydown\", onKey));\n const el = popoverEl;\n if (!el) return;\n const onOpen = event => {\n const {\n url,\n toolId: nextToolId\n } = event.detail;\n if (!url) return;\n event.stopPropagation();\n setToolId(nextToolId ?? void 0);\n };\n el.addEventListener(\"patchwork:open-document\", onOpen);\n onCleanup(() => el.removeEventListener(\"patchwork:open-document\", onOpen));\n });\n return (() => {\n var _el$1 = _tmpl$4(),\n _el$10 = _el$1.firstChild,\n _el$11 = _el$10.firstChild,\n _el$12 = _el$11.firstChild,\n _el$13 = _el$11.nextSibling,\n _el$14 = _el$13.firstChild;\n _el$1.$$click = () => props.onClose();\n _el$10.$$click = e => e.stopPropagation();\n var _ref$2 = popoverEl;\n typeof _ref$2 === \"function\" ? _$use(_ref$2, _el$10) : popoverEl = _el$10;\n _el$12._$owner = _$getOwner();\n _el$14._$owner = _$getOwner();\n _$effect(_p$ => {\n var _v$ = props.view.url,\n _v$2 = props.view.url,\n _v$3 = toolId();\n _v$ !== _p$.e && (_el$12.docUrl = _p$.e = _v$);\n _v$2 !== _p$.t && (_el$14.docUrl = _p$.t = _v$2);\n _v$3 !== _p$.a && (_el$14.toolId = _p$.a = _v$3);\n return _p$;\n }, {\n e: undefined,\n t: undefined,\n a: undefined\n });\n return _el$1;\n })();\n}\nfunction FrameLayout(props) {\n const isCollapsed = props.sidebarState.isSidebarCollapsed;\n const hasTray = () => props.traySlots().length > 0;\n let footerEl;\n onMount(() => {\n if (!props.isolation || !footerEl) return;\n const el = footerEl;\n const onOpen = event => {\n const {\n url,\n toolId\n } = event.detail;\n if (!url) return;\n event.stopPropagation();\n props.onInterceptOpen?.({\n url,\n toolId: toolId ?? null\n });\n };\n el.addEventListener(\"patchwork:open-document\", onOpen);\n onCleanup(() => el.removeEventListener(\"patchwork:open-document\", onOpen));\n });\n let sidebarContentEl;\n createEffect(() => {\n if (props.sidebarState.isSidebarCollapsed()) return;\n const el = sidebarContentEl;\n if (!el) return;\n const onOpen = () => {\n if (el.getBoundingClientRect().width <= window.innerWidth * 0.75) return;\n props.sidebarState.setIsSidebarCollapsed(true);\n window.dispatchEvent(new CustomEvent(COLLAPSE_CONTEXT_SIDEBAR_EVENT));\n };\n el.addEventListener(\"patchwork:open-document\", onOpen);\n onCleanup(() => el.removeEventListener(\"patchwork:open-document\", onOpen));\n });\n return [(() => {\n var _el$15 = _tmpl$5();\n _el$15.$$click = () => props.sidebarState.setIsSidebarCollapsed(v => !v);\n _$insert(_el$15, _$createComponent(PanelLeftIcon, {}));\n _$effect(_p$ => {\n var _v$4 = isCollapsed() ? \"Show sidebar\" : \"Hide sidebar\",\n _v$5 = isCollapsed() ? \"Show sidebar\" : \"Hide sidebar\",\n _v$6 = !isCollapsed();\n _v$4 !== _p$.e && _$setAttribute(_el$15, \"title\", _p$.e = _v$4);\n _v$5 !== _p$.t && _$setAttribute(_el$15, \"aria-label\", _p$.t = _v$5);\n _v$6 !== _p$.a && _$setAttribute(_el$15, \"aria-pressed\", _p$.a = _v$6);\n return _p$;\n }, {\n e: undefined,\n t: undefined,\n a: undefined\n });\n return _el$15;\n })(), _$createComponent(Sidebar, {\n side: \"left\",\n isCollapsed: isCollapsed,\n get width() {\n return props.sidebarState.leftSidebarWidth;\n },\n get onMouseDown() {\n return props.sidebarResize.handleMouseDown;\n },\n get onToggleClick() {\n return props.sidebarResize.handleToggleClick;\n },\n get children() {\n var _el$16 = _tmpl$6(),\n _el$17 = _el$16.firstChild,\n _el$18 = _el$17.firstChild,\n _el$19 = _el$18.firstChild;\n var _ref$3 = sidebarContentEl;\n typeof _ref$3 === \"function\" ? _$use(_ref$3, _el$16) : sidebarContentEl = _el$16;\n _$insert(_el$16, _$createComponent(SidebarWidgets, {\n get widgets() {\n return props.sidebarWidgets;\n },\n get configHandle() {\n return props.configHandle;\n },\n get rootFolderUrl() {\n return props.rootFolderUrl;\n },\n get ready() {\n return props.widgetsReady;\n }\n }), _el$17);\n var _ref$4 = footerEl;\n typeof _ref$4 === \"function\" ? _$use(_ref$4, _el$17) : footerEl = _el$17;\n _$insert(_el$18, _$createComponent(Show, {\n get when() {\n return props.contactUrl();\n },\n children: contactUrl => (() => {\n var _el$21 = _tmpl$8(),\n _el$22 = _el$21.firstChild;\n _el$21.$$click = e => dispatchOpen(e.currentTarget, {\n url: props.accountDocUrl,\n toolId: \"account-picker\"\n });\n _el$22._$owner = _$getOwner();\n _$effect(() => _el$22.docUrl = contactUrl());\n return _el$21;\n })()\n }), _el$19);\n _$insert(_el$18, _$createComponent(Show, {\n get when() {\n return props.moduleSettingsUrl();\n },\n children: moduleSettingsUrl => (() => {\n var _el$23 = _tmpl$9();\n _el$23.$$click = e => dispatchOpen(e.currentTarget, {\n url: moduleSettingsUrl(),\n toolId: \"packages\"\n });\n return _el$23;\n })()\n }), _el$19);\n _el$19.$$click = e => dispatchOpen(e.currentTarget, {\n url: props.accountDocUrl,\n toolId: \"frame-configurator\"\n });\n _$effect(() => _el$16.classList.toggle(\"threepane-sidebar--has-tray\", !!hasTray()));\n return _el$16;\n }\n }), _$createComponent(Show, {\n get when() {\n return hasTray();\n },\n get children() {\n var _el$20 = _tmpl$7();\n _$insert(_el$20, _$createComponent(Tray, {\n get slots() {\n return props.traySlots;\n }\n }));\n _$effect(_p$ => {\n var _v$7 = !!isCollapsed(),\n _v$8 = `${props.sidebarState.leftSidebarWidth()}px`;\n _v$7 !== _p$.e && _el$20.classList.toggle(\"frame__tray-dock--collapsed\", _p$.e = _v$7);\n _v$8 !== _p$.t && _$setStyleProperty(_el$20, \"width\", _p$.t = _v$8);\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$20;\n }\n }), _$memo(() => props.children)];\n}\nfunction PanelLeftIcon() {\n return _tmpl$0();\n}\nexport function renderPatchworkFrame(isolation) {\n return (handle, element) => {\n return render(() => _$createComponent(PatchworkFrame, {\n handle: handle,\n get repo() {\n return element.repo;\n },\n isolation: isolation\n }), element);\n };\n}\n_$delegateEvents([\"click\"]);", "import { template as _$template } from \"solid-js/web\";\nimport { delegateEvents as _$delegateEvents } from \"solid-js/web\";\nimport { memo as _$memo } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { createComponent as _$createComponent } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<div class=threepane-widgets>`),\n _tmpl$2 = /*#__PURE__*/_$template(`<div class=threepane-widgets__empty><button type=button class=threepane-widgets__add>\uFF0B Add document list`),\n _tmpl$3 = /*#__PURE__*/_$template(`<div class=threepane-widget>`);\nimport { For, Show } from \"solid-js\";\nimport { SlotView } from \"./SlotView\";\nconst DOCUMENT_LIST_TOOL = \"chee/document-list\";\nexport function SidebarWidgets(props) {\n const addDocumentList = () => {\n const root = props.rootFolderUrl();\n const handle = props.configHandle();\n if (!root || !handle) return;\n handle.change(doc => {\n doc.sidebar.widgets.push([DOCUMENT_LIST_TOOL, root]);\n });\n };\n return (() => {\n var _el$ = _tmpl$();\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return props.ready();\n },\n get children() {\n return _$createComponent(Show, {\n get when() {\n return props.widgets().length;\n },\n get fallback() {\n return (// While the config/root folder are still loading we can't add a\n // widget yet \u2014 show nothing rather than a disabled button.\n _$createComponent(Show, {\n get when() {\n return _$memo(() => !!props.rootFolderUrl())() && props.configHandle();\n },\n get children() {\n var _el$2 = _tmpl$2(),\n _el$3 = _el$2.firstChild;\n _el$3.$$click = addDocumentList;\n return _el$2;\n }\n })\n );\n },\n get children() {\n return _$createComponent(For, {\n get each() {\n return props.widgets();\n },\n children: widget => (() => {\n var _el$4 = _tmpl$3();\n _$insert(_el$4, _$createComponent(SlotView, {\n slot: widget\n }));\n return _el$4;\n })()\n });\n }\n });\n }\n }));\n return _el$;\n })();\n}\n_$delegateEvents([\"click\"]);", "import { template as _$template } from \"solid-js/web\";\nimport { setAttribute as _$setAttribute } from \"solid-js/web\";\nimport { effect as _$effect } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { createComponent as _$createComponent } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<div class=frame-tray>`),\n _tmpl$2 = /*#__PURE__*/_$template(`<div class=frame-tray__item>`);\nimport { For, Show } from \"solid-js\";\nimport { SlotView, slotId, uniqueSlots } from \"./SlotView\";\nexport function Tray(props) {\n return _$createComponent(Show, {\n get when() {\n return props.slots().length;\n },\n get children() {\n var _el$ = _tmpl$();\n _$insert(_el$, _$createComponent(For, {\n get each() {\n return uniqueSlots(props.slots());\n },\n children: slot => (() => {\n var _el$2 = _tmpl$2();\n _$insert(_el$2, _$createComponent(SlotView, {\n slot: slot\n }));\n _$effect(() => _$setAttribute(_el$2, \"data-tray-id\", slotId(slot)));\n return _el$2;\n })()\n }));\n return _el$;\n }\n });\n}", "import type { AutomergeUrl, DocHandle, Repo } from \"@automerge/automerge-repo/slim\";\nimport { createDocOfDatatype2 } from \"@inkandswitch/patchwork-plugins\";\nimport type { AccountDoc, ThreepaneConfigDoc, ToolRef, ToolSlot } from \"../types\";\nimport { DEFAULT_DOCTITLE_TOOLS, DEFAULT_TRAY_TOOLS } from \"../datatypes\";\nimport { loadDatatypeWhenReady } from \"./loadDatatypeWhenReady\";\nimport { slotId, uniqueSlots } from \"../components/SlotView\";\n\n// Title + spacer are intrinsic to the frame's top bar, never configured tools.\nconst INTRINSIC_DOCTITLE_TOOLS = new Set([\"document-title\", \"spacer\"]);\n\n// The sidebar's default widget: a document list pinned to the account's root\n// folder. Every account gets one so the left pane is never empty.\nconst DOCUMENT_LIST_TOOL = \"chee/document-list\";\n\n/** The default sidebar widgets for a fresh (or empty) account. */\nfunction defaultSidebarWidgets(rootFolderUrl?: AutomergeUrl): ToolRef[] {\n return rootFolderUrl ? [[DOCUMENT_LIST_TOOL, rootFolderUrl]] : [];\n}\n\n/**\n * Lazily create the threepane layout config doc and point `account.tools.threepane`\n * at it, migrating the legacy `account.documentToolbarToolIds` into its\n * `doctitle` lane. The system tray is an explicit `tray` list here, seeded with\n * `DEFAULT_TRAY_TOOLS` (and backfilled for configs created before the field\n * existed).\n *\n * Seeds the sidebar with a default document-list widget (pinned to the account's\n * root folder), so the left pane is never empty.\n *\n * Non-destructive: the old `documentToolbarToolIds` / `accountSidebarToolId`\n * fields are left untouched so older builds keep working. Run the (separate,\n * opt-in) cleanupLegacyAccountFields script to remove them later.\n */\nexport async function ensureThreepaneConfig(\n accountHandle: DocHandle<AccountDoc>,\n repo: Repo\n) {\n const rootFolderUrl = accountHandle.doc()?.rootFolderUrl;\n const existingConfigUrl = accountHandle.doc()?.tools?.[\"threepane\"];\n\n // Already migrated. Backfill the default document-list widget for early\n // builds of this branch that seeded an empty sidebar.\n if (existingConfigUrl) {\n const configHandle = await repo.find<ThreepaneConfigDoc>(existingConfigUrl);\n configHandle.change((doc) => {\n if (rootFolderUrl && !doc.sidebar?.widgets?.length) {\n doc.sidebar.widgets = defaultSidebarWidgets(rootFolderUrl);\n }\n // Backfill the tray for configs created before the field existed.\n if (!doc.tray) {\n doc.tray = DEFAULT_TRAY_TOOLS.slice();\n } else {\n // Append default tray tools the saved tray is missing, like\n // llm-config-tray. slotId compares across the string and tuple forms.\n const unique = uniqueSlots(doc.tray);\n if (unique.length !== doc.tray.length) doc.tray = unique;\n const present = new Set(doc.tray.map((s) => slotId(s)));\n for (const id of DEFAULT_TRAY_TOOLS) {\n if (!present.has(id)) {\n doc.tray.push(id);\n present.add(id);\n }\n }\n }\n // An account whose doctitle lane ended up empty (nothing to migrate from\n // the legacy field) gets the defaults rather than a bare top bar.\n if (!doc.doctitle?.tools?.length) {\n doc.doctitle = { ...doc.doctitle, tools: DEFAULT_DOCTITLE_TOOLS.slice() };\n }\n });\n return;\n }\n\n const datatype = await loadDatatypeWhenReady<ThreepaneConfigDoc>(\n \"threepane:config\"\n );\n if (!datatype) {\n console.warn(\"frame: threepane:config datatype never registered\");\n return;\n }\n\n // Re-check after the await in case another tab migrated concurrently.\n if (accountHandle.doc()?.tools?.[\"threepane\"]) return;\n\n const account = accountHandle.doc();\n\n // doctitle tools migrate as bare ids: the frame always points them at the\n // selected main-view doc, so a slot tuple's docid would be ignored \u2014 keep\n // them as plain strings.\n const doctitleTools: ToolSlot[] = (account?.documentToolbarToolIds ?? [])\n .filter((id) => !INTRINSIC_DOCTITLE_TOOLS.has(id));\n\n const configHandle = await createDocOfDatatype2<ThreepaneConfigDoc>(\n datatype,\n repo\n );\n configHandle.change((doc) => {\n if (doctitleTools.length) doc.doctitle.tools = doctitleTools;\n doc.sidebar.widgets = defaultSidebarWidgets(account?.rootFolderUrl);\n if (!doc.tray) doc.tray = DEFAULT_TRAY_TOOLS.slice();\n });\n\n accountHandle.change((acc) => {\n if (!acc.tools) acc.tools = {};\n if (!acc.tools[\"threepane\"]) acc.tools[\"threepane\"] = configHandle.url;\n });\n}\n", "import {\n getRegistry,\n type DatatypeDescription,\n type LoadedDatatype,\n} from \"@inkandswitch/patchwork-plugins\";\n\nexport function loadDatatypeWhenReady<D>(\n id: string\n): Promise<LoadedDatatype<D>> {\n return getRegistry<DatatypeDescription>(\n \"patchwork:datatype\"\n ).loadWhenReady(id) as Promise<LoadedDatatype<D>>;\n}\n", "import debug from \"debug\";\nimport type { DocHandle, Repo } from \"@automerge/automerge-repo/slim\";\nimport { createDocOfDatatype2 } from \"@inkandswitch/patchwork-plugins\";\nimport type { FolderDoc } from \"@inkandswitch/patchwork-filesystem\";\nimport type { AccountDoc } from \"../types\";\nimport { loadDatatypeWhenReady } from \"./loadDatatypeWhenReady\";\n\nconst log = debug(\"patchwork:threepane:examples\");\n\n/**\n * Seed a fresh account with example documents by running each static module\n * bundle's generated `init.js` (emitted by that repo's scripts/bundle.mjs next\n * to its modules.json). Every init script receives the same Examples folder\n * handle, so multiple bundles merge their examples into one folder.\n *\n * Runs at most once per account: the account doc's `exampleDocsSeededAt`\n * marker is claimed *before* seeding (a race between two tabs can at worst\n * skip the examples, never duplicate them), and a deleted Examples folder is\n * never recreated. Accounts that already have documents get the marker but no\n * examples \u2014 only truly fresh accounts are seeded.\n */\nexport async function seedExampleDocuments(\n accountHandle: DocHandle<AccountDoc>,\n repo: Repo\n) {\n const account = accountHandle.doc();\n if (!account?.rootFolderUrl) {\n log(\"skipped \u2014 account has no rootFolderUrl\");\n return;\n }\n if (account.exampleDocsSeededAt) {\n log(\n \"skipped \u2014 already ran for this account at\",\n new Date(account.exampleDocsSeededAt).toISOString()\n );\n return;\n }\n\n log(\"claiming marker on account\", accountHandle.url);\n accountHandle.change((doc) => {\n if (!doc.exampleDocsSeededAt) doc.exampleDocsSeededAt = Date.now();\n });\n\n const rootFolder = await repo.find<FolderDoc>(account.rootFolderUrl);\n const existingDocs = rootFolder.doc()?.docs?.length ?? 0;\n if (existingDocs) {\n log(\n `skipped \u2014 root folder already has ${existingDocs} doc(s); only fresh accounts are seeded`\n );\n return;\n }\n\n const gaios = window.location.hostname.includes(\"gaios\");\n const initUrls = gaios ? [] : await bundleInitScriptUrls();\n log(gaios ? \"gaios examples\" : \"bundle init scripts:\", initUrls);\n if (!gaios && !initUrls.length) {\n log(\"skipped \u2014 no static module bundles to ask\");\n return;\n }\n\n const folderDatatype = await loadDatatypeWhenReady<FolderDoc>(\"folder\");\n if (!folderDatatype) {\n log(\"folder datatype never registered; giving up\");\n return;\n }\n const folder = await createDocOfDatatype2<FolderDoc>(\n folderDatatype,\n repo,\n (doc) => {\n doc.title = \"Examples\";\n }\n );\n\n if (gaios) {\n const { seedGaiosExamples } = await import(\"./gaiosExamples\");\n await seedGaiosExamples(repo, folder);\n }\n\n for (const url of initUrls) {\n try {\n const mod = await import(/* @vite-ignore */ url);\n await mod.default?.(repo, folder);\n log(\"ran init script\", url);\n } catch (err) {\n // A bundle that ships no init script 404s here \u2014 normal, not an error.\n log(\"init script unavailable or failed\", url, err);\n }\n }\n\n const seeded = folder.doc()?.docs?.length ?? 0;\n if (!seeded) {\n // Don't leave an empty Examples folder if no bundle contributed anything.\n log(\"no bundle contributed any documents\");\n return;\n }\n\n rootFolder.change((doc) => {\n doc.docs.unshift({ name: \"Examples\", type: \"folder\", url: folder.url });\n });\n log(`seeded ${seeded} document(s) into Examples folder`, folder.url);\n}\n\ntype ModuleWatcherLike = {\n urls?: Record<string, string>;\n doneLoading?: Promise<void>;\n};\n\n/**\n * The patchwork-tools bundle isn't in every site's default module sources\n * (some boot from an automerge module-settings doc, which has no init.js),\n * but its examples should seed everywhere \u2014 so it's always consulted.\n */\nconst TOOLS_BUNDLE_INIT_URL = \"https://patchwork-tools.netlify.app/init.js\";\n\n/**\n * Fallback for shells with no static manifest at all (automerge-doc module\n * sources only): the deployed patchwork-base bundle. Not consulted when any\n * static manifest is configured, because that manifest is usually a copy of\n * this very bundle (e.g. a localhost dev serve) and URL-dedupe can't tell \u2014\n * always adding it would seed base's examples twice.\n */\nconst BASE_BUNDLE_INIT_URL = \"https://patchwork-base.netlify.app/init.js\";\n\n/**\n * The `init.js` URL next to every static (http) module manifest the host is\n * watching, plus the hardcoded bundles above. Automerge module-settings docs\n * have no init script. Waits for the watcher's initial load so the bundles'\n * plugins are registered before any example runs.\n */\nasync function bundleInitScriptUrls(): Promise<string[]> {\n const watcher = (\n window as { patchwork?: { packages?: ModuleWatcherLike } }\n ).patchwork?.packages;\n if (!watcher?.urls) return [BASE_BUNDLE_INIT_URL, TOOLS_BUNDLE_INIT_URL];\n await watcher.doneLoading;\n const fromManifests = Object.values(watcher.urls)\n .filter((url) => typeof url === \"string\" && !url.startsWith(\"automerge:\"))\n .map((url) => new URL(\"init.js\", new URL(url, document.baseURI)).href);\n const base = fromManifests.length ? [] : [BASE_BUNDLE_INIT_URL];\n return [...new Set([...fromManifests, ...base, TOOLS_BUNDLE_INIT_URL])];\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["_$template", "_$delegateEvents", "_$memo", "_$setStyleProperty", "_$setAttribute", "_$effect", "_$getOwner", "_$use", "_$insert", "_$createComponent", "subscribe", "_$template", "_$delegateEvents", "_$memo", "_$insert", "_$createComponent", "For", "Show", "_tmpl$", "_$template", "_tmpl$2", "_tmpl$3", "DOCUMENT_LIST_TOOL", "SidebarWidgets", "props", "addDocumentList", "root", "handle", "doc", "_el$", "_$insert", "_$createComponent", "Show", "_$memo", "_el$2", "_el$3", "For", "widget", "_el$4", "SlotView", "_$delegateEvents", "_$template", "_$setAttribute", "_$effect", "_$insert", "_$createComponent", "For", "Show", "_tmpl$", "_$template", "_tmpl$2", "Tray", "props", "_$createComponent", "Show", "_el$", "_$insert", "For", "uniqueSlots", "slot", "_el$2", "SlotView", "_$effect", "_$setAttribute", "slotId", "createEffect", "createMemo", "createSignal", "onCleanup", "onMount", "Show", "render", "createDocOfDatatype2", "getRegistry", "loadDatatypeWhenReady", "id", "INTRINSIC_DOCTITLE_TOOLS", "DOCUMENT_LIST_TOOL", "defaultSidebarWidgets", "rootFolderUrl", "ensureThreepaneConfig", "accountHandle", "repo", "existingConfigUrl", "doc", "DEFAULT_TRAY_TOOLS", "unique", "uniqueSlots", "present", "s", "slotId", "id", "DEFAULT_DOCTITLE_TOOLS", "datatype", "loadDatatypeWhenReady", "account", "doctitleTools", "configHandle", "createDocOfDatatype2", "acc", "import_debug", "createDocOfDatatype2", "log", "debug", "seedExampleDocuments", "accountHandle", "repo", "account", "doc", "rootFolder", "existingDocs", "gaios", "initUrls", "bundleInitScriptUrls", "folderDatatype", "loadDatatypeWhenReady", "folder", "createDocOfDatatype2", "seedGaiosExamples", "url", "err", "seeded", "TOOLS_BUNDLE_INIT_URL", "BASE_BUNDLE_INIT_URL", "watcher", "fromManifests", "base", "_tmpl$", "_$template", "_tmpl$2", "_tmpl$3", "_tmpl$4", "_tmpl$5", "_tmpl$6", "_tmpl$7", "_tmpl$8", "_tmpl$9", "_tmpl$0", "MIN_SIDEBAR_WIDTH", "MAX_SIDEBAR_WIDTH", "AUTO_CLOSE_WIDTH", "DRAG_THRESHOLD", "useFrameProviderReady", "componentId", "element", "isReady", "setReady", "createSignal", "createEffect", "el", "onMounted", "event", "onCleanup", "dispatchOpen", "detail", "PatchworkFrame", "handle", "repo", "props", "ensureFrameStyles", "accountDocUrl", "accountProviderElement", "setAccountProviderElement", "isAccountProviderReady", "toolStorageProviderElement", "setToolStorageProviderElement", "isToolStorageProviderReady", "selectedDocProviderElement", "setSelectedDocProviderElement", "isSelectedDocProviderReady", "areProvidersReady", "createMemo", "_el$", "_el$2", "_el$3", "_el$4", "_el$5", "_el$6", "_el$7", "_el$8", "_$insert", "_$createComponent", "Show", "_$use", "_$getOwner", "PatchworkFrameInner", "accountDocHandle", "useDocHandle", "ensureThreepaneConfig", "seedExampleDocuments", "err", "docVersion", "setDocVersion", "onChange", "v", "accountDoc", "threepaneUrl", "threepaneConfigHandle", "threepaneVersion", "setThreepaneVersion", "threepaneConfig", "doctitleSlots", "sidebarWidgets", "traySlots", "rootFolderUrl", "sidebarState", "useSidebarState", "sidebarResize", "useSidebarResize", "debugEvents", "dismissEvent", "clearAll", "useDebugRegistryToast", "selectedView", "setSelectedView", "popoverView", "setPopoverView", "onMount", "unsubscribeSelectedView", "subscribe", "view", "selectedDocUrl", "selectedToolId", "initialRightWidth", "getStoredNumber", "SIDEBAR_KEYS", "DEFAULT_SIDEBAR_WIDTH", "initialRightCollapsed", "getStoredBoolean", "mainDocElement", "setMainDocElement", "isMainDocMounted", "useMainDocMounted", "widgetsReady", "setWidgetsReady", "_el$9", "_ref$", "DebugRegistryToast", "FrameLayout", "_el$0", "MainDocumentView", "DocumentAreaRoot", "IsolatedDocumentArea", "FramePopover", "toolId", "setToolId", "popoverEl", "onKey", "e", "onOpen", "url", "nextToolId", "_el$1", "_el$10", "_el$11", "_el$12", "_el$13", "_el$14", "_ref$2", "_$effect", "_p$", "_v$", "_v$2", "_v$3", "isCollapsed", "hasTray", "footerEl", "sidebarContentEl", "COLLAPSE_CONTEXT_SIDEBAR_EVENT", "_el$15", "PanelLeftIcon", "_v$4", "_v$5", "_v$6", "_$setAttribute", "Sidebar", "_el$16", "_el$17", "_el$18", "_el$19", "_ref$3", "SidebarWidgets", "_ref$4", "contactUrl", "_el$21", "_el$22", "moduleSettingsUrl", "_el$23", "_el$20", "Tray", "_v$7", "_v$8", "_$setStyleProperty", "_$memo", "renderPatchworkFrame", "isolation", "render", "_$delegateEvents"]
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as be,b as Et}from"./chunk-FW4363Y4.js";var Oe=be((An,Me)=>{var A=1e3,R=A*60,F=R*60,T=F*24,ir=T*7,sr=T*365.25;Me.exports=function(e,o){o=o||{};var t=typeof e;if(t==="string"&&e.length>0)return lr(e);if(t==="number"&&isFinite(e))return o.long?cr(e):dr(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function lr(e){if(e=String(e),!(e.length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(o){var t=parseFloat(o[1]),n=(o[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*sr;case"weeks":case"week":case"w":return t*ir;case"days":case"day":case"d":return t*T;case"hours":case"hour":case"hrs":case"hr":case"h":return t*F;case"minutes":case"minute":case"mins":case"min":case"m":return t*R;case"seconds":case"second":case"secs":case"sec":case"s":return t*A;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function dr(e){var o=Math.abs(e);return o>=T?Math.round(e/T)+"d":o>=F?Math.round(e/F)+"h":o>=R?Math.round(e/R)+"m":o>=A?Math.round(e/A)+"s":e+"ms"}function cr(e){var o=Math.abs(e);return o>=T?re(e,o,T,"day"):o>=F?re(e,o,F,"hour"):o>=R?re(e,o,R,"minute"):o>=A?re(e,o,A,"second"):e+" ms"}function re(e,o,t,n){var r=o>=t*1.5;return Math.round(e/t)+" "+n+(r?"s":"")}});var Pe=be((Rn,ze)=>{function hr(e){t.debug=t,t.default=t,t.coerce=f,t.disable=a,t.enable=r,t.enabled=d,t.humanize=Oe(),t.destroy=g,Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={};function o(s){let l=0;for(let u=0;u<s.length;u++)l=(l<<5)-l+s.charCodeAt(u),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=o;function t(s){let l,u=null,p,m;function h(...c){if(!h.enabled)return;let b=h,v=Number(new Date),y=v-(l||v);b.diff=y,b.prev=l,b.curr=v,l=v,c[0]=t.coerce(c[0]),typeof c[0]!="string"&&c.unshift("%O");let C=0;c[0]=c[0].replace(/%([a-zA-Z%])/g,(W,K)=>{if(W==="%%")return"%";C++;let j=t.formatters[K];if(typeof j=="function"){let ge=c[C];W=j.call(b,ge),c.splice(C,1),C--}return W}),t.formatArgs.call(b,c),(b.log||t.log).apply(b,c)}return h.namespace=s,h.useColors=t.useColors(),h.color=t.selectColor(s),h.extend=n,h.destroy=t.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>u!==null?u:(p!==t.namespaces&&(p=t.namespaces,m=t.enabled(s)),m),set:c=>{u=c}}),typeof t.init=="function"&&t.init(h),h}function n(s,l){let u=t(this.namespace+(typeof l>"u"?":":l)+s);return u.log=this.log,u}function r(s){t.save(s),t.namespaces=s,t.names=[],t.skips=[];let l=(typeof s=="string"?s:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let u of l)u[0]==="-"?t.skips.push(u.slice(1)):t.names.push(u)}function i(s,l){let u=0,p=0,m=-1,h=0;for(;u<s.length;)if(p<l.length&&(l[p]===s[u]||l[p]==="*"))l[p]==="*"?(m=p,h=u,p++):(u++,p++);else if(m!==-1)p=m+1,h++,u=h;else return!1;for(;p<l.length&&l[p]==="*";)p++;return p===l.length}function a(){let s=[...t.names,...t.skips.map(l=>"-"+l)].join(",");return t.enable(""),s}function d(s){for(let l of t.skips)if(i(s,l))return!1;for(let l of t.names)if(i(s,l))return!0;return!1}function f(s){return s instanceof Error?s.stack||s.message:s}function g(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}ze.exports=hr});var Ue=be((_,oe)=>{_.formatArgs=fr;_.save=pr;_.load=mr;_.useColors=ur;_.storage=gr();_.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();_.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ur(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function fr(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+oe.exports.humanize(this.diff),!this.useColors)return;let o="color: "+this.color;e.splice(1,0,o,"color: inherit");let t=0,n=0;e[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(n=t))}),e.splice(n,0,o)}_.log=console.debug||console.log||(()=>{});function pr(e){try{e?_.storage.setItem("debug",e):_.storage.removeItem("debug")}catch{}}function mr(){let e;try{e=_.storage.getItem("debug")||_.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function gr(){try{return localStorage}catch{}}oe.exports=Pe()(_);var{formatters:br}=oe.exports;br.j=function(e){try{return JSON.stringify(e)}catch(o){return"[UnexpectedJSONParseError]: "+o.message}}});import{template as St}from"solid-js/web";import{createComponent as zo}from"solid-js/web";import{setAttribute as Po}from"solid-js/web";import{effect as Uo}from"solid-js/web";import{insert as $t}from"solid-js/web";import{getOwner as Wo}from"solid-js/web";import{createMemo as Ct}from"solid-js";import{createStore as Ho,reconcile as Bo}from"solid-js/store";import{render as qo}from"solid-js/web";import{template as De}from"solid-js/web";import{insert as Y}from"solid-js/web";import{getOwner as he}from"solid-js/web";import{use as ue}from"solid-js/web";import{createComponent as E}from"solid-js/web";import{createUniqueId as Tt,untrack as Ie}from"solid-js";import{isServer as Dt,isDev as Ae}from"solid-js/web";import{reconcile as It}from"solid-js/store";function ve(e,o={}){let t=o.storage||globalThis.localStorage,n=o.name||`storage-${Tt()}`;if(!t)return Object.assign(e,{2:null});let r=o.storageOptions,i=o.serialize||JSON.stringify.bind(JSON),a=o.deserialize||JSON.parse.bind(JSON),d=t.getItem(n,r),f=typeof e[0]=="function"?s=>{try{let l=a(s);e[1](()=>l)}catch(l){Ae&&console.warn(l)}}:s=>{try{let l=a(s);e[1](It(l))}catch(l){Ae&&console.warn(l)}},g=!0;if(d instanceof Promise?d.then(s=>g&&s&&f(s)):d&&f(d),typeof o.sync?.[0]=="function"){let s=typeof e[0]=="function"?e[0]:()=>e[0];o.sync[0](l=>{l.key!==n||!Dt&&(l.url||globalThis.location.href)!==globalThis.location.href||l.newValue===i(Ie(s))||f(l.newValue)})}return Object.assign([],e,{1:typeof e[0]=="function"?s=>{let l=e[1](s),u=s!=null?i(l):s;return o.sync?.[1](n,u),u!=null?t.setItem(n,u,r):t.removeItem(n,r),g=!1,l}:(...s)=>{e[1](...s);let l=Ie(()=>i(e[0]));o.sync?.[1](n,l),t.setItem(n,l,r),g=!1},2:d})}import{createEffect as vt,createMemo as wt,createSignal as S,on as xt,onCleanup as Do,onMount as Io,Show as fe}from"solid-js";import{createEffect as G,createSignal as Z,on as Q}from"solid-js";var k={leftCollapsed:"patchwork:leftSidebarCollapsed",rightCollapsed:"patchwork:rightSidebarCollapsed",leftWidth:"patchwork:leftSidebarWidth",rightWidth:"patchwork:rightSidebarWidth",contextToolId:"patchwork:contextSidebarToolId"},ee="patchwork:collapse-context-sidebar",N=400;function we(e,o){let t=localStorage.getItem(e);return t?parseInt(t,10):o}function xe(e){return localStorage.getItem(e)==="true"}function At(){let[e,o]=Z(xe(k.leftCollapsed)),[t,n]=Z(xe(k.rightCollapsed)),[r,i]=Z(we(k.leftWidth,N)),[a,d]=Z(we(k.rightWidth,N));return G(Q(e,f=>{localStorage.setItem(k.leftCollapsed,String(f))})),G(Q(t,f=>{localStorage.setItem(k.rightCollapsed,String(f))})),G(Q(r,f=>{localStorage.setItem(k.leftWidth,String(f))})),G(Q(a,f=>{localStorage.setItem(k.rightWidth,String(f))})),{isSidebarCollapsed:e,setIsSidebarCollapsed:o,isRightSidebarCollapsed:t,setIsRightSidebarCollapsed:n,leftSidebarWidth:r,setLeftSidebarWidth:i,rightSidebarWidth:a,setRightSidebarWidth:d}}import{onCleanup as Rt,onMount as Ft}from"solid-js";function ye({setLeftSidebarWidth:e,setRightSidebarWidth:o,setIsSidebarCollapsed:t,setIsRightSidebarCollapsed:n,isLeftCollapsed:r,isRightCollapsed:i,minWidth:a,maxWidth:d,autoCloseWidth:f,dragThreshold:g}){let s=null,l=null,u=!1,p=null,m=(w,x)=>w==="left"?e(x):o(x),h=(w,x)=>w==="left"?t(x):n(x),c=w=>w==="left"?r():i(),b=(w,x)=>{if(x<f){c(w)||h(w,!0),p=null;return}c(w)&&h(w,!1);let $=Math.min(d,x);m(w,$),p=$},v=w=>{c(w)||p!==null&&p<a&&m(w,a)},y=null,C=w=>{document.body.setAttribute("data-sidebar-resizing",w),y=document.createElement("div"),y.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:col-resize;",document.body.appendChild(y)},me=()=>{s=null,l=null,document.body.style.userSelect="",document.body.removeAttribute("data-sidebar-resizing"),y?.remove(),y=null},W=(w,x)=>{x.preventDefault(),l={x:x.clientX,y:x.clientY},u=!1,p=null,s=w,document.body.style.userSelect="none"},K=()=>{let w=s,x=u;me(),w&&x&&v(w)},j=w=>{if(!s||!l)return;let x=Math.abs(w.clientX-l.x),$=Math.abs(w.clientY-l.y);!u&&(x>g||$>g)&&(u=!0,C(s)),s==="left"?b("left",w.clientX):s==="right"&&b("right",window.innerWidth-w.clientX)},ge=(w,x)=>{if(u){x.preventDefault(),x.stopPropagation(),u=!1;return}w==="left"?t($=>!$):n($=>!$)};return Ft(()=>{document.addEventListener("mousemove",j),document.addEventListener("mouseup",K),Rt(()=>{document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",K),s&&me()})}),{handleMouseDown:W,handleToggleClick:ge}}import{createEffect as Lt,createSignal as Mt,onCleanup as Ot}from"solid-js";var D=(e,o)=>{let[t,n]=Mt(!1);return Lt(()=>{let r=o();if(!r)return;n(!1);let i=a=>{a.detail?.componentId===e&&n(!0)};r.addEventListener("patchwork:mounted",i),Ot(()=>r.removeEventListener("patchwork:mounted",i))}),t};import{createEffect as zt,createSignal as Pt,onCleanup as Ut}from"solid-js";var Wt=5e3,jt=(e,o)=>{let[t,n]=Pt(!1);return zt(()=>{if(t())return;let r=e(),i=o();if(!r||!i)return;let a=f=>{let g=f.detail;g?.url&&g.url!==i||n(!0)};r.addEventListener("patchwork:mounted",a),r.addEventListener("patchwork:no-tool",a);let d=setTimeout(()=>n(!0),Wt);Ut(()=>{r.removeEventListener("patchwork:mounted",a),r.removeEventListener("patchwork:no-tool",a),clearTimeout(d)})}),t};import{getRegistry as Nt}from"@inkandswitch/patchwork-plugins";import{createMemo as Ht,createSignal as Bt,onCleanup as qt}from"solid-js";function H(e){let o=Nt("patchwork:component"),[t,n]=Bt(0),r=o.on("changed",()=>n(i=>i+1));return qt(r),Ht(()=>(t(),(o.all?.()??[]).filter(i=>(i.tags??[]).includes(e)).map(i=>({id:i.id,name:i.name||i.id,icon:i.icon})).sort((i,a)=>i.name.localeCompare(a.name))))}import{template as _e}from"solid-js/web";import{delegateEvents as Vt}from"solid-js/web";import{setStyleProperty as Jt}from"solid-js/web";import{effect as Xt}from"solid-js/web";import{memo as Yt}from"solid-js/web";import{addEventListener as Kt}from"solid-js/web";import{insert as I}from"solid-js/web";import{createEffect as Re,createSignal as Fe,onCleanup as Le}from"solid-js";import{getAllRegistries as er}from"@inkandswitch/patchwork-plugins";var Gt=_e('<div class=debug-registry-toast><div class=debug-registry-toast__header><span class=debug-registry-toast__title>\u{1F527} Registry (<!>)</span><button class=debug-registry-toast__clear title="Clear all">\u2715</button></div><div class=debug-registry-toast__list>'),Zt=_e("<div class=debug-registry-toast__item><div class=debug-registry-toast__content><span class=debug-registry-toast__event-type></span><span class=debug-registry-toast__plugin-type>"),Qt=_e("<span class=debug-registry-toast__plugin-id>"),te="debugModal";function tr(){try{return localStorage.getItem(te)==="true"}catch{return!1}}function rr(e){try{e?localStorage.setItem(te,"true"):localStorage.removeItem(te)}catch{}}var or=["changed"];function nr(e={}){let{events:o=or}=e,[t,n]=Fe([]),[r,i]=Fe(tr()),a=new Set,d=(s,l,u,p)=>{let m={id:crypto.randomUUID(),type:s,event:l,pluginId:u,pluginName:p,timestamp:Date.now()};n(c=>[m,...c].slice(0,50));let h=setTimeout(()=>{n(c=>c.filter(b=>b.id!==m.id)),a.delete(h)},5e3);a.add(h)},f=s=>{n(l=>l.filter(u=>u.id!==s))},g=()=>{n([])};return Re(()=>{if(!r()){n([]),a.forEach(p=>clearTimeout(p)),a.clear();return}let s=er(),l=[],u=new Map;s.forEach((p,m)=>{let h=p.on("registered",v=>{u.set(m,{id:v.id,name:v.name,action:"registered"}),o.includes("registered")&&d(m,"registered",v.id,v.name)});l.push(h);let c=p.on("loaded",v=>{u.set(m,{id:v.id,name:v.name,action:"loaded"}),o.includes("loaded")&&d(m,"loaded",v.id,v.name)});l.push(c);let b=p.on("removed",v=>{u.set(m,{id:v,action:"removed"}),o.includes("removed")&&d(m,"removed",v)});if(l.push(b),o.includes("changed")){let v=p.on("changed",()=>{let y=u.get(m);d(m,"changed",y?.id,y?.name),u.delete(m)});l.push(v)}}),Le(()=>{l.forEach(p=>p()),a.forEach(p=>clearTimeout(p)),a.clear()})}),Re(()=>{let s=l=>{l.key===te&&i(l.newValue==="true")};window.addEventListener("storage",s),Le(()=>window.removeEventListener("storage",s))}),{events:t,isEnabled:r,setIsEnabled:s=>{rr(s),i(s)},dismissEvent:f,clearAll:g}}function ar({events:e,onDismiss:o,onClearAll:t}){if(e.length===0)return null;let n=r=>{switch(r){case"registered":return"var(--debug-toast-registered, #3b82f6)";case"loaded":return"var(--debug-toast-loaded, #22c55e)";case"removed":return"var(--debug-toast-removed, #ef4444)";case"changed":return"var(--debug-toast-changed, #f59e0b)"}};return(()=>{var r=Gt(),i=r.firstChild,a=i.firstChild,d=a.firstChild,f=d.nextSibling,g=f.nextSibling,s=a.nextSibling,l=i.nextSibling;return I(a,()=>e.length,f),Kt(s,"click",t,!0),I(l,()=>e.map(u=>(()=>{var p=Zt(),m=p.firstChild,h=m.firstChild,c=h.nextSibling;return p.$$click=()=>o(u.id),I(h,()=>u.event),I(c,()=>u.type),I(m,(()=>{var b=Yt(()=>!!u.pluginId);return()=>b()&&(()=>{var v=Qt();return I(v,()=>u.pluginId),v})()})(),null),Xt(b=>Jt(p,"border-left-color",n(u.event))),p})())),r})()}Vt(["click"]);import{template as X}from"solid-js/web";import{delegateEvents as so}from"solid-js/web";import{getOwner as lo}from"solid-js/web";import{effect as ft}from"solid-js/web";import{setAttribute as co}from"solid-js/web";import{memo as pt}from"solid-js/web";import{insert as P}from"solid-js/web";import{createComponent as U}from"solid-js/web";import{For as go,Show as Ee}from"solid-js";import{template as Xe}from"solid-js/web";import{delegateEvents as Tr}from"solid-js/web";import{setAttribute as Dr}from"solid-js/web";import{insert as Ir}from"solid-js/web";import"solid-js/web";import{effect as Je}from"solid-js/web";import{use as Ye}from"solid-js/web";import{createComponent as Ce}from"solid-js/web";var Ne=Et(Ue(),1),He=(0,Ne.default)("cabbages");function We(e){return typeof e=="object"&&typeof e!=null&&Object.getPrototypeOf(e)==Object.prototype}var vr="\uFFFC";function Be(e,...o){if(o.length==0){He("empty patch");return}let[t,n,r]=o,i=[...t];for(;;){let a=i.shift();if(!i.length){let f=Array.isArray(n);if(We(e)&&f&&typeof a>"u"&&typeof n[0]=="string"){delete e[n[0]];return}if(f||typeof n=="number"){if(typeof a>"u")throw new Error("cant treat top level as a seq");a=a;let[g,s]=Array.isArray(n)?n:[n,n+1],l=Array.isArray(n)&&n.length==0;if(!l&&(g==null||s==null))throw new RangeError("it's all or nothing, no half measures");let u=typeof r>"u",p=g===s&&!u,m=l&&!u,h=!p&&!u&&!m;if(typeof e[a]>"u"){if(typeof e=="string")return;typeof r=="string"?e[a]="":e[a]=[]}let c=e[a];if(Array.isArray(c)){if(m){Array.isArray(r)?c.push(...r):c.push(r);return}if(p||h){Array.isArray(r)?c.splice(g,s-g,...r):c.splice(g,s-g,r);return}if(u){c.splice(g,s-g);return}throw new Error("i don't know what happened")}if(typeof c=="string"){if(m){e[a]=c+r;return}if(h||p){e[a]=c.slice(0,g)+(typeof r=="string"?r:r.map(b=>typeof b=="string"?b:vr).join(""))+c.slice(s);return}if(u){e[a]=c.slice(0,g)+c.slice(s);return}throw new Error("i don't know what happened")}if(We(c)&&f&&typeof n[0]=="string"){delete c[n[0]];return}throw new Error("not implemented")}if(typeof a>"u"){if(typeof n!="string")throw new Error(`can't index top-level map with ${n}`);typeof r>"u"?delete e[n]:e[n]=r;return}if(typeof e[a]>"u"&&(e[a]={}),f){let[g,s]=n;g!=null&&s!=null&&(typeof r>"u"&&g!=null&&s!=null?delete e[a][g||s]:e[a][g||s]=r)}else if(typeof r>"u")delete e[a][n];else{if(typeof e[a]=="string")return;e[a][n]=r}return}if(typeof a>"u")throw new Error("cant treat top level as a seq");a=a;let d=i[0];if(typeof e[a]>"u")if(typeof d=="string")e[a]={};else if(typeof d=="number")e[a]=[];else throw new Error(`can't go down this road ${e}.${a}.${d}`);e=e[a]}}function je(e,o){for(let t=0;t<o.length;t++)e=e?e[o[t]]:void 0;return e}function qe(e,o){let t=e.path.slice(0,-1),n=e.path[e.path.length-1];switch(e.action){case"mark":case"unmark":return He(`skipping ${e.action} because it doesn't affect material reality`),[];case"inc":if(o)return[t,n,je(o.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"conflict":if(o)return[t,n,je(o.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"del":return typeof n=="string"?[t,n]:[t,[n,n+(e.length||1)]];case"insert":return[t,[n,n],structuredClone(e.values)];case"splice":return[t,[n,n],[e.value]];case"put":return[t,n,structuredClone(e.value)]}}function ne(e){return o=>{for(let t of e.patches)Be(o,...qe(t,e))}}import{createMemo as _r}from"solid-js";import{onCleanup as wr}from"solid-js";import{createStore as xr,produce as yr,reconcile as Ve}from"solid-js/store";var B=new WeakMap;function ae(e){if(wr(()=>{let i=B.get(e);i&&(i.refs--||i.cleanup())}),B.has(e)){let i=B.get(e);return i.refs++,i.store}let[o,t]=xr(structuredClone(e.doc()));B.set(e,{refs:0,store:o,cleanup(){e.off("change",n),e.off("delete",r),B.delete(e)}});function n(i){if(i.scopeReplaced){t(Ve(i.doc??{}));return}t(yr(ne(i)))}function r(){t(Ve({}))}return e.on("change",n),e.on("delete",r),e.whenReady().then(()=>{t(structuredClone(e.doc()))}),o}import{getOwner as jn,onCleanup as Nn,createSignal as Hn,untrack as Bn,sharedConfig as qn,onMount as Vn,DEV as Jn,equalFn as Xn}from"solid-js";import{isServer as Kn}from"solid-js/web";var L=e=>typeof e=="function"&&!e.length?e():e;function ie(e){return _r(()=>L(e)&&ae(L(e)))}import{createEffect as kr,createResource as Sr,useContext as $r}from"solid-js";import{createContext as Cr}from"solid-js";var se=Cr(null);function q(e,o){let t=$r(se);if(!o?.repo&&!t)throw new Error("use outside <RepoContext> requires options.repo");let n=o?.repo||t;function r(){if(o?.["~skipInitialValue"])return;let d=L(e);if(!d)return;let f=n.findWithProgress(d).peek();return f.state==="ready"?f.handle:void 0}let[i,{mutate:a}]=Sr(e,d=>n.findWithProgress(d).whenReady(),{initialValue:r()});return kr(()=>{L(e)||a()}),i}function le(e,o){let t=q(e,o);return[ie(t),t]}import{onCleanup as fa}from"solid-js";import{createSignal as ma}from"solid-js";import{createEffect as va,onCleanup as wa}from"solid-js";import{createSignal as ya}from"solid-js";import{useContext as Ta}from"solid-js";import{getType as Rr}from"@inkandswitch/patchwork-filesystem";import{getRegistry as Fr,isLoadedPlugin as Lr}from"@inkandswitch/patchwork-plugins";import{createEffect as Mr,createMemo as de,createSignal as ke,onCleanup as Or,onMount as Ge,Show as Ze}from"solid-js";var Ke=Xe("<span class=threepane__title-text>"),Ar=Xe("<input class=threepane__title-input type=text>");function Qe(e){let o,[t,n]=ke();return Ge(()=>{n(o.closest("repo-provider")?.repo)}),Ce(Ze,{get when(){return t()},get fallback(){return(()=>{var r=Ke(),i=o;return typeof i=="function"?Ye(i,r):o=r,r})()},children:r=>Ce(zr,{get docUrl(){return e.docUrl},get repo(){return r()}})})}function zr(e){let[o,t]=le(()=>e.docUrl(),{repo:e.repo}),n=Fr("patchwork:datatype"),[r,i]=ke(0);Ge(()=>{let h=n.on("changed",()=>i(c=>c+1));Or(h)});let a=de(()=>{let h=o();return h?Rr(h):void 0});Mr(()=>{let h=a();h&&n.load(h)});let d=de(()=>{r();let h=a();if(!h)return;let c=n.get(h);return c&&Lr(c)?c:void 0}),f=de(()=>{let h=o(),c=d();if(!(!h||!c))return c.module.getTitle(h)}),g=de(()=>!!t()&&typeof d()?.module.setTitle=="function"),[s,l]=ke(!1),u;function p(){g()&&(l(!0),queueMicrotask(()=>{u?.focus(),u?.select()}))}function m(h){if(!s()||(l(!1),!h))return;let c=u?.value.trim();if(!c||c===f())return;let b=t(),v=d()?.module.setTitle;!b||!v||b.change(y=>{v(y,c);let C=y["@patchwork"];C&&(C.title=c)})}return Ce(Ze,{get when(){return s()},get fallback(){return(()=>{var h=Ke();return h.$$click=p,Ir(h,()=>f()??"Untitled"),Je(c=>{var b=!!g(),v=g()?"Rename":void 0;return b!==c.e&&h.classList.toggle("threepane__title-text--editable",c.e=b),v!==c.t&&Dr(h,"title",c.t=v),c},{e:void 0,t:void 0}),h})()},get children(){var h=Ar();h.$$keydown=b=>{b.key==="Enter"?(b.preventDefault(),m(!0)):b.key==="Escape"&&(b.preventDefault(),m(!1))},h.addEventListener("blur",()=>m(!0));var c=u;return typeof c=="function"?Ye(c,h):u=h,Je(()=>h.value=f()??""),h}})}Tr(["keydown","click"]);import{template as J}from"solid-js/web";import{delegateEvents as Kr}from"solid-js/web";import{getOwner as Gr}from"solid-js/web";import{insert as V}from"solid-js/web";import{createComponent as z}from"solid-js/web";import{Show as Se}from"solid-js";import{template as ce}from"solid-js/web";import{delegateEvents as Pr}from"solid-js/web";import{setStyleProperty as Ur}from"solid-js/web";import{setAttribute as et}from"solid-js/web";import{insert as M}from"solid-js/web";import{memo as O}from"solid-js/web";import{effect as tt}from"solid-js/web";import{getOwner as Wr}from"solid-js/web";var jr=ce("<patchwork-view>",!0,!1,!1),Nr=ce("<div class=sidebar>"),rt=ce('<button class="sidebar-toggle sidebar-toggle--resizable"aria-label="Toggle or resize sidebar"title="Click to toggle, drag to resize">'),ot=ce('<button class="sidebar-toggle sidebar-toggle--resizable"aria-label="Expand sidebar"title="Click to expand, drag to resize">');function nt(e){let o=()=>`${e.isCollapsed()?0:e.width()}px`,t=()=>e.children!==void 0?e.children:e.toolId&&e.docUrl?(()=>{var r=jr();return r._$owner=Wr(),tt(i=>{var a=e.docUrl,d=e.toolId;return a!==i.e&&(r.docUrl=i.e=a),d!==i.t&&(r.toolId=i.t=d),i},{e:void 0,t:void 0}),r})():null,n=()=>e.canExpand?.()??!0;return(()=>{var r=Nr();return M(r,(()=>{var i=O(()=>e.side==="left"&&!e.isCollapsed());return()=>i()&&t()})(),null),M(r,(()=>{var i=O(()=>e.side==="left"&&!e.isCollapsed());return()=>i()&&(()=>{var a=rt();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(r,(()=>{var i=O(()=>!!(e.side==="left"&&e.isCollapsed()&&n()));return()=>i()&&(()=>{var a=ot();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(r,(()=>{var i=O(()=>e.side==="right"&&!e.isCollapsed());return()=>i()&&(()=>{var a=rt();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(r,(()=>{var i=O(()=>!!(e.side==="right"&&e.isCollapsed()&&n()));return()=>i()&&(()=>{var a=ot();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(r,(()=>{var i=O(()=>e.side==="right"&&!e.isCollapsed());return()=>i()&&t()})(),null),tt(i=>{var a=e.side,d=e.isCollapsed()?"":void 0,f=o();return a!==i.e&&et(r,"data-side",i.e=a),d!==i.t&&et(r,"data-collapsed",i.t=d),f!==i.a&&Ur(r,"width",i.a=f),i},{e:void 0,t:void 0,a:void 0}),r})()}Pr(["click","mousedown"]);import{template as it}from"solid-js/web";import{delegateEvents as Hr}from"solid-js/web";import{setAttribute as Br}from"solid-js/web";import{effect as qr}from"solid-js/web";import{insert as at}from"solid-js/web";import{createComponent as Vr}from"solid-js/web";import{For as Yr}from"solid-js";var Jr=it("<div role=tablist class=context-sidebar__tablist>"),Xr=it("<button type=button role=tab class=context-sidebar__tab>");function st(e){let o=()=>{let t=e.items().map(r=>r.id),n=e.selectedToolId();return n&&t.includes(n)?n:t[0]};return(()=>{var t=Jr();return at(t,Vr(Yr,{get each(){return e.items()},children:n=>(()=>{var r=Xr();return r.$$click=()=>e.setSelectedToolId(n.id),at(r,()=>n.name),qr(()=>Br(r,"data-active",o()===n.id?"":void 0)),r})()})),t})()}Hr(["click"]);var Zr=J('<div class=context-sidebar__tabs><button type=button class=context-sidebar__close title="Hide context sidebar"aria-label="Hide context sidebar">'),Qr=J("<div class=context-sidebar__content>"),eo=J("<div class=context-sidebar>"),to=J("<patchwork-view>",!0,!1,!1),ro=J('<svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=var(--studio-chrome-line) stroke-width=1.75 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d="M15 3v18">');function lt(e){let o=H("context-tool"),t=()=>{let n=o().map(i=>i.id),r=e.selectedToolId();return r&&n.includes(r)?r:n[0]};return z(nt,{side:"right",get isCollapsed(){return e.isCollapsed},get width(){return e.width},get onMouseDown(){return e.onMouseDown},get onToggleClick(){return e.onToggleClick},get canExpand(){return e.canExpand},get children(){var n=eo();return V(n,z(Se,{get when(){return o().length},get children(){var r=Zr(),i=r.firstChild;return V(r,z(st,{items:o,get selectedToolId(){return e.selectedToolId},get setSelectedToolId(){return e.setSelectedToolId}}),i),i.$$click=()=>e.onCollapse(),V(i,z($e,{})),r}}),null),V(n,z(Se,{get when(){return!e.isCollapsed()},get children(){var r=Qr();return V(r,z(Se,{get when(){return t()},keyed:!0,children:i=>(()=>{var a=to();return a.component=i,a._$owner=Gr(),a})()})),r}}),null),n}})}function $e(){return ro()}Kr(["click"]);import{template as oo}from"solid-js/web";import{effect as dt}from"solid-js/web";import{getOwner as ct}from"solid-js/web";import{createComponent as no}from"solid-js/web";import{memo as ao}from"solid-js/web";import{Show as io}from"solid-js";var ht=oo("<patchwork-view>",!0,!1,!1),ut=e=>Array.isArray(e)?String(e[0]):String(e);function zi(e){return no(io,{get when(){return ao(()=>!!Array.isArray(e.slot))()?e.slot:!1},get fallback(){return(()=>{var o=ht();return o._$owner=ct(),dt(()=>o.component=String(e.slot)),o})()},children:o=>(()=>{var t=ht();return t._$owner=ct(),dt(n=>{var r=o()[1],i=o()[0];return r!==n.e&&(t.docUrl=n.e=r),i!==n.t&&(t.toolId=n.t=i),n},{e:void 0,t:void 0}),t})()})}var ho=X("<div class=threepane__title>"),uo=X("<div class=threepane__doctitle-tools>"),fo=X('<button type=button class=frame__sidebar-toggle title="Show context sidebar"aria-label="Show context sidebar">'),po=X("<div class=frame__topbar><div class=threepane__spacer>"),mo=X("<patchwork-view>",!0,!1,!1);function mt(e){let o=()=>e.toolSlots()??[];return(()=>{var t=po(),n=t.firstChild;return P(t,U(Ee,{get when(){return e.docUrl()},get children(){var r=ho();return P(r,U(Qe,{get docUrl(){return e.docUrl}})),r}}),n),P(t,U(Ee,{get when(){return pt(()=>!!e.docUrl())()&&o().length},get children(){var r=uo();return P(r,U(go,{get each(){return o()},children:i=>(()=>{var a=mo();return a._$owner=lo(),ft(d=>{var f=ut(i),g=e.docUrl();return f!==d.e&&(a.toolId=d.e=f),g!==d.t&&(a.docUrl=d.t=g),d},{e:void 0,t:void 0}),a})()})),r}}),null),P(t,U(Ee,{get when(){return pt(()=>!!e.hasContext())()&&e.isRightCollapsed()},get children(){var r=fo();return r.$$click=()=>e.onToggleRight(),co(r,"aria-pressed",!1),P(r,U($e,{})),r}}),null),ft(()=>t.classList.toggle("frame__topbar--left-collapsed",!!e.isLeftCollapsed())),t})()}so(["click"]);import{template as Te}from"solid-js/web";import{effect as bo}from"solid-js/web";import{getOwner as vo}from"solid-js/web";import{insert as gt}from"solid-js/web";import{memo as wo}from"solid-js/web";import{createComponent as xo}from"solid-js/web";import{use as yo}from"solid-js/web";import{Show as So}from"solid-js";var _o=Te("<div class=document-view>"),Co=Te("<patchwork-view>",!0,!1,!1),ko=Te("<div class=placeholder>Select a document in the sidebar");function bt({viewKey:e,selectedDocUrl:o,toolId:t,ref:n}){return(()=>{var r=_o(),i=n;return typeof i=="function"?yo(i,r):n=r,gt(r,xo(So,{get when(){return e()},keyed:!0,children:a=>(()=>{var d=Co();return d._$owner=vo(),bo(f=>{var g=o(),s=t();return g!==f.e&&(d.docUrl=f.e=g),s!==f.t&&(d.toolId=f.t=s),f},{e:void 0,t:void 0}),d})()}),null),gt(r,(()=>{var a=wo(()=>!o());return()=>a()&&ko()})(),null),r})()}var $o=De("<patchwork-view component=patchwork-draft-state-provider>",!0,!1,!1),Eo=De("<div class=frame__main-column><div class=frame__doc-column><div class=main-area>"),To=De("<patchwork-view component=patchwork-draft-overlay-provider><patchwork-view component=patchwork-comments-provider><patchwork-view component=patchwork-focus-provider>",!0,!1,!1),Ao=180,Ro=720,Fo=120,Lo=3;function yt(e){let[o,t]=S(e.initialRightCollapsed()),[n,r]=S(e.initialRightWidth());vt(xt(o,m=>{try{localStorage.setItem(k.rightCollapsed,String(m))}catch{}},{defer:!0})),vt(xt(n,m=>{try{localStorage.setItem(k.rightWidth,String(m))}catch{}},{defer:!0}));let[,i]=S(0),[,a]=S(!1),d=ye({setLeftSidebarWidth:i,setRightSidebarWidth:r,setIsSidebarCollapsed:a,setIsRightSidebarCollapsed:t,isLeftCollapsed:()=>e.isLeftCollapsed(),isRightCollapsed:o,minWidth:Ao,maxWidth:Ro,autoCloseWidth:Fo,dragThreshold:Lo});Io(()=>{let m=()=>t(!0);window.addEventListener(ee,m),Do(()=>window.removeEventListener(ee,m))});let[f,g]=ve(S(),{name:k.contextToolId}),[s,l]=S(),u=D("patchwork-draft-state-provider",s),p=()=>u()?s():void 0;return E(fe,{get when(){return e.selectedDocUrl()},keyed:!0,children:m=>(()=>{var h=$o();return ue(l,h),h.docUrl=m,h._$owner=he(),Y(h,E(fe,{get when(){return p()},children:c=>E(Mo,{get host(){return c()},get setMainDocElement(){return e.setMainDocElement},get selectedDocUrl(){return e.selectedDocUrl},get selectedToolId(){return e.selectedToolId},get doctitleSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},isRightSidebarCollapsed:o,setIsRightSidebarCollapsed:t,rightSidebarWidth:n,get handleMouseDown(){return d.handleMouseDown},get handleToggleClick(){return d.handleToggleClick},selectedContextToolId:f,setSelectedContextToolId:g})})),h})()})}function Mo(e){let o=H("context-tool"),t=()=>o().length>0,n=wt(()=>e.selectedDocUrl()),[r,i]=S(),a=D("patchwork-draft-overlay-provider",r),[d,f]=S(),g=D("patchwork-comments-provider",d),[s,l]=S(),u=D("patchwork-focus-provider",s),p=wt(()=>a()&&g()&&u());return(()=>{var m=To(),h=m.firstChild,c=h.firstChild;return ue(i,m),m._$owner=he(),ue(f,h),h._$owner=he(),ue(l,c),c._$owner=he(),Y(c,E(fe,{get when(){return p()},get children(){var b=Eo(),v=b.firstChild,y=v.firstChild;return Y(v,E(mt,{get docUrl(){return e.selectedDocUrl},get toolSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},hasContext:t,get isRightCollapsed(){return e.isRightSidebarCollapsed},onToggleRight:()=>e.setIsRightSidebarCollapsed(C=>!C)}),y),Y(y,E(bt,{viewKey:n,get selectedDocUrl(){return e.selectedDocUrl},get toolId(){return e.selectedToolId},ref:C=>e.setMainDocElement?.(C)})),Y(b,E(fe,{get when(){return t()},get children(){return E(lt,{get selectedToolId(){return e.selectedContextToolId},get setSelectedToolId(){return e.setSelectedContextToolId},get isCollapsed(){return e.isRightSidebarCollapsed},get width(){return e.rightSidebarWidth},get onMouseDown(){return e.handleMouseDown},get onToggleClick(){return e.handleToggleClick},onCollapse:()=>e.setIsRightSidebarCollapsed(!0)})}}),null),b}})),m})()}var pe=`:root,
|
|
1
|
+
import{a as be,b as Et}from"./chunk-FW4363Y4.js";var ze=be((An,Oe)=>{var A=1e3,R=A*60,F=R*60,T=F*24,ir=T*7,sr=T*365.25;Oe.exports=function(e,r){r=r||{};var t=typeof e;if(t==="string"&&e.length>0)return lr(e);if(t==="number"&&isFinite(e))return r.long?cr(e):dr(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function lr(e){if(e=String(e),!(e.length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var t=parseFloat(r[1]),n=(r[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*sr;case"weeks":case"week":case"w":return t*ir;case"days":case"day":case"d":return t*T;case"hours":case"hour":case"hrs":case"hr":case"h":return t*F;case"minutes":case"minute":case"mins":case"min":case"m":return t*R;case"seconds":case"second":case"secs":case"sec":case"s":return t*A;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function dr(e){var r=Math.abs(e);return r>=T?Math.round(e/T)+"d":r>=F?Math.round(e/F)+"h":r>=R?Math.round(e/R)+"m":r>=A?Math.round(e/A)+"s":e+"ms"}function cr(e){var r=Math.abs(e);return r>=T?re(e,r,T,"day"):r>=F?re(e,r,F,"hour"):r>=R?re(e,r,R,"minute"):r>=A?re(e,r,A,"second"):e+" ms"}function re(e,r,t,n){var o=r>=t*1.5;return Math.round(e/t)+" "+n+(o?"s":"")}});var Ue=be((Rn,Pe)=>{function ur(e){t.debug=t,t.default=t,t.coerce=h,t.disable=a,t.enable=o,t.enabled=d,t.humanize=ze(),t.destroy=g,Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={};function r(s){let l=0;for(let f=0;f<s.length;f++)l=(l<<5)-l+s.charCodeAt(f),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=r;function t(s){let l,f=null,p,m;function u(...c){if(!u.enabled)return;let b=u,v=Number(new Date),y=v-(l||v);b.diff=y,b.prev=l,b.curr=v,l=v,c[0]=t.coerce(c[0]),typeof c[0]!="string"&&c.unshift("%O");let C=0;c[0]=c[0].replace(/%([a-zA-Z%])/g,(W,K)=>{if(W==="%%")return"%";C++;let j=t.formatters[K];if(typeof j=="function"){let ge=c[C];W=j.call(b,ge),c.splice(C,1),C--}return W}),t.formatArgs.call(b,c),(b.log||t.log).apply(b,c)}return u.namespace=s,u.useColors=t.useColors(),u.color=t.selectColor(s),u.extend=n,u.destroy=t.destroy,Object.defineProperty(u,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==t.namespaces&&(p=t.namespaces,m=t.enabled(s)),m),set:c=>{f=c}}),typeof t.init=="function"&&t.init(u),u}function n(s,l){let f=t(this.namespace+(typeof l>"u"?":":l)+s);return f.log=this.log,f}function o(s){t.save(s),t.namespaces=s,t.names=[],t.skips=[];let l=(typeof s=="string"?s:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of l)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function i(s,l){let f=0,p=0,m=-1,u=0;for(;f<s.length;)if(p<l.length&&(l[p]===s[f]||l[p]==="*"))l[p]==="*"?(m=p,u=f,p++):(f++,p++);else if(m!==-1)p=m+1,u++,f=u;else return!1;for(;p<l.length&&l[p]==="*";)p++;return p===l.length}function a(){let s=[...t.names,...t.skips.map(l=>"-"+l)].join(",");return t.enable(""),s}function d(s){for(let l of t.skips)if(i(s,l))return!1;for(let l of t.names)if(i(s,l))return!0;return!1}function h(s){return s instanceof Error?s.stack||s.message:s}function g(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Pe.exports=ur});var We=be((_,oe)=>{_.formatArgs=hr;_.save=pr;_.load=mr;_.useColors=fr;_.storage=gr();_.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();_.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function fr(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function hr(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+oe.exports.humanize(this.diff),!this.useColors)return;let r="color: "+this.color;e.splice(1,0,r,"color: inherit");let t=0,n=0;e[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),e.splice(n,0,r)}_.log=console.debug||console.log||(()=>{});function pr(e){try{e?_.storage.setItem("debug",e):_.storage.removeItem("debug")}catch{}}function mr(){let e;try{e=_.storage.getItem("debug")||_.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function gr(){try{return localStorage}catch{}}oe.exports=Ue()(_);var{formatters:br}=oe.exports;br.j=function(e){try{return JSON.stringify(e)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}});import{template as St}from"solid-js/web";import{createComponent as zo}from"solid-js/web";import{setAttribute as Po}from"solid-js/web";import{effect as Uo}from"solid-js/web";import{insert as $t}from"solid-js/web";import{getOwner as Wo}from"solid-js/web";import{createMemo as Ct}from"solid-js";import{createStore as Ho,reconcile as Bo}from"solid-js/store";import{render as qo}from"solid-js/web";import{template as Ie}from"solid-js/web";import{insert as Y}from"solid-js/web";import{getOwner as ue}from"solid-js/web";import{use as fe}from"solid-js/web";import{createComponent as E}from"solid-js/web";import{createUniqueId as Tt,untrack as Ae}from"solid-js";import{isServer as Dt,isDev as Re}from"solid-js/web";import{reconcile as It}from"solid-js/store";function ve(e,r={}){let t=r.storage||globalThis.localStorage,n=r.name||`storage-${Tt()}`;if(!t)return Object.assign(e,{2:null});let o=r.storageOptions,i=r.serialize||JSON.stringify.bind(JSON),a=r.deserialize||JSON.parse.bind(JSON),d=t.getItem(n,o),h=typeof e[0]=="function"?s=>{try{let l=a(s);e[1](()=>l)}catch(l){Re&&console.warn(l)}}:s=>{try{let l=a(s);e[1](It(l))}catch(l){Re&&console.warn(l)}},g=!0;if(d instanceof Promise?d.then(s=>g&&s&&h(s)):d&&h(d),typeof r.sync?.[0]=="function"){let s=typeof e[0]=="function"?e[0]:()=>e[0];r.sync[0](l=>{l.key!==n||!Dt&&(l.url||globalThis.location.href)!==globalThis.location.href||l.newValue===i(Ae(s))||h(l.newValue)})}return Object.assign([],e,{1:typeof e[0]=="function"?s=>{let l=e[1](s),f=s!=null?i(l):s;return r.sync?.[1](n,f),f!=null?t.setItem(n,f,o):t.removeItem(n,o),g=!1,l}:(...s)=>{e[1](...s);let l=Ae(()=>i(e[0]));r.sync?.[1](n,l),t.setItem(n,l,o),g=!1},2:d})}import{createEffect as vt,createMemo as wt,createSignal as S,on as xt,onCleanup as Do,onMount as Io,Show as he}from"solid-js";import{createEffect as G,createSignal as Z,on as Q}from"solid-js";var k={leftCollapsed:"patchwork:leftSidebarCollapsed",rightCollapsed:"patchwork:rightSidebarCollapsed",leftWidth:"patchwork:leftSidebarWidth",rightWidth:"patchwork:rightSidebarWidth",contextToolId:"patchwork:contextSidebarToolId"},ee="patchwork:collapse-context-sidebar",N=400;function we(e,r){let t=localStorage.getItem(e);return t?parseInt(t,10):r}function xe(e){return localStorage.getItem(e)==="true"}function At(){let[e,r]=Z(xe(k.leftCollapsed)),[t,n]=Z(xe(k.rightCollapsed)),[o,i]=Z(we(k.leftWidth,N)),[a,d]=Z(we(k.rightWidth,N));return G(Q(e,h=>{localStorage.setItem(k.leftCollapsed,String(h))})),G(Q(t,h=>{localStorage.setItem(k.rightCollapsed,String(h))})),G(Q(o,h=>{localStorage.setItem(k.leftWidth,String(h))})),G(Q(a,h=>{localStorage.setItem(k.rightWidth,String(h))})),{isSidebarCollapsed:e,setIsSidebarCollapsed:r,isRightSidebarCollapsed:t,setIsRightSidebarCollapsed:n,leftSidebarWidth:o,setLeftSidebarWidth:i,rightSidebarWidth:a,setRightSidebarWidth:d}}import{onCleanup as Rt,onMount as Ft}from"solid-js";function ye({setLeftSidebarWidth:e,setRightSidebarWidth:r,setIsSidebarCollapsed:t,setIsRightSidebarCollapsed:n,isLeftCollapsed:o,isRightCollapsed:i,minWidth:a,maxWidth:d,autoCloseWidth:h,dragThreshold:g}){let s=null,l=null,f=!1,p=null,m=(w,x)=>w==="left"?e(x):r(x),u=(w,x)=>w==="left"?t(x):n(x),c=w=>w==="left"?o():i(),b=(w,x)=>{if(x<h){c(w)||u(w,!0),p=null;return}c(w)&&u(w,!1);let $=Math.min(d,x);m(w,$),p=$},v=w=>{c(w)||p!==null&&p<a&&m(w,a)},y=null,C=w=>{document.body.setAttribute("data-sidebar-resizing",w),y=document.createElement("div"),y.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:col-resize;",document.body.appendChild(y)},me=()=>{s=null,l=null,document.body.style.userSelect="",document.body.removeAttribute("data-sidebar-resizing"),y?.remove(),y=null},W=(w,x)=>{x.preventDefault(),l={x:x.clientX,y:x.clientY},f=!1,p=null,s=w,document.body.style.userSelect="none"},K=()=>{let w=s,x=f;me(),w&&x&&v(w)},j=w=>{if(!s||!l)return;let x=Math.abs(w.clientX-l.x),$=Math.abs(w.clientY-l.y);!f&&(x>g||$>g)&&(f=!0,C(s)),s==="left"?b("left",w.clientX):s==="right"&&b("right",window.innerWidth-w.clientX)},ge=(w,x)=>{if(f){x.preventDefault(),x.stopPropagation(),f=!1;return}w==="left"?t($=>!$):n($=>!$)};return Ft(()=>{document.addEventListener("mousemove",j),document.addEventListener("mouseup",K),Rt(()=>{document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",K),s&&me()})}),{handleMouseDown:W,handleToggleClick:ge}}import{createEffect as Lt,createSignal as Mt,onCleanup as Ot}from"solid-js";var D=(e,r)=>{let[t,n]=Mt(!1);return Lt(()=>{let o=r();if(!o)return;n(!1);let i=a=>{a.detail?.componentId===e&&n(!0)};o.addEventListener("patchwork:mounted",i),Ot(()=>o.removeEventListener("patchwork:mounted",i))}),t};import{createEffect as zt,createSignal as Pt,onCleanup as Ut}from"solid-js";var Wt=5e3,jt=(e,r)=>{let[t,n]=Pt(!1);return zt(()=>{if(t())return;let o=e(),i=r();if(!o||!i)return;let a=h=>{let g=h.detail;g?.url&&g.url!==i||n(!0)};o.addEventListener("patchwork:mounted",a),o.addEventListener("patchwork:no-tool",a);let d=setTimeout(()=>n(!0),Wt);Ut(()=>{o.removeEventListener("patchwork:mounted",a),o.removeEventListener("patchwork:no-tool",a),clearTimeout(d)})}),t};import{getRegistry as Nt}from"@inkandswitch/patchwork-plugins";import{createMemo as Ht,createSignal as Bt,onCleanup as qt}from"solid-js";function H(e){let r=Nt("patchwork:component"),[t,n]=Bt(0),o=r.on("changed",()=>n(i=>i+1));return qt(o),Ht(()=>(t(),(r.all?.()??[]).filter(i=>(i.tags??[]).includes(e)).map(i=>({id:i.id,name:i.name||i.id,icon:i.icon})).sort((i,a)=>i.name.localeCompare(a.name))))}import{template as _e}from"solid-js/web";import{delegateEvents as Vt}from"solid-js/web";import{setStyleProperty as Jt}from"solid-js/web";import{effect as Xt}from"solid-js/web";import{memo as Yt}from"solid-js/web";import{addEventListener as Kt}from"solid-js/web";import{insert as I}from"solid-js/web";import{createEffect as Fe,createSignal as Le,onCleanup as Me}from"solid-js";import{getAllRegistries as er}from"@inkandswitch/patchwork-plugins";var Gt=_e('<div class=debug-registry-toast><div class=debug-registry-toast__header><span class=debug-registry-toast__title>\u{1F527} Registry (<!>)</span><button class=debug-registry-toast__clear title="Clear all">\u2715</button></div><div class=debug-registry-toast__list>'),Zt=_e("<div class=debug-registry-toast__item><div class=debug-registry-toast__content><span class=debug-registry-toast__event-type></span><span class=debug-registry-toast__plugin-type>"),Qt=_e("<span class=debug-registry-toast__plugin-id>"),te="debugModal";function tr(){try{return localStorage.getItem(te)==="true"}catch{return!1}}function rr(e){try{e?localStorage.setItem(te,"true"):localStorage.removeItem(te)}catch{}}var or=["changed"];function nr(e={}){let{events:r=or}=e,[t,n]=Le([]),[o,i]=Le(tr()),a=new Set,d=(s,l,f,p)=>{let m={id:crypto.randomUUID(),type:s,event:l,pluginId:f,pluginName:p,timestamp:Date.now()};n(c=>[m,...c].slice(0,50));let u=setTimeout(()=>{n(c=>c.filter(b=>b.id!==m.id)),a.delete(u)},5e3);a.add(u)},h=s=>{n(l=>l.filter(f=>f.id!==s))},g=()=>{n([])};return Fe(()=>{if(!o()){n([]),a.forEach(p=>clearTimeout(p)),a.clear();return}let s=er(),l=[],f=new Map;s.forEach((p,m)=>{let u=p.on("registered",v=>{f.set(m,{id:v.id,name:v.name,action:"registered"}),r.includes("registered")&&d(m,"registered",v.id,v.name)});l.push(u);let c=p.on("loaded",v=>{f.set(m,{id:v.id,name:v.name,action:"loaded"}),r.includes("loaded")&&d(m,"loaded",v.id,v.name)});l.push(c);let b=p.on("removed",v=>{f.set(m,{id:v,action:"removed"}),r.includes("removed")&&d(m,"removed",v)});if(l.push(b),r.includes("changed")){let v=p.on("changed",()=>{let y=f.get(m);d(m,"changed",y?.id,y?.name),f.delete(m)});l.push(v)}}),Me(()=>{l.forEach(p=>p()),a.forEach(p=>clearTimeout(p)),a.clear()})}),Fe(()=>{let s=l=>{l.key===te&&i(l.newValue==="true")};window.addEventListener("storage",s),Me(()=>window.removeEventListener("storage",s))}),{events:t,isEnabled:o,setIsEnabled:s=>{rr(s),i(s)},dismissEvent:h,clearAll:g}}function ar({events:e,onDismiss:r,onClearAll:t}){if(e.length===0)return null;let n=o=>{switch(o){case"registered":return"var(--debug-toast-registered, #3b82f6)";case"loaded":return"var(--debug-toast-loaded, #22c55e)";case"removed":return"var(--debug-toast-removed, #ef4444)";case"changed":return"var(--debug-toast-changed, #f59e0b)"}};return(()=>{var o=Gt(),i=o.firstChild,a=i.firstChild,d=a.firstChild,h=d.nextSibling,g=h.nextSibling,s=a.nextSibling,l=i.nextSibling;return I(a,()=>e.length,h),Kt(s,"click",t,!0),I(l,()=>e.map(f=>(()=>{var p=Zt(),m=p.firstChild,u=m.firstChild,c=u.nextSibling;return p.$$click=()=>r(f.id),I(u,()=>f.event),I(c,()=>f.type),I(m,(()=>{var b=Yt(()=>!!f.pluginId);return()=>b()&&(()=>{var v=Qt();return I(v,()=>f.pluginId),v})()})(),null),Xt(b=>Jt(p,"border-left-color",n(f.event))),p})())),o})()}Vt(["click"]);import{template as X}from"solid-js/web";import{delegateEvents as so}from"solid-js/web";import{getOwner as lo}from"solid-js/web";import{effect as ht}from"solid-js/web";import{setAttribute as co}from"solid-js/web";import{memo as pt}from"solid-js/web";import{insert as P}from"solid-js/web";import{createComponent as U}from"solid-js/web";import{For as go,Show as Te}from"solid-js";import{template as Ye}from"solid-js/web";import{delegateEvents as Tr}from"solid-js/web";import{setAttribute as Dr}from"solid-js/web";import{insert as Ir}from"solid-js/web";import"solid-js/web";import{effect as Xe}from"solid-js/web";import{use as Ke}from"solid-js/web";import{createComponent as Ce}from"solid-js/web";var He=Et(We(),1),Be=(0,He.default)("cabbages");function je(e){return typeof e=="object"&&typeof e!=null&&Object.getPrototypeOf(e)==Object.prototype}var vr="\uFFFC";function qe(e,...r){if(r.length==0){Be("empty patch");return}let[t,n,o]=r,i=[...t];for(;;){let a=i.shift();if(!i.length){let h=Array.isArray(n);if(je(e)&&h&&typeof a>"u"&&typeof n[0]=="string"){delete e[n[0]];return}if(h||typeof n=="number"){if(typeof a>"u")throw new Error("cant treat top level as a seq");a=a;let[g,s]=Array.isArray(n)?n:[n,n+1],l=Array.isArray(n)&&n.length==0;if(!l&&(g==null||s==null))throw new RangeError("it's all or nothing, no half measures");let f=typeof o>"u",p=g===s&&!f,m=l&&!f,u=!p&&!f&&!m;if(typeof e[a]>"u"){if(typeof e=="string")return;typeof o=="string"?e[a]="":e[a]=[]}let c=e[a];if(Array.isArray(c)){if(m){Array.isArray(o)?c.push(...o):c.push(o);return}if(p||u){Array.isArray(o)?c.splice(g,s-g,...o):c.splice(g,s-g,o);return}if(f){c.splice(g,s-g);return}throw new Error("i don't know what happened")}if(typeof c=="string"){if(m){e[a]=c+o;return}if(u||p){e[a]=c.slice(0,g)+(typeof o=="string"?o:o.map(b=>typeof b=="string"?b:vr).join(""))+c.slice(s);return}if(f){e[a]=c.slice(0,g)+c.slice(s);return}throw new Error("i don't know what happened")}if(je(c)&&h&&typeof n[0]=="string"){delete c[n[0]];return}throw new Error("not implemented")}if(typeof a>"u"){if(typeof n!="string")throw new Error(`can't index top-level map with ${n}`);typeof o>"u"?delete e[n]:e[n]=o;return}if(typeof e[a]>"u"&&(e[a]={}),h){let[g,s]=n;g!=null&&s!=null&&(typeof o>"u"&&g!=null&&s!=null?delete e[a][g||s]:e[a][g||s]=o)}else if(typeof o>"u")delete e[a][n];else{if(typeof e[a]=="string")return;e[a][n]=o}return}if(typeof a>"u")throw new Error("cant treat top level as a seq");a=a;let d=i[0];if(typeof e[a]>"u")if(typeof d=="string")e[a]={};else if(typeof d=="number")e[a]=[];else throw new Error(`can't go down this road ${e}.${a}.${d}`);e=e[a]}}function Ne(e,r){for(let t=0;t<r.length;t++)e=e?e[r[t]]:void 0;return e}function Ve(e,r){let t=e.path.slice(0,-1),n=e.path[e.path.length-1];switch(e.action){case"mark":case"unmark":return Be(`skipping ${e.action} because it doesn't affect material reality`),[];case"inc":if(r)return[t,n,Ne(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"conflict":if(r)return[t,n,Ne(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"del":return typeof n=="string"?[t,n]:[t,[n,n+(e.length||1)]];case"insert":return[t,[n,n],structuredClone(e.values)];case"splice":return[t,[n,n],[e.value]];case"put":return[t,n,structuredClone(e.value)]}}function ne(e){return r=>{for(let t of e.patches)qe(r,...Ve(t,e))}}import{createMemo as _r}from"solid-js";import{onCleanup as wr}from"solid-js";import{createStore as xr,produce as yr,reconcile as Je}from"solid-js/store";var B=new WeakMap;function ae(e){if(wr(()=>{let i=B.get(e);i&&(i.refs--||i.cleanup())}),B.has(e)){let i=B.get(e);return i.refs++,i.store}let[r,t]=xr(structuredClone(e.doc()));B.set(e,{refs:0,store:r,cleanup(){e.off("change",n),e.off("delete",o),B.delete(e)}});function n(i){if(i.scopeReplaced){t(Je(i.doc??{}));return}t(yr(ne(i)))}function o(){t(Je({}))}return e.on("change",n),e.on("delete",o),e.whenReady().then(()=>{t(structuredClone(e.doc()))}),r}import{getOwner as jn,onCleanup as Nn,createSignal as Hn,untrack as Bn,sharedConfig as qn,onMount as Vn,DEV as Jn,equalFn as Xn}from"solid-js";import{isServer as Kn}from"solid-js/web";var L=e=>typeof e=="function"&&!e.length?e():e;function ie(e){return _r(()=>L(e)&&ae(L(e)))}import{createEffect as kr,createResource as Sr,useContext as $r}from"solid-js";import{createContext as Cr}from"solid-js";var se=Cr(null);function q(e,r){let t=$r(se);if(!r?.repo&&!t)throw new Error("use outside <RepoContext> requires options.repo");let n=r?.repo||t;function o(){if(r?.["~skipInitialValue"])return;let d=L(e);if(!d)return;let h=n.findWithProgress(d).peek();return h.state==="ready"?h.handle:void 0}let[i,{mutate:a}]=Sr(e,d=>n.findWithProgress(d).whenReady(),{initialValue:o()});return kr(()=>{L(e)||a()}),i}function le(e,r){let t=q(e,r);return[ie(t),t]}import{onCleanup as ha}from"solid-js";import{createSignal as ma}from"solid-js";import{createEffect as va,onCleanup as wa}from"solid-js";import{createSignal as ya}from"solid-js";import{useContext as Ta}from"solid-js";import{getType as Rr}from"@inkandswitch/patchwork-filesystem";import{getRegistry as Fr,isLoadedPlugin as Lr}from"@inkandswitch/patchwork-plugins";import{createEffect as Mr,createMemo as de,createSignal as ke,onCleanup as Or,onMount as Ze,Show as Qe}from"solid-js";var Ge=Ye("<span class=threepane__title-text>"),Ar=Ye("<input class=threepane__title-input type=text>");function et(e){let r,[t,n]=ke();return Ze(()=>{n(r.closest("repo-provider")?.repo)}),Ce(Qe,{get when(){return t()},get fallback(){return(()=>{var o=Ge(),i=r;return typeof i=="function"?Ke(i,o):r=o,o})()},children:o=>Ce(zr,{get docUrl(){return e.docUrl},get repo(){return o()}})})}function zr(e){let[r,t]=le(()=>e.docUrl(),{repo:e.repo}),n=Fr("patchwork:datatype"),[o,i]=ke(0);Ze(()=>{let u=n.on("changed",()=>i(c=>c+1));Or(u)});let a=de(()=>{let u=r();return u?Rr(u):void 0});Mr(()=>{let u=a();u&&n.load(u)});let d=de(()=>{o();let u=a();if(!u)return;let c=n.get(u);return c&&Lr(c)?c:void 0}),h=de(()=>{let u=r(),c=d();if(!(!u||!c))return c.module.getTitle(u)}),g=de(()=>!!t()&&typeof d()?.module.setTitle=="function"),[s,l]=ke(!1),f;function p(){g()&&(l(!0),queueMicrotask(()=>{f?.focus(),f?.select()}))}function m(u){if(!s()||(l(!1),!u))return;let c=f?.value.trim();if(!c||c===h())return;let b=t(),v=d()?.module.setTitle;!b||!v||b.change(y=>{v(y,c);let C=y["@patchwork"];C&&(C.title=c)})}return Ce(Qe,{get when(){return s()},get fallback(){return(()=>{var u=Ge();return u.$$click=p,Ir(u,()=>h()??"Untitled"),Xe(c=>{var b=!!g(),v=g()?"Rename":void 0;return b!==c.e&&u.classList.toggle("threepane__title-text--editable",c.e=b),v!==c.t&&Dr(u,"title",c.t=v),c},{e:void 0,t:void 0}),u})()},get children(){var u=Ar();u.$$keydown=b=>{b.key==="Enter"?(b.preventDefault(),m(!0)):b.key==="Escape"&&(b.preventDefault(),m(!1))},u.addEventListener("blur",()=>m(!0));var c=f;return typeof c=="function"?Ke(c,u):f=u,Xe(()=>u.value=h()??""),u}})}Tr(["keydown","click"]);import{template as J}from"solid-js/web";import{delegateEvents as Kr}from"solid-js/web";import{getOwner as Gr}from"solid-js/web";import{insert as V}from"solid-js/web";import{createComponent as z}from"solid-js/web";import{Show as Se}from"solid-js";import{template as ce}from"solid-js/web";import{delegateEvents as Pr}from"solid-js/web";import{setStyleProperty as Ur}from"solid-js/web";import{setAttribute as tt}from"solid-js/web";import{insert as M}from"solid-js/web";import{memo as O}from"solid-js/web";import{effect as rt}from"solid-js/web";import{getOwner as Wr}from"solid-js/web";var jr=ce("<patchwork-view>",!0,!1,!1),Nr=ce("<div class=sidebar>"),ot=ce('<button class="sidebar-toggle sidebar-toggle--resizable"aria-label="Toggle or resize sidebar"title="Click to toggle, drag to resize">'),nt=ce('<button class="sidebar-toggle sidebar-toggle--resizable"aria-label="Expand sidebar"title="Click to expand, drag to resize">');function at(e){let r=()=>`${e.isCollapsed()?0:e.width()}px`,t=()=>e.children!==void 0?e.children:e.toolId&&e.docUrl?(()=>{var o=jr();return o._$owner=Wr(),rt(i=>{var a=e.docUrl,d=e.toolId;return a!==i.e&&(o.docUrl=i.e=a),d!==i.t&&(o.toolId=i.t=d),i},{e:void 0,t:void 0}),o})():null,n=()=>e.canExpand?.()??!0;return(()=>{var o=Nr();return M(o,(()=>{var i=O(()=>e.side==="left"&&!e.isCollapsed());return()=>i()&&t()})(),null),M(o,(()=>{var i=O(()=>e.side==="left"&&!e.isCollapsed());return()=>i()&&(()=>{var a=ot();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(o,(()=>{var i=O(()=>!!(e.side==="left"&&e.isCollapsed()&&n()));return()=>i()&&(()=>{var a=nt();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(o,(()=>{var i=O(()=>e.side==="right"&&!e.isCollapsed());return()=>i()&&(()=>{var a=ot();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(o,(()=>{var i=O(()=>!!(e.side==="right"&&e.isCollapsed()&&n()));return()=>i()&&(()=>{var a=nt();return a.$$mousedown=d=>e.onMouseDown(e.side,d),a.$$click=d=>e.onToggleClick(e.side,d),a})()})(),null),M(o,(()=>{var i=O(()=>e.side==="right"&&!e.isCollapsed());return()=>i()&&t()})(),null),rt(i=>{var a=e.side,d=e.isCollapsed()?"":void 0,h=r();return a!==i.e&&tt(o,"data-side",i.e=a),d!==i.t&&tt(o,"data-collapsed",i.t=d),h!==i.a&&Ur(o,"width",i.a=h),i},{e:void 0,t:void 0,a:void 0}),o})()}Pr(["click","mousedown"]);import{template as st}from"solid-js/web";import{delegateEvents as Hr}from"solid-js/web";import{setAttribute as Br}from"solid-js/web";import{effect as qr}from"solid-js/web";import{insert as it}from"solid-js/web";import{createComponent as Vr}from"solid-js/web";import{For as Yr}from"solid-js";var Jr=st("<div role=tablist class=context-sidebar__tablist>"),Xr=st("<button type=button role=tab class=context-sidebar__tab>");function lt(e){let r=()=>{let t=e.items().map(o=>o.id),n=e.selectedToolId();return n&&t.includes(n)?n:t[0]};return(()=>{var t=Jr();return it(t,Vr(Yr,{get each(){return e.items()},children:n=>(()=>{var o=Xr();return o.$$click=()=>e.setSelectedToolId(n.id),it(o,()=>n.name),qr(()=>Br(o,"data-active",r()===n.id?"":void 0)),o})()})),t})()}Hr(["click"]);var Zr=J('<div class=context-sidebar__tabs><button type=button class=context-sidebar__close title="Hide context sidebar"aria-label="Hide context sidebar">'),Qr=J("<div class=context-sidebar__content>"),eo=J("<div class=context-sidebar>"),to=J("<patchwork-view>",!0,!1,!1),ro=J('<svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=var(--studio-chrome-line) stroke-width=1.75 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d="M15 3v18">');function dt(e){let r=H("context-tool"),t=()=>{let n=r().map(i=>i.id),o=e.selectedToolId();return o&&n.includes(o)?o:n[0]};return z(at,{side:"right",get isCollapsed(){return e.isCollapsed},get width(){return e.width},get onMouseDown(){return e.onMouseDown},get onToggleClick(){return e.onToggleClick},get canExpand(){return e.canExpand},get children(){var n=eo();return V(n,z(Se,{get when(){return r().length},get children(){var o=Zr(),i=o.firstChild;return V(o,z(lt,{items:r,get selectedToolId(){return e.selectedToolId},get setSelectedToolId(){return e.setSelectedToolId}}),i),i.$$click=()=>e.onCollapse(),V(i,z($e,{})),o}}),null),V(n,z(Se,{get when(){return!e.isCollapsed()},get children(){var o=Qr();return V(o,z(Se,{get when(){return t()},keyed:!0,children:i=>(()=>{var a=to();return a.component=i,a._$owner=Gr(),a})()})),o}}),null),n}})}function $e(){return ro()}Kr(["click"]);import{template as oo}from"solid-js/web";import{effect as ct}from"solid-js/web";import{getOwner as ut}from"solid-js/web";import{createComponent as no}from"solid-js/web";import{memo as ao}from"solid-js/web";import{Show as io}from"solid-js";var ft=oo("<patchwork-view>",!0,!1,!1),Ee=e=>Array.isArray(e)?String(e[0]):String(e);function zi(e){let r=new Set;return e.filter(t=>{let n=Ee(t);return r.has(n)?!1:(r.add(n),!0)})}function Pi(e){return no(io,{get when(){return ao(()=>!!Array.isArray(e.slot))()?e.slot:!1},get fallback(){return(()=>{var r=ft();return r._$owner=ut(),ct(()=>r.component=String(e.slot)),r})()},children:r=>(()=>{var t=ft();return t._$owner=ut(),ct(n=>{var o=r()[1],i=r()[0];return o!==n.e&&(t.docUrl=n.e=o),i!==n.t&&(t.toolId=n.t=i),n},{e:void 0,t:void 0}),t})()})}var uo=X("<div class=threepane__title>"),fo=X("<div class=threepane__doctitle-tools>"),ho=X('<button type=button class=frame__sidebar-toggle title="Show context sidebar"aria-label="Show context sidebar">'),po=X("<div class=frame__topbar><div class=threepane__spacer>"),mo=X("<patchwork-view>",!0,!1,!1);function mt(e){let r=()=>e.toolSlots()??[];return(()=>{var t=po(),n=t.firstChild;return P(t,U(Te,{get when(){return e.docUrl()},get children(){var o=uo();return P(o,U(et,{get docUrl(){return e.docUrl}})),o}}),n),P(t,U(Te,{get when(){return pt(()=>!!e.docUrl())()&&r().length},get children(){var o=fo();return P(o,U(go,{get each(){return r()},children:i=>(()=>{var a=mo();return a._$owner=lo(),ht(d=>{var h=Ee(i),g=e.docUrl();return h!==d.e&&(a.toolId=d.e=h),g!==d.t&&(a.docUrl=d.t=g),d},{e:void 0,t:void 0}),a})()})),o}}),null),P(t,U(Te,{get when(){return pt(()=>!!e.hasContext())()&&e.isRightCollapsed()},get children(){var o=ho();return o.$$click=()=>e.onToggleRight(),co(o,"aria-pressed",!1),P(o,U($e,{})),o}}),null),ht(()=>t.classList.toggle("frame__topbar--left-collapsed",!!e.isLeftCollapsed())),t})()}so(["click"]);import{template as De}from"solid-js/web";import{effect as bo}from"solid-js/web";import{getOwner as vo}from"solid-js/web";import{insert as gt}from"solid-js/web";import{memo as wo}from"solid-js/web";import{createComponent as xo}from"solid-js/web";import{use as yo}from"solid-js/web";import{Show as So}from"solid-js";var _o=De("<div class=document-view>"),Co=De("<patchwork-view>",!0,!1,!1),ko=De("<div class=placeholder>Select a document in the sidebar");function bt({viewKey:e,selectedDocUrl:r,toolId:t,ref:n}){return(()=>{var o=_o(),i=n;return typeof i=="function"?yo(i,o):n=o,gt(o,xo(So,{get when(){return e()},keyed:!0,children:a=>(()=>{var d=Co();return d._$owner=vo(),bo(h=>{var g=r(),s=t();return g!==h.e&&(d.docUrl=h.e=g),s!==h.t&&(d.toolId=h.t=s),h},{e:void 0,t:void 0}),d})()}),null),gt(o,(()=>{var a=wo(()=>!r());return()=>a()&&ko()})(),null),o})()}var $o=Ie("<patchwork-view component=patchwork-draft-state-provider>",!0,!1,!1),Eo=Ie("<div class=frame__main-column><div class=frame__doc-column><div class=main-area>"),To=Ie("<patchwork-view component=patchwork-draft-overlay-provider><patchwork-view component=patchwork-comments-provider><patchwork-view component=patchwork-focus-provider>",!0,!1,!1),Ao=180,Ro=720,Fo=120,Lo=3;function yt(e){let[r,t]=S(e.initialRightCollapsed()),[n,o]=S(e.initialRightWidth());vt(xt(r,m=>{try{localStorage.setItem(k.rightCollapsed,String(m))}catch{}},{defer:!0})),vt(xt(n,m=>{try{localStorage.setItem(k.rightWidth,String(m))}catch{}},{defer:!0}));let[,i]=S(0),[,a]=S(!1),d=ye({setLeftSidebarWidth:i,setRightSidebarWidth:o,setIsSidebarCollapsed:a,setIsRightSidebarCollapsed:t,isLeftCollapsed:()=>e.isLeftCollapsed(),isRightCollapsed:r,minWidth:Ao,maxWidth:Ro,autoCloseWidth:Fo,dragThreshold:Lo});Io(()=>{let m=()=>t(!0);window.addEventListener(ee,m),Do(()=>window.removeEventListener(ee,m))});let[h,g]=ve(S(),{name:k.contextToolId}),[s,l]=S(),f=D("patchwork-draft-state-provider",s),p=()=>f()?s():void 0;return E(he,{get when(){return e.selectedDocUrl()},keyed:!0,children:m=>(()=>{var u=$o();return fe(l,u),u.docUrl=m,u._$owner=ue(),Y(u,E(he,{get when(){return p()},children:c=>E(Mo,{get host(){return c()},get setMainDocElement(){return e.setMainDocElement},get selectedDocUrl(){return e.selectedDocUrl},get selectedToolId(){return e.selectedToolId},get doctitleSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},isRightSidebarCollapsed:r,setIsRightSidebarCollapsed:t,rightSidebarWidth:n,get handleMouseDown(){return d.handleMouseDown},get handleToggleClick(){return d.handleToggleClick},selectedContextToolId:h,setSelectedContextToolId:g})})),u})()})}function Mo(e){let r=H("context-tool"),t=()=>r().length>0,n=wt(()=>e.selectedDocUrl()),[o,i]=S(),a=D("patchwork-draft-overlay-provider",o),[d,h]=S(),g=D("patchwork-comments-provider",d),[s,l]=S(),f=D("patchwork-focus-provider",s),p=wt(()=>a()&&g()&&f());return(()=>{var m=To(),u=m.firstChild,c=u.firstChild;return fe(i,m),m._$owner=ue(),fe(h,u),u._$owner=ue(),fe(l,c),c._$owner=ue(),Y(c,E(he,{get when(){return p()},get children(){var b=Eo(),v=b.firstChild,y=v.firstChild;return Y(v,E(mt,{get docUrl(){return e.selectedDocUrl},get toolSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},hasContext:t,get isRightCollapsed(){return e.isRightSidebarCollapsed},onToggleRight:()=>e.setIsRightSidebarCollapsed(C=>!C)}),y),Y(y,E(bt,{viewKey:n,get selectedDocUrl(){return e.selectedDocUrl},get toolId(){return e.selectedToolId},ref:C=>e.setMainDocElement?.(C)})),Y(b,E(he,{get when(){return t()},get children(){return E(dt,{get selectedToolId(){return e.selectedContextToolId},get setSelectedToolId(){return e.setSelectedContextToolId},get isCollapsed(){return e.isRightSidebarCollapsed},get width(){return e.rightSidebarWidth},get onMouseDown(){return e.handleMouseDown},get onToggleClick(){return e.handleToggleClick},onCollapse:()=>e.setIsRightSidebarCollapsed(!0)})}}),null),b}})),m})()}var pe=`:root,
|
|
2
2
|
:host,
|
|
3
3
|
[theme] {
|
|
4
4
|
--threepane-bg: var(--studio-fill, white);
|
|
@@ -965,5 +965,5 @@ import{a as be,b as Et}from"./chunk-FW4363Y4.js";var Oe=be((An,Me)=>{var A=1e3,R
|
|
|
965
965
|
body[data-sidebar-resizing] .sidebar {
|
|
966
966
|
transition: none;
|
|
967
967
|
}
|
|
968
|
-
`;function _t(){let e="patchwork-frame-styles",
|
|
969
|
-
//# sourceMappingURL=chunk-
|
|
968
|
+
`;function _t(){let e="patchwork-frame-styles",r=document.getElementById(e);if(r){r.textContent!==pe&&(r.textContent=pe);return}let t=document.createElement("style");t.id=e,t.textContent=pe,document.head.append(t)}var jo=St("<patchwork-view component=patchwork-isolation root-component=threepane-isolation-root shared-providers=patchwork:contact,patchwork:selected-doc,patchwork:worker-channel shared-tools=llm-config-tray style=display:contents><script type=application/json data-root-component-data>",!0,!1,!1),No=St("<div class=frame>");function Os(e){let r=Ct(()=>{let n=new Set,o=e.selectedDocUrl();return o&&n.add(o),e.contactUrl&&n.add(e.contactUrl),[...n]}),t=Ct(()=>JSON.stringify({selectedDocUrl:e.selectedDocUrl(),selectedToolId:e.selectedToolId(),doctitleSlots:e.doctitleSlots(),isLeftCollapsed:e.isLeftCollapsed(),initialRightWidth:e.initialRightWidth(),initialRightCollapsed:e.initialRightCollapsed()}));return(()=>{var n=jo(),o=n.firstChild;return n._$owner=Wo(),$t(o,t),Uo(()=>Po(n,"automerge-allowlist",r().join(","))),n})()}function kt(e){if(!e?.textContent)return{};try{return JSON.parse(e.textContent)}catch(r){return console.error("[threepane-isolation-root] bad props JSON:",r),{}}}function zs(e){_t();let r=e.querySelector('script[type="application/json"]'),[t,n]=Ho(kt(r)),o=new MutationObserver(()=>{n(Bo(kt(r)))});r&&o.observe(r,{characterData:!0,childList:!0,subtree:!0});let i=qo(()=>(()=>{var a=No();return $t(a,zo(yt,{selectedDocUrl:()=>t.selectedDocUrl,selectedToolId:()=>t.selectedToolId,doctitleSlots:()=>t.doctitleSlots,isLeftCollapsed:()=>t.isLeftCollapsed??!1,initialRightWidth:()=>t.initialRightWidth??N,initialRightCollapsed:()=>t.initialRightCollapsed??!1})),a})(),e);return()=>{o.disconnect(),i()}}export{We as a,q as b,k as c,ee as d,N as e,we as f,xe as g,At as h,ye as i,jt as j,nr as k,ar as l,at as m,Ee as n,zi as o,Pi as p,bt as q,yt as r,_t as s,Os as t,zs as u};
|
|
969
|
+
//# sourceMappingURL=chunk-FRVSEOM5.js.map
|