publish official plugins @ 0e1edd1

This commit is contained in:
github-actions[bot]
2026-07-17 08:43:36 +00:00
commit dd1a3905bf
6 changed files with 111 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
function g(){let e=globalThis.InfiniteCanvasRuntime;if(!e)throw new Error("[plugin-sdk] Infinite Canvas \u8FD0\u884C\u65F6\u672A\u5C31\u7EEA:\u8BF7\u5728\u753B\u5E03\u5BBF\u4E3B\u4E2D\u52A0\u8F7D\u672C\u63D2\u4EF6");return e}function r(){return g().React}var c=((...e)=>r().useState(...e));var l=((...e)=>r().useMemo(...e));var p=((...e)=>r().useRef(...e));var R=Symbol.for("infinite-canvas.jsx.fragment");function x(e,t,a){let s=r(),i=e===R?s.Fragment:e,u=a===void 0?t:{...t??{},key:a};return s.createElement(i,u)}function n(e,t,a){return x(e,t,a)}var d=n;var w=12,h=20;function k({ctx:e,value:t}){let a=p(null),s=l(()=>Math.max(1,t.split(`
`).length),[t]),[i,u]=c(0),f={fontFamily:"monospace",fontSize:w,lineHeight:`${h}px`,boxSizing:"border-box"};return d("div",{"data-canvas-no-zoom":!0,style:{height:"100%",width:"100%",display:"flex",overflow:"hidden",borderRadius:16,background:e.theme.node.fill},onMouseDown:o=>o.stopPropagation(),children:[n("div",{ref:a,"aria-hidden":!0,style:{...f,flex:"0 0 auto",padding:"16px 8px 16px 12px",textAlign:"right",color:e.theme.node.placeholder,background:`${e.theme.toolbar.panel}66`,borderRight:`1px solid ${e.theme.node.stroke}`,overflow:"hidden",userSelect:"none",whiteSpace:"pre"},children:n("div",{style:{transform:`translateY(${-i}px)`},children:Array.from({length:s},(o,m)=>n("div",{children:m+1},m))})}),n("textarea",{autoFocus:!0,value:t,placeholder:"<div>Hello, {{input}}</div>",spellCheck:!1,wrap:"off",onChange:o=>e.updateMetadata({content:o.target.value}),onScroll:o=>u(o.currentTarget.scrollTop),onMouseDown:o=>o.stopPropagation(),onWheel:o=>o.stopPropagation(),style:{...f,flex:"1 1 auto",minWidth:0,height:"100%",resize:"none",background:"transparent",padding:"16px 16px 16px 12px",outline:"none",border:"none",color:e.theme.node.text,whiteSpace:"pre",overflow:"auto"}})]})}function v({ctx:e}){let t=e.node.metadata?.content||"",a=!!e.node.metadata?.editing,s=l(()=>e.getUpstream().map(u=>u.metadata?.content).filter(Boolean).join(`
`),[e]),i=t.replace(/\{\{\s*input\s*\}\}/g,s);return a?n(k,{ctx:e,value:t}):t?n("div",{"data-canvas-no-zoom":!0,style:{position:"relative",height:"100%",width:"100%"},children:n("iframe",{title:"html-preview",sandbox:"allow-scripts allow-forms",srcDoc:i,style:{height:"100%",width:"100%",border:0,borderRadius:16,background:"#fff",display:"block"}})}):d("div",{style:{height:"100%",width:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,color:e.theme.node.placeholder},children:[n("span",{style:{fontSize:26},children:"</>"}),n("span",{style:{fontSize:13},children:"\u9009\u4E2D\u8282\u70B9,\u70B9\u4E0A\u65B9\u5DE5\u5177\u6761\u7684 \u270E \u7F16\u8F91 HTML"})]})}var D={id:"html",name:"HTML \u8282\u70B9",version:"1.2.0",description:"\u6C99\u7BB1 iframe \u6E32\u67D3 HTML,\u652F\u6301 {{input}} \u6CE8\u5165\u4E0A\u6E38\u6587\u672C",nodes:[{type:"html:render",title:"HTML",icon:"\u{1F310}",description:"\u6C99\u7BB1\u6E32\u67D3 HTML",defaultSize:{width:420,height:320},defaultMetadata:{content:""},minimapColor:"#ec4899",hidePanel:!0,interactionToggle:!0,forceInteractive:e=>!!e.metadata?.editing,Content:v,toolbar:e=>{let t=!!e.node.metadata?.editing;return[{id:"html-toggle-edit",title:t?"\u9884\u89C8\u6E32\u67D3\u7ED3\u679C":"\u7F16\u8F91 HTML \u6E90\u7801",label:t?"\u9884\u89C8":"\u7F16\u8F91",icon:t?"\u{1F441}":"\u270E",active:t,onClick:()=>e.updateMetadata({editing:!t})}]}}]};export{D as default};
+60
View File
@@ -0,0 +1,60 @@
function f(){let e=globalThis.InfiniteCanvasRuntime;if(!e)throw new Error("[plugin-sdk] Infinite Canvas \u8FD0\u884C\u65F6\u672A\u5C31\u7EEA:\u8BF7\u5728\u753B\u5E03\u5BBF\u4E3B\u4E2D\u52A0\u8F7D\u672C\u63D2\u4EF6");return e}function r(){return f().React}var p=((...e)=>r().useState(...e)),c=((...e)=>r().useEffect(...e));var d=((...e)=>r().useRef(...e));var g=`.cnv-md {
height: 100%;
width: 100%;
overflow: auto;
padding: 16px;
font-size: 14px;
line-height: 1.6;
}
.cnv-md h1,
.cnv-md h2,
.cnv-md h3 {
margin: 0.6em 0 0.3em;
font-weight: 600;
line-height: 1.3;
}
.cnv-md h1 {
font-size: 1.5em;
}
.cnv-md h2 {
font-size: 1.3em;
}
.cnv-md p {
margin: 0.5em 0;
}
.cnv-md a {
color: #6366f1;
text-decoration: underline;
}
.cnv-md code {
padding: 0.1em 0.35em;
border-radius: 4px;
background: rgba(120, 120, 120, 0.16);
font-family: monospace;
font-size: 0.9em;
}
.cnv-md pre {
padding: 12px;
border-radius: 8px;
background: rgba(120, 120, 120, 0.14);
overflow: auto;
}
.cnv-md pre code {
padding: 0;
background: transparent;
}
.cnv-md ul,
.cnv-md ol {
padding-left: 1.4em;
margin: 0.5em 0;
}
.cnv-md blockquote {
margin: 0.5em 0;
padding-left: 0.8em;
border-left: 3px solid rgba(120, 120, 120, 0.4);
opacity: 0.85;
}
.cnv-md img {
max-width: 100%;
}
`;var v=Symbol.for("infinite-canvas.jsx.fragment");function x(e,t,n){let s=r(),l=e===v?s.Fragment:e,a=n===void 0?t:{...t??{},key:n};return s.createElement(l,a)}function u(e,t,n){return x(e,t,n)}var i,m;function C(){return i?Promise.resolve(i):(m||(m=import("https://esm.sh/marked@14").then(e=>i=e.marked)),m)}var h="*\u9009\u4E2D\u8282\u70B9,\u70B9\u4E0A\u65B9\u5DE5\u5177\u6761\u7684 \u270E \u7F16\u8F91 Markdown*",k=new Map;function P(e){if(!i)return"";let t=e||h,n=k.get(t);return n===void 0&&(n=i.parse(t),k.set(t,n)),n}function b({ctx:e}){let[,t]=p(0),n=d(null),s=d(null);c(()=>{if(i)return;let o=!0;return C().then(()=>o&&t(R=>R+1)),()=>{o=!1}},[]);let l=e.node.metadata?.content||"",a=P(l);return c(()=>{let o=n.current;!o||s.current===a||(o.innerHTML=a,s.current=a)},[a]),u("div",{ref:n,className:"cnv-md","data-canvas-no-zoom":!0,onWheel:o=>o.stopPropagation(),style:{height:"100%",width:"100%",color:e.theme.node.text}})}function E({ctx:e}){let t=e.node.metadata?.content||"";return u("textarea",{autoFocus:!0,value:t,placeholder:"# \u8F93\u5165 Markdown",onChange:n=>e.updateMetadata({content:n.target.value}),onMouseDown:n=>n.stopPropagation(),onPointerDown:n=>n.stopPropagation(),onWheel:n=>n.stopPropagation(),style:{height:"100%",width:"100%",resize:"none",background:e.theme.node.fill,borderRadius:16,boxSizing:"border-box",padding:16,fontFamily:"monospace",fontSize:14,outline:"none",border:"none",color:e.theme.node.text}})}function M({ctx:e}){return e.node.metadata?.editing?u(E,{ctx:e}):u(b,{ctx:e})}var O={id:"markdown",name:"Markdown \u8282\u70B9",version:"1.1.0",description:"\u5728\u753B\u5E03\u4E2D\u7F16\u8F91\u4E0E\u6E32\u67D3 Markdown",css:g,nodes:[{type:"markdown:doc",title:"Markdown",icon:"\u{1F4DD}",description:"\u7F16\u8F91\u4E0E\u6E32\u67D3 Markdown",defaultSize:{width:360,height:300},defaultMetadata:{content:""},minimapColor:"#6366f1",hidePanel:!0,interactionToggle:!0,forceInteractive:e=>!!e.metadata?.editing,resource:e=>({kind:"text",text:e.metadata?.content}),Content:M,toolbar:e=>{let t=!!e.node.metadata?.editing;return[{id:"md-toggle-edit",title:t?"\u9884\u89C8\u6E32\u67D3\u7ED3\u679C":"\u7F16\u8F91 Markdown \u6E90\u7801",label:t?"\u9884\u89C8":"\u7F16\u8F91",icon:t?"\u{1F441}":"\u270E",active:t,onClick:()=>e.updateMetadata({editing:!t})}]}}]};export{O as default};
+45
View File
@@ -0,0 +1,45 @@
{
"version": 1,
"plugins": [
{
"id": "markdown",
"name": "Markdown 节点",
"version": "1.1.0",
"description": "在画布中编辑与渲染 Markdown",
"icon": "📝",
"entry": "markdown.js"
},
{
"id": "svg",
"name": "SVG 节点",
"version": "1.1.0",
"description": "透明背景渲染 SVG,可接收上游文本节点的 SVG 源码",
"icon": "🔷",
"entry": "svg.js"
},
{
"id": "html",
"name": "HTML 节点",
"version": "1.2.0",
"description": "沙箱 iframe 渲染 HTML,支持 {{input}} 注入上游文本",
"icon": "🌐",
"entry": "html.js"
},
{
"id": "panorama",
"name": "3D 全景节点",
"version": "1.1.0",
"description": "查看 360° 等距柱状全景图,可从上游图片节点取图",
"icon": "🧭",
"entry": "panorama.js"
},
{
"id": "sticky-note",
"name": "便利贴节点",
"version": "1.1.0",
"description": "可自选颜色、双击编辑、拖动即可移动的便利贴",
"icon": "📌",
"entry": "sticky-note.js"
}
]
}
+1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
function C(){let t=globalThis.InfiniteCanvasRuntime;if(!t)throw new Error("[plugin-sdk] Infinite Canvas \u8FD0\u884C\u65F6\u672A\u5C31\u7EEA:\u8BF7\u5728\u753B\u5E03\u5BBF\u4E3B\u4E2D\u52A0\u8F7D\u672C\u63D2\u4EF6");return t}function u(){return C().React}var l=((...t)=>u().useState(...t)),p=((...t)=>u().useEffect(...t));var f=((...t)=>u().useRef(...t));var I=Symbol.for("infinite-canvas.jsx.fragment");function T(t,n,o){let i=u(),s=t===I?i.Fragment:t,m=o===void 0?n:{...n??{},key:o};return i.createElement(s,m)}function r(t,n,o){return T(t,n,o)}var g=r;var v=["#fde68a","#fca5a5","#fdba74","#a7f3d0","#bfdbfe","#ddd6fe","#f9a8d4","#e7e5e4"],h=v[0];function L({ctx:t}){let[n,o]=l(!1),[i,s]=l(!1),[m,y]=l(null),R=f(null),a=f(null),w=t.node.metadata?.pluginColor||h,d=m??w,b=t.node.metadata?.content||"";p(()=>{if(!n&&!i)return;let e=P=>{R.current&&!R.current.contains(P.target)&&(o(!1),s(!1))};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[n,i]);let x=e=>t.updateMetadata({pluginColor:e}),E=e=>{y(e),a.current&&clearTimeout(a.current),a.current=window.setTimeout(()=>{a.current=null,x(e)},150)},k=e=>{a.current&&(clearTimeout(a.current),a.current=null),y(e),x(e)};p(()=>()=>{a.current&&clearTimeout(a.current)},[]),p(()=>{y(null)},[w]);let c=e=>e.stopPropagation();return g("div",{ref:R,"data-canvas-no-zoom":!0,style:{position:"relative",height:"100%",width:"100%",display:"flex",flexDirection:"column",background:d,borderRadius:16,padding:14,boxSizing:"border-box",cursor:n?"text":"move",boxShadow:"inset 0 1px 0 rgba(255,255,255,.45)"},onDoubleClick:e=>{e.stopPropagation(),o(!0)},children:[g("div",{style:{position:"absolute",top:8,right:8,zIndex:5},onMouseDown:c,onDoubleClick:c,children:[r("button",{type:"button",title:"\u9009\u62E9\u989C\u8272",onClick:()=>s(e=>!e),style:{width:22,height:22,borderRadius:"50%",border:"2px solid rgba(0,0,0,.25)",background:d,cursor:"pointer",padding:0,boxShadow:"0 1px 3px rgba(0,0,0,.2)"}}),i?g("div",{style:{position:"absolute",top:28,right:0,display:"grid",gridTemplateColumns:"repeat(4, 20px)",gap:6,padding:8,borderRadius:12,background:"#fff",boxShadow:"0 8px 24px rgba(0,0,0,.18)"},children:[v.map(e=>r("button",{type:"button",title:e,onClick:()=>{k(e),s(!1)},style:{width:20,height:20,borderRadius:"50%",border:e===d?"2px solid #1c1917":"2px solid rgba(0,0,0,.12)",background:e,cursor:"pointer",padding:0}},e)),r("label",{title:"\u81EA\u5B9A\u4E49\u989C\u8272",style:{position:"relative",width:20,height:20,borderRadius:"50%",cursor:"pointer",background:"conic-gradient(red, yellow, lime, aqua, blue, magenta, red)",border:"2px solid rgba(0,0,0,.12)",boxSizing:"border-box"},children:r("input",{type:"color",value:d,onChange:e=>E(e.target.value),onBlur:e=>k(e.target.value),style:{position:"absolute",inset:0,opacity:0,width:"100%",height:"100%",border:"none",padding:0,cursor:"pointer"}})})]}):null]}),n?r("textarea",{autoFocus:!0,value:b,placeholder:"\u8F93\u5165\u4FBF\u5229\u8D34\u5185\u5BB9\u2026\uFF08\u70B9\u51FB\u522B\u5904\u6216\u6309 Esc \u9000\u51FA\u7F16\u8F91\uFF09",onChange:e=>t.updateMetadata({content:e.target.value}),onBlur:()=>o(!1),onKeyDown:e=>{e.key==="Escape"&&(e.stopPropagation(),o(!1))},onMouseDown:c,onPointerDown:c,onWheel:c,style:{flex:1,width:"100%",resize:"none",border:"none",outline:"none",background:"transparent",color:"#1c1917",fontSize:15,lineHeight:1.5,fontFamily:"inherit"}}):r("div",{style:{flex:1,whiteSpace:"pre-wrap",overflow:"hidden",color:b?"#1c1917":"rgba(28,25,23,.45)",fontSize:15,lineHeight:1.5,userSelect:"none",paddingRight:22},children:b||"\u53CC\u51FB\u7F16\u8F91\u4FBF\u5229\u8D34"})]})}var K={id:"sticky-note",name:"\u4FBF\u5229\u8D34\u8282\u70B9",version:"1.1.0",description:"\u53EF\u81EA\u9009\u989C\u8272\u3001\u53CC\u51FB\u7F16\u8F91\u3001\u62D6\u52A8\u5373\u53EF\u79FB\u52A8\u7684\u4FBF\u5229\u8D34",nodes:[{type:"sticky-note:note",title:"\u4FBF\u5229\u8D34",icon:"\u{1F4CC}",description:"\u5F69\u8272\u4FBF\u5229\u8D34",defaultSize:{width:240,height:200},defaultMetadata:{content:"",pluginColor:h},minimapColor:"#f59e0b",hidePanel:!0,Content:L}]};export{K as default};
+1
View File
@@ -0,0 +1 @@
function g(){let e=globalThis.InfiniteCanvasRuntime;if(!e)throw new Error("[plugin-sdk] Infinite Canvas \u8FD0\u884C\u65F6\u672A\u5C31\u7EEA:\u8BF7\u5728\u753B\u5E03\u5BBF\u4E3B\u4E2D\u52A0\u8F7D\u672C\u63D2\u4EF6");return e}function r(){return g().React}var l=((...e)=>r().useState(...e)),p=((...e)=>r().useEffect(...e));var d=((...e)=>r().useRef(...e));var v=Symbol.for("infinite-canvas.jsx.fragment");function x(e,n,o){let a=r(),u=e===v?a.Fragment:e,s=o===void 0?n:{...n??{},key:o};return a.createElement(u,s)}function i(e,n,o){return x(e,n,o)}var y=i;function C({ctx:e}){let[n,o]=l(!1),a=d(null),u=e.node.metadata?.content,s=e.getUpstream().map(t=>t.metadata?.content).find(t=>typeof t=="string"&&t.trim().startsWith("<svg")),f=u??"",m=f.trim()||s||"";p(()=>{u===void 0&&s&&e.updateMetadata({content:s})},[e,u,s]),p(()=>{if(!n)return;let t=w=>{a.current&&!a.current.contains(w.target)&&o(!1)};return document.addEventListener("pointerdown",t,!0),()=>document.removeEventListener("pointerdown",t,!0)},[n]);let c=t=>t.stopPropagation(),R={position:"absolute",right:8,top:8,zIndex:20,width:32,height:32,display:"grid",placeItems:"center",borderRadius:8,border:`1px solid ${e.theme.node.stroke}`,background:`${e.theme.toolbar.panel}dd`,color:e.theme.node.text,cursor:"pointer"};return y("div",{ref:a,"data-canvas-no-zoom":!0,style:{position:"relative",height:"100%",width:"100%",display:"flex",flexDirection:"column",cursor:n?"text":"move"},onDoubleClick:t=>{t.stopPropagation(),o(!0)},children:[i("button",{type:"button",style:R,onMouseDown:c,onClick:()=>o(t=>!t),title:n?"\u9884\u89C8":"\u7F16\u8F91\u6E90\u7801",children:n?"\u{1F441}":"\u270E"}),n?i("textarea",{autoFocus:!0,value:f,placeholder:"\u7C98\u8D34 SVG \u6E90\u7801,\u5982 <svg \u2026>\u2026</svg>",onChange:t=>e.updateMetadata({content:t.target.value}),onKeyDown:t=>{t.key==="Escape"&&(t.stopPropagation(),o(!1))},onMouseDown:c,onPointerDown:c,onWheel:c,style:{height:"100%",width:"100%",resize:"none",background:e.theme.node.fill,borderRadius:16,padding:16,boxSizing:"border-box",fontFamily:"monospace",fontSize:12,outline:"none",border:`1px solid ${e.theme.node.stroke}`,color:e.theme.node.text}}):m?i("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:12,boxSizing:"border-box",pointerEvents:"none"},dangerouslySetInnerHTML:{__html:m}}):i("div",{style:{height:"100%",width:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:16,boxSizing:"border-box",color:e.theme.node.placeholder,fontSize:13,textAlign:"center",pointerEvents:"none"},children:"\u53CC\u51FB\u7F16\u8F91,\u7C98\u8D34 SVG \u6E90\u7801"})]})}var T={id:"svg",name:"SVG \u8282\u70B9",version:"1.1.0",description:"\u900F\u660E\u80CC\u666F\u6E32\u67D3 SVG \u77E2\u91CF\u56FE,\u53EF\u63A5\u6536\u4E0A\u6E38\u6587\u672C\u8282\u70B9\u7684 SVG \u6E90\u7801",nodes:[{type:"svg:vector",title:"SVG",icon:"\u{1F537}",description:"\u6E32\u67D3 SVG \u77E2\u91CF\u56FE",defaultSize:{width:320,height:320},defaultMetadata:{},minimapColor:"#14b8a6",transparentBackground:!0,Content:C}]};export{T as default};