@web-noise/core 0.0.19 → 0.0.21
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/cjs/components.js +85 -20
- package/dist/cjs/components.js.map +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/esm/components.js +140 -75
- package/dist/esm/components.js.map +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/main.js +89 -24
- package/dist/main.js.map +1 -1
- package/dist/module.js +153 -88
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +21 -12
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
let e,o;import{jsx as t,jsxs as n,Fragment as r}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 m,useCallback as u,useRef as f}from"react";import{FaPlus as v}from"react-icons/fa6";import{MdClose as b,MdDragHandle as y,MdSettings as x,MdInfoOutline as w}from"react-icons/md";import{registerFetcher as C}from"@web-noise/fetch";import{getConnectedEdges as k,addEdge as $,applyNodeChanges as P,applyEdgeChanges as N,Controls as z,ReactFlow as j,Background as F,BackgroundVariant as E,MiniMap as D,ReactFlowProvider as T,useReactFlow as M,Position as S,Handle as A,ControlButton as _,getBezierPath as I}from"@xyflow/react";import{create as R}from"zustand";import{setAudioNodeTypes as H,createPatch as L}from"@web-noise/patch";import{reverse as W,patch as O,create as B}from"jsondiffpatch";import{injectGlobal as U}from"@emotion/css";import"@xyflow/react/dist/style.css";import{useContextMenu as G,Item as V,Menu as Y,Separator as X}from"react-contexify";import"react-contexify/dist/ReactContexify.css";import J from"hotkeys-js";import{createPortal as Z}from"react-dom";import{FileDrop as q}from"react-file-drop";import{FaFileUpload as K,FaQuestion as Q,FaVolumeOff as ee,FaMap as eo,FaRegMap as et}from"react-icons/fa";import{Resizable as en}from"re-resizable";import er from"react-grid-layout";import"react-grid-layout/css/styles.css";import{AiFillLock as ei,AiFillUnlock as el}from"react-icons/ai";import{RxDashboard as ea}from"react-icons/rx";import es from"react-modern-drawer";import"react-modern-drawer/dist/index.css";import{marked as ed}from"marked";let ec="web-noise-drag-handle",ep=`.${ec}`,eh=10;(ev=eb||(eb={})).Gate="gate",ev.Number="number",ev.Audio="audio",ev.Any="any";let eg=e=>JSON.parse(JSON.stringify(e)),em=(e,o)=>{let t=new Set(e.map(e=>e.id)),n=new Set(o.map(e=>e.id));return{added:o.filter(e=>!t.has(e.id)),removed:e.filter(e=>!n.has(e.id))}},eu=e=>!("type"in e)||"patch"===e.type,ef=e=>"audio"===e.type;var ev,eb,ey=R((e=(...e)=>{let[o,t]=e;return{...((e,o)=>({nodes:[],edges:[],onNodesChange:o=>{e(({nodes:e})=>({nodes:P(o,e).map(e=>({dragHandle:ep,...e,data:{label:"unknown",...e.data}}))}))},onEdgesChange:o=>{e(({edges:e})=>({edges:N(o,e)}))},onConnect:o=>{e(({edges:e})=>({edges:$(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:n}=o(),{maxHistoryLength:r,skipCollect:i}=n;i?e({history:{...n,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:o,pointer:n}=e,i=o.slice(Math.max(n-r+1,0),n);return{history:{...e,buffer:[...i,t],pointer:Math.min(n+1,r)}}})},back:()=>{let{nodes:t,edges:n,controlPanel:r,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a-1];if(!s)return;let d=W(s);d&&e({...O(eg({nodes:t,edges:n,controlPanel:r}),d),history:{...i,pointer:a-1,skipCollect:!0}})},forward:()=>{let{nodes:t,edges:n,controlPanel:r,history:i}=o(),{buffer:l,pointer:a}=i,s=l[a];s&&e({...O(eg({nodes:t,edges:n,controlPanel:r}),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:L(),nodesState:{}}))(...e),...((e,o)=>({project:{files:[],currentFileIndex:0},setProject(o){e({project:o})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,updateFileContent:t,project:n}=o(),r=n.currentFileIndex||0,i=n.files[r];ef(i)||t(r,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{setEditorState:e,project:t}=o(),n=t.currentFileIndex||0,r=t.files[n];r?"audio"===r.type?console.log("audio file. skipping"):e(r.file):console.warn("No current file to sync with editor")},setCurrentFileIndex(t){let{project:n,getProject:r}=o();t!==(n.currentFileIndex??0)&&e({project:{...n,currentFileIndex:t}})},updateFileContent(t,n){let{project:r}=o();e({project:{...r,files:r.files.map((e,o)=>o===t?{...e,...n}:e)}})},updateFileName(t,n){let{project:r}=o();e({project:{...r,files:r.files.map((e,o)=>o===t?{...e,name:n}:e)}})},addFile(e){let{project:t,setProject:n}=o(),r=[...t.files,e];n({...t,files:r,currentFileIndex:r.length-1})},deleteFile:t=>{let{project:n}=o(),r=n.currentFileIndex??0,i=r===n.files.length-1?Math.max(0,r-1):r,l=n.files.filter((e,o)=>t!==o);e({project:{...n,files:l,currentFileIndex:i}})}}))(...e),setGraph:async({nodes:e,edges:o})=>{let{patch:n,createNodes:r,createEdges:i,setNodesAndEdges:l,nodes:a,edges:s}=t();l({nodes:[],edges:[]}),await r(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:n}=t(),{type:r,id:i,data:l}=e;if(void 0===r)throw Error(`node type is not defined for node: ${i}`);o({...e,data:{...l,config:{...n[r]?.defaultConfig,...l?.config}}})},removeNode:e=>t().removeNodes([e]),removeNodes:e=>{let{edges:n,nodes:r,onNodesDelete:i,removeEdges:l,removeNodesFromControlPanel:a}=t(),s=e.map(({id:e})=>e),d=[...e,...r.filter(({parentId:e})=>e&&s.includes(e))];a(d),l(k(d,n)),i(d);let c=d.map(({id:e})=>e);o({nodes:r.filter(({id:e})=>!c.includes(e))})},removeEdges:e=>{let{edges:n,onEdgesDelete:r}=t(),i=e.map(({id:e})=>e);r(e),o({edges:n.filter(({id:e})=>!i.includes(e))})},createEdges:e=>{let{patch:o,edges:n,setEdges:r}=t();r(e)},onConnect:async e=>{let{edges:o,createEdges:n}=t();n($(e,o))},onEdgesDelete:e=>{let{patch:o}=t()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:o,patch:n}=t();o(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:n}=t();o({plugins:e});let r=e.reduce((e,o)=>({...e,...o.components.reduce((e,o)=>({...e,[o.type]:o}),{})}),{}),i=Object.keys(r).reduce((e,o)=>({...e,[o]:r[o].node}),{});H(Object.keys(r).reduce((e,o)=>({...e,[o]:r[o].audioNode}),{})),n(i),o(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...r}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{o(({config:o})=>({config:{...o,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:o,viewport:n}=t();return{...e(),controlPanel:o,viewport:n}},setEditorState:async({nodes:e,edges:n,controlPanel:r,viewport:i})=>{let{setGraph:l}=t();await l({nodes:e,edges:n}),await new Promise(e=>setTimeout(e,1e3)),o({controlPanel:r,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:n}=t(),r=e.filter(({selected:e})=>e),i=o.filter(({selected:e})=>e);r.length&&n({nodes:r,edges:i})},pasteBuffer:(e=0,n=0)=>{let{copyBuffer:r,createNodes:i,setEdges:l,nodes:a,edges:s}=t(),{nodes:d,edges:c}=r;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-n,{nodes:m,mapping:u}=d.reduce((e,o)=>{let t,n=(t=+new Date+Math.floor(1e3*Math.random()),o?.type?`${o.type}-${t}`:t.toString());return{nodes:[...e.nodes,{...o,id:n,position:{x:o.position.x-h,y:o.position.y-g},selected:!0}],mapping:{...e.mapping,[o.id]:n}}},{nodes:[],mapping:{}});i(m);let f=c.map(e=>{let o=u[e.source]||e.source,t=u[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:n}=e;if(!n)return null;let r=o[n]?.controlPanelNode;return r||(console.error(`could not find node for type ${n}`),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:n}=t(),r=e.type?n[e.type]?.defaultConfig:{},{height:i}=r?.size||{},l={id:e.id,...i?{height:i/eh}:{}};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,n)=>{let r,i,l,a=(i=B({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.project.currentFileIndex!==o.project.currentFileIndex&&t().history.clear(),clearTimeout(r),l||(l=o),r=setTimeout(()=>{let o=i.diff(l,e);l=null,o&&t().history.push(o)},500)});return n.subscribe(a),e((...e)=>o(...e),t,n)},(e,t,n)=>{n.subscribe(async(e,o)=>{});let r={...t(),nodes:[],edges:[]},i=Promise.resolve();return o((...o)=>{i=i.then(async()=>{let n=t(),[i]=o,l={...r,..."function"==typeof i?i({...r}):i},a=em(r.nodes,l.nodes),s=em(r.edges,l.edges);r=l;let d=a.added,c=s.added,p=s.removed,h=a.removed,{patch:g}=n;d.length&&await g.registerAudioNodes(d),c.length&&g.registerAudioConnections(c),p.length&&g.unregisterAudioConnections(p),h.length&&g.unregisterAudioNodes(h),e(...o)}).catch(e=>{console.error("audioPatch middleware error:",e)})},t,n)})),ex={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 n,Fragment as r}from"react/jsx-runtime";import{withTheme as i,ThemeProvider as l,Global as a,css as d,useTheme as s}from"@emotion/react";import c from"@emotion/styled";import{nanoid as p}from"nanoid";import{useState as h,useEffect as g,useMemo as m,useCallback as u,useRef as f}from"react";import{FaPlus as v}from"react-icons/fa6";import{MdClose as b,MdDragHandle as y,MdSettings as x,MdInfoOutline as w}from"react-icons/md";import{registerFetcher as C}from"@web-noise/fetch";import{getConnectedEdges as k,addEdge as $,applyNodeChanges as N,applyEdgeChanges as P,Controls as z,ReactFlow as j,Background as F,BackgroundVariant as E,MiniMap as S,ReactFlowProvider as T,useReactFlow as D,Position as M,Handle as A,NodeResizeControl as _,ControlButton as I,getBezierPath as L}from"@xyflow/react";import{create as H}from"zustand";import{setAudioNodeTypes as R,createPatch as W}from"@web-noise/patch";import{reverse as O,patch as B,create as U}from"jsondiffpatch";import{injectGlobal as G}from"@emotion/css";import"@xyflow/react/dist/style.css";import{useContextMenu as V,Item as Y,Menu as X,Separator as J}from"react-contexify";import"react-contexify/dist/ReactContexify.css";import Z from"hotkeys-js";import{createPortal as q}from"react-dom";import{FileDrop as K}from"react-file-drop";import{FaFileUpload as Q,FaQuestion as ee,FaVolumeOff as eo,FaMap as et,FaRegMap as en}from"react-icons/fa";import{Resizable as er}from"re-resizable";import ei from"react-grid-layout";import"react-grid-layout/css/styles.css";import{AiFillLock as el,AiFillUnlock as ea}from"react-icons/ai";import{RxDashboard as ed}from"react-icons/rx";import es from"react-modern-drawer";import"react-modern-drawer/dist/index.css";import{marked as ec}from"marked";let ep="web-noise-drag-handle",eh=`.${ep}`,eg=10;(ey=ex||(ex={})).Gate="gate",ey.Number="number",ey.Audio="audio",ey.Any="any";let em={[ex.Audio]:"#4ade80",[ex.Gate]:"#c084fc",[ex.Number]:"#38bdf8",[ex.Any]:"#ffffff"},eu=e=>JSON.parse(JSON.stringify(e)),ef=(e,o)=>{let t=new Set(e.map(e=>e.id)),n=new Set(o.map(e=>e.id));return{added:o.filter(e=>!t.has(e.id)),removed:e.filter(e=>!n.has(e.id))}},ev=e=>!("type"in e)||"patch"===e.type,eb=e=>"audio"===e.type;var ey,ex,ew=H((e=(...e)=>{let[o,t]=e;return{...((e,o)=>({nodes:[],edges:[],onNodesChange:o=>{e(({nodes:e})=>({nodes:N(o,e).map(e=>({dragHandle:eh,...e,data:{label:"unknown",...e.data}}))}))},onEdgesChange:o=>{e(({edges:e})=>({edges:P(o,e)}))},onConnect:o=>{e(({edges:e})=>({edges:$(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)}))},updateNode:(o,t)=>{e(({nodes:e})=>({nodes:e.map(e=>e.id===o?{...e,...t}:e)}))},nodeTypes:{},setNodeTypes:o=>e({nodeTypes:o})}))(...e),...((e,o)=>({history:{maxHistoryLength:5,buffer:[],pointer:0,skipCollect:!1,push:t=>{let{history:n}=o(),{maxHistoryLength:r,skipCollect:i}=n;i?e({history:{...n,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:o,pointer:n}=e,i=o.slice(Math.max(n-r+1,0),n);return{history:{...e,buffer:[...i,t],pointer:Math.min(n+1,r)}}})},back:()=>{let{nodes:t,edges:n,controlPanel:r,history:i}=o(),{buffer:l,pointer:a}=i,d=l[a-1];if(!d)return;let s=O(d);s&&e({...B(eu({nodes:t,edges:n,controlPanel:r}),s),history:{...i,pointer:a-1,skipCollect:!0}})},forward:()=>{let{nodes:t,edges:n,controlPanel:r,history:i}=o(),{buffer:l,pointer:a}=i,d=l[a];d&&e({...B(eu({nodes:t,edges:n,controlPanel:r}),d),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:[],currentFileIndex:0},setProject(o){e({project:o})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,updateFileContent:t,project:n}=o(),r=n.currentFileIndex||0,i=n.files[r];eb(i)||t(r,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{setEditorState:e,project:t}=o(),n=t.currentFileIndex||0,r=t.files[n];r?"audio"===r.type?console.log("audio file. skipping"):e(r.file):console.warn("No current file to sync with editor")},setCurrentFileIndex(t){let{project:n,getProject:r}=o();t!==(n.currentFileIndex??0)&&e({project:{...n,currentFileIndex:t}})},updateFileContent(t,n){let{project:r}=o();e({project:{...r,files:r.files.map((e,o)=>o===t?{...e,...n}:e)}})},updateFileName(t,n){let{project:r}=o();e({project:{...r,files:r.files.map((e,o)=>o===t?{...e,name:n}:e)}})},addFile(e){let{project:t,setProject:n}=o(),r=[...t.files,e];n({...t,files:r,currentFileIndex:r.length-1})},deleteFile:t=>{let{project:n}=o(),r=n.currentFileIndex??0,i=r===n.files.length-1?Math.max(0,r-1):r,l=n.files.filter((e,o)=>t!==o);e({project:{...n,files:l,currentFileIndex:i}})}}))(...e),setGraph:async({nodes:e,edges:o})=>{let{patch:n,createNodes:r,createEdges:i,setNodesAndEdges:l,nodes:a,edges:d}=t();l({nodes:[],edges:[]}),await r(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:n}=t(),{type:r,id:i,data:l}=e;if(void 0===r)throw Error(`node type is not defined for node: ${i}`);o({...e,data:{...l,config:{...n[r]?.defaultConfig,...l?.config}}})},removeNode:e=>t().removeNodes([e]),removeNodes:e=>{let{edges:n,nodes:r,onNodesDelete:i,removeEdges:l,removeNodesFromControlPanel:a}=t(),d=e.map(({id:e})=>e),s=[...e,...r.filter(({parentId:e})=>e&&d.includes(e))];a(s),l(k(s,n)),i(s);let c=s.map(({id:e})=>e);o({nodes:r.filter(({id:e})=>!c.includes(e))})},removeEdges:e=>{let{edges:n,onEdgesDelete:r}=t(),i=e.map(({id:e})=>e);r(e),o({edges:n.filter(({id:e})=>!i.includes(e))})},createEdges:e=>{let{patch:o,edges:n,setEdges:r}=t();r(e)},onConnect:async e=>{let{edges:o,createEdges:n}=t();n($(e,o))},onEdgesDelete:e=>{let{patch:o}=t()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:o,patch:n}=t();o(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:n}=t();o({plugins:e});let r=e.reduce((e,o)=>({...e,...o.components.reduce((e,o)=>({...e,[o.type]:o}),{})}),{}),i=Object.keys(r).reduce((e,o)=>({...e,[o]:r[o].node}),{});R(Object.keys(r).reduce((e,o)=>({...e,[o]:r[o].audioNode}),{})),n(i),o(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...r}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{o(({config:o})=>({config:{...o,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:o,viewport:n}=t();return{...e(),controlPanel:o,viewport:n}},setEditorState:async({nodes:e,edges:n,controlPanel:r,viewport:i})=>{let{setGraph:l}=t();await l({nodes:e,edges:n}),await new Promise(e=>setTimeout(e,1e3)),o({controlPanel:r,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:n}=t(),r=e.filter(({selected:e})=>e),i=o.filter(({selected:e})=>e);r.length&&n({nodes:r,edges:i})},pasteBuffer:(e=0,n=0)=>{let{copyBuffer:r,createNodes:i,setEdges:l,nodes:a,edges:d}=t(),{nodes:s,edges:c}=r;if(!s.length)return;o({nodes:a.map(e=>({...e,selected:!1}))});let p=s.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-n,{nodes:m,mapping:u}=s.reduce((e,o)=>{let t,n=(t=+new Date+Math.floor(1e3*Math.random()),o?.type?`${o.type}-${t}`:t.toString());return{nodes:[...e.nodes,{...o,id:n,position:{x:o.position.x-h,y:o.position.y-g},selected:!0}],mapping:{...e.mapping,[o.id]:n}}},{nodes:[],mapping:{}});i(m);let f=c.map(e=>{let o=u[e.source]||e.source,t=u[e.target]||e.target;return{...e,id:e.id.replace(e.source,o).replace(e.target,t),source:o,target:t,selected:!0}});l([...d.map(e=>({...e,selected:!1})),...f])},getControlPanelNode:e=>{let{nodesConfiguration:o}=t(),{type:n}=e;if(!n)return null;let r=o[n]?.controlPanelNode;return r||(console.error(`could not find node for type ${n}`),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:n}=t(),r=e.type?n[e.type]?.minSize:{height:void 0},i=r?.height,l={id:e.id,...i?{height:i/eg}:{}};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,n)=>{let r,i,l,a=(i=U({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.project.currentFileIndex!==o.project.currentFileIndex&&t().history.clear(),clearTimeout(r),l||(l=o),r=setTimeout(()=>{let o=i.diff(l,e);l=null,o&&t().history.push(o)},500)});return n.subscribe(a),e((...e)=>o(...e),t,n)},(e,t,n)=>{n.subscribe(async(e,o)=>{});let r={...t(),nodes:[],edges:[]},i=Promise.resolve();return o((...o)=>{i=i.then(async()=>{let n=t(),[i]=o,l={...r,..."function"==typeof i?i({...r}):i},a=ef(r.nodes,l.nodes),d=ef(r.edges,l.edges);r=l;let s=a.added,c=d.added,p=d.removed,h=a.removed,{patch:g}=n;s.length&&await g.registerAudioNodes(s),c.length&&g.registerAudioConnections(c),p.length&&g.unregisterAudioConnections(p),h.length&&g.unregisterAudioNodes(h),e(...o)}).catch(e=>{console.error("audioPatch middleware error:",e)})},t,n)})),eC={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}};G`
|
|
2
2
|
.react-flow {
|
|
3
3
|
.react-flow__pane {
|
|
4
4
|
/* background: rgb(106 106 106); */
|
|
5
5
|
/* background: "white"; */
|
|
6
6
|
// background: #292d39;
|
|
7
|
-
background: ${
|
|
7
|
+
background: ${eC.colors.elevation3};
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
.react-flow__background {
|
|
@@ -26,32 +26,32 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
.react-flow__edge-path {
|
|
29
|
-
stroke: ${
|
|
29
|
+
stroke: ${eC.colors.accent2};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.react-flow__node.selected {
|
|
33
|
-
border: 1px solid ${
|
|
34
|
-
box-shadow: 0 0 0 0.5px #${
|
|
33
|
+
border: 1px solid ${eC.colors.accent2};
|
|
34
|
+
box-shadow: 0 0 0 0.5px #${eC.colors.accent2};
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.react-flow__node-default.selected, .react-flow__node-default.selected:hover {
|
|
38
|
-
box-shadow: 0 0 0 0.5px #${
|
|
38
|
+
box-shadow: 0 0 0 0.5px #${eC.colors.accent2};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/* .react-flow__minimap-mask {
|
|
42
|
-
fill: ${
|
|
42
|
+
fill: ${eC.colors.elevation1}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.react-flow__minimap-node {
|
|
46
|
-
fill:${
|
|
46
|
+
fill:${eC.colors.accent2}
|
|
47
47
|
} */
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
`;var
|
|
50
|
+
`;var ek=()=>{let e=s();return{...eC,...e}};let e$=c(Y)``,eN=i(c(e$)`
|
|
51
51
|
.react-contexify__item__content {
|
|
52
52
|
color: ${({theme:e})=>e.colors.error};
|
|
53
53
|
}
|
|
54
|
-
`),
|
|
54
|
+
`),eP=c(X)`
|
|
55
55
|
background: ${({colors:e})=>e.elevation2};
|
|
56
56
|
padding: 0;
|
|
57
57
|
border-radius: 0;
|
|
@@ -64,18 +64,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
64
64
|
background-color: ${({colors:e})=>e.elevation1};
|
|
65
65
|
margin: 0;
|
|
66
66
|
}
|
|
67
|
-
`,
|
|
67
|
+
`,ez="editor-edge-menu";var ej=()=>{let e=ek(),o=ew(e=>e.removeEdges);return t(r,{children:t(eP,{id:ez,animation:!1,colors:e.colors,children:t(e$,{onClick:e=>o([e.props.edge]),children:"Delete Edge (DEL)"})})})};let eF=i(c.div`
|
|
68
68
|
position: fixed;
|
|
69
69
|
z-index: ${({theme:e})=>e.zIndex.modal};
|
|
70
70
|
width: 100%;
|
|
71
71
|
height: 100%;
|
|
72
72
|
top: 0;
|
|
73
73
|
left: 0;
|
|
74
|
-
background: ${({theme:e})=>e.colors.elevation3}
|
|
74
|
+
background: ${({theme:e,outerBackground:o})=>o||e.colors.elevation3+"cc"};
|
|
75
75
|
display: flex;
|
|
76
76
|
align-items: center;
|
|
77
77
|
justify-content: center;
|
|
78
|
-
|
|
78
|
+
`),eE=c.div`
|
|
79
79
|
background: ${({theme:e})=>e.colors.elevation2};
|
|
80
80
|
box-shadow: 1px 1px 1px 1px ${({theme:e})=>e.colors.elevation1};
|
|
81
81
|
color: white;
|
|
@@ -83,19 +83,19 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
83
83
|
height: 80%;
|
|
84
84
|
overflow-y: scroll;
|
|
85
85
|
position: relative;
|
|
86
|
-
`,
|
|
86
|
+
`,eS=c(b)`
|
|
87
87
|
position: absolute;
|
|
88
88
|
top: 0.2rem;
|
|
89
89
|
right: 0.2rem;
|
|
90
90
|
cursor: pointer;
|
|
91
|
-
`;var
|
|
91
|
+
`;var eT=({children:e,onClose:o,outerBackground:r,...i})=>{let l=ek();return g(()=>{let e=e=>{"Escape"===e.key&&o?.()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[o]),q(t(eF,{outerBackground:r,onClick:o,children:n(eE,{...i,onClick:e=>{e.stopPropagation()},theme:l,children:[e,t(eS,{theme:l,onClick:o})]})}),document.body)};let eD=i(c.div`
|
|
92
92
|
width: 100%;
|
|
93
|
-
`),
|
|
93
|
+
`),eM=i(c.div`
|
|
94
94
|
padding: 1rem;
|
|
95
95
|
display: flex;
|
|
96
96
|
flex-direction: column;
|
|
97
97
|
gap: 1rem;
|
|
98
|
-
`),
|
|
98
|
+
`),eA=i(c.ul`
|
|
99
99
|
list-style: none;
|
|
100
100
|
margin: 0;
|
|
101
101
|
padding: 0;
|
|
@@ -116,18 +116,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
116
116
|
cursor: pointer;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
`),
|
|
119
|
+
`),e_=i(c.div`
|
|
120
120
|
white-space: nowrap;
|
|
121
121
|
overflow: hidden;
|
|
122
122
|
text-overflow: ellipsis;
|
|
123
|
-
`),
|
|
123
|
+
`),eI=i(c.div`
|
|
124
124
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
125
125
|
font-size: 12px;
|
|
126
|
-
`),
|
|
126
|
+
`),eL=i(c.div`
|
|
127
127
|
display: flex;
|
|
128
128
|
gap: 0.2rem;
|
|
129
129
|
flex-wrap: wrap;
|
|
130
|
-
`),
|
|
130
|
+
`),eH=i(c.span`
|
|
131
131
|
cursor: pointer;
|
|
132
132
|
font-size: 10px;
|
|
133
133
|
background: ${({theme:e,isActive:o})=>o?e.colors.highlight1:e.colors.elevation3};
|
|
@@ -138,17 +138,17 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
138
138
|
&:hover {
|
|
139
139
|
border-color: ${({theme:e})=>e.colors.accent2};
|
|
140
140
|
}
|
|
141
|
-
`),eR=i(c.div``),
|
|
141
|
+
`),eR=i(c.div``),eW=i(c.div`
|
|
142
142
|
font-size: 1.1rem;
|
|
143
143
|
padding: 0.25rem 0;
|
|
144
144
|
color: ${({theme:e})=>e.colors.highlight3};
|
|
145
|
-
`),
|
|
145
|
+
`),eO=i(c.div`
|
|
146
146
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
147
147
|
font-size: 12px;
|
|
148
|
-
`);var
|
|
148
|
+
`);var eB=({onComponentClick:e,filters:{plugin:o,search:r="",tags:i},onTagClick:l})=>{let a=ew(({plugins:e})=>e),d=m(()=>o?a.filter(({name:e})=>e===o):a,[a,o]);return t(eD,{children:m(()=>r||i?.length?d.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(r.toLocaleLowerCase())||o?.toLocaleLowerCase().includes(r.toLocaleLowerCase()))})):d,[d,r,i]).map(({name:o,description:r,components:a},d)=>a.length?n(eM,{children:[n(eR,{children:[t(eW,{children:o}),t(eO,{children:r})]}),t(eA,{children:a.sort((e,o)=>e.type.toLowerCase()>o.type.toLowerCase()?1:-1).map((o,r)=>n("li",{onClick:()=>e(o),children:[t(e_,{children:o.name||o.type}),o.description&&t(eI,{children:o.description}),t(eL,{children:o.tags?.map((e,o)=>t(eH,{isActive:i?.includes(e),onClickCapture:o=>{o.stopPropagation(),l(e)},children:e},o))})]},r))})]},d):null)})};let eU=c.div`
|
|
149
149
|
display: flex;
|
|
150
150
|
position: relative;
|
|
151
|
-
`,
|
|
151
|
+
`,eG=c.input`
|
|
152
152
|
padding-right: 2rem;
|
|
153
153
|
padding-left: 0.3rem;
|
|
154
154
|
width: 100%;
|
|
@@ -179,14 +179,14 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
179
179
|
-webkit-appearance: none;
|
|
180
180
|
margin-right: 1rem;
|
|
181
181
|
}
|
|
182
|
-
`,
|
|
182
|
+
`,eV=c.div`
|
|
183
183
|
display: flex;
|
|
184
184
|
flex-direction: column;
|
|
185
185
|
padding: 0.6rem;
|
|
186
186
|
gap: 0.6rem;
|
|
187
187
|
border-right: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
188
188
|
min-width: 14rem;
|
|
189
|
-
`,
|
|
189
|
+
`,eY=c.label`
|
|
190
190
|
user-select: none;
|
|
191
191
|
input {
|
|
192
192
|
display: none;
|
|
@@ -198,7 +198,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
198
198
|
color: ${({theme:e})=>e.colors.accent3};
|
|
199
199
|
cursor: pointer;
|
|
200
200
|
}
|
|
201
|
-
`,
|
|
201
|
+
`,eX=i(c(eH)`
|
|
202
202
|
font-size: 12px;
|
|
203
203
|
padding: 0.2rem 0.4rem;
|
|
204
204
|
&:hover {
|
|
@@ -207,16 +207,16 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
207
207
|
content: "×";
|
|
208
208
|
margin-left: 0.4rem;
|
|
209
209
|
}
|
|
210
|
-
`);var
|
|
210
|
+
`);var eJ=({onChange:e,value:o})=>{let r=ek(),i=ew(({plugins:e})=>e),l=f(null);return g(()=>{l.current&&l.current.focus()},[l]),n(eV,{theme:r,children:[t(eU,{children:t(eG,{ref:l,theme:r,value:o.search||"",placeholder:"search...",onChange:t=>e({...o,search:t.target.value})})}),t(eL,{children:o.tags?.map((n,r)=>t(eX,{isActive:!0,onClick:()=>{let t=o.tags?.filter(e=>e!==n)||[];e({...o,tags:t})},children:n},r))}),i.map(({name:i,components:l},a)=>i?n(eY,{theme:r,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 eZ=c.div`
|
|
211
211
|
height: 100%;
|
|
212
212
|
width: 100%;
|
|
213
213
|
display: flex;
|
|
214
214
|
gap: 1rem;
|
|
215
|
-
`,
|
|
215
|
+
`,eq=c.div`
|
|
216
216
|
flex-grow: 1;
|
|
217
217
|
height: 100%;
|
|
218
218
|
overflow-y: scroll;
|
|
219
|
-
`;var
|
|
219
|
+
`;var eK=({isOpen:e,closeMenu:o,mousePosition:r})=>{let i=ek(),{screenToFlowPosition:l}=D(),{createNode:a}=ew(({createNode:e})=>({createNode:e})),[d,s]=h({}),c=u(({type:e,minSize:t})=>{let{x:n,y:i}=l(r);a({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:n,y:i},targetPosition:M.Left,sourcePosition:M.Right,...t}),o()},[r,l,a,o,r]);return e?t(eT,{onClose:()=>{o(),s({})},children:n(eZ,{theme:i,children:[t(eJ,{onChange:s,value:d}),t(eq,{theme:i,children:t(eB,{filters:d,onTagClick:e=>{s(o=>({...o,tags:o.tags?.includes(e)?o.tags.filter(o=>o!==e):[...o.tags||[],e]}))},onComponentClick:e=>{c(e),s({})}})})]})}):null};let eQ=e=>new Promise((o,t)=>{let n=new FileReader;n.readAsDataURL(e),n.onload=()=>o(n.result?.toString()||""),n.onerror=e=>t(e)}),e0=c.div`
|
|
220
220
|
display: flex;
|
|
221
221
|
align-items: center;
|
|
222
222
|
justify-content: center;
|
|
@@ -242,19 +242,19 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
242
242
|
.drop-zone-drag-over {
|
|
243
243
|
opacity: 1;
|
|
244
244
|
}
|
|
245
|
-
`,
|
|
245
|
+
`,e1=c.div`
|
|
246
246
|
display: flex;
|
|
247
247
|
flex-wrap: wrap;
|
|
248
248
|
align-items: center;
|
|
249
249
|
justify-content: center;
|
|
250
250
|
height: 100%;
|
|
251
251
|
width: 100%;
|
|
252
|
-
`,
|
|
252
|
+
`,e2=c(Q)`
|
|
253
253
|
width: 100%;
|
|
254
254
|
height: 8rem;
|
|
255
|
-
`,
|
|
255
|
+
`,e3=c.div`
|
|
256
256
|
font-size: 2rem;
|
|
257
|
-
`;var
|
|
257
|
+
`;var e6=({isOpen:e,closeMenu:o})=>{let r=ek();ew(({setGraph:e})=>e),ew(e=>e.setEditorState);let i=ew(e=>e.addFile),l=f(null),a=u(async e=>{let[t]=e||[],n=await eQ(t);i({type:"audio",id:`audio-file-${+new Date}`,name:t.name,file:n}),o()},[i,o]);return e?t(eT,{onClose:o,children:n(e0,{theme:r,children:[t("input",{onChange:({target:{files:e}})=>a(e),ref:l,type:"file",className:"hidden",style:{display:"none"},accept:".wav,.mp3,.ogg"}),t(K,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{l.current?.click()},onDrop:e=>a(e),children:n(e1,{theme:r,children:[t(e2,{}),t(e3,{children:"click or drop file here"})]})})]})}):null};let e9="editor-menu";var e4=({editorContextMenu:e=[]})=>{let o=ek(),[i,l]=h({x:0,y:0}),[a,d]=h(!1),[s,c]=h(!1),p=u((e,o)=>{l({x:e,y:o}),d(!0)},[d]),f=ew(e=>e.pasteBuffer),{screenToFlowPosition:v}=D(),b=u(e=>{let{x:o,y:t}=v(e);f(o,t)},[d,v]),y=ew(({clearGraph:e})=>e),x=u(()=>{window.confirm("This action will delete all nodes in this patch. Continue?")&&y()},[y]),w=ew(e=>e.toggleHelp),C=ew(e=>e.history.back),k=ew(e=>e.history.forward),$=ew(e=>e.history.pointer),N=ew(e=>e.history.buffer),P=ew(e=>e.copySelectedItems),z=ew(e=>e.nodes),j=m(()=>z.filter(({selected:e})=>e),[z]),F=ew(e=>e.copyBuffer);return D(),g(()=>(Z("command+shift+a",()=>(p(200,50),!1)),Z("shift+/",()=>(w(),!1)),Z("command+z",()=>(C(),!1)),Z("command+shift+z",()=>(k(),!1)),Z("command+c",()=>(P(),!1)),Z("command+v",()=>(b({x:200,y:50}),!1)),()=>{Z.unbind()}),[p,b]),n(r,{children:[t(eK,{isOpen:a,closeMenu:()=>d(!1),mousePosition:i}),t(e6,{isOpen:s,closeMenu:()=>c(!1)}),n(eP,{id:e9,animation:!1,colors:o.colors,children:[t(e$,{onClick:({triggerEvent:{clientX:e,clientY:o}})=>p(e,o),children:"Add Node (⌘+⇧+A)"}),t(J,{}),t(eN,{onClick:x,children:"Delete All"}),t(J,{}),t(e$,{onClick:()=>c(!0),children:"Upload Audio File"}),t(J,{}),t(e$,{disabled:0===$,onClick:C,children:"Undo (⌘+z)"}),t(e$,{disabled:$===N.length,onClick:k,children:"Redo (⌘+⇧+Z)"}),t(J,{}),t(e$,{disabled:!j.length,onClick:P,children:"Copy Selected (⌘+c)"}),t(e$,{disabled:!F.nodes.length,onClick:({triggerEvent:{clientX:e,clientY:o}})=>b({x:e,y:o}),children:"Paste (⌘+v)"}),t(J,{}),e.map((e,o)=>null===e?t(J,{},o):t(e$,{children:e},o)),t(J,{}),t(e$,{onClick:w,children:"Help (⇧+?)"})]})]})};let e8="editor-node-menu";var e5=e=>{let o=ek(),i=ew(e=>e.removeNodes),l=ew(e=>e.addNodeToControlPanel),a=ew(e=>e.removeNodeFromControlPanel),d=ew(e=>e.copy),s=ew(e=>e.nodesConfiguration),c=ew(e=>e.controlPanel.nodes),p=u(({props:e})=>!!e?.node.type&&!!c.find(({id:o})=>o===e.node.id),[c]),h=u(({props:e})=>{if(!e?.node.type)return!1;let o=s[e.node.type];return!!o?.controlPanelNode},[s]);return t(r,{children:n(eP,{id:e8,animation:!1,colors:o.colors,children:[t(e$,{onClick:e=>i([e.props.node]),children:"Delete Node (DEL)"}),t(e$,{hidden:(...e)=>!h(...e)||p(...e),onClick:e=>l(e.props.node),children:"Add To Control Panel"}),t(e$,{hidden:(...e)=>!h(...e)||!p(...e),onClick:e=>a(e.props.node),children:"Remove From Control Panel"}),t(e$,{onClick:e=>d({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})},e7=e=>ew(({patch:e})=>e).audioNodes.get(e),oe=e=>{let o=ew(({updateNodeData:e})=>e),t=ew(({updateNode:e})=>e);return{updateNodeValues:u(t=>o(e,{values:t}),[e,o]),updateNodeConfig:u(t=>o(e,{config:t}),[e,o]),updateNodeLabel:u(t=>o(e,{label:t}),[e,o]),updateNodeSize:u(o=>t(e,o),[e,t])}};let oo=c.input`
|
|
258
258
|
width: 100%;
|
|
259
259
|
background: none;
|
|
260
260
|
border: none;
|
|
@@ -283,7 +283,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
283
283
|
padding: 0.3rem;
|
|
284
284
|
border-radius: 0.2rem;
|
|
285
285
|
}
|
|
286
|
-
`;var
|
|
286
|
+
`;var ot=({onChange:e,value:o="",className:n})=>{let r=f(null),[i,l]=h(!1),a=u(e=>{e.target?.select(),l(!0)},[l]),d=u(()=>{window.getSelection()?.collapseToEnd(),l(!1)},[l]),s=u(()=>{d(),r.current&&e(r.current.value)},[r,d,e]),c=u(()=>{d(),r.current&&o&&(r.current.value=o)},[r,d,o]);return g(()=>{r.current&&(r.current.value=o)},[o,r]),t(oo,{ref:r,type:"text",readOnly:!i,onDoubleClick:e=>a(e),onBlur:s,onKeyDown:e=>{switch(e.key){case"Escape":c();break;case"Enter":s()}},className:n})};let on=i(c.div`
|
|
287
287
|
height: 100%;
|
|
288
288
|
width: 100%;
|
|
289
289
|
overflow: scroll;
|
|
@@ -362,13 +362,17 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
362
362
|
margin-inline-end: 0px;
|
|
363
363
|
unicode-bidi: isolate;
|
|
364
364
|
}
|
|
365
|
-
`);var
|
|
366
|
-
background-color:
|
|
367
|
-
|
|
365
|
+
`);var or=({isOpen:e,onClose:o,type:n,node:r})=>{let{info:i,portsDescription:l}=ew(e=>e.nodesConfiguration[n]),a=m(()=>{let e=[],o=r?.inputs;if(o)for(let t in e.push("## Inputs"),o){let n=o[t];e.push(`### *${t}*`);let r=l?.inputs?.[t];r&&e.push(r),Array.isArray(n.type)?e.push(`**Types**: \`${n.type.join(", ")}\``):e.push(`**Type**: \`${n.type||"unknown"}\``),n.range&&e.push(`**Range**: \`[${n.range[0]}, ${n.range[1]}]\``),void 0!==n.defaultValue&&e.push(`**Default**: \`${n.defaultValue}\``)}let t=r?.outputs;if(t)for(let o in e.push("## Outputs"),t){let n=t[o];e.push(`### *${o}*`);let r=l?.outputs?.[o];r&&e.push(r),Array.isArray(n.type)?e.push(`**Types**: \`${n.type.join(", ")}\``):e.push(`**Type**: \`${n.type||"unknown"}\``),n.range&&e.push(`**Range**: \`[${n.range[0]}, ${n.range[1]}]\``),void 0!==n.defaultValue&&e.push(`**Default**: \`${n.defaultValue}\``)}return e.join("\n\n")},[r,l]);return e?t(eT,{onClose:o,children:t(on,{dangerouslySetInnerHTML:{__html:ec((i||"")+"\n\n"+a||"")}})}):null};let oi=i(c.div`
|
|
366
|
+
background-color: ${({theme:e})=>e.colors.elevation1};
|
|
367
|
+
height: 100%;
|
|
368
|
+
width: 100%;
|
|
369
|
+
display: flex;
|
|
370
|
+
flex-direction: column;
|
|
371
|
+
`),ol=c(oi)`
|
|
368
372
|
padding: 2rem 5rem;
|
|
369
|
-
`,
|
|
373
|
+
`,oa=c(oi)`
|
|
370
374
|
padding: 1rem 2rem;
|
|
371
|
-
`,
|
|
375
|
+
`,od=c(x)`
|
|
372
376
|
font-size: 1.2rem;
|
|
373
377
|
opacity: 0.4;
|
|
374
378
|
width: 1rem;
|
|
@@ -376,7 +380,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
376
380
|
opacity: 1;
|
|
377
381
|
cursor: pointer;
|
|
378
382
|
}
|
|
379
|
-
`,
|
|
383
|
+
`,os=c(w)`
|
|
380
384
|
font-size: 1.2rem;
|
|
381
385
|
opacity: 0.4;
|
|
382
386
|
width: 1rem;
|
|
@@ -384,14 +388,16 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
384
388
|
opacity: 1;
|
|
385
389
|
cursor: pointer;
|
|
386
390
|
}
|
|
387
|
-
`,
|
|
391
|
+
`,oc=c.div`
|
|
388
392
|
position: relative;
|
|
389
393
|
font-family: var(--leva-fonts-mono);
|
|
390
394
|
font-size: var(--leva-fontSizes-root);
|
|
391
395
|
background-color: var(--leva-colors-elevation1);
|
|
392
|
-
`,
|
|
396
|
+
`,op=c(oc)`
|
|
393
397
|
display: flex;
|
|
394
|
-
height:
|
|
398
|
+
height: 2rem;
|
|
399
|
+
max-height: 2rem;
|
|
400
|
+
min-height: 2rem;
|
|
395
401
|
touch-action: none;
|
|
396
402
|
align-items: center;
|
|
397
403
|
justify-content: center;
|
|
@@ -399,38 +405,48 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
399
405
|
color: var(--leva-colors-highlight1);
|
|
400
406
|
padding: 0 0.4rem;
|
|
401
407
|
gap: 0.3rem;
|
|
402
|
-
`,
|
|
408
|
+
`,oh=c(oc)(({theme:e})=>`
|
|
403
409
|
display: grid;
|
|
404
410
|
grid-template-areas: "inputs outputs";
|
|
405
411
|
background: ${e.colors.elevation2};
|
|
406
412
|
border-bottom: 1px solid ${e.colors.elevation1};
|
|
407
413
|
color: ${e.colors.highlight3};
|
|
408
414
|
font-size: 0.6rem;
|
|
409
|
-
`),
|
|
415
|
+
`),og=c.div`
|
|
410
416
|
grid-area: inputs;
|
|
411
417
|
text-align: left;
|
|
412
|
-
`,
|
|
418
|
+
`,om=c.div`
|
|
413
419
|
grid-area: outputs;
|
|
414
420
|
text-align: right;
|
|
415
|
-
`,
|
|
421
|
+
`,ou=c.div`
|
|
416
422
|
position: relative;
|
|
417
423
|
padding: 5px 10px;
|
|
418
|
-
`,
|
|
419
|
-
|
|
424
|
+
`,of=c.div`
|
|
425
|
+
width: 100%;
|
|
426
|
+
height: 100%;
|
|
427
|
+
display: flex;
|
|
428
|
+
flex-direction: column;
|
|
429
|
+
`,ov=c(eT)`
|
|
430
|
+
padding: 1rem;
|
|
431
|
+
max-width: 20rem;
|
|
432
|
+
height: auto;
|
|
433
|
+
max-height: 90%;
|
|
434
|
+
`,ob=i(c(A,{shouldForwardProp:e=>"portType"!==e})`
|
|
435
|
+
--port-color: ${e=>{if(!e.portType)return e.theme.colors.highlight2;if(!Array.isArray(e.portType))return em[e.portType];{let o=e.portType.map(e=>em[e]);return`linear-gradient(0.25turn, ${o.join(", ")});`}}};
|
|
420
436
|
border-color: var(--port-color);
|
|
421
437
|
background: var(--port-color);
|
|
422
438
|
box-shadow: 0px 0px 0px 1px ${({theme:e})=>e.colors.elevation2} inset;
|
|
423
|
-
`),
|
|
439
|
+
`),oy=i(c(ob)`
|
|
424
440
|
left: 0;
|
|
425
|
-
`),
|
|
441
|
+
`),ox=({...e})=>t(oy,{...e,type:"target",position:M.Left}),ow=i(c(ob)`
|
|
426
442
|
right: 0;
|
|
427
|
-
`),
|
|
443
|
+
`),oC=e=>t(ow,{...e,type:"source",position:M.Right}),ok=({className:e,...o})=>t(op,{...o,className:[e,ep].join(" ")}),o$=e=>ew(o=>o.nodesConfiguration[e]),oN=e=>{let{id:o,children:r,selected:i,...l}=e,a=ek(),d=ew(({getNode:e})=>e),s=ew(e=>e.nodesConfiguration),[c,p]=h(!1),{info:g,minSize:u}=o$(e.type),f=m(()=>s[e.type].resizable??!1,[s,e.type]),{updateNodeLabel:v,updateNodeConfig:b}=oe(o),{data:y}=d(o)||{},x=e7(o),{ConfigNode:w}=(e=>{let{configNode:o}=o$(e);return{ConfigNode:o}})(l.type),[C,k]=h(!1);if(!x)return t(ol,{className:ep,children:"can't find audio node"});if(x.loading)return t(ol,{className:ep,children:"loading"});if(x.error)return n(oa,{className:ep,children:["error: ",x.error.toString()]});if(!x.node)return t(ol,{className:ep,children:"can't find audio node"});let{node:{inputs:$,outputs:N}}=x;return n(oi,{children:[n(ok,{children:[g&&t(os,{onClickCapture:()=>p(!0)}),t(ot,{value:y?.label??"No Name",onChange:v}),w&&t(od,{onClickCapture:()=>k(e=>!e)})]}),n(oh,{theme:a,children:[t(og,{children:$?Object.keys($).map((e,o)=>n(ou,{children:[t(ox,{id:e,portType:$[e].type}),t("span",{children:e})]},o)):null}),t(om,{children:N?Object.keys(N).map((e,o)=>n(ou,{children:[t(oC,{id:e,portType:N[e].type}),t("span",{children:e})]},o)):null})]}),t(of,{children:r}),f&&t(_,{style:{background:"transparent",border:"none"},minWidth:u?.width||180,minHeight:u?.height||100}),t(or,{isOpen:c,type:e.type,onClose:()=>p(!1),node:x.node}),w&&C&&t(ov,{onClose:()=>k(!1),outerBackground:a.colors.elevation3+"ee",children:t(w,{...e,data:{label:"unknown",...e.data}})})]})},oP=c.div`
|
|
428
444
|
width: 100%;
|
|
429
445
|
padding: 0.4rem 0;
|
|
430
446
|
white-space: nowrap;
|
|
431
447
|
overflow: hidden;
|
|
432
448
|
text-overflow: ellipsis;
|
|
433
|
-
`,
|
|
449
|
+
`,oz=c(ok)`
|
|
434
450
|
display: flex;
|
|
435
451
|
gap: 0.1rem;
|
|
436
452
|
padding: 0 0.4rem;
|
|
@@ -438,13 +454,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
438
454
|
font-size: 0.6rem;
|
|
439
455
|
height: auto;
|
|
440
456
|
min-width: 0;
|
|
441
|
-
`,
|
|
457
|
+
`,oj=c.div`
|
|
442
458
|
display: flex;
|
|
443
459
|
align-items: center;
|
|
444
460
|
height: 70%;
|
|
445
461
|
width: auto;
|
|
446
462
|
gap: 0.4rem;
|
|
447
|
-
`,
|
|
463
|
+
`,oF=c.span`
|
|
448
464
|
width: auto;
|
|
449
465
|
height: 100%;
|
|
450
466
|
cursor: pointer;
|
|
@@ -456,11 +472,11 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
456
472
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
457
473
|
cursor: pointer;
|
|
458
474
|
}
|
|
459
|
-
`,
|
|
475
|
+
`,oE=c.div`
|
|
460
476
|
height: 100%;
|
|
461
477
|
display: grid;
|
|
462
478
|
grid-template-rows: auto 1fr;
|
|
463
|
-
`,
|
|
479
|
+
`,oS=e=>{let{node:o}=e,n=ew(e=>e.getControlPanelNode),r=m(()=>n(o),[o]);return r?t(r,{...e}):null};var oT=e=>{let{node:o,showControls:r,onDelete:i}=e,l=ek(),{id:a}=o,{node:d}=e7(a)||{},{updateNodeValues:s}=oe(a);return n(oE,{theme:l,children:[n(oz,{theme:l,children:[t(oP,{children:o.data.label}),r&&n(oj,{children:[t(oF,{theme:l,children:t(y,{className:"grid-item-handle"})}),t(oF,{theme:l,children:t(b,{onClick:()=>i(o)})})]})]}),t(oS,{node:o,audioNode:d,updateNodeValues:s})]})};let oD=c.div`
|
|
464
480
|
position: fixed;
|
|
465
481
|
z-index: 5;
|
|
466
482
|
box-shadow: 0px 1px 2px ${({theme:e})=>e.colors.elevation2};
|
|
@@ -480,34 +496,34 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
480
496
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
481
497
|
cursor: pointer;
|
|
482
498
|
}
|
|
483
|
-
`,
|
|
499
|
+
`,oM=c(oj)`
|
|
484
500
|
height: 80%;
|
|
485
|
-
`,
|
|
501
|
+
`,oA=c(oF)`
|
|
486
502
|
font-size: 1rem;
|
|
487
503
|
display: flex;
|
|
488
504
|
align-items: center;
|
|
489
|
-
`,
|
|
505
|
+
`,o_=c(oz)`
|
|
490
506
|
grid-template-columns: 1fr auto;
|
|
491
507
|
border-bottom: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
492
508
|
font-size: 0.7rem;
|
|
493
|
-
`,
|
|
509
|
+
`,oI=c(oP)`
|
|
494
510
|
text-align: center;
|
|
495
|
-
`,
|
|
511
|
+
`,oL=c.div`
|
|
496
512
|
height: 100%;
|
|
497
513
|
width: 100%;
|
|
498
514
|
padding: 0.3rem 0.4rem;
|
|
499
515
|
box-sizing: border-box;
|
|
500
|
-
`,
|
|
516
|
+
`,oH=c.div`
|
|
501
517
|
height: auto;
|
|
502
518
|
padding: 0;
|
|
503
519
|
max-height: 95vh;
|
|
504
520
|
overflow-y: scroll;
|
|
505
521
|
border: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
506
|
-
`,
|
|
522
|
+
`,oR=c.div`
|
|
507
523
|
padding: 1rem 0;
|
|
508
524
|
font-family: var(--leva-fonts-mono);
|
|
509
525
|
font-size: 0.8rem;
|
|
510
|
-
`,
|
|
526
|
+
`,oW=c.div`
|
|
511
527
|
display: flex;
|
|
512
528
|
align-items: center;
|
|
513
529
|
gap: 0.5rem;
|
|
@@ -516,7 +532,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
516
532
|
&:hover {
|
|
517
533
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
518
534
|
}
|
|
519
|
-
`,
|
|
535
|
+
`,oO=c.div`
|
|
520
536
|
position: absolute;
|
|
521
537
|
height: 1rem;
|
|
522
538
|
top: 0;
|
|
@@ -524,14 +540,14 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
524
540
|
margin: auto;
|
|
525
541
|
left: 0.5rem;
|
|
526
542
|
border-right: 1px solid ${({theme:e})=>e.colors.whitePrimary};
|
|
527
|
-
`,
|
|
543
|
+
`,oB=c.div`
|
|
528
544
|
box-sizing: border-box;
|
|
529
545
|
overflow: hidden;
|
|
530
546
|
.react-resizable-handle:after {
|
|
531
547
|
border-color: ${({theme:e})=>e.colors.whitePrimary};
|
|
532
548
|
border-width: 1px;
|
|
533
549
|
}
|
|
534
|
-
`;var
|
|
550
|
+
`;var oU=()=>{let e=ek(),o=f(null),i=ew(e=>e.nodes),{show:l,nodes:a,size:d}=ew(e=>e.controlPanel),{width:s=200,height:c}=d,p=m(()=>{let e=a.map(({id:e})=>e);return i.filter(({id:o})=>e.includes(o))},[i,a]),g=ew(e=>e.showControlPanel),u=ew(e=>e.hideControlPanel),v=ew(e=>e.setControlPanelNodes),y=ew(e=>e.setControlPanelSize),x=ew(e=>e.removeNodeFromControlPanel),[w,C]=h(!0),k=m(()=>{let e=a.reduce((e,{height:o=eg,x:t,y:n=0})=>{let r=n+o;return r>e?r:e},0);return a.map(({id:o,width:t,height:n,x:r,y:i})=>({i:o,w:t||4,h:n||6,x:r??0,y:i??e}))},[a]);return p.length?n(r,{children:[t(oD,{theme:e,ref:o,onClick:g,children:t(ed,{})}),n(es,{open:l,onClose:u,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[n(o_,{theme:e,children:[t(oI,{children:"Control Panel"}),t(oM,{children:t(oA,{onClick:u,theme:e,children:t(b,{})})})]}),n(oL,{children:[t(oR,{children:w?n(oW,{theme:e,onClick:()=>C(!1),children:[t(el,{}),"Unlock grid"]}):n(oW,{theme:e,onClick:()=>C(!0),children:[t(ea,{}),"Lock grid"]})}),t(er,{enable:{top:!1,right:!w,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},handleComponent:{right:t(oO,{theme:e})},minWidth:120,size:{width:s,height:"auto"},onResizeStop:(e,o,t,n)=>{y({width:s+n.width,height:c+n.height})},children:t(oH,{theme:e,children:t(ei,{layout:k,className:"layout",cols:4,rowHeight:eg,width:s,margin:[0,0],isResizable:!w,draggableHandle:".grid-item-handle",onLayoutChange:e=>{requestAnimationFrame(()=>{v(e.map(({i:e,w:o,h:t,x:n,y:r})=>({id:e,width:o,height:t,x:n,y:r})))})},children:p.map(o=>t(oB,{theme:e,children:t(oT,{node:o,showControls:!w,onDelete:x})},o.id))})})})]})]})]}):null},oG={};oG="# Quick start\n\n## Add node\n - Mouse right click\n - Select **'Add Node'** from context menu\n\n ### 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 ### 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## Rename node\n - Doubleclick the node title\n\n<br/>\n\n## Undo/Redo\n - `CMD+Z` to Undo / `CMD+SHIFT+Z` to Redo\n - Select **'Undo'**/**'Redo'** from the Edit menu\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<br/>\n\n## Rename file in the project\n - Doubleclick the tab title\n\n\n";let oV=i(c.div`
|
|
535
551
|
font-family: var(--leva-fonts-mono);
|
|
536
552
|
font-size: 0.7rem;
|
|
537
553
|
box-sizing: border-box;
|
|
@@ -596,13 +612,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
596
612
|
margin-inline-end: 0px;
|
|
597
613
|
unicode-bidi: isolate;
|
|
598
614
|
}
|
|
599
|
-
`),
|
|
615
|
+
`),oY=i(c.div`
|
|
600
616
|
padding: 1rem;
|
|
601
617
|
height: 100%;
|
|
602
618
|
width: 100%;
|
|
603
619
|
box-sizing: border-box;
|
|
604
620
|
overflow: hidden;
|
|
605
|
-
`);var
|
|
621
|
+
`);var oX=()=>{var e;let o=ew(e=>e.isHelpShown),n=ew(e=>e.toggleHelp);return o?t(eT,{onClose:()=>{n()},children:t(oY,{children:t(oV,{dangerouslySetInnerHTML:{__html:ec((e=oG)&&e.__esModule?e.default:e)},onWheelCapture:e=>e.stopPropagation()})})}):null};let oJ=()=>t(r,{children:t(I,{onClick:ew(e=>e.toggleHelp),children:t(ee,{})})}),oZ=c.div`
|
|
606
622
|
position: fixed;
|
|
607
623
|
z-index: ${({theme:e})=>e.zIndex.resumeContextLayout};
|
|
608
624
|
width: 100%;
|
|
@@ -616,18 +632,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
616
632
|
justify-content: center;
|
|
617
633
|
color: ${({theme:e})=>e.colors.whitePrimary};
|
|
618
634
|
cursor: pointer;
|
|
619
|
-
`,
|
|
635
|
+
`,oq=c.div`
|
|
620
636
|
display: flex;
|
|
621
637
|
width: 100%;
|
|
622
638
|
align-items: center;
|
|
623
639
|
justify-content: center;
|
|
624
|
-
`,
|
|
640
|
+
`,oK=c.div`
|
|
625
641
|
font-family: var(--leva-fonts-mono);
|
|
626
642
|
font-size: 2rem;
|
|
627
|
-
`,
|
|
643
|
+
`,oQ=c(eo)`
|
|
628
644
|
width: 7rem;
|
|
629
645
|
height: 7rem;
|
|
630
|
-
`;var
|
|
646
|
+
`;var o0=()=>{let e=ek(),o=ew(({patch:e})=>e).audioContext,[r,i]=h("running"===o.state);return r?null:n(oZ,{theme:e,onClick:()=>{o.resume(),i(!0)},children:[t(oq,{children:t(oK,{theme:e,children:"Click anywhere to resume audio context"})}),t(oq,{children:t(oQ,{})})]})},o1=()=>{let e=ew(({setConfig:e})=>e),{showMinimap:o}=ew(({config:e})=>e);return t(I,{onClick:()=>e({showMinimap:!o}),children:o?t(et,{}):t(en,{})})},o2=({id:e,sourceX:o,sourceY:i,targetX:l,targetY:a,sourcePosition:d,targetPosition:s,style:c={},data:p,markerStart:h,markerEnd:m,source:u,target:f,sourceHandleId:v,targetHandleId:b,selected:y})=>{let x=ek(),w=ew(({getNode:e})=>e),C=w(u),k=w(f),$=C?.selected||k?.selected;g(()=>{if(v&&b)return console.log(`connected ${u} to ${f}`),()=>{console.log(`disconnected ${u} from ${f}`)}},[u,v,f,b]);let[N]=L({targetX:l,targetY:a,targetPosition:s,sourceX:o,sourceY:i,sourcePosition:d});return n(r,{children:[t("path",{id:e,style:{...c,stroke:y?x.colors.accent2:$?x.colors.highlight3:x.colors.highlight2},className:"react-flow__edge-path Wire",d:N,markerEnd:m}),t("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:N,markerEnd:m})]})};let o3=i(c(z)`
|
|
631
647
|
&.bottom {
|
|
632
648
|
right: 1rem;
|
|
633
649
|
bottom: 40%;
|
|
@@ -636,12 +652,12 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
636
652
|
svg {
|
|
637
653
|
color: ${({theme:e})=>e.colors.elevation2};
|
|
638
654
|
}
|
|
639
|
-
`),
|
|
655
|
+
`),o6=(e,o)=>console.log("drag stop",o),o9=(e,o)=>console.log("click",o),o4=[20,20],o8=({editorState:e,plugins:o=[],editorContextMenu:r=[],onChange:i=()=>{},...l})=>{let a=m(()=>({wire:o2}),[]),{nodes:d,edges:s,controlPanel:c,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onEdgesDelete:b,onConnect:y,setViewport:x,viewport:w}=ew();g(()=>{e?.viewport&&!w&&x(e.viewport)},[e?.viewport,x,w]);let C=ew(({config:e})=>e),k=ew(({nodeTypes:e})=>e),[$,N]=h(null);g(()=>{$&&i({nodes:d,edges:s,controlPanel:c,viewport:w})},[d,s,c,w]);let P=u(e=>{$||(N(e),console.log("flow loaded:",e))},[$]),{onContextMenu:z}=(()=>{let{show:e}=V({id:e9});return{onContextMenu:e}})(),{onContextMenu:T}=(()=>{let{show:e}=V({id:e8});return{onContextMenu:u((o,t)=>{o.stopPropagation(),e(o,{props:{node:t}})},[])}})(),{onContextMenu:D}=(()=>{let{show:e}=V({id:ez});return{onContextMenu:u((o,t)=>{o.stopPropagation(),e(o,{props:{edge:t}})},[e])}})();return n(j,{nodes:d,edges:s,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onConnect:y,onNodeDragStop:o6,onEdgesDelete:b,onInit:P,onNodeClick:o9,onContextMenu:z,onNodeContextMenu:T,onEdgeContextMenu:D,nodeTypes:k,edgeTypes:a,snapGrid:o4,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,onViewportChange:x,viewport:e?.viewport,disableKeyboardA11y:!0,children:[t(F,{variant:E.Dots,gap:12}),C.showMinimap?t(S,{}):null,n(o3,{showInteractive:!1,position:"bottom-right",children:[t(o1,{}),t(oJ,{})]}),t(o0,{}),t(oU,{}),t(oX,{}),t(e4,{editorContextMenu:r}),t(e5,{}),t(ej,{})]})},o5=e=>t(T,{children:t(o8,{...e})}),o7={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},te=i(c.div`
|
|
640
656
|
display: flex;
|
|
641
657
|
flex-direction: column;
|
|
642
658
|
height: 100%;
|
|
643
659
|
width: 100%;
|
|
644
|
-
`),
|
|
660
|
+
`),to=i(c.div`
|
|
645
661
|
position: fixed;
|
|
646
662
|
height: 100%;
|
|
647
663
|
width: 100%;
|
|
@@ -651,18 +667,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
651
667
|
justify-content: center;
|
|
652
668
|
align-items: center;
|
|
653
669
|
font-size: 2rem;
|
|
654
|
-
`),
|
|
670
|
+
`),tt=i(c.div`
|
|
655
671
|
height: 100%;
|
|
656
672
|
width: 100%;
|
|
657
673
|
display: flex;
|
|
658
674
|
position: relative;
|
|
659
|
-
`),
|
|
675
|
+
`),tn=i(c.div`
|
|
660
676
|
display: flex;
|
|
661
677
|
flex: 1;
|
|
662
678
|
align-items: center;
|
|
663
679
|
justify-content: center;
|
|
664
680
|
background: ${({theme:e})=>e.colors.elevation3};
|
|
665
|
-
`),
|
|
681
|
+
`),tr=i(c.div`
|
|
666
682
|
background: ${({theme:e})=>e.colors.elevation2};
|
|
667
683
|
opacity: 0.7;
|
|
668
684
|
position: absolute;
|
|
@@ -677,12 +693,12 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
677
693
|
align-items: center;
|
|
678
694
|
justify-content: center;
|
|
679
695
|
font-size: 6rem;
|
|
680
|
-
`),
|
|
696
|
+
`),ti=e=>{let o=ew(e=>e.pullEditorChanges),i=ew(e=>e.project.currentFileIndex),l=ew(e=>e.project),[a,d]=h(!0);g(()=>{e.onChange?.(l)},[l,e.onChange]),g(()=>{d(!0),setTimeout(()=>{d(!1)},1600)},[i]);let{file:s}=e;return s?"audio"===s.type?t(tn,{children:t("audio",{src:s.file,controls:!0})}):n(r,{children:[t(o5,{...e,onChange:e=>{o()},editorState:s.file||o7}),t(tr,{show:a,children:"Loading..."})]}):null},tl=i(c.div`
|
|
681
697
|
height: 2rem;
|
|
682
698
|
display: flex;
|
|
683
699
|
align-items: center;
|
|
684
700
|
background: ${({theme:e})=>e.colors.elevation2};
|
|
685
|
-
`),
|
|
701
|
+
`),ta=i(c.div`
|
|
686
702
|
display: flex;
|
|
687
703
|
align-items: center;
|
|
688
704
|
cursor: pointer;
|
|
@@ -699,7 +715,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
699
715
|
background-color: ${({theme:e})=>e.colors.elevation1};
|
|
700
716
|
}
|
|
701
717
|
}
|
|
702
|
-
`),
|
|
718
|
+
`),td=i(c.div`
|
|
703
719
|
display: flex;
|
|
704
720
|
align-items: center;
|
|
705
721
|
height: 100%;
|
|
@@ -710,10 +726,10 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
710
726
|
&:hover {
|
|
711
727
|
color: ${({theme:e})=>e.colors.whitePrimary};
|
|
712
728
|
}
|
|
713
|
-
`),
|
|
729
|
+
`),ts=i(c(v)`
|
|
714
730
|
height: 40%;
|
|
715
731
|
width: auto;
|
|
716
|
-
`),
|
|
732
|
+
`),tc=i(c(b)`
|
|
717
733
|
height: 70%;
|
|
718
734
|
width: auto;
|
|
719
735
|
cursor: pointer;
|
|
@@ -724,7 +740,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
724
740
|
${({hide:e})=>e?`
|
|
725
741
|
display: none;
|
|
726
742
|
`:""};
|
|
727
|
-
`),
|
|
743
|
+
`),tp=()=>({file:o7,name:"Unnamed",type:"patch",id:p()});var th=({...e})=>{let{projectState:o,theme:r,plugins:i=[]}=e,s=ew(e=>e.setPlugins),c=ew(e=>e.project.currentFileIndex||0),p=ew(e=>e.project.files[e.project.currentFileIndex||0]),m=ew(e=>e.setCurrentFileIndex),u=ew(e=>e.project),f=ew(e=>e.setProject),v=ew(e=>e.getProject),b=ew(e=>e.updateFileName),y=ew(e=>e.addFile),x=ew(e=>e.deleteFile);ew(e=>e.updateFileContent);let w=ew(e=>e.syncEditorWithCurrentFile),k=ew(e=>e.setEditorState);ew(e=>e.pullEditorChanges);let[$,N]=h(!1);return g(()=>{s(i)},[i]),g(()=>{f(o||{files:[tp()],currentFileIndex:0});let e=o?.files[0];e?.file&&e?.type!=="audio"&&k(e.file)},[o]),g(()=>(C("project://*",async(...e)=>{let o=new Request(...e),t=v().files,n=o.url.replace("project://",""),r=t.find(({id:e})=>e===n);return r?ev(r)?new Response(JSON.stringify(r.file??null)):eb(r)?fetch(r.file):new Response(null):new Response(`File not found: ${o.url}`,{status:404})}),()=>{}),[v]),g(()=>{w()},[c,w]),n(l,{theme:r||eC,children:[t(a,{styles:d`
|
|
728
744
|
:root {
|
|
729
745
|
--leva-colors-elevation1: #292d39;
|
|
730
746
|
--leva-colors-elevation2: #181c20;
|
|
@@ -781,5 +797,54 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
781
797
|
--leva-fontWeights-folder: normal;
|
|
782
798
|
--leva-fontWeights-button: normal;
|
|
783
799
|
}
|
|
784
|
-
`}),n(
|
|
800
|
+
`}),n(te,{onDragOver:e=>{e.preventDefault(),e.stopPropagation(),N(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),N(!1)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),N(!1),Array.from(e.dataTransfer.files).forEach(async e=>{if("application/json"===e.type){let o=JSON.parse(await e.text());if(o.files&&o.files.length){if(!window.confirm("This action will replace your current project. Continue?"))return;f(o),m(0),w();return}y({...tp(),file:{...o,controlPanel:{...o7.controlPanel,...o.controlPanel}},name:e.name},e.name);return}if(e.type.match(/^audio\//)){let o=await eQ(e);y({type:"audio",id:`audio-file-${+new Date}`,name:e.name,file:o});return}console.error("Unsupported file type",e)})},children:[n(tl,{children:[u.files.map((e,o)=>n(ta,{onClick:()=>{m(o)},active:o===c,children:[t(ot,{onChange:e=>b(o,e),value:e.name||"Unnamed"}),u.files.length>1&&t(tc,{onClick:e=>{if(e.stopPropagation(),window.confirm("Do you really want to delete this file?")){if(1===u.files.length)return void alert("You cannot delete the last file in the project");x(o)}}})]},o)),t(td,{onClick:()=>{y(tp())},children:t(ts,{})})]}),t(tt,{children:t(ti,{file:p,...e})}),$&&t(to,{children:"Drop file(s) to upload to the project"})]})]})};let tg=i(c.div`
|
|
801
|
+
height: 100%;
|
|
802
|
+
width: 100%;
|
|
803
|
+
display: flex;
|
|
804
|
+
flex-direction: column;
|
|
805
|
+
overflow: hidden;
|
|
806
|
+
`),tm=c(x)`
|
|
807
|
+
font-size: 1.2rem;
|
|
808
|
+
opacity: 0.4;
|
|
809
|
+
width: 1rem;
|
|
810
|
+
&:hover {
|
|
811
|
+
opacity: 1;
|
|
812
|
+
cursor: pointer;
|
|
813
|
+
}
|
|
814
|
+
`,tu=c(w)`
|
|
815
|
+
font-size: 1.2rem;
|
|
816
|
+
opacity: 0.4;
|
|
817
|
+
width: 1rem;
|
|
818
|
+
&:hover {
|
|
819
|
+
opacity: 1;
|
|
820
|
+
cursor: pointer;
|
|
821
|
+
}
|
|
822
|
+
`,tf=c.div`
|
|
823
|
+
position: relative;
|
|
824
|
+
font-family: var(--leva-fonts-mono);
|
|
825
|
+
font-size: var(--leva-fontSizes-root);
|
|
826
|
+
background-color: var(--leva-colors-elevation1);
|
|
827
|
+
`,tv=c(tf)`
|
|
828
|
+
display: flex;
|
|
829
|
+
height: 2rem;
|
|
830
|
+
max-height: 2rem;
|
|
831
|
+
min-height: 2rem;
|
|
832
|
+
touch-action: none;
|
|
833
|
+
align-items: center;
|
|
834
|
+
justify-content: space-between;
|
|
835
|
+
flex: 1 1 0%;
|
|
836
|
+
color: var(--leva-colors-highlight1);
|
|
837
|
+
padding: 0 0.4rem;
|
|
838
|
+
gap: 0.3rem;
|
|
839
|
+
`;c.div`
|
|
840
|
+
width: 100%;
|
|
841
|
+
height: 100%;
|
|
842
|
+
display: flex;
|
|
843
|
+
flex-direction: column;
|
|
844
|
+
`;let tb=c(eT)`
|
|
845
|
+
padding: 1rem;
|
|
846
|
+
max-width: 20rem;
|
|
847
|
+
height: auto;
|
|
848
|
+
max-height: 90%;
|
|
849
|
+
`,ty=({className:e,...o})=>t(tv,{...o,className:[e,ep].join(" ")}),tx=e=>ew(o=>o.nodesConfiguration[e]),tw=e=>{let{id:o,children:r,selected:i,...l}=e,a=ek(),d=ew(({getNode:e})=>e),s=ew(e=>e.nodesConfiguration),[c,p]=h(!1),{info:g,minSize:u}=tx(e.type),f=m(()=>s[e.type].resizable??!1,[s,e.type]),{updateNodeLabel:v}=oe(o),{data:b}=d(o)||{},y=e7(o),{ConfigNode:x}=(e=>{let{configNode:o}=tx(e);return{ConfigNode:o}})(l.type),[w,C]=h(!1);return n(tg,{children:[!e.hideToolbar&&n(ty,{children:[g&&t(tu,{onClickCapture:()=>p(!0)}),t(ot,{value:b?.label??"No Name",onChange:v}),x&&t(tm,{onClickCapture:()=>C(e=>!e)})]}),r,f&&t(_,{style:{background:"transparent",border:"none"},minWidth:u?.width||180,minHeight:u?.height||100}),t(or,{isOpen:c,type:e.type,onClose:()=>p(!1),node:y?.node??null}),x&&w&&t(tb,{onClose:()=>C(!1),outerBackground:a.colors.elevation3+"ee",children:t(x,{...e,data:{label:"unknown",...e.data}})})]})};export{th as Editor,o7 as EDITOR_DEFAULTS,o2 as Wire,oN as WNNode,ok as TitleBar,oh as PortsPanel,om as OutputPorts,oC as OutputHandle,og as InputPorts,ox as InputHandle,ou as Port,tw as BaseWNNode,eT as Modal,ot as EditableLabel,e7 as useAudioNode,oe as useNode,ek as useTheme,ew as useStore,eC as theme,eb as isAudio,ev as isPatch,ex as PortType};
|
|
785
850
|
//# sourceMappingURL=module.js.map
|