@web-noise/core 0.0.12-fix2 → 0.0.12-fix3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.js CHANGED
@@ -1,4 +1,4 @@
1
- let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{withTheme as i,ThemeProvider as l,Global as a,css as s,useTheme as d}from"@emotion/react";import c from"@emotion/styled";import{nanoid as p}from"nanoid";import{useState as h,useEffect as g,useMemo as u,useCallback as m,useRef as f,version as v}from"react";import{FaPlus as y}from"react-icons/fa6";import{MdClose as b,MdDragHandle as w,MdSettings as x,MdInfoOutline as C}from"react-icons/md";import{registerFetcher as $}from"@web-noise/fetch";import k,{getConnectedEdges as P,addEdge as N,applyNodeChanges as z,applyEdgeChanges as j,useOnViewportChange as E,Background as F,BackgroundVariant as S,MiniMap as T,Controls as D,ReactFlowProvider as M,useReactFlow as A,Position as O,Handle as _,ControlButton as I,getBezierPath as L}from"reactflow";import{create as H}from"zustand";import{setAudioNodeTypes as R,createPatch as W}from"@web-noise/patch";import{reverse as B,patch as G,create as V}from"jsondiffpatch";import{injectGlobal as U}from"@emotion/css";import"reactflow/dist/style.css";import{useContextMenu as J,Item as X,Menu as Y,Separator as q}from"react-contexify";import"react-contexify/dist/ReactContexify.css";import K from"js-file-download";import Q from"hotkeys-js";import{createPortal as Z}from"react-dom";import{FileDrop as ee}from"react-file-drop";import{FaFileUpload as eo,FaQuestion as et,FaVolumeOff as er,FaMap as en,FaRegMap as ei}from"react-icons/fa";import{Resizable as el}from"re-resizable";import ea from"react-grid-layout";import"react-grid-layout/css/styles.css";import{AiFillLock as es,AiFillUnlock as ed}from"react-icons/ai";import{RxDashboard as ec}from"react-icons/rx";import ep from"react-modern-drawer";import"react-modern-drawer/dist/index.css";import{marked as eh}from"marked";let eg="web-noise-drag-handle",eu=`.${eg}`,em=10;(ew=ex||(ex={})).Gate="gate",ew.Number="number",ew.Audio="audio",ew.Any="any";let ef=e=>JSON.parse(JSON.stringify(e)),ev=(e,o)=>{let t=new Set(e.map(e=>e.id)),r=new Set(o.map(e=>e.id));return{added:o.filter(e=>!t.has(e.id)),removed:e.filter(e=>!r.has(e.id))}},ey=e=>!("type"in e)||"patch"===e.type,eb=e=>"audio"===e.type;var ew,ex,eC=H((e=(...e)=>{let[o,t]=e;return{...((e,o)=>({nodes:[],edges:[],onNodesChange:o=>{e(({nodes:e})=>({nodes:z(o,e).map(e=>({dragHandle:eu,...e}))}))},onEdgesChange:o=>{e(({edges:e})=>({edges:j(o,e)}))},onConnect:o=>{e(({edges:e})=>({edges:N(o,e)}))},addNode:o=>{e(({nodes:e})=>({nodes:e.concat(o)}))},setNodes:o=>{e({nodes:o})},setEdges:o=>{e({edges:o})},setNodesAndEdges:({nodes:o,edges:t})=>{e({nodes:o,edges:t})},getNodesAndEdges:()=>{let{nodes:e,edges:t}=o();return{nodes:e,edges:t}},clearElements:()=>{e({nodes:[],edges:[]})},getNode:e=>{let{nodes:t}=o();return t.find(o=>o.id===e)||null},updateNodeData:(o,t)=>{e(({nodes:e})=>({nodes:e.map(e=>e.id===o?{...e,data:{...e.data,...t}}:e)}))},nodeTypes:{},setNodeTypes:o=>e({nodeTypes:o})}))(...e),...((e,o)=>({history:{maxHistoryLength:5,buffer:[],pointer:0,skipCollect:!1,push:t=>{let{history:r}=o(),{maxHistoryLength:n,skipCollect:i}=r;i?e({history:{...r,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:o,pointer:r}=e,i=o.slice(Math.max(r-n+1,0),r);return{history:{...e,buffer:[...i,t],pointer:Math.min(r+1,n)}}})},back:()=>{let{nodes:t,edges:r,controlPanel:n,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a-1];if(!s)return;let d=B(s);d&&e({...G(ef({nodes:t,edges:r,controlPanel:n}),d),history:{...i,pointer:a-1,skipCollect:!0}})},forward:()=>{let{nodes:t,edges:r,controlPanel:n,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a];s&&e({...G(ef({nodes:t,edges:r,controlPanel:n}),s),history:{...i,pointer:a+1,skipCollect:!0}})},clear:()=>{let{history:t}=o();e({history:{...t,buffer:[],pointer:0,skipCollect:!0}})}}}))(...e),...((e,o)=>({patch:W(),nodesState:{}}))(...e),...((e,o)=>({project:{files:[]},setProject(o){e({project:o,currentFileIndex:0})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:t,updateFileContent:r,project:n}=o(),i=n.files[t];eb(i)||r(t,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:t,project:r}=o(),n=r.files[e];"audio"===n.type?console.log("audio file. skipping"):t(n.file)},currentFileIndex:0,setCurrentFileIndex(t){let{currentFileIndex:r}=o();t!==r&&e({currentFileIndex:t})},updateFileContent(t,r){let{project:n}=o();e({project:{...n,files:n.files.map((e,o)=>o===t?{...e,...r}:e)}})},updateFileName(t,r){let{project:n}=o();e({project:{...n,files:n.files.map((e,o)=>o===t?{...e,name:r}:e)}})},addFile(t){let{project:r}=o(),n=[...r.files,t];e({project:{...r,files:n}})},deleteFile:t=>{let{project:r,currentFileIndex:n}=o();e({project:{...r,files:r.files.filter((e,o)=>t!==o)}}),t<=n&&e({currentFileIndex:n-1})}}))(...e),setGraph:async({nodes:e,edges:o})=>{let{patch:r,createNodes:n,createEdges:i,setNodesAndEdges:l,nodes:a,edges:s}=t();l({nodes:[],edges:[]}),await n(e),i(o)},clearGraph:()=>{let{setGraph:e}=t();e({nodes:[],edges:[]})},createNodes:async e=>{let{createNode:o}=t();await Promise.all(e.map(e=>o(e)))},createNode:e=>{let{addNode:o,nodesConfiguration:r}=t(),{type:n,id:i,data:l}=e;if(void 0===n)throw Error(`node type is not defined for node: ${i}`);o({...e,data:{...l,config:{...r[n]?.defaultConfig,...l?.config}}})},removeNode:e=>t().removeNodes([e]),removeNodes:e=>{let{edges:r,nodes:n,onNodesDelete:i,removeEdges:l,removeNodesFromControlPanel:a}=t(),s=e.map(({id:e})=>e),d=[...e,...n.filter(({parentNode:e})=>e&&s.includes(e))];a(d),l(P(d,r)),i(d);let c=d.map(({id:e})=>e);o({nodes:n.filter(({id:e})=>!c.includes(e))})},removeEdges:e=>{let{edges:r,onEdgesDelete:n}=t(),i=e.map(({id:e})=>e);n(e),o({edges:r.filter(({id:e})=>!i.includes(e))})},createEdges:e=>{let{patch:o,edges:r,setEdges:n}=t();n(e)},onConnect:async e=>{let{edges:o,createEdges:r}=t();r(N(e,o))},onEdgesDelete:e=>{let{patch:o}=t()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:o,patch:r}=t();o(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:r}=t();o({plugins:e});let n=e.reduce((e,o)=>({...e,...o.components.reduce((e,o)=>({...e,[o.type]:o}),{})}),{}),i=Object.keys(n).reduce((e,o)=>({...e,[o]:n[o].node}),{});R(Object.keys(n).reduce((e,o)=>({...e,[o]:n[o].audioNode}),{})),r(i),o(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...n}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{o(({config:o})=>({config:{...o,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:o,viewport:r}=t();return{...e(),controlPanel:o,viewport:r}},setEditorState:async({nodes:e,edges:r,controlPanel:n,viewport:i})=>{let{setGraph:l}=t();await l({nodes:e,edges:r}),await new Promise(e=>setTimeout(e,1e3)),o({controlPanel:n,viewport:i})},isHelpShown:!1,toggleHelp:()=>{let{isHelpShown:e}=t();o({isHelpShown:!e})},copyBuffer:{nodes:[],edges:[]},copy:e=>{o({copyBuffer:e})},copySelectedItems:()=>{let{nodes:e,edges:o,copy:r}=t(),n=e.filter(({selected:e})=>e),i=o.filter(({selected:e})=>e);n.length&&r({nodes:n,edges:i})},pasteBuffer:(e=0,r=0)=>{let{copyBuffer:n,createNodes:i,setEdges:l,nodes:a,edges:s}=t(),{nodes:d,edges:c}=n;if(!d.length)return;o({nodes:a.map(e=>({...e,selected:!1}))});let p=d.reduce((e,o)=>!e||o.position.x<e.position.x&&o.position.y<e.position.y?o:e),h=p.position.x-e,g=p.position.y-r,{nodes:u,mapping:m}=d.reduce((e,o)=>{let t,r=(t=+new Date+Math.floor(1e3*Math.random()),o?.type?`${o.type}-${t}`:t.toString());return{nodes:[...e.nodes,{...o,id:r,position:{x:o.position.x-h,y:o.position.y-g},selected:!0}],mapping:{...e.mapping,[o.id]:r}}},{nodes:[],mapping:{}});i(u);let f=c.map(e=>{let o=m[e.source]||e.source,t=m[e.target]||e.target;return{...e,id:e.id.replace(e.source,o).replace(e.target,t),source:o,target:t,selected:!0}});l([...s.map(e=>({...e,selected:!1})),...f])},getControlPanelNode:e=>{let{nodesConfiguration:o}=t(),{type:r}=e;if(!r)return null;let n=o[r]?.controlPanelNode;return n||(console.error(`could not find node for type ${r}`),null)},controlPanel:{show:!0,nodes:[],size:{width:200,height:100}},showControlPanel:()=>o(({controlPanel:e})=>({controlPanel:{...e,show:!0}})),hideControlPanel:()=>o(({controlPanel:e})=>({controlPanel:{...e,show:!1}})),addNodeToControlPanel:e=>{let{nodesConfiguration:r}=t(),n=e.type?r[e.type]?.defaultConfig:{},{height:i}=n?.size||{},l={id:e.id,...i?{height:i/em}:{}};o(({controlPanel:e})=>({controlPanel:{...e,nodes:[...e.nodes,l]}}))},removeNodeFromControlPanel:e=>t().removeNodesFromControlPanel([e]),removeNodesFromControlPanel:e=>{let t=e.map(({id:e})=>e);o(({controlPanel:e})=>{let o=e.nodes.filter(({id:e})=>!t.includes(e));return{controlPanel:{...e,nodes:o}}})},setControlPanelNodes:e=>{o(({controlPanel:o})=>({controlPanel:{...o,nodes:e}}))},setControlPanelSize:e=>{o(({controlPanel:o})=>({controlPanel:{...o,size:e}}))},viewport:{x:0,y:0,zoom:1},setViewport:e=>o({viewport:e})}},o=(o,t,r)=>{let n,i,l,a=(i=V({propertyFilter:(e,o)=>!!(o.parent?.parent?.childName==="controlPanel"||["data","position","controlPanel"].includes(o.parent?.childName))||["controlPanel","size","edges","nodes","data","label","config","values","position","x","y"].includes(e)}),l=t(),(e,o)=>{e.currentFileIndex!==o.currentFileIndex&&t().history.clear(),clearTimeout(n),l||(l=o),n=setTimeout(()=>{let o=i.diff(l,e);l=null,o&&t().history.push(o)},500)});return r.subscribe(a),e((...e)=>o(...e),t,r)},(e,t,r)=>{r.subscribe(async(e,o)=>{});let n=new Set,i={...t(),nodes:[],edges:[]};return o(async(...o)=>{let r=t(),[l]=o,a={...i,..."function"==typeof l?l({...i}):l},s=ev(i.nodes,a.nodes),d=ev(i.edges,a.edges);i=a;let c=s.added,p=d.added,h=d.removed,g=s.removed,{patch:u}=r;if(c.length){let e=u.registerAudioNodes(c);n.add(e),await e,n.delete(e)}if(!(p.length||h.length||g.length))return void e(...o);if(n.size)try{await Promise.all([...n.values()])}catch(e){console.log("some error",e)}p.length&&u.registerAudioConnections(p),h.length&&u.unregisterAudioConnections(h),g.length&&u.unregisterAudioNodes(g),e(...o)},t,r)})),e$={colors:{elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#14df42",whitePrimary:"#ffffff",error:"#db5353"},zIndex:{modal:9998,controlPanel:9999,resumeContextLayout:10003}};U`
1
+ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{withTheme as i,ThemeProvider as l,Global as a,css as s,useTheme as d}from"@emotion/react";import c from"@emotion/styled";import{nanoid as p}from"nanoid";import{useState as h,useEffect as g,version as u,useMemo as m,useCallback as f,useRef as v}from"react";import{FaPlus as y}from"react-icons/fa6";import{MdClose as b,MdDragHandle as w,MdSettings as x,MdInfoOutline as C}from"react-icons/md";import{registerFetcher as $}from"@web-noise/fetch";import k,{getConnectedEdges as P,addEdge as N,applyNodeChanges as z,applyEdgeChanges as j,useOnViewportChange as E,Background as F,BackgroundVariant as S,MiniMap as T,Controls as D,ReactFlowProvider as M,useReactFlow as A,Position as O,Handle as _,ControlButton as I,getBezierPath as L}from"reactflow";import{create as H}from"zustand";import{setAudioNodeTypes as R,createPatch as W}from"@web-noise/patch";import{reverse as B,patch as G,create as V}from"jsondiffpatch";import{injectGlobal as U}from"@emotion/css";import"reactflow/dist/style.css";import{useContextMenu as J,Item as X,Menu as Y,Separator as q}from"react-contexify";import"react-contexify/dist/ReactContexify.css";import K from"js-file-download";import Q from"hotkeys-js";import{createPortal as Z}from"react-dom";import{FileDrop as ee}from"react-file-drop";import{FaFileUpload as eo,FaQuestion as et,FaVolumeOff as er,FaMap as en,FaRegMap as ei}from"react-icons/fa";import{Resizable as el}from"re-resizable";import ea from"react-grid-layout";import"react-grid-layout/css/styles.css";import{AiFillLock as es,AiFillUnlock as ed}from"react-icons/ai";import{RxDashboard as ec}from"react-icons/rx";import ep from"react-modern-drawer";import"react-modern-drawer/dist/index.css";import{marked as eh}from"marked";let eg="web-noise-drag-handle",eu=`.${eg}`,em=10;(ew=ex||(ex={})).Gate="gate",ew.Number="number",ew.Audio="audio",ew.Any="any";let ef=e=>JSON.parse(JSON.stringify(e)),ev=(e,o)=>{let t=new Set(e.map(e=>e.id)),r=new Set(o.map(e=>e.id));return{added:o.filter(e=>!t.has(e.id)),removed:e.filter(e=>!r.has(e.id))}},ey=e=>!("type"in e)||"patch"===e.type,eb=e=>"audio"===e.type;var ew,ex,eC=H((e=(...e)=>{let[o,t]=e;return{...((e,o)=>({nodes:[],edges:[],onNodesChange:o=>{e(({nodes:e})=>({nodes:z(o,e).map(e=>({dragHandle:eu,...e}))}))},onEdgesChange:o=>{e(({edges:e})=>({edges:j(o,e)}))},onConnect:o=>{e(({edges:e})=>({edges:N(o,e)}))},addNode:o=>{e(({nodes:e})=>({nodes:e.concat(o)}))},setNodes:o=>{e({nodes:o})},setEdges:o=>{e({edges:o})},setNodesAndEdges:({nodes:o,edges:t})=>{e({nodes:o,edges:t})},getNodesAndEdges:()=>{let{nodes:e,edges:t}=o();return{nodes:e,edges:t}},clearElements:()=>{e({nodes:[],edges:[]})},getNode:e=>{let{nodes:t}=o();return t.find(o=>o.id===e)||null},updateNodeData:(o,t)=>{e(({nodes:e})=>({nodes:e.map(e=>e.id===o?{...e,data:{...e.data,...t}}:e)}))},nodeTypes:{},setNodeTypes:o=>e({nodeTypes:o})}))(...e),...((e,o)=>({history:{maxHistoryLength:5,buffer:[],pointer:0,skipCollect:!1,push:t=>{let{history:r}=o(),{maxHistoryLength:n,skipCollect:i}=r;i?e({history:{...r,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:o,pointer:r}=e,i=o.slice(Math.max(r-n+1,0),r);return{history:{...e,buffer:[...i,t],pointer:Math.min(r+1,n)}}})},back:()=>{let{nodes:t,edges:r,controlPanel:n,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a-1];if(!s)return;let d=B(s);d&&e({...G(ef({nodes:t,edges:r,controlPanel:n}),d),history:{...i,pointer:a-1,skipCollect:!0}})},forward:()=>{let{nodes:t,edges:r,controlPanel:n,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a];s&&e({...G(ef({nodes:t,edges:r,controlPanel:n}),s),history:{...i,pointer:a+1,skipCollect:!0}})},clear:()=>{let{history:t}=o();e({history:{...t,buffer:[],pointer:0,skipCollect:!0}})}}}))(...e),...((e,o)=>({patch:W(),nodesState:{}}))(...e),...((e,o)=>({project:{files:[]},setProject(o){e({project:o,currentFileIndex:0})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:t,updateFileContent:r,project:n}=o(),i=n.files[t];eb(i)||r(t,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:t,project:r}=o(),n=r.files[e];"audio"===n.type?console.log("audio file. skipping"):t(n.file)},currentFileIndex:0,setCurrentFileIndex(t){let{currentFileIndex:r}=o();t!==r&&e({currentFileIndex:t})},updateFileContent(t,r){let{project:n}=o();e({project:{...n,files:n.files.map((e,o)=>o===t?{...e,...r}:e)}})},updateFileName(t,r){let{project:n}=o();e({project:{...n,files:n.files.map((e,o)=>o===t?{...e,name:r}:e)}})},addFile(t){let{project:r}=o(),n=[...r.files,t];e({project:{...r,files:n}})},deleteFile:t=>{let{project:r,currentFileIndex:n}=o();e({project:{...r,files:r.files.filter((e,o)=>t!==o)}}),t<=n&&e({currentFileIndex:n-1})}}))(...e),setGraph:async({nodes:e,edges:o})=>{let{patch:r,createNodes:n,createEdges:i,setNodesAndEdges:l,nodes:a,edges:s}=t();l({nodes:[],edges:[]}),await n(e),i(o)},clearGraph:()=>{let{setGraph:e}=t();e({nodes:[],edges:[]})},createNodes:async e=>{let{createNode:o}=t();await Promise.all(e.map(e=>o(e)))},createNode:e=>{let{addNode:o,nodesConfiguration:r}=t(),{type:n,id:i,data:l}=e;if(void 0===n)throw Error(`node type is not defined for node: ${i}`);o({...e,data:{...l,config:{...r[n]?.defaultConfig,...l?.config}}})},removeNode:e=>t().removeNodes([e]),removeNodes:e=>{let{edges:r,nodes:n,onNodesDelete:i,removeEdges:l,removeNodesFromControlPanel:a}=t(),s=e.map(({id:e})=>e),d=[...e,...n.filter(({parentNode:e})=>e&&s.includes(e))];a(d),l(P(d,r)),i(d);let c=d.map(({id:e})=>e);o({nodes:n.filter(({id:e})=>!c.includes(e))})},removeEdges:e=>{let{edges:r,onEdgesDelete:n}=t(),i=e.map(({id:e})=>e);n(e),o({edges:r.filter(({id:e})=>!i.includes(e))})},createEdges:e=>{let{patch:o,edges:r,setEdges:n}=t();n(e)},onConnect:async e=>{let{edges:o,createEdges:r}=t();r(N(e,o))},onEdgesDelete:e=>{let{patch:o}=t()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:o,patch:r}=t();o(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:r}=t();o({plugins:e});let n=e.reduce((e,o)=>({...e,...o.components.reduce((e,o)=>({...e,[o.type]:o}),{})}),{}),i=Object.keys(n).reduce((e,o)=>({...e,[o]:n[o].node}),{});R(Object.keys(n).reduce((e,o)=>({...e,[o]:n[o].audioNode}),{})),r(i),o(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...n}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{o(({config:o})=>({config:{...o,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:o,viewport:r}=t();return{...e(),controlPanel:o,viewport:r}},setEditorState:async({nodes:e,edges:r,controlPanel:n,viewport:i})=>{let{setGraph:l}=t();await l({nodes:e,edges:r}),await new Promise(e=>setTimeout(e,1e3)),o({controlPanel:n,viewport:i})},isHelpShown:!1,toggleHelp:()=>{let{isHelpShown:e}=t();o({isHelpShown:!e})},copyBuffer:{nodes:[],edges:[]},copy:e=>{o({copyBuffer:e})},copySelectedItems:()=>{let{nodes:e,edges:o,copy:r}=t(),n=e.filter(({selected:e})=>e),i=o.filter(({selected:e})=>e);n.length&&r({nodes:n,edges:i})},pasteBuffer:(e=0,r=0)=>{let{copyBuffer:n,createNodes:i,setEdges:l,nodes:a,edges:s}=t(),{nodes:d,edges:c}=n;if(!d.length)return;o({nodes:a.map(e=>({...e,selected:!1}))});let p=d.reduce((e,o)=>!e||o.position.x<e.position.x&&o.position.y<e.position.y?o:e),h=p.position.x-e,g=p.position.y-r,{nodes:u,mapping:m}=d.reduce((e,o)=>{let t,r=(t=+new Date+Math.floor(1e3*Math.random()),o?.type?`${o.type}-${t}`:t.toString());return{nodes:[...e.nodes,{...o,id:r,position:{x:o.position.x-h,y:o.position.y-g},selected:!0}],mapping:{...e.mapping,[o.id]:r}}},{nodes:[],mapping:{}});i(u);let f=c.map(e=>{let o=m[e.source]||e.source,t=m[e.target]||e.target;return{...e,id:e.id.replace(e.source,o).replace(e.target,t),source:o,target:t,selected:!0}});l([...s.map(e=>({...e,selected:!1})),...f])},getControlPanelNode:e=>{let{nodesConfiguration:o}=t(),{type:r}=e;if(!r)return null;let n=o[r]?.controlPanelNode;return n||(console.error(`could not find node for type ${r}`),null)},controlPanel:{show:!0,nodes:[],size:{width:200,height:100}},showControlPanel:()=>o(({controlPanel:e})=>({controlPanel:{...e,show:!0}})),hideControlPanel:()=>o(({controlPanel:e})=>({controlPanel:{...e,show:!1}})),addNodeToControlPanel:e=>{let{nodesConfiguration:r}=t(),n=e.type?r[e.type]?.defaultConfig:{},{height:i}=n?.size||{},l={id:e.id,...i?{height:i/em}:{}};o(({controlPanel:e})=>({controlPanel:{...e,nodes:[...e.nodes,l]}}))},removeNodeFromControlPanel:e=>t().removeNodesFromControlPanel([e]),removeNodesFromControlPanel:e=>{let t=e.map(({id:e})=>e);o(({controlPanel:e})=>{let o=e.nodes.filter(({id:e})=>!t.includes(e));return{controlPanel:{...e,nodes:o}}})},setControlPanelNodes:e=>{o(({controlPanel:o})=>({controlPanel:{...o,nodes:e}}))},setControlPanelSize:e=>{o(({controlPanel:o})=>({controlPanel:{...o,size:e}}))},viewport:{x:0,y:0,zoom:1},setViewport:e=>o({viewport:e})}},o=(o,t,r)=>{let n,i,l,a=(i=V({propertyFilter:(e,o)=>!!(o.parent?.parent?.childName==="controlPanel"||["data","position","controlPanel"].includes(o.parent?.childName))||["controlPanel","size","edges","nodes","data","label","config","values","position","x","y"].includes(e)}),l=t(),(e,o)=>{e.currentFileIndex!==o.currentFileIndex&&t().history.clear(),clearTimeout(n),l||(l=o),n=setTimeout(()=>{let o=i.diff(l,e);l=null,o&&t().history.push(o)},500)});return r.subscribe(a),e((...e)=>o(...e),t,r)},(e,t,r)=>{r.subscribe(async(e,o)=>{});let n=new Set,i={...t(),nodes:[],edges:[]};return o(async(...o)=>{let r=t(),[l]=o,a={...i,..."function"==typeof l?l({...i}):l},s=ev(i.nodes,a.nodes),d=ev(i.edges,a.edges);i=a;let c=s.added,p=d.added,h=d.removed,g=s.removed,{patch:u}=r;if(c.length){let e=u.registerAudioNodes(c);n.add(e),await e,n.delete(e)}if(!(p.length||h.length||g.length))return void e(...o);if(n.size)try{await Promise.all([...n.values()])}catch(e){console.log("some error",e)}p.length&&u.registerAudioConnections(p),h.length&&u.unregisterAudioConnections(h),g.length&&u.unregisterAudioNodes(g),e(...o)},t,r)})),e$={colors:{elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#14df42",whitePrimary:"#ffffff",error:"#db5353"},zIndex:{modal:9998,controlPanel:9999,resumeContextLayout:10003}};U`
2
2
  .react-flow {
3
3
  .react-flow__pane {
4
4
  /* background: rgb(106 106 106); */
@@ -140,7 +140,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
140
140
  `),eW=i(c.div`
141
141
  color: ${({theme:e})=>e.colors.highlight2};
142
142
  font-size: 12px;
143
- `);var eB=({onComponentClick:e,filters:{plugin:o,search:n="",tags:i},onTagClick:l})=>{let a=eC(({plugins:e})=>e),s=u(()=>o?a.filter(({name:e})=>e===o):a,[a,o]);return t(eD,{children:u(()=>n||i?.length?s.map(e=>({...e,components:i?.length?e.components.filter(e=>i?.every(o=>e.tags?.includes(o))):e.components})).map(e=>({...e,components:e.components.filter(({type:e,name:o})=>e.toLocaleLowerCase().includes(n.toLocaleLowerCase())||o?.toLocaleLowerCase().includes(n.toLocaleLowerCase()))})):s,[s,n,i]).map(({name:o,description:n,components:a},s)=>a.length?r(eM,{children:[r(eH,{children:[t(eR,{children:o}),t(eW,{children:n})]}),t(eA,{children:a.sort((e,o)=>e.type.toLowerCase()>o.type.toLowerCase()?1:-1).map((o,n)=>r("li",{onClick:()=>e(o),children:[t(eO,{children:o.name||o.type}),o.description&&t(e_,{children:o.description}),t(eI,{children:o.tags?.map((e,o)=>t(eL,{isActive:i?.includes(e),onClickCapture:o=>{o.stopPropagation(),l(e)},children:e},o))})]},n))})]},s):null)})};let eG=c.div`
143
+ `);var eB=({onComponentClick:e,filters:{plugin:o,search:n="",tags:i},onTagClick:l})=>{let a=eC(({plugins:e})=>e),s=m(()=>o?a.filter(({name:e})=>e===o):a,[a,o]);return t(eD,{children:m(()=>n||i?.length?s.map(e=>({...e,components:i?.length?e.components.filter(e=>i?.every(o=>e.tags?.includes(o))):e.components})).map(e=>({...e,components:e.components.filter(({type:e,name:o})=>e.toLocaleLowerCase().includes(n.toLocaleLowerCase())||o?.toLocaleLowerCase().includes(n.toLocaleLowerCase()))})):s,[s,n,i]).map(({name:o,description:n,components:a},s)=>a.length?r(eM,{children:[r(eH,{children:[t(eR,{children:o}),t(eW,{children:n})]}),t(eA,{children:a.sort((e,o)=>e.type.toLowerCase()>o.type.toLowerCase()?1:-1).map((o,n)=>r("li",{onClick:()=>e(o),children:[t(eO,{children:o.name||o.type}),o.description&&t(e_,{children:o.description}),t(eI,{children:o.tags?.map((e,o)=>t(eL,{isActive:i?.includes(e),onClickCapture:o=>{o.stopPropagation(),l(e)},children:e},o))})]},n))})]},s):null)})};let eG=c.div`
144
144
  display: flex;
145
145
  position: relative;
146
146
  `,eV=c.input`
@@ -202,7 +202,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
202
202
  content: "×";
203
203
  margin-left: 0.4rem;
204
204
  }
205
- `);var eY=({onChange:e,value:o})=>{let n=ek(),i=eC(({plugins:e})=>e),l=f(null);return g(()=>{l.current&&l.current.focus()},[l]),r(eU,{theme:n,children:[t(eG,{children:t(eV,{ref:l,theme:n,value:o.search||"",placeholder:"search...",onChange:t=>e({...o,search:t.target.value})})}),t(eI,{children:o.tags?.map((r,n)=>t(eX,{isActive:!0,onClick:()=>{let t=o.tags?.filter(e=>e!==r)||[];e({...o,tags:t})},children:r},n))}),i.map(({name:i,components:l},a)=>i?r(eJ,{theme:n,children:[t("input",{type:"checkbox",name:"plugin",value:i,checked:i===o.plugin,onChange:()=>{e({...o,plugin:i===o.plugin?null:i})}}),t("span",{children:i})]},a):null)]})};let eq=c.div`
205
+ `);var eY=({onChange:e,value:o})=>{let n=ek(),i=eC(({plugins:e})=>e),l=v(null);return g(()=>{l.current&&l.current.focus()},[l]),r(eU,{theme:n,children:[t(eG,{children:t(eV,{ref:l,theme:n,value:o.search||"",placeholder:"search...",onChange:t=>e({...o,search:t.target.value})})}),t(eI,{children:o.tags?.map((r,n)=>t(eX,{isActive:!0,onClick:()=>{let t=o.tags?.filter(e=>e!==r)||[];e({...o,tags:t})},children:r},n))}),i.map(({name:i,components:l},a)=>i?r(eJ,{theme:n,children:[t("input",{type:"checkbox",name:"plugin",value:i,checked:i===o.plugin,onChange:()=>{e({...o,plugin:i===o.plugin?null:i})}}),t("span",{children:i})]},a):null)]})};let eq=c.div`
206
206
  height: 100%;
207
207
  width: 100%;
208
208
  display: flex;
@@ -211,7 +211,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
211
211
  flex-grow: 1;
212
212
  height: 100%;
213
213
  overflow-y: scroll;
214
- `;var eQ=({isOpen:e,closeMenu:o,mousePosition:n})=>{let i=ek(),{screenToFlowPosition:l}=A(),{createNode:a}=eC(({createNode:e})=>({createNode:e})),[s,d]=h({}),c=m(({type:e})=>{let{x:t,y:r}=l(n);a({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:t,y:r},targetPosition:O.Left,sourcePosition:O.Right}),o()},[n,l,a,o,n]);return e?t(eT,{onClose:()=>{o(),d({})},children:r(eq,{theme:i,children:[t(eY,{onChange:d,value:s}),t(eK,{theme:i,children:t(eB,{filters:s,onTagClick:e=>{d(o=>({...o,tags:o.tags?.includes(e)?o.tags.filter(o=>o!==e):[...o.tags||[],e]}))},onComponentClick:e=>{c(e),d({})}})})]})}):null};let eZ=c.div`
214
+ `;var eQ=({isOpen:e,closeMenu:o,mousePosition:n})=>{let i=ek(),{screenToFlowPosition:l}=A(),{createNode:a}=eC(({createNode:e})=>({createNode:e})),[s,d]=h({}),c=f(({type:e})=>{let{x:t,y:r}=l(n);a({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:t,y:r},targetPosition:O.Left,sourcePosition:O.Right}),o()},[n,l,a,o,n]);return e?t(eT,{onClose:()=>{o(),d({})},children:r(eq,{theme:i,children:[t(eY,{onChange:d,value:s}),t(eK,{theme:i,children:t(eB,{filters:s,onTagClick:e=>{d(o=>({...o,tags:o.tags?.includes(e)?o.tags.filter(o=>o!==e):[...o.tags||[],e]}))},onComponentClick:e=>{c(e),d({})}})})]})}):null};let eZ=c.div`
215
215
  display: flex;
216
216
  align-items: center;
217
217
  justify-content: center;
@@ -249,7 +249,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
249
249
  height: 8rem;
250
250
  `,e2=c.div`
251
251
  font-size: 2rem;
252
- `;var e3=({isOpen:e,closeMenu:o})=>{let n=ek(),i=eC(({setGraph:e})=>e),l=eC(e=>e.setEditorState),a=f(null),s=m(e=>{let[t]=e||[];t.text().then(JSON.parse).then(e=>{l(e),o()}).catch(console.error)},[i,o]);return e?t(eT,{onClose:o,children:r(eZ,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>s(e),ref:a,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{a.current?.click()},onDrop:e=>s(e),children:r(e0,{theme:n,children:[t(e1,{}),t(e2,{children:"click or drop file here"})]})})]})}):null};let e8=c.div`
252
+ `;var e3=({isOpen:e,closeMenu:o})=>{let n=ek(),i=eC(({setGraph:e})=>e),l=eC(e=>e.setEditorState),a=v(null),s=f(e=>{let[t]=e||[];t.text().then(JSON.parse).then(e=>{l(e),o()}).catch(console.error)},[i,o]);return e?t(eT,{onClose:o,children:r(eZ,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>s(e),ref:a,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{a.current?.click()},onDrop:e=>s(e),children:r(e0,{theme:n,children:[t(e1,{}),t(e2,{children:"click or drop file here"})]})})]})}):null};let e8=c.div`
253
253
  display: flex;
254
254
  align-items: center;
255
255
  justify-content: center;
@@ -287,7 +287,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
287
287
  height: 8rem;
288
288
  `,e7=c.div`
289
289
  font-size: 2rem;
290
- `;var e6=({isOpen:e,closeMenu:o})=>{let n=ek(),i=eC(e=>e.setProject),l=f(null),a=m(e=>{let[t]=e||[];t.text().then(JSON.parse).then(e=>{i(e),o()}).catch(console.error)},[i,o]);return e?t(eT,{onClose:o,children:r(e8,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>a(e),ref:l,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{l.current?.click()},onDrop:e=>a(e),children:r(e9,{theme:n,children:[t(e5,{}),t(e7,{children:"click or drop file here"})]})})]})}):null};console.log(888888,`React version: ${v}`);let e4=e=>new Promise((o,t)=>{let r=new FileReader;r.readAsDataURL(e),r.onload=()=>o(r.result?.toString()||""),r.onerror=e=>t(e)}),oe=c.div`
290
+ `;var e6=({isOpen:e,closeMenu:o})=>{let n=ek(),i=eC(e=>e.setProject),l=v(null),a=f(e=>{let[t]=e||[];t.text().then(JSON.parse).then(e=>{i(e),o()}).catch(console.error)},[i,o]);return e?t(eT,{onClose:o,children:r(e8,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>a(e),ref:l,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{l.current?.click()},onDrop:e=>a(e),children:r(e9,{theme:n,children:[t(e5,{}),t(e7,{children:"click or drop file here"})]})})]})}):null};console.log(888888,`React version: ${u}`);let e4=e=>new Promise((o,t)=>{let r=new FileReader;r.readAsDataURL(e),r.onload=()=>o(r.result?.toString()||""),r.onerror=e=>t(e)}),oe=c.div`
291
291
  display: flex;
292
292
  align-items: center;
293
293
  justify-content: center;
@@ -325,7 +325,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
325
325
  height: 8rem;
326
326
  `,or=c.div`
327
327
  font-size: 2rem;
328
- `;var on=({isOpen:e,closeMenu:o})=>{let n=ek();eC(({setGraph:e})=>e),eC(e=>e.setEditorState);let i=eC(e=>e.addFile),l=f(null),a=m(async e=>{let[t]=e||[],r=await e4(t);i({type:"audio",id:`audio-file-${+new Date}`,name:t.name,file:r}),o()},[i,o]);return e?t(eT,{onClose:o,children:r(oe,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>a(e),ref:l,type:"file",className:"hidden",style:{display:"none"},accept:".wav,.mp3,.ogg"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{l.current?.click()},onDrop:e=>a(e),children:r(oo,{theme:n,children:[t(ot,{}),t(or,{children:"click or drop file here"})]})})]})}):null};let oi="editor-menu";var ol=({editorContextMenu:e=[]})=>{let o=ek(),[i,l]=h({x:0,y:0}),[a,s]=h(!1),[d,c]=h(!1),[p,f]=h(!1),[v,y]=h(!1),b=m((e,o)=>{l({x:e,y:o}),s(!0)},[s]),w=eC(e=>e.pasteBuffer),{screenToFlowPosition:x}=A(),C=m(e=>{let{x:o,y:t}=x(e);w(o,t)},[s,x]),$=eC(({clearGraph:e})=>e),k=eC(e=>e.getEditorState),P=eC(e=>e.getProject),N=m(()=>{$()},[$]),z=eC(e=>e.toggleHelp),j=eC(e=>e.history.back),E=eC(e=>e.history.forward),F=eC(e=>e.history.pointer),S=eC(e=>e.history.buffer),T=eC(e=>e.copySelectedItems),D=eC(e=>e.nodes),M=u(()=>D.filter(({selected:e})=>e),[D]),O=eC(e=>e.copyBuffer),_=A(),I=m(()=>{K(JSON.stringify({...k()},null,2),"web-noise-patch.json")},[k,_]),L=m(()=>{K(JSON.stringify({...P()},null,2),"web-noise-project.json")},[k,_]);return g(()=>(Q("command+shift+a",()=>(b(200,50),!1)),Q("shift+/",()=>(z(),!1)),Q("command+z",()=>(j(),!1)),Q("command+shift+z",()=>(E(),!1)),Q("command+c",()=>(T(),!1)),Q("command+v",()=>(C({x:200,y:50}),!1)),()=>{Q.unbind()}),[b,C]),r(n,{children:[t(eQ,{isOpen:a,closeMenu:()=>s(!1),mousePosition:i}),t(e3,{isOpen:d,closeMenu:()=>c(!1)}),t(e6,{isOpen:p,closeMenu:()=>f(!1)}),t(on,{isOpen:v,closeMenu:()=>y(!1)}),r(eN,{id:oi,animation:!1,colors:o.colors,children:[t(eP,{onClick:({triggerEvent:{clientX:e,clientY:o}})=>b(e,o),children:"Add Node (⌘+⇧+A)"}),t(q,{}),t(eP,{onClick:N,children:"Delete All"}),t(q,{}),t(eP,{onClick:I,children:"Download patch"}),t(eP,{onClick:()=>c(!0),children:"Upload patch"}),t(q,{}),t(eP,{onClick:L,children:"Download project"}),t(eP,{onClick:()=>f(!0),children:"Upload project"}),t(q,{}),t(eP,{onClick:()=>y(!0),children:"Upload Audio File"}),t(q,{}),t(eP,{disabled:0===F,onClick:j,children:"Undo (⌘+z)"}),t(eP,{disabled:F===S.length,onClick:E,children:"Redo (⌘+⇧+Z)"}),t(q,{}),t(eP,{disabled:!M.length,onClick:T,children:"Copy Selected (⌘+c)"}),t(eP,{disabled:!O.nodes.length,onClick:({triggerEvent:{clientX:e,clientY:o}})=>C({x:e,y:o}),children:"Paste (⌘+v)"}),t(q,{}),e.map((e,o)=>t(eP,{children:e},o)),t(q,{}),t(eP,{onClick:z,children:"Help (⇧+?)"})]})]})};let oa="editor-node-menu";var os=e=>{let o=ek(),i=eC(e=>e.removeNodes),l=eC(e=>e.addNodeToControlPanel),a=eC(e=>e.removeNodeFromControlPanel),s=eC(e=>e.copy),d=eC(e=>e.nodesConfiguration),c=eC(e=>e.controlPanel.nodes),p=m(({props:e})=>!!e?.node.type&&!!c.find(({id:o})=>o===e.node.id),[c]),h=m(({props:e})=>{if(!e?.node.type)return!1;let o=d[e.node.type];return!!o?.controlPanelNode},[d]);return t(n,{children:r(eN,{id:oa,animation:!1,colors:o.colors,children:[t(eP,{onClick:e=>i([e.props.node]),children:"Delete Node (DEL)"}),t(eP,{hidden:(...e)=>!h(...e)||p(...e),onClick:e=>l(e.props.node),children:"Add To Control Panel"}),t(eP,{hidden:(...e)=>!h(...e)||!p(...e),onClick:e=>a(e.props.node),children:"Remove From Control Panel"}),t(eP,{onClick:e=>s({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})},od=e=>eC(({patch:e})=>e).audioNodes.get(e),oc=e=>{let o=eC(({updateNodeData:e})=>e);return{updateNodeValues:m(t=>o(e,{values:t}),[e,o]),updateNodeConfig:m(t=>o(e,{config:t}),[e,o]),updateNodeLabel:m(t=>o(e,{label:t}),[e,o])}};let op=c.input`
328
+ `;var on=({isOpen:e,closeMenu:o})=>{let n=ek();eC(({setGraph:e})=>e),eC(e=>e.setEditorState);let i=eC(e=>e.addFile),l=v(null),a=f(async e=>{let[t]=e||[],r=await e4(t);i({type:"audio",id:`audio-file-${+new Date}`,name:t.name,file:r}),o()},[i,o]);return e?t(eT,{onClose:o,children:r(oe,{theme:n,children:[t("input",{onChange:({target:{files:e}})=>a(e),ref:l,type:"file",className:"hidden",style:{display:"none"},accept:".wav,.mp3,.ogg"}),t(ee,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{l.current?.click()},onDrop:e=>a(e),children:r(oo,{theme:n,children:[t(ot,{}),t(or,{children:"click or drop file here"})]})})]})}):null};let oi="editor-menu";var ol=({editorContextMenu:e=[]})=>{let o=ek(),[i,l]=h({x:0,y:0}),[a,s]=h(!1),[d,c]=h(!1),[p,u]=h(!1),[v,y]=h(!1),b=f((e,o)=>{l({x:e,y:o}),s(!0)},[s]),w=eC(e=>e.pasteBuffer),{screenToFlowPosition:x}=A(),C=f(e=>{let{x:o,y:t}=x(e);w(o,t)},[s,x]),$=eC(({clearGraph:e})=>e),k=eC(e=>e.getEditorState),P=eC(e=>e.getProject),N=f(()=>{$()},[$]),z=eC(e=>e.toggleHelp),j=eC(e=>e.history.back),E=eC(e=>e.history.forward),F=eC(e=>e.history.pointer),S=eC(e=>e.history.buffer),T=eC(e=>e.copySelectedItems),D=eC(e=>e.nodes),M=m(()=>D.filter(({selected:e})=>e),[D]),O=eC(e=>e.copyBuffer),_=A(),I=f(()=>{K(JSON.stringify({...k()},null,2),"web-noise-patch.json")},[k,_]),L=f(()=>{K(JSON.stringify({...P()},null,2),"web-noise-project.json")},[k,_]);return g(()=>(Q("command+shift+a",()=>(b(200,50),!1)),Q("shift+/",()=>(z(),!1)),Q("command+z",()=>(j(),!1)),Q("command+shift+z",()=>(E(),!1)),Q("command+c",()=>(T(),!1)),Q("command+v",()=>(C({x:200,y:50}),!1)),()=>{Q.unbind()}),[b,C]),r(n,{children:[t(eQ,{isOpen:a,closeMenu:()=>s(!1),mousePosition:i}),t(e3,{isOpen:d,closeMenu:()=>c(!1)}),t(e6,{isOpen:p,closeMenu:()=>u(!1)}),t(on,{isOpen:v,closeMenu:()=>y(!1)}),r(eN,{id:oi,animation:!1,colors:o.colors,children:[t(eP,{onClick:({triggerEvent:{clientX:e,clientY:o}})=>b(e,o),children:"Add Node (⌘+⇧+A)"}),t(q,{}),t(eP,{onClick:N,children:"Delete All"}),t(q,{}),t(eP,{onClick:I,children:"Download patch"}),t(eP,{onClick:()=>c(!0),children:"Upload patch"}),t(q,{}),t(eP,{onClick:L,children:"Download project"}),t(eP,{onClick:()=>u(!0),children:"Upload project"}),t(q,{}),t(eP,{onClick:()=>y(!0),children:"Upload Audio File"}),t(q,{}),t(eP,{disabled:0===F,onClick:j,children:"Undo (⌘+z)"}),t(eP,{disabled:F===S.length,onClick:E,children:"Redo (⌘+⇧+Z)"}),t(q,{}),t(eP,{disabled:!M.length,onClick:T,children:"Copy Selected (⌘+c)"}),t(eP,{disabled:!O.nodes.length,onClick:({triggerEvent:{clientX:e,clientY:o}})=>C({x:e,y:o}),children:"Paste (⌘+v)"}),t(q,{}),e.map((e,o)=>t(eP,{children:e},o)),t(q,{}),t(eP,{onClick:z,children:"Help (⇧+?)"})]})]})};let oa="editor-node-menu";var os=e=>{let o=ek(),i=eC(e=>e.removeNodes),l=eC(e=>e.addNodeToControlPanel),a=eC(e=>e.removeNodeFromControlPanel),s=eC(e=>e.copy),d=eC(e=>e.nodesConfiguration),c=eC(e=>e.controlPanel.nodes),p=f(({props:e})=>!!e?.node.type&&!!c.find(({id:o})=>o===e.node.id),[c]),h=f(({props:e})=>{if(!e?.node.type)return!1;let o=d[e.node.type];return!!o?.controlPanelNode},[d]);return t(n,{children:r(eN,{id:oa,animation:!1,colors:o.colors,children:[t(eP,{onClick:e=>i([e.props.node]),children:"Delete Node (DEL)"}),t(eP,{hidden:(...e)=>!h(...e)||p(...e),onClick:e=>l(e.props.node),children:"Add To Control Panel"}),t(eP,{hidden:(...e)=>!h(...e)||!p(...e),onClick:e=>a(e.props.node),children:"Remove From Control Panel"}),t(eP,{onClick:e=>s({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})},od=e=>eC(({patch:e})=>e).audioNodes.get(e),oc=e=>{let o=eC(({updateNodeData:e})=>e);return{updateNodeValues:f(t=>o(e,{values:t}),[e,o]),updateNodeConfig:f(t=>o(e,{config:t}),[e,o]),updateNodeLabel:f(t=>o(e,{label:t}),[e,o])}};let op=c.input`
329
329
  width: 100%;
330
330
  background: none;
331
331
  border: none;
@@ -354,7 +354,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
354
354
  padding: 0.3rem;
355
355
  border-radius: 0.2rem;
356
356
  }
357
- `;var oh=({onChange:e,value:o="",className:r})=>{let n=f(null),[i,l]=h(!1),a=m(e=>{e.target?.select(),l(!0)},[l]),s=m(()=>{window.getSelection()?.collapseToEnd(),l(!1)},[l]),d=m(()=>{s(),n.current&&e(n.current.value)},[n,s,e]),c=m(()=>{s(),n.current&&o&&(n.current.value=o)},[n,s,o]);return g(()=>{n.current&&(n.current.value=o)},[o,n]),t(op,{ref:n,type:"text",readOnly:!i,onDoubleClick:e=>a(e),onBlur:d,onKeyDown:e=>{switch(e.key){case"Escape":c();break;case"Enter":d()}},className:r})};let og=i(c.div`
357
+ `;var oh=({onChange:e,value:o="",className:r})=>{let n=v(null),[i,l]=h(!1),a=f(e=>{e.target?.select(),l(!0)},[l]),s=f(()=>{window.getSelection()?.collapseToEnd(),l(!1)},[l]),d=f(()=>{s(),n.current&&e(n.current.value)},[n,s,e]),c=f(()=>{s(),n.current&&o&&(n.current.value=o)},[n,s,o]);return g(()=>{n.current&&(n.current.value=o)},[o,n]),t(op,{ref:n,type:"text",readOnly:!i,onDoubleClick:e=>a(e),onBlur:d,onKeyDown:e=>{switch(e.key){case"Escape":c();break;case"Enter":d()}},className:r})};let og=i(c.div`
358
358
  height: 100%;
359
359
  width: 100%;
360
360
  overflow: scroll;
@@ -382,7 +382,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
382
382
  a {
383
383
  color: ${({theme:e})=>e.colors.accent1};
384
384
  }
385
- `);var ou=({isOpen:e,onClose:o,type:r,node:n})=>{let{info:i,portsDescription:l}=eC(e=>e.nodesConfiguration[r]),a=u(()=>{let e=[],o=n.inputs;if(o)for(let t in e.push("## Inputs"),o){let r=o[t];e.push(`### *${t}*`);let n=l?.inputs?.[t];n&&e.push(n),Array.isArray(r.type)?e.push(`**Types**: \`${r.type.join(", ")}\``):e.push(`**Type**: \`${r.type||"unknown"}\``),r.range&&e.push(`**Range**: \`[${r.range[0]}, ${r.range[1]}]\``),void 0!==r.defaultValue&&e.push(`**Default**: \`${r.defaultValue}\``)}let t=n.outputs;if(t)for(let o in e.push("## Outputs"),t){let r=t[o];e.push(`### *${o}*`);let n=l?.outputs?.[o];n&&e.push(n),Array.isArray(r.type)?e.push(`**Types**: \`${r.type.join(", ")}\``):e.push(`**Type**: \`${r.type||"unknown"}\``),r.range&&e.push(`**Range**: \`[${r.range[0]}, ${r.range[1]}]\``),void 0!==r.defaultValue&&e.push(`**Default**: \`${r.defaultValue}\``)}return e.join("\n\n")},[n,l]);return e?t(eT,{onClose:o,children:t(og,{dangerouslySetInnerHTML:{__html:eh((i||"")+"\n\n"+a||"")}})}):null};let om=c.div`
385
+ `);var ou=({isOpen:e,onClose:o,type:r,node:n})=>{let{info:i,portsDescription:l}=eC(e=>e.nodesConfiguration[r]),a=m(()=>{let e=[],o=n.inputs;if(o)for(let t in e.push("## Inputs"),o){let r=o[t];e.push(`### *${t}*`);let n=l?.inputs?.[t];n&&e.push(n),Array.isArray(r.type)?e.push(`**Types**: \`${r.type.join(", ")}\``):e.push(`**Type**: \`${r.type||"unknown"}\``),r.range&&e.push(`**Range**: \`[${r.range[0]}, ${r.range[1]}]\``),void 0!==r.defaultValue&&e.push(`**Default**: \`${r.defaultValue}\``)}let t=n.outputs;if(t)for(let o in e.push("## Outputs"),t){let r=t[o];e.push(`### *${o}*`);let n=l?.outputs?.[o];n&&e.push(n),Array.isArray(r.type)?e.push(`**Types**: \`${r.type.join(", ")}\``):e.push(`**Type**: \`${r.type||"unknown"}\``),r.range&&e.push(`**Range**: \`[${r.range[0]}, ${r.range[1]}]\``),void 0!==r.defaultValue&&e.push(`**Default**: \`${r.defaultValue}\``)}return e.join("\n\n")},[n,l]);return e?t(eT,{onClose:o,children:t(og,{dangerouslySetInnerHTML:{__html:eh((i||"")+"\n\n"+a||"")}})}):null};let om=c.div`
386
386
  background-color: var(--leva-colors-elevation1);
387
387
  `,of=c(om)`
388
388
  padding: 2rem 5rem;
@@ -444,7 +444,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
444
444
  left: -3px;
445
445
  `),oE=({...e})=>t(oj,{...e,type:"target",position:O.Left}),oF=i(c(oz)`
446
446
  right: -3px;
447
- `),oS=e=>t(oF,{...e,type:"source",position:O.Right}),oT=({className:e,...o})=>t(ox,{...o,className:[e,eg].join(" ")}),oD=e=>eC(o=>o.nodesConfiguration[e]),oM=e=>{let{id:o,children:n,selected:i,...l}=e,a=ek(),s=eC(({getNode:e})=>e),d=eC(e=>e.nodesConfiguration),[c,p]=h(!1),{info:g}=oD(e.type),m=u(()=>d[e.type].resizable??!1,[d,e.type]),{updateNodeLabel:f,updateNodeConfig:v}=oc(o),{data:y}=s(o)||{},b=od(o),{ConfigNode:w}=(e=>{let{configNode:o}=oD(e);return{ConfigNode:o}})(l.type),[x,C]=h(!1);if(!b)return t(of,{className:eg,children:"can't find audio node"});if(b.loading)return t(of,{className:eg,children:"loading"});if(b.error)return r(ov,{className:eg,children:["error: ",b.error.toString()]});if(!b.node)return t(of,{className:eg,children:"can't find audio node"});let $=y?.config?.size,{node:{inputs:k,outputs:P}}=b;return r(om,{children:[r(oT,{children:[g&&t(ob,{onClickCapture:()=>p(!0)}),t(oh,{value:y?.label??"No Name",onChange:f}),w&&t(oy,{onClickCapture:()=>C(e=>!e)})]}),r(oC,{theme:a,children:[t(o$,{children:k?Object.keys(k).map((e,o)=>r(oP,{children:[t(oE,{id:e,portType:k[e].type}),t("span",{children:e})]},o)):null}),t(ok,{children:P?Object.keys(P).map((e,o)=>r(oP,{children:[t(oS,{id:e,portType:P[e].type}),t("span",{children:e})]},o)):null})]}),w&&x&&i?t(w,{...e}):m?t(el,{size:$,minWidth:180,minHeight:30,enable:{bottom:!0,bottomRight:!0,right:!0},onResizeStop:(e,o,t,r)=>{let n=$?{width:$.width+r.width,height:$.height+r.height}:t.getBoundingClientRect();v({...y?.config,size:n})},children:n}):n,t(ou,{isOpen:c,type:e.type,onClose:()=>p(!1),node:b.node})]})},oA=c.div`
447
+ `),oS=e=>t(oF,{...e,type:"source",position:O.Right}),oT=({className:e,...o})=>t(ox,{...o,className:[e,eg].join(" ")}),oD=e=>eC(o=>o.nodesConfiguration[e]),oM=e=>{let{id:o,children:n,selected:i,...l}=e,a=ek(),s=eC(({getNode:e})=>e),d=eC(e=>e.nodesConfiguration),[c,p]=h(!1),{info:g}=oD(e.type),u=m(()=>d[e.type].resizable??!1,[d,e.type]),{updateNodeLabel:f,updateNodeConfig:v}=oc(o),{data:y}=s(o)||{},b=od(o),{ConfigNode:w}=(e=>{let{configNode:o}=oD(e);return{ConfigNode:o}})(l.type),[x,C]=h(!1);if(!b)return t(of,{className:eg,children:"can't find audio node"});if(b.loading)return t(of,{className:eg,children:"loading"});if(b.error)return r(ov,{className:eg,children:["error: ",b.error.toString()]});if(!b.node)return t(of,{className:eg,children:"can't find audio node"});let $=y?.config?.size,{node:{inputs:k,outputs:P}}=b;return r(om,{children:[r(oT,{children:[g&&t(ob,{onClickCapture:()=>p(!0)}),t(oh,{value:y?.label??"No Name",onChange:f}),w&&t(oy,{onClickCapture:()=>C(e=>!e)})]}),r(oC,{theme:a,children:[t(o$,{children:k?Object.keys(k).map((e,o)=>r(oP,{children:[t(oE,{id:e,portType:k[e].type}),t("span",{children:e})]},o)):null}),t(ok,{children:P?Object.keys(P).map((e,o)=>r(oP,{children:[t(oS,{id:e,portType:P[e].type}),t("span",{children:e})]},o)):null})]}),w&&x&&i?t(w,{...e}):u?t(el,{size:$,minWidth:180,minHeight:30,enable:{bottom:!0,bottomRight:!0,right:!0},onResizeStop:(e,o,t,r)=>{let n=$?{width:$.width+r.width,height:$.height+r.height}:t.getBoundingClientRect();v({...y?.config,size:n})},children:n}):n,t(ou,{isOpen:c,type:e.type,onClose:()=>p(!1),node:b.node})]})},oA=c.div`
448
448
  width: 100%;
449
449
  padding: 0.4rem 0;
450
450
  white-space: nowrap;
@@ -480,7 +480,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
480
480
  height: 100%;
481
481
  display: grid;
482
482
  grid-template-rows: auto 1fr;
483
- `,oH=e=>{let{node:o}=e,r=eC(e=>e.getControlPanelNode),n=u(()=>r(o),[o]);return n?t(n,{...e}):null};var oR=e=>{let{node:o,showControls:n,onDelete:i}=e,l=ek(),{id:a}=o,{node:s}=od(a)||{},{updateNodeValues:d}=oc(a);return r(oL,{theme:l,children:[r(oO,{theme:l,children:[t(oA,{children:o.data.label}),n&&r(o_,{children:[t(oI,{theme:l,children:t(w,{className:"grid-item-handle"})}),t(oI,{theme:l,children:t(b,{onClick:()=>i(o)})})]})]}),t(oH,{node:o,audioNode:s,updateNodeValues:d})]})};let oW=c.div`
483
+ `,oH=e=>{let{node:o}=e,r=eC(e=>e.getControlPanelNode),n=m(()=>r(o),[o]);return n?t(n,{...e}):null};var oR=e=>{let{node:o,showControls:n,onDelete:i}=e,l=ek(),{id:a}=o,{node:s}=od(a)||{},{updateNodeValues:d}=oc(a);return r(oL,{theme:l,children:[r(oO,{theme:l,children:[t(oA,{children:o.data.label}),n&&r(o_,{children:[t(oI,{theme:l,children:t(w,{className:"grid-item-handle"})}),t(oI,{theme:l,children:t(b,{onClick:()=>i(o)})})]})]}),t(oH,{node:o,audioNode:s,updateNodeValues:d})]})};let oW=c.div`
484
484
  position: fixed;
485
485
  z-index: 5;
486
486
  box-shadow: 0px 1px 2px ${({theme:e})=>e.colors.elevation2};
@@ -551,7 +551,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
551
551
  border-color: ${({theme:e})=>e.colors.whitePrimary};
552
552
  border-width: 1px;
553
553
  }
554
- `;var oZ=()=>{let e=ek(),o=f(null),i=eC(e=>e.nodes),{show:l,nodes:a,size:s}=eC(e=>e.controlPanel),{width:d=200,height:c}=s,p=u(()=>{let e=a.map(({id:e})=>e);return i.filter(({id:o})=>e.includes(o))},[i,a]),g=eC(e=>e.showControlPanel),m=eC(e=>e.hideControlPanel),v=eC(e=>e.setControlPanelNodes),y=eC(e=>e.setControlPanelSize),w=eC(e=>e.removeNodeFromControlPanel),[x,C]=h(!0),$=u(()=>{let e=a.reduce((e,{height:o=em,x:t,y:r=0})=>{let n=r+o;return n>e?n:e},0);return a.map(({id:o,width:t,height:r,x:n,y:i})=>({i:o,w:t||4,h:r||6,x:n??0,y:i??e}))},[a]);return p.length?r(n,{children:[t(oW,{theme:e,ref:o,onClick:g,children:t(ec,{})}),r(ep,{open:l,onClose:m,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[r(oV,{theme:e,children:[t(oU,{children:"Control Panel"}),t(oB,{children:t(oG,{onClick:m,theme:e,children:t(b,{})})})]}),r(oJ,{children:[t(oY,{children:x?r(oq,{theme:e,onClick:()=>C(!1),children:[t(es,{}),"Unlock grid"]}):r(oq,{theme:e,onClick:()=>C(!0),children:[t(ed,{}),"Lock grid"]})}),t(el,{enable:{top:!1,right:!x,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},handleComponent:{right:t(oK,{theme:e})},minWidth:120,size:{width:d,height:"auto"},onResizeStop:(e,o,t,r)=>{y({width:d+r.width,height:c+r.height})},children:t(oX,{theme:e,children:t(ea,{layout:$,className:"layout",cols:4,rowHeight:em,width:d,margin:[0,0],isResizable:!x,draggableHandle:".grid-item-handle",onLayoutChange:e=>{requestAnimationFrame(()=>{v(e.map(({i:e,w:o,h:t,x:r,y:n})=>({id:e,width:o,height:t,x:r,y:n})))})},children:p.map(o=>t(oQ,{theme:e,children:t(oR,{node:o,showControls:!x,onDelete:w})},o.id))})})})]})]})]}):null},o0={};o0="# Quick start\n\n## Add node\n - Mouse right click\n - Select **'Add Node'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Press `CMD+SHIFT+A`\n\n<br/>\n\n## Connect nodes\n - Mouse left click and hold on source port\n - Drop on target port\n\n<br/>\n\n## Delete Node or Connection\n - Mouse right click on node/connection\n - Select **'Delete Node'**/**'Delete Connection'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Mouse left click on node/connection, then press `Backspace`\n\n<br/>\n\n\n## Move node\n - Drag and Drop\n\n<br/>\n\n## Upload file\n - Drag and drop audio or patch files onto the application\n - Uploaded file appears as a new tab in the tabs bar at the top\n - Click on the tab to view or edit the file\n\n\n";let o1=i(c.div`
554
+ `;var oZ=()=>{let e=ek(),o=v(null),i=eC(e=>e.nodes),{show:l,nodes:a,size:s}=eC(e=>e.controlPanel),{width:d=200,height:c}=s,p=m(()=>{let e=a.map(({id:e})=>e);return i.filter(({id:o})=>e.includes(o))},[i,a]),g=eC(e=>e.showControlPanel),u=eC(e=>e.hideControlPanel),f=eC(e=>e.setControlPanelNodes),y=eC(e=>e.setControlPanelSize),w=eC(e=>e.removeNodeFromControlPanel),[x,C]=h(!0),$=m(()=>{let e=a.reduce((e,{height:o=em,x:t,y:r=0})=>{let n=r+o;return n>e?n:e},0);return a.map(({id:o,width:t,height:r,x:n,y:i})=>({i:o,w:t||4,h:r||6,x:n??0,y:i??e}))},[a]);return p.length?r(n,{children:[t(oW,{theme:e,ref:o,onClick:g,children:t(ec,{})}),r(ep,{open:l,onClose:u,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[r(oV,{theme:e,children:[t(oU,{children:"Control Panel"}),t(oB,{children:t(oG,{onClick:u,theme:e,children:t(b,{})})})]}),r(oJ,{children:[t(oY,{children:x?r(oq,{theme:e,onClick:()=>C(!1),children:[t(es,{}),"Unlock grid"]}):r(oq,{theme:e,onClick:()=>C(!0),children:[t(ed,{}),"Lock grid"]})}),t(el,{enable:{top:!1,right:!x,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},handleComponent:{right:t(oK,{theme:e})},minWidth:120,size:{width:d,height:"auto"},onResizeStop:(e,o,t,r)=>{y({width:d+r.width,height:c+r.height})},children:t(oX,{theme:e,children:t(ea,{layout:$,className:"layout",cols:4,rowHeight:em,width:d,margin:[0,0],isResizable:!x,draggableHandle:".grid-item-handle",onLayoutChange:e=>{requestAnimationFrame(()=>{f(e.map(({i:e,w:o,h:t,x:r,y:n})=>({id:e,width:o,height:t,x:r,y:n})))})},children:p.map(o=>t(oQ,{theme:e,children:t(oR,{node:o,showControls:!x,onDelete:w})},o.id))})})})]})]})]}):null},o0={};o0="# Quick start\n\n## Add node\n - Mouse right click\n - Select **'Add Node'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Press `CMD+SHIFT+A`\n\n<br/>\n\n## Connect nodes\n - Mouse left click and hold on source port\n - Drop on target port\n\n<br/>\n\n## Delete Node or Connection\n - Mouse right click on node/connection\n - Select **'Delete Node'**/**'Delete Connection'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Mouse left click on node/connection, then press `Backspace`\n\n<br/>\n\n\n## Move node\n - Drag and Drop\n\n<br/>\n\n## Upload file\n - Drag and drop audio or patch files onto the application\n - Uploaded file appears as a new tab in the tabs bar at the top\n - Click on the tab to view or edit the file\n\n\n";let o1=i(c.div`
555
555
  font-family: var(--leva-fonts-mono);
556
556
  font-size: 0.7rem;
557
557
  box-sizing: border-box;
@@ -596,7 +596,7 @@ let e,o;import{jsx as t,jsxs as r,Fragment as n}from"react/jsx-runtime";import{w
596
596
  `,o6=c(er)`
597
597
  width: 7rem;
598
598
  height: 7rem;
599
- `;var o4=()=>{let e=ek(),o=eC(({patch:e})=>e).audioContext,[n,i]=h("running"===o.state);return n?null:r(o9,{theme:e,onClick:()=>{o.resume(),i(!0)},children:[t(o5,{children:t(o7,{theme:e,children:"Click anywhere to resume audio context"})}),t(o5,{children:t(o6,{})})]})},te=()=>{let e=eC(({setConfig:e})=>e),{showMinimap:o}=eC(({config:e})=>e);return t(I,{onClick:()=>e({showMinimap:!o}),children:o?t(en,{}):t(ei,{})})},to=({id:e,sourceX:o,sourceY:i,targetX:l,targetY:a,sourcePosition:s,targetPosition:d,style:c={},data:p,markerStart:h,markerEnd:u,source:m,target:f,sourceHandleId:v,targetHandleId:y,selected:b})=>{let w=ek(),x=eC(({getNode:e})=>e),C=x(m),$=x(f),k=C?.selected||$?.selected;g(()=>{if(v&&y)return console.log(`connected ${m} to ${f}`),()=>{console.log(`disconnected ${m} from ${f}`)}},[m,v,f,y]);let[P]=L({targetX:l,targetY:a,targetPosition:d,sourceX:o,sourceY:i,sourcePosition:s});return r(n,{children:[t("path",{id:e,style:{...c,stroke:b?w.colors.accent2:k?w.colors.highlight3:w.colors.highlight2},className:"react-flow__edge-path Wire",d:P,markerEnd:u}),t("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:P,markerEnd:u})]})};let tt=(e,o)=>console.log("drag stop",o),tr=(e,o)=>console.log("click",o),tn=[20,20],ti=({editorState:e,plugins:o=[],editorContextMenu:n=[],onChange:i=()=>{},...l})=>{let a=u(()=>({wire:to}),[]),{nodes:s,edges:d,controlPanel:c,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onEdgesDelete:y,onConnect:b,setPlugins:w,setViewport:x,viewport:C}=eC(),$=eC(({config:e})=>e),P=eC(({nodeTypes:e})=>e);g(()=>{w(o)},[o]);let[N,z]=h(null);g(()=>{N&&i({nodes:s,edges:d,controlPanel:c,viewport:C})},[s,d,c,C]);let j=m(e=>{N||(z(e),console.log("flow loaded:",e))},[N]),{onContextMenu:M}=(()=>{let{show:e}=J({id:oi});return{onContextMenu:e}})(),{onContextMenu:A}=(()=>{let{show:e}=J({id:oa});return{onContextMenu:m((o,t)=>{o.stopPropagation(),e(o,{props:{node:t}})},[])}})(),{onContextMenu:O}=(()=>{let{show:e}=J({id:ez});return{onContextMenu:m((o,t)=>{o.stopPropagation(),e(o,{props:{edge:t}})},[e])}})();return g(()=>{C&&N?.setViewport(C)},[C,N]),E({onEnd:x}),r(k,{nodes:s,edges:d,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onConnect:b,onNodeDragStop:tt,onEdgesDelete:y,onInit:j,onNodeClick:tr,onContextMenu:M,onNodeContextMenu:A,onEdgeContextMenu:O,nodeTypes:P,edgeTypes:a,snapGrid:tn,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,disableKeyboardA11y:!0,children:[t(F,{variant:S.Dots,gap:12}),$.showMinimap?t(T,{}):null,r(D,{style:{right:"1rem",left:"initial",bottom:"40%",top:"initial"},showInteractive:!1,children:[t(te,{}),t(o8,{})]}),t(o4,{}),t(oZ,{}),t(o3,{}),t(ol,{editorContextMenu:n}),t(os,{}),t(ej,{})]})},tl=e=>t(M,{children:t(ti,{...e})}),ta={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},ts=i(c.div`
599
+ `;var o4=()=>{let e=ek(),o=eC(({patch:e})=>e).audioContext,[n,i]=h("running"===o.state);return n?null:r(o9,{theme:e,onClick:()=>{o.resume(),i(!0)},children:[t(o5,{children:t(o7,{theme:e,children:"Click anywhere to resume audio context"})}),t(o5,{children:t(o6,{})})]})},te=()=>{let e=eC(({setConfig:e})=>e),{showMinimap:o}=eC(({config:e})=>e);return t(I,{onClick:()=>e({showMinimap:!o}),children:o?t(en,{}):t(ei,{})})},to=({id:e,sourceX:o,sourceY:i,targetX:l,targetY:a,sourcePosition:s,targetPosition:d,style:c={},data:p,markerStart:h,markerEnd:u,source:m,target:f,sourceHandleId:v,targetHandleId:y,selected:b})=>{let w=ek(),x=eC(({getNode:e})=>e),C=x(m),$=x(f),k=C?.selected||$?.selected;g(()=>{if(v&&y)return console.log(`connected ${m} to ${f}`),()=>{console.log(`disconnected ${m} from ${f}`)}},[m,v,f,y]);let[P]=L({targetX:l,targetY:a,targetPosition:d,sourceX:o,sourceY:i,sourcePosition:s});return r(n,{children:[t("path",{id:e,style:{...c,stroke:b?w.colors.accent2:k?w.colors.highlight3:w.colors.highlight2},className:"react-flow__edge-path Wire",d:P,markerEnd:u}),t("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:P,markerEnd:u})]})};console.log(99999,`React version: ${u}`);let tt=(e,o)=>console.log("drag stop",o),tr=(e,o)=>console.log("click",o),tn=[20,20],ti=({editorState:e,plugins:o=[],editorContextMenu:n=[],onChange:i=()=>{},...l})=>{let a=m(()=>({wire:to}),[]),{nodes:s,edges:d,controlPanel:c,onNodesChange:p,onNodesDelete:u,onEdgesChange:v,onEdgesDelete:y,onConnect:b,setPlugins:w,setViewport:x,viewport:C}=eC(),$=eC(({config:e})=>e),P=eC(({nodeTypes:e})=>e);g(()=>{w(o)},[o]);let[N,z]=h(null);g(()=>{N&&i({nodes:s,edges:d,controlPanel:c,viewport:C})},[s,d,c,C]);let j=f(e=>{N||(z(e),console.log("flow loaded:",e))},[N]),{onContextMenu:M}=(()=>{let{show:e}=J({id:oi});return{onContextMenu:e}})(),{onContextMenu:A}=(()=>{let{show:e}=J({id:oa});return{onContextMenu:f((o,t)=>{o.stopPropagation(),e(o,{props:{node:t}})},[])}})(),{onContextMenu:O}=(()=>{let{show:e}=J({id:ez});return{onContextMenu:f((o,t)=>{o.stopPropagation(),e(o,{props:{edge:t}})},[e])}})();return g(()=>{C&&N?.setViewport(C)},[C,N]),E({onEnd:x}),r(k,{nodes:s,edges:d,onNodesChange:p,onNodesDelete:u,onEdgesChange:v,onConnect:b,onNodeDragStop:tt,onEdgesDelete:y,onInit:j,onNodeClick:tr,onContextMenu:M,onNodeContextMenu:A,onEdgeContextMenu:O,nodeTypes:P,edgeTypes:a,snapGrid:tn,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,disableKeyboardA11y:!0,children:[t(F,{variant:S.Dots,gap:12}),$.showMinimap?t(T,{}):null,r(D,{style:{right:"1rem",left:"initial",bottom:"40%",top:"initial"},showInteractive:!1,children:[t(te,{}),t(o8,{})]}),t(o4,{}),t(oZ,{}),t(o3,{}),t(ol,{editorContextMenu:n}),t(os,{}),t(ej,{})]})},tl=e=>t(M,{children:t(ti,{...e})}),ta={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},ts=i(c.div`
600
600
  display: flex;
601
601
  flex-direction: column;
602
602
  height: 100%;