@web-noise/core 0.0.15-alpha.2 → 0.0.16-alpha.1
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 +23 -18
- package/dist/cjs/components.js.map +1 -1
- package/dist/esm/components.js +57 -52
- package/dist/esm/components.js.map +1 -1
- package/dist/main.js +91 -86
- package/dist/main.js.map +1 -1
- package/dist/module.js +76 -71
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +14 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +16 -22
package/dist/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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 k,{getConnectedEdges as $,addEdge as P,applyNodeChanges as N,applyEdgeChanges as z,Controls as E,useOnViewportChange as F,Background as j,BackgroundVariant as D,MiniMap as M,ReactFlowProvider as T,useReactFlow as S,Position as A,Handle as I,ControlButton as _,getBezierPath as H}from"reactflow";import{create as L}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 V}from"@emotion/css";import"reactflow/dist/style.css";import{useContextMenu as G,Item as X,Menu as Y,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 es}from"react-icons/rx";import ed 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;(eb=ey||(ey={})).Gate="gate",eb.Number="number",eb.Audio="audio",eb.Any="any";let em=e=>JSON.parse(JSON.stringify(e)),eu=(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))}},ef=e=>!("type"in e)||"patch"===e.type,ev=e=>"audio"===e.type;var eb,ey,ex=L((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}))}))},onEdgesChange:o=>{e(({edges:e})=>({edges:z(o,e)}))},onConnect:o=>{e(({edges:e})=>({edges:P(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=O(s);d&&e({...B(em({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({...B(em({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:W(),nodesState:{}}))(...e),...((e,o)=>({project:{files:[]},setProject(o){e({project:o,currentFileIndex:0})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:t,updateFileContent:n,project:r}=o(),i=r.files[t];ev(i)||n(t,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:t,project:n}=o(),r=n.files[e];"audio"===r.type?console.log("audio file. skipping"):t(r.file)},currentFileIndex:0,setCurrentFileIndex(t){let{currentFileIndex:n}=o();t!==n&&e({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(t){let{project:n}=o(),r=[...n.files,t];e({project:{...n,files:r}})},deleteFile:t=>{let{project:n,currentFileIndex:r}=o();e({project:{...n,files:n.files.filter((e,o)=>t!==o)}}),t<=r&&e({currentFileIndex:Math.max(0,r-1)})}}))(...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(({parentNode:e})=>e&&s.includes(e))];a(d),l($(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(P(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: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/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.currentFileIndex!==o.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=new Set,i={...t(),nodes:[],edges:[]};return o(async(...o)=>{let n=t(),[l]=o,a={...i,..."function"==typeof l?l({...i}):l},s=eu(i.nodes,a.nodes),d=eu(i.edges,a.edges);i=a;let c=s.added,p=d.added,h=d.removed,g=s.removed,{patch:m}=n;if(c.length){let e=m.registerAudioNodes(c);r.add(e),await e,r.delete(e)}if(!(p.length||h.length||g.length))return void e(...o);if(r.size)try{await Promise.all([...r.values()])}catch(e){console.log("some error",e)}p.length&&m.registerAudioConnections(p),h.length&&m.unregisterAudioConnections(h),g.length&&m.unregisterAudioNodes(g),e(...o)},t,n)})),ew={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}};V`
|
|
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,useOnViewportChange as F,ReactFlow as E,Background as j,BackgroundVariant as D,MiniMap as T,ReactFlowProvider as M,useReactFlow as S,Position as A,Handle as _,ControlButton as I,getBezierPath as R}from"@xyflow/react";import{create as H}from"zustand";import{setAudioNodeTypes as L,createPatch as W}from"@web-noise/patch";import{reverse as O,patch as B,create as U}from"jsondiffpatch";import{injectGlobal as V}from"@emotion/css";import"@xyflow/react/dist/style.css";import{useContextMenu as G,Item as X,Menu as Y,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 es}from"react-icons/rx";import ed 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;(eb=ey||(ey={})).Gate="gate",eb.Number="number",eb.Audio="audio",eb.Any="any";let em=e=>JSON.parse(JSON.stringify(e)),eu=(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))}},ef=e=>!("type"in e)||"patch"===e.type,ev=e=>"audio"===e.type;var eb,ey,ex=H((e=(...e)=>{let[o,t]=e;return{...((e,o)=>({nodes:[],edges:[],onNodesChange:o=>{e(({nodes:e})=>({nodes:P(o,e).map(e=>({dragHandle:eh,...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=O(s);d&&e({...B(em({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({...B(em({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:W(),nodesState:{}}))(...e),...((e,o)=>({project:{files:[]},setProject(o){e({project:o,currentFileIndex:0})},getProject:()=>o().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:t,updateFileContent:n,project:r}=o(),i=r.files[t];ev(i)||n(t,{...i,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:t,project:n}=o(),r=n.files[e];"audio"===r.type?console.log("audio file. skipping"):t(r.file)},currentFileIndex:0,setCurrentFileIndex(t){let{currentFileIndex:n}=o();t!==n&&e({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(t){let{project:n}=o(),r=[...n.files,t];e({project:{...n,files:r}})},deleteFile:t=>{let{project:n,currentFileIndex:r}=o();e({project:{...n,files:n.files.filter((e,o)=>t!==o)}}),t<=r&&e({currentFileIndex:Math.max(0,r-1)})}}))(...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}),{});L(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/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.currentFileIndex!==o.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=new Set,i={...t(),nodes:[],edges:[]};return o(async(...o)=>{let n=t(),[l]=o,a={...i,..."function"==typeof l?l({...i}):l},s=eu(i.nodes,a.nodes),d=eu(i.edges,a.edges);i=a;let c=s.added,p=d.added,h=d.removed,g=s.removed,{patch:m}=n;if(c.length){let e=m.registerAudioNodes(c);r.add(e),await e,r.delete(e)}if(!(p.length||h.length||g.length))return void e(...o);if(r.size)try{await Promise.all([...r.values()])}catch(e){console.log("some error",e)}p.length&&m.registerAudioConnections(p),h.length&&m.unregisterAudioConnections(h),g.length&&m.unregisterAudioNodes(g),e(...o)},t,n)})),ew={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}};V`
|
|
2
2
|
.react-flow {
|
|
3
3
|
.react-flow__pane {
|
|
4
4
|
/* background: rgb(106 106 106); */
|
|
@@ -22,6 +22,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
22
22
|
.react-flow__node {
|
|
23
23
|
padding: 0;
|
|
24
24
|
width: auto;
|
|
25
|
+
box-sizing: content-box;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
.react-flow__edge-path {
|
|
@@ -46,7 +47,11 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
46
47
|
} */
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
`;var eC=()=>{let e=d();return{...ew,...e}};let ek=c(X)``,e$=c(
|
|
50
|
+
`;var eC=()=>{let e=d();return{...ew,...e}};let ek=c(X)``,e$=i(c(ek)`
|
|
51
|
+
.react-contexify__item__content {
|
|
52
|
+
color: ${({theme:e})=>e.colors.error};
|
|
53
|
+
}
|
|
54
|
+
`),eP=c(Y)`
|
|
50
55
|
background: ${({colors:e})=>e.elevation2};
|
|
51
56
|
padding: 0;
|
|
52
57
|
border-radius: 0;
|
|
@@ -59,7 +64,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
59
64
|
background-color: ${({colors:e})=>e.elevation1};
|
|
60
65
|
margin: 0;
|
|
61
66
|
}
|
|
62
|
-
`,
|
|
67
|
+
`,eN="editor-edge-menu";var ez=()=>{let e=eC(),o=ex(e=>e.removeEdges);return t(r,{children:t(eP,{id:eN,animation:!1,colors:e.colors,children:t(ek,{onClick:e=>o([e.props.edge]),children:"Delete Edge (DEL)"})})})};let eF=c.div`
|
|
63
68
|
position: fixed;
|
|
64
69
|
z-index: ${({theme:e})=>e.zIndex.modal};
|
|
65
70
|
width: 100%;
|
|
@@ -78,19 +83,19 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
78
83
|
height: 80%;
|
|
79
84
|
overflow-y: scroll;
|
|
80
85
|
position: relative;
|
|
81
|
-
`,
|
|
86
|
+
`,ej=c(b)`
|
|
82
87
|
position: absolute;
|
|
83
88
|
top: 0.2rem;
|
|
84
89
|
right: 0.2rem;
|
|
85
90
|
cursor: pointer;
|
|
86
|
-
`;var
|
|
91
|
+
`;var eD=({children:e,onClose:o,...r})=>{let i=eC();return g(()=>{let e=e=>{"Escape"===e.key&&o?.()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[o]),q(t(eF,{theme:i,onClick:o,children:n(eE,{...r,onClick:e=>{e.stopPropagation()},theme:i,children:[e,t(ej,{theme:i,onClick:o})]})}),document.body)};let eT=i(c.div`
|
|
87
92
|
width: 100%;
|
|
88
93
|
`),eM=i(c.div`
|
|
89
94
|
padding: 1rem;
|
|
90
95
|
display: flex;
|
|
91
96
|
flex-direction: column;
|
|
92
97
|
gap: 1rem;
|
|
93
|
-
`),
|
|
98
|
+
`),eS=i(c.ul`
|
|
94
99
|
list-style: none;
|
|
95
100
|
margin: 0;
|
|
96
101
|
padding: 0;
|
|
@@ -111,18 +116,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
111
116
|
cursor: pointer;
|
|
112
117
|
}
|
|
113
118
|
}
|
|
114
|
-
`),
|
|
119
|
+
`),eA=i(c.div`
|
|
115
120
|
white-space: nowrap;
|
|
116
121
|
overflow: hidden;
|
|
117
122
|
text-overflow: ellipsis;
|
|
118
|
-
`),
|
|
123
|
+
`),e_=i(c.div`
|
|
119
124
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
120
125
|
font-size: 12px;
|
|
121
126
|
`),eI=i(c.div`
|
|
122
127
|
display: flex;
|
|
123
128
|
gap: 0.2rem;
|
|
124
129
|
flex-wrap: wrap;
|
|
125
|
-
`),
|
|
130
|
+
`),eR=i(c.span`
|
|
126
131
|
cursor: pointer;
|
|
127
132
|
font-size: 10px;
|
|
128
133
|
background: ${({theme:e,isActive:o})=>o?e.colors.highlight1:e.colors.elevation3};
|
|
@@ -137,13 +142,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
137
142
|
font-size: 1.1rem;
|
|
138
143
|
padding: 0.25rem 0;
|
|
139
144
|
color: ${({theme:e})=>e.colors.highlight3};
|
|
140
|
-
`),
|
|
145
|
+
`),eW=i(c.div`
|
|
141
146
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
142
147
|
font-size: 12px;
|
|
143
|
-
`);var
|
|
148
|
+
`);var eO=({onComponentClick:e,filters:{plugin:o,search:r="",tags:i},onTagClick:l})=>{let a=ex(({plugins:e})=>e),s=m(()=>o?a.filter(({name:e})=>e===o):a,[a,o]);return t(eT,{children:m(()=>r||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(r.toLocaleLowerCase())||o?.toLocaleLowerCase().includes(r.toLocaleLowerCase()))})):s,[s,r,i]).map(({name:o,description:r,components:a},s)=>a.length?n(eM,{children:[n(eH,{children:[t(eL,{children:o}),t(eW,{children:r})]}),t(eS,{children:a.sort((e,o)=>e.type.toLowerCase()>o.type.toLowerCase()?1:-1).map((o,r)=>n("li",{onClick:()=>e(o),children:[t(eA,{children:o.name||o.type}),o.description&&t(e_,{children:o.description}),t(eI,{children:o.tags?.map((e,o)=>t(eR,{isActive:i?.includes(e),onClickCapture:o=>{o.stopPropagation(),l(e)},children:e},o))})]},r))})]},s):null)})};let eB=c.div`
|
|
144
149
|
display: flex;
|
|
145
150
|
position: relative;
|
|
146
|
-
`,
|
|
151
|
+
`,eU=c.input`
|
|
147
152
|
padding-right: 2rem;
|
|
148
153
|
padding-left: 0.3rem;
|
|
149
154
|
width: 100%;
|
|
@@ -174,14 +179,14 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
174
179
|
-webkit-appearance: none;
|
|
175
180
|
margin-right: 1rem;
|
|
176
181
|
}
|
|
177
|
-
`,
|
|
182
|
+
`,eV=c.div`
|
|
178
183
|
display: flex;
|
|
179
184
|
flex-direction: column;
|
|
180
185
|
padding: 0.6rem;
|
|
181
186
|
gap: 0.6rem;
|
|
182
187
|
border-right: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
183
188
|
min-width: 14rem;
|
|
184
|
-
`,
|
|
189
|
+
`,eG=c.label`
|
|
185
190
|
user-select: none;
|
|
186
191
|
input {
|
|
187
192
|
display: none;
|
|
@@ -193,7 +198,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
193
198
|
color: ${({theme:e})=>e.colors.accent3};
|
|
194
199
|
cursor: pointer;
|
|
195
200
|
}
|
|
196
|
-
`,
|
|
201
|
+
`,eX=i(c(eR)`
|
|
197
202
|
font-size: 12px;
|
|
198
203
|
padding: 0.2rem 0.4rem;
|
|
199
204
|
&:hover {
|
|
@@ -202,16 +207,16 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
202
207
|
content: "×";
|
|
203
208
|
margin-left: 0.4rem;
|
|
204
209
|
}
|
|
205
|
-
`);var
|
|
210
|
+
`);var eY=({onChange:e,value:o})=>{let r=eC(),i=ex(({plugins:e})=>e),l=f(null);return g(()=>{l.current&&l.current.focus()},[l]),n(eV,{theme:r,children:[t(eB,{children:t(eU,{ref:l,theme:r,value:o.search||"",placeholder:"search...",onChange:t=>e({...o,search:t.target.value})})}),t(eI,{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(eG,{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 eJ=c.div`
|
|
206
211
|
height: 100%;
|
|
207
212
|
width: 100%;
|
|
208
213
|
display: flex;
|
|
209
214
|
gap: 1rem;
|
|
210
|
-
`,
|
|
215
|
+
`,eZ=c.div`
|
|
211
216
|
flex-grow: 1;
|
|
212
217
|
height: 100%;
|
|
213
218
|
overflow-y: scroll;
|
|
214
|
-
`;var
|
|
219
|
+
`;var eq=({isOpen:e,closeMenu:o,mousePosition:r})=>{let i=eC(),{screenToFlowPosition:l}=S(),{createNode:a}=ex(({createNode:e})=>({createNode:e})),[s,d]=h({}),c=u(({type:e})=>{let{x:t,y:n}=l(r);a({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:t,y:n},targetPosition:A.Left,sourcePosition:A.Right}),o()},[r,l,a,o,r]);return e?t(eD,{onClose:()=>{o(),d({})},children:n(eJ,{theme:i,children:[t(eY,{onChange:d,value:s}),t(eZ,{theme:i,children:t(eO,{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 eK=e=>new Promise((o,t)=>{let n=new FileReader;n.readAsDataURL(e),n.onload=()=>o(n.result?.toString()||""),n.onerror=e=>t(e)}),eQ=c.div`
|
|
215
220
|
display: flex;
|
|
216
221
|
align-items: center;
|
|
217
222
|
justify-content: center;
|
|
@@ -237,19 +242,19 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
237
242
|
.drop-zone-drag-over {
|
|
238
243
|
opacity: 1;
|
|
239
244
|
}
|
|
240
|
-
`,
|
|
245
|
+
`,e0=c.div`
|
|
241
246
|
display: flex;
|
|
242
247
|
flex-wrap: wrap;
|
|
243
248
|
align-items: center;
|
|
244
249
|
justify-content: center;
|
|
245
250
|
height: 100%;
|
|
246
251
|
width: 100%;
|
|
247
|
-
`,
|
|
252
|
+
`,e1=c(Q)`
|
|
248
253
|
width: 100%;
|
|
249
254
|
height: 8rem;
|
|
250
|
-
`,
|
|
255
|
+
`,e2=c.div`
|
|
251
256
|
font-size: 2rem;
|
|
252
|
-
`;var
|
|
257
|
+
`;var e3=({isOpen:e,closeMenu:o})=>{let r=eC();ex(({setGraph:e})=>e),ex(e=>e.setEditorState);let i=ex(e=>e.addFile),l=f(null),a=u(async e=>{let[t]=e||[],n=await eK(t);i({type:"audio",id:`audio-file-${+new Date}`,name:t.name,file:n}),o()},[i,o]);return e?t(eD,{onClose:o,children:n(eQ,{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(e0,{theme:r,children:[t(e1,{}),t(e2,{children:"click or drop file here"})]})})]})}):null};let e6="editor-menu";var e4=({editorContextMenu:e=[]})=>{let o=eC(),[i,l]=h({x:0,y:0}),[a,s]=h(!1),[d,c]=h(!1),p=u((e,o)=>{l({x:e,y:o}),s(!0)},[s]),f=ex(e=>e.pasteBuffer),{screenToFlowPosition:v}=S(),b=u(e=>{let{x:o,y:t}=v(e);f(o,t)},[s,v]),y=ex(({clearGraph:e})=>e),x=u(()=>{window.confirm("This action will delete all nodes in this patch. Continue?")&&y()},[y]),w=ex(e=>e.toggleHelp),C=ex(e=>e.history.back),k=ex(e=>e.history.forward),$=ex(e=>e.history.pointer),P=ex(e=>e.history.buffer),N=ex(e=>e.copySelectedItems),z=ex(e=>e.nodes),F=m(()=>z.filter(({selected:e})=>e),[z]),E=ex(e=>e.copyBuffer);return S(),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",()=>(N(),!1)),Z("command+v",()=>(b({x:200,y:50}),!1)),()=>{Z.unbind()}),[p,b]),n(r,{children:[t(eq,{isOpen:a,closeMenu:()=>s(!1),mousePosition:i}),t(e3,{isOpen:d,closeMenu:()=>c(!1)}),n(eP,{id:e6,animation:!1,colors:o.colors,children:[t(ek,{onClick:({triggerEvent:{clientX:e,clientY:o}})=>p(e,o),children:"Add Node (⌘+⇧+A)"}),t(J,{}),t(e$,{onClick:x,children:"Delete All"}),t(J,{}),t(ek,{onClick:()=>c(!0),children:"Upload Audio File"}),t(J,{}),t(ek,{disabled:0===$,onClick:C,children:"Undo (⌘+z)"}),t(ek,{disabled:$===P.length,onClick:k,children:"Redo (⌘+⇧+Z)"}),t(J,{}),t(ek,{disabled:!F.length,onClick:N,children:"Copy Selected (⌘+c)"}),t(ek,{disabled:!E.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(ek,{children:e},o)),t(J,{}),t(ek,{onClick:w,children:"Help (⇧+?)"})]})]})};let e9="editor-node-menu";var e8=e=>{let o=eC(),i=ex(e=>e.removeNodes),l=ex(e=>e.addNodeToControlPanel),a=ex(e=>e.removeNodeFromControlPanel),s=ex(e=>e.copy),d=ex(e=>e.nodesConfiguration),c=ex(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=d[e.node.type];return!!o?.controlPanelNode},[d]);return t(r,{children:n(eP,{id:e9,animation:!1,colors:o.colors,children:[t(ek,{onClick:e=>i([e.props.node]),children:"Delete Node (DEL)"}),t(ek,{hidden:(...e)=>!h(...e)||p(...e),onClick:e=>l(e.props.node),children:"Add To Control Panel"}),t(ek,{hidden:(...e)=>!h(...e)||!p(...e),onClick:e=>a(e.props.node),children:"Remove From Control Panel"}),t(ek,{onClick:e=>s({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})},e7=e=>ex(({patch:e})=>e).audioNodes.get(e),e5=e=>{let o=ex(({updateNodeData: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])}};let oe=c.input`
|
|
253
258
|
width: 100%;
|
|
254
259
|
background: none;
|
|
255
260
|
border: none;
|
|
@@ -278,7 +283,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
278
283
|
padding: 0.3rem;
|
|
279
284
|
border-radius: 0.2rem;
|
|
280
285
|
}
|
|
281
|
-
`;var
|
|
286
|
+
`;var oo=({onChange:e,value:o="",className:n})=>{let r=f(null),[i,l]=h(!1),a=u(e=>{e.target?.select(),l(!0)},[l]),s=u(()=>{window.getSelection()?.collapseToEnd(),l(!1)},[l]),d=u(()=>{s(),r.current&&e(r.current.value)},[r,s,e]),c=u(()=>{s(),r.current&&o&&(r.current.value=o)},[r,s,o]);return g(()=>{r.current&&(r.current.value=o)},[o,r]),t(oe,{ref:r,type:"text",readOnly:!i,onDoubleClick:e=>a(e),onBlur:d,onKeyDown:e=>{switch(e.key){case"Escape":c();break;case"Enter":d()}},className:n})};let ot=i(c.div`
|
|
282
287
|
height: 100%;
|
|
283
288
|
width: 100%;
|
|
284
289
|
overflow: scroll;
|
|
@@ -357,13 +362,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
357
362
|
margin-inline-end: 0px;
|
|
358
363
|
unicode-bidi: isolate;
|
|
359
364
|
}
|
|
360
|
-
`);var
|
|
365
|
+
`);var on=({isOpen:e,onClose:o,type:n,node:r})=>{let{info:i,portsDescription:l}=ex(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(eD,{onClose:o,children:t(ot,{dangerouslySetInnerHTML:{__html:ec((i||"")+"\n\n"+a||"")}})}):null};let or=c.div`
|
|
361
366
|
background-color: var(--leva-colors-elevation1);
|
|
362
|
-
`,
|
|
367
|
+
`,oi=c(or)`
|
|
363
368
|
padding: 2rem 5rem;
|
|
364
|
-
`,
|
|
369
|
+
`,ol=c(or)`
|
|
365
370
|
padding: 1rem 2rem;
|
|
366
|
-
`,
|
|
371
|
+
`,oa=c(x)`
|
|
367
372
|
font-size: 1.2rem;
|
|
368
373
|
opacity: 0.4;
|
|
369
374
|
width: 1rem;
|
|
@@ -371,7 +376,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
371
376
|
opacity: 1;
|
|
372
377
|
cursor: pointer;
|
|
373
378
|
}
|
|
374
|
-
`,
|
|
379
|
+
`,os=c(w)`
|
|
375
380
|
font-size: 1.2rem;
|
|
376
381
|
opacity: 0.4;
|
|
377
382
|
width: 1rem;
|
|
@@ -379,12 +384,12 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
379
384
|
opacity: 1;
|
|
380
385
|
cursor: pointer;
|
|
381
386
|
}
|
|
382
|
-
`,
|
|
387
|
+
`,od=c.div`
|
|
383
388
|
position: relative;
|
|
384
389
|
font-family: var(--leva-fonts-mono);
|
|
385
390
|
font-size: var(--leva-fontSizes-root);
|
|
386
391
|
background-color: var(--leva-colors-elevation1);
|
|
387
|
-
`,
|
|
392
|
+
`,oc=c(od)`
|
|
388
393
|
display: flex;
|
|
389
394
|
height: var(--leva-sizes-titleBarHeight);
|
|
390
395
|
touch-action: none;
|
|
@@ -394,38 +399,38 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
394
399
|
color: var(--leva-colors-highlight1);
|
|
395
400
|
padding: 0 0.4rem;
|
|
396
401
|
gap: 0.3rem;
|
|
397
|
-
`,
|
|
402
|
+
`,op=c(od)(({theme:e})=>`
|
|
398
403
|
display: grid;
|
|
399
404
|
grid-template-areas: "inputs outputs";
|
|
400
405
|
background: ${e.colors.elevation2};
|
|
401
406
|
border-bottom: 1px solid ${e.colors.elevation1};
|
|
402
407
|
color: ${e.colors.highlight3};
|
|
403
408
|
font-size: 0.6rem;
|
|
404
|
-
`),
|
|
409
|
+
`),oh=c.div`
|
|
405
410
|
grid-area: inputs;
|
|
406
411
|
text-align: left;
|
|
407
|
-
`,
|
|
412
|
+
`,og=c.div`
|
|
408
413
|
grid-area: outputs;
|
|
409
414
|
text-align: right;
|
|
410
|
-
`,
|
|
415
|
+
`,om=c.div`
|
|
411
416
|
position: relative;
|
|
412
417
|
padding: 5px 10px;
|
|
413
|
-
`,
|
|
414
|
-
--port-color: ${e=>{if(!e.portType)return e.theme.colors.highlight2;if(!Array.isArray(e.portType))return
|
|
418
|
+
`,ou={[ey.Audio]:"#4ade80",[ey.Gate]:"#c084fc",[ey.Number]:"#38bdf8",[ey.Any]:"#ffffff"},of=i(c(_,{shouldForwardProp:e=>"portType"!==e})`
|
|
419
|
+
--port-color: ${e=>{if(!e.portType)return e.theme.colors.highlight2;if(!Array.isArray(e.portType))return ou[e.portType];{let o=e.portType.map(e=>ou[e]);return`linear-gradient(0.25turn, ${o.join(", ")});`}}};
|
|
415
420
|
border-color: var(--port-color);
|
|
416
421
|
background: var(--port-color);
|
|
417
422
|
box-shadow: 0px 0px 0px 1px ${({theme:e})=>e.colors.elevation2} inset;
|
|
418
|
-
`),
|
|
419
|
-
left:
|
|
420
|
-
`),
|
|
421
|
-
right:
|
|
422
|
-
`),
|
|
423
|
+
`),ov=i(c(of)`
|
|
424
|
+
left: 0;
|
|
425
|
+
`),ob=({...e})=>t(ov,{...e,type:"target",position:A.Left}),oy=i(c(of)`
|
|
426
|
+
right: 0;
|
|
427
|
+
`),ox=e=>t(oy,{...e,type:"source",position:A.Right}),ow=({className:e,...o})=>t(oc,{...o,className:[e,ep].join(" ")}),oC=e=>ex(o=>o.nodesConfiguration[e]),ok=e=>{let{id:o,children:r,selected:i,...l}=e,a=eC(),s=ex(({getNode:e})=>e),d=ex(e=>e.nodesConfiguration),[c,p]=h(!1),{info:g}=oC(e.type),u=m(()=>d[e.type].resizable??!1,[d,e.type]),{updateNodeLabel:f,updateNodeConfig:v}=e5(o),{data:b}=s(o)||{},y=e7(o),{ConfigNode:x}=(e=>{let{configNode:o}=oC(e);return{ConfigNode:o}})(l.type),[w,C]=h(!1);if(!y)return t(oi,{className:ep,children:"can't find audio node"});if(y.loading)return t(oi,{className:ep,children:"loading"});if(y.error)return n(ol,{className:ep,children:["error: ",y.error.toString()]});if(!y.node)return t(oi,{className:ep,children:"can't find audio node"});let k=b?.config?.size,{node:{inputs:$,outputs:P}}=y;return n(or,{children:[n(ow,{children:[g&&t(os,{onClickCapture:()=>p(!0)}),t(oo,{value:b?.label??"No Name",onChange:f}),x&&t(oa,{onClickCapture:()=>C(e=>!e)})]}),n(op,{theme:a,children:[t(oh,{children:$?Object.keys($).map((e,o)=>n(om,{children:[t(ob,{id:e,portType:$[e].type}),t("span",{children:e})]},o)):null}),t(og,{children:P?Object.keys(P).map((e,o)=>n(om,{children:[t(ox,{id:e,portType:P[e].type}),t("span",{children:e})]},o)):null})]}),x&&w&&i?t(x,{...e,data:{label:"unknown",...e.data}}):u?t(er,{size:k,minWidth:180,minHeight:30,enable:{bottom:!0,bottomRight:!0,right:!0},onResizeStop:(e,o,t,n)=>{let r=k?{width:k.width+n.width,height:k.height+n.height}:t.getBoundingClientRect();v({...b?.config,size:r})},children:r}):r,t(on,{isOpen:c,type:e.type,onClose:()=>p(!1),node:y.node})]})},o$=c.div`
|
|
423
428
|
width: 100%;
|
|
424
429
|
padding: 0.4rem 0;
|
|
425
430
|
white-space: nowrap;
|
|
426
431
|
overflow: hidden;
|
|
427
432
|
text-overflow: ellipsis;
|
|
428
|
-
`,
|
|
433
|
+
`,oP=c(ow)`
|
|
429
434
|
display: flex;
|
|
430
435
|
gap: 0.1rem;
|
|
431
436
|
padding: 0 0.4rem;
|
|
@@ -433,13 +438,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
433
438
|
font-size: 0.6rem;
|
|
434
439
|
height: auto;
|
|
435
440
|
min-width: 0;
|
|
436
|
-
`,
|
|
441
|
+
`,oN=c.div`
|
|
437
442
|
display: flex;
|
|
438
443
|
align-items: center;
|
|
439
444
|
height: 70%;
|
|
440
445
|
width: auto;
|
|
441
446
|
gap: 0.4rem;
|
|
442
|
-
`,
|
|
447
|
+
`,oz=c.span`
|
|
443
448
|
width: auto;
|
|
444
449
|
height: 100%;
|
|
445
450
|
cursor: pointer;
|
|
@@ -451,11 +456,11 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
451
456
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
452
457
|
cursor: pointer;
|
|
453
458
|
}
|
|
454
|
-
`,
|
|
459
|
+
`,oF=c.div`
|
|
455
460
|
height: 100%;
|
|
456
461
|
display: grid;
|
|
457
462
|
grid-template-rows: auto 1fr;
|
|
458
|
-
`,oE=e=>{let{node:o}=e,n=ex(e=>e.getControlPanelNode),r=m(()=>n(o),[o]);return r?t(r,{...e}):null};var
|
|
463
|
+
`,oE=e=>{let{node:o}=e,n=ex(e=>e.getControlPanelNode),r=m(()=>n(o),[o]);return r?t(r,{...e}):null};var oj=e=>{let{node:o,showControls:r,onDelete:i}=e,l=eC(),{id:a}=o,{node:s}=e7(a)||{},{updateNodeValues:d}=e5(a);return n(oF,{theme:l,children:[n(oP,{theme:l,children:[t(o$,{children:o.data.label}),r&&n(oN,{children:[t(oz,{theme:l,children:t(y,{className:"grid-item-handle"})}),t(oz,{theme:l,children:t(b,{onClick:()=>i(o)})})]})]}),t(oE,{node:o,audioNode:s,updateNodeValues:d})]})};let oD=c.div`
|
|
459
464
|
position: fixed;
|
|
460
465
|
z-index: 5;
|
|
461
466
|
box-shadow: 0px 1px 2px ${({theme:e})=>e.colors.elevation2};
|
|
@@ -475,19 +480,19 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
475
480
|
color: ${({theme:e})=>e.colors.highlight2};
|
|
476
481
|
cursor: pointer;
|
|
477
482
|
}
|
|
478
|
-
`,
|
|
483
|
+
`,oT=c(oN)`
|
|
479
484
|
height: 80%;
|
|
480
|
-
`,oM=c(
|
|
485
|
+
`,oM=c(oz)`
|
|
481
486
|
font-size: 1rem;
|
|
482
487
|
display: flex;
|
|
483
488
|
align-items: center;
|
|
484
|
-
`,
|
|
489
|
+
`,oS=c(oP)`
|
|
485
490
|
grid-template-columns: 1fr auto;
|
|
486
491
|
border-bottom: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
487
492
|
font-size: 0.7rem;
|
|
488
|
-
`,
|
|
493
|
+
`,oA=c(o$)`
|
|
489
494
|
text-align: center;
|
|
490
|
-
`,
|
|
495
|
+
`,o_=c.div`
|
|
491
496
|
height: 100%;
|
|
492
497
|
width: 100%;
|
|
493
498
|
padding: 0.3rem 0.4rem;
|
|
@@ -498,7 +503,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
498
503
|
max-height: 95vh;
|
|
499
504
|
overflow-y: scroll;
|
|
500
505
|
border: 1px solid ${({theme:e})=>e.colors.elevation3};
|
|
501
|
-
`,
|
|
506
|
+
`,oR=c.div`
|
|
502
507
|
padding: 1rem 0;
|
|
503
508
|
font-family: var(--leva-fonts-mono);
|
|
504
509
|
font-size: 0.8rem;
|
|
@@ -519,14 +524,14 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
519
524
|
margin: auto;
|
|
520
525
|
left: 0.5rem;
|
|
521
526
|
border-right: 1px solid ${({theme:e})=>e.colors.whitePrimary};
|
|
522
|
-
`,
|
|
527
|
+
`,oW=c.div`
|
|
523
528
|
box-sizing: border-box;
|
|
524
529
|
overflow: hidden;
|
|
525
530
|
.react-resizable-handle:after {
|
|
526
531
|
border-color: ${({theme:e})=>e.colors.whitePrimary};
|
|
527
532
|
border-width: 1px;
|
|
528
533
|
}
|
|
529
|
-
`;var
|
|
534
|
+
`;var oO=()=>{let e=eC(),o=f(null),i=ex(e=>e.nodes),{show:l,nodes:a,size:s}=ex(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=ex(e=>e.showControlPanel),u=ex(e=>e.hideControlPanel),v=ex(e=>e.setControlPanelNodes),y=ex(e=>e.setControlPanelSize),x=ex(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(es,{})}),n(ed,{open:l,onClose:u,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[n(oS,{theme:e,children:[t(oA,{children:"Control Panel"}),t(oT,{children:t(oM,{onClick:u,theme:e,children:t(b,{})})})]}),n(o_,{children:[t(oR,{children:w?n(oH,{theme:e,onClick:()=>C(!1),children:[t(el,{}),"Unlock grid"]}):n(oH,{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(oL,{theme:e})},minWidth:120,size:{width:d,height:"auto"},onResizeStop:(e,o,t,n)=>{y({width:d+n.width,height:c+n.height})},children:t(oI,{theme:e,children:t(ei,{layout:k,className:"layout",cols:4,rowHeight:eg,width:d,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(oW,{theme:e,children:t(oj,{node:o,showControls:!w,onDelete:x})},o.id))})})})]})]})]}):null},oB={};oB="# 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 oU=i(c.div`
|
|
530
535
|
font-family: var(--leva-fonts-mono);
|
|
531
536
|
font-size: 0.7rem;
|
|
532
537
|
box-sizing: border-box;
|
|
@@ -591,13 +596,13 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
591
596
|
margin-inline-end: 0px;
|
|
592
597
|
unicode-bidi: isolate;
|
|
593
598
|
}
|
|
594
|
-
`),
|
|
599
|
+
`),oV=i(c.div`
|
|
595
600
|
padding: 1rem;
|
|
596
601
|
height: 100%;
|
|
597
602
|
width: 100%;
|
|
598
603
|
box-sizing: border-box;
|
|
599
604
|
overflow: hidden;
|
|
600
|
-
`);var
|
|
605
|
+
`);var oG=()=>{var e;let o=ex(e=>e.isHelpShown),n=ex(e=>e.toggleHelp);return o?t(eD,{onClose:()=>{n()},children:t(oV,{children:t(oU,{dangerouslySetInnerHTML:{__html:ec((e=oB)&&e.__esModule?e.default:e)},onWheelCapture:e=>e.stopPropagation()})})}):null};let oX=()=>t(r,{children:t(I,{onClick:ex(e=>e.toggleHelp),children:t(ee,{})})}),oY=c.div`
|
|
601
606
|
position: fixed;
|
|
602
607
|
z-index: ${({theme:e})=>e.zIndex.resumeContextLayout};
|
|
603
608
|
width: 100%;
|
|
@@ -611,18 +616,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
611
616
|
justify-content: center;
|
|
612
617
|
color: ${({theme:e})=>e.colors.whitePrimary};
|
|
613
618
|
cursor: pointer;
|
|
614
|
-
`,
|
|
619
|
+
`,oJ=c.div`
|
|
615
620
|
display: flex;
|
|
616
621
|
width: 100%;
|
|
617
622
|
align-items: center;
|
|
618
623
|
justify-content: center;
|
|
619
|
-
`,
|
|
624
|
+
`,oZ=c.div`
|
|
620
625
|
font-family: var(--leva-fonts-mono);
|
|
621
626
|
font-size: 2rem;
|
|
622
|
-
`,
|
|
627
|
+
`,oq=c(eo)`
|
|
623
628
|
width: 7rem;
|
|
624
629
|
height: 7rem;
|
|
625
|
-
`;var
|
|
630
|
+
`;var oK=()=>{let e=eC(),o=ex(({patch:e})=>e).audioContext,[r,i]=h("running"===o.state);return r?null:n(oY,{theme:e,onClick:()=>{o.resume(),i(!0)},children:[t(oJ,{children:t(oZ,{theme:e,children:"Click anywhere to resume audio context"})}),t(oJ,{children:t(oq,{})})]})},oQ=()=>{let e=ex(({setConfig:e})=>e),{showMinimap:o}=ex(({config:e})=>e);return t(I,{onClick:()=>e({showMinimap:!o}),children:o?t(et,{}):t(en,{})})},o0=({id:e,sourceX:o,sourceY:i,targetX:l,targetY:a,sourcePosition:s,targetPosition:d,style:c={},data:p,markerStart:h,markerEnd:m,source:u,target:f,sourceHandleId:v,targetHandleId:b,selected:y})=>{let x=eC(),w=ex(({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[P]=R({targetX:l,targetY:a,targetPosition:d,sourceX:o,sourceY:i,sourcePosition:s});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:P,markerEnd:m}),t("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:P,markerEnd:m})]})};let o1=i(c(z)`
|
|
626
631
|
&.bottom {
|
|
627
632
|
right: 1rem;
|
|
628
633
|
bottom: 40%;
|
|
@@ -631,7 +636,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
631
636
|
svg {
|
|
632
637
|
color: ${({theme:e})=>e.colors.elevation2};
|
|
633
638
|
}
|
|
634
|
-
`),
|
|
639
|
+
`),o2=(e,o)=>console.log("drag stop",o),o3=(e,o)=>console.log("click",o),o6=[20,20],o4=({editorState:e,plugins:o=[],editorContextMenu:r=[],onChange:i=()=>{},...l})=>{let a=m(()=>({wire:o0}),[]),{nodes:s,edges:d,controlPanel:c,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onEdgesDelete:b,onConnect:y,setPlugins:x,setViewport:w,viewport:C}=ex(),k=ex(({config:e})=>e),$=ex(({nodeTypes:e})=>e);g(()=>{x(o)},[o]);let[P,N]=h(null);g(()=>{P&&i({nodes:s,edges:d,controlPanel:c,viewport:C})},[s,d,c,C]);let z=u(e=>{P||(N(e),console.log("flow loaded:",e))},[P]),{onContextMenu:M}=(()=>{let{show:e}=G({id:e6});return{onContextMenu:e}})(),{onContextMenu:S}=(()=>{let{show:e}=G({id:e9});return{onContextMenu:u((o,t)=>{o.stopPropagation(),e(o,{props:{node:t}})},[])}})(),{onContextMenu:A}=(()=>{let{show:e}=G({id:eN});return{onContextMenu:u((o,t)=>{o.stopPropagation(),e(o,{props:{edge:t}})},[e])}})();return g(()=>{C&&P?.setViewport(C)},[C,P]),F({onEnd:w}),n(E,{nodes:s,edges:d,onNodesChange:p,onNodesDelete:f,onEdgesChange:v,onConnect:y,onNodeDragStop:o2,onEdgesDelete:b,onInit:z,onNodeClick:o3,onContextMenu:M,onNodeContextMenu:S,onEdgeContextMenu:A,nodeTypes:$,edgeTypes:a,snapGrid:o6,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,disableKeyboardA11y:!0,children:[t(j,{variant:D.Dots,gap:12}),k.showMinimap?t(T,{}):null,n(o1,{showInteractive:!1,position:"bottom-right",children:[t(oQ,{}),t(oX,{})]}),t(oK,{}),t(oO,{}),t(oG,{}),t(e4,{editorContextMenu:r}),t(e8,{}),t(ez,{})]})},o9=e=>t(M,{children:t(o4,{...e})}),o8={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},o7=i(c.div`
|
|
635
640
|
display: flex;
|
|
636
641
|
flex-direction: column;
|
|
637
642
|
height: 100%;
|
|
@@ -646,18 +651,18 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
646
651
|
justify-content: center;
|
|
647
652
|
align-items: center;
|
|
648
653
|
font-size: 2rem;
|
|
649
|
-
`),
|
|
654
|
+
`),te=i(c.div`
|
|
650
655
|
height: 100%;
|
|
651
656
|
width: 100%;
|
|
652
657
|
display: flex;
|
|
653
658
|
position: relative;
|
|
654
|
-
`),
|
|
659
|
+
`),to=i(c.div`
|
|
655
660
|
display: flex;
|
|
656
661
|
flex: 1;
|
|
657
662
|
align-items: center;
|
|
658
663
|
justify-content: center;
|
|
659
664
|
background: ${({theme:e})=>e.colors.elevation3};
|
|
660
|
-
`),
|
|
665
|
+
`),tt=i(c.div`
|
|
661
666
|
background: ${({theme:e})=>e.colors.elevation2};
|
|
662
667
|
opacity: 0.7;
|
|
663
668
|
position: absolute;
|
|
@@ -672,12 +677,12 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
672
677
|
align-items: center;
|
|
673
678
|
justify-content: center;
|
|
674
679
|
font-size: 6rem;
|
|
675
|
-
`),
|
|
680
|
+
`),tn=e=>{let o=ex(e=>e.pullEditorChanges),i=ex(e=>e.currentFileIndex),l=ex(e=>e.project),[a,s]=h(!0);g(()=>{e.onChange?.(l)},[l,e.onChange]),g(()=>{s(!0),setTimeout(()=>{s(!1)},1600)},[i]);let{file:d}=e;return d?"audio"===d.type?t(to,{children:t("audio",{src:d.file,controls:!0})}):n(r,{children:[t(o9,{...e,onChange:e=>{o()},editorState:d.file||o8}),t(tt,{show:a,children:"Loading..."})]}):null},tr=i(c.div`
|
|
676
681
|
height: 2rem;
|
|
677
682
|
display: flex;
|
|
678
683
|
align-items: center;
|
|
679
684
|
background: ${({theme:e})=>e.colors.elevation2};
|
|
680
|
-
`),
|
|
685
|
+
`),ti=i(c.div`
|
|
681
686
|
display: flex;
|
|
682
687
|
align-items: center;
|
|
683
688
|
cursor: pointer;
|
|
@@ -694,7 +699,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
694
699
|
background-color: ${({theme:e})=>e.colors.elevation1};
|
|
695
700
|
}
|
|
696
701
|
}
|
|
697
|
-
`),
|
|
702
|
+
`),tl=i(c.div`
|
|
698
703
|
display: flex;
|
|
699
704
|
align-items: center;
|
|
700
705
|
height: 100%;
|
|
@@ -705,10 +710,10 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
705
710
|
&:hover {
|
|
706
711
|
color: ${({theme:e})=>e.colors.whitePrimary};
|
|
707
712
|
}
|
|
708
|
-
`),
|
|
713
|
+
`),ta=i(c(v)`
|
|
709
714
|
height: 40%;
|
|
710
715
|
width: auto;
|
|
711
|
-
`),
|
|
716
|
+
`),ts=i(c(b)`
|
|
712
717
|
height: 70%;
|
|
713
718
|
width: auto;
|
|
714
719
|
cursor: pointer;
|
|
@@ -716,7 +721,7 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
716
721
|
&:hover {
|
|
717
722
|
color: ${({theme:e})=>e.colors.whitePrimary};
|
|
718
723
|
}
|
|
719
|
-
`),
|
|
724
|
+
`),td=()=>({file:o8,name:"Unnamed",type:"patch",id:p()});var tc=({...e})=>{let{projectState:o,theme:r}=e,i=ex(e=>e.currentFileIndex),d=ex(e=>e.project.files[e.currentFileIndex]),c=ex(e=>e.setCurrentFileIndex),p=ex(e=>e.project),m=ex(e=>e.setProject),u=ex(e=>e.getProject),f=ex(e=>e.updateFileName),v=ex(e=>e.addFile),b=ex(e=>e.deleteFile),y=ex(e=>e.syncEditorWithCurrentFile),x=ex(e=>e.setEditorState);ex(e=>e.pullEditorChanges);let[w,k]=h(!1);return g(()=>{m(o||{files:[td()]});let e=o?.files[0];e?.file&&e?.type!=="audio"&&x(e.file)},[o]),g(()=>(C("project://*",async(...e)=>{let o=new Request(...e),t=u().files,n=o.url.replace("project://",""),r=t.find(({id:e})=>e===n);return r?ef(r)?new Response(JSON.stringify(r.file??null)):ev(r)?fetch(r.file):new Response(null):new Response(`File not found: ${o.url}`,{status:404})}),()=>{}),[u]),g(()=>{y()},[i,y]),n(l,{theme:r||ew,children:[t(a,{styles:s`
|
|
720
725
|
:root {
|
|
721
726
|
--leva-colors-elevation1: #292d39;
|
|
722
727
|
--leva-colors-elevation2: #181c20;
|
|
@@ -773,5 +778,5 @@ let e,o;import{jsx as t,jsxs as n,Fragment as r}from"react/jsx-runtime";import{w
|
|
|
773
778
|
--leva-fontWeights-folder: normal;
|
|
774
779
|
--leva-fontWeights-button: normal;
|
|
775
780
|
}
|
|
776
|
-
`}),n(
|
|
781
|
+
`}),n(o7,{onDragOver:e=>{e.preventDefault(),e.stopPropagation(),k(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),k(!1)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),k(!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;m(o),c(0),y();return}v({...td(),file:{...o,controlPanel:{...o8.controlPanel,...o.controlPanel}},name:e.name},e.name);return}if(e.type.match(/^audio\//)){let o=await eK(e);v({type:"audio",id:`audio-file-${+new Date}`,name:e.name,file:o});return}console.error("Unsupported file type",e)})},children:[n(tr,{children:[p.files.map((e,o)=>n(ti,{onClick:()=>{c(o)},active:o===i,children:[t(oo,{onChange:e=>f(o,e),value:e.name||"Unnamed"}),t(ts,{onClick:e=>{e.stopPropagation(),window.confirm("Do you really want to delete this file?")&&(b(o),1===p.files.length&&(v(td()),c(0),y()))}})]},o)),t(tl,{onClick:()=>{v(td()),c(p.files.length)},children:t(ta,{})})]}),t(te,{children:t(tn,{file:d,...e})}),w&&t(o5,{children:"Drop file(s) to upload to the project"})]})]})};export{tc as Editor,o8 as EDITOR_DEFAULTS,o0 as Wire,ok as WNNode,ow as TitleBar,op as PortsPanel,og as OutputPorts,ox as OutputHandle,oh as InputPorts,ob as InputHandle,om as Port,eD as Modal,oo as EditableLabel,e7 as useAudioNode,e5 as useNode,eC as useTheme,ex as useStore,ew as theme,ev as isAudio,ef as isPatch,ey as PortType};
|
|
777
782
|
//# sourceMappingURL=module.js.map
|