shaderpad 1.0.0-beta.27 → 1.0.0-beta.28

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.
@@ -2,12 +2,12 @@ import ShaderPad, { PluginContext } from '../index.mjs';
2
2
 
3
3
  declare module '../index' {
4
4
  interface ShaderPad {
5
- save(filename: string): Promise<void>;
5
+ save(filename: string, text?: string): Promise<void>;
6
6
  }
7
7
  }
8
8
  declare function save(): (shaderPad: ShaderPad, context: PluginContext) => void;
9
9
  type WithSave<T extends ShaderPad> = T & {
10
- save(filename: string): Promise<void>;
10
+ save(filename: string, text?: string): Promise<void>;
11
11
  };
12
12
 
13
13
  export { type WithSave, save as default };
@@ -2,12 +2,12 @@ import ShaderPad, { PluginContext } from '../index.js';
2
2
 
3
3
  declare module '../index' {
4
4
  interface ShaderPad {
5
- save(filename: string): Promise<void>;
5
+ save(filename: string, text?: string): Promise<void>;
6
6
  }
7
7
  }
8
8
  declare function save(): (shaderPad: ShaderPad, context: PluginContext) => void;
9
9
  type WithSave<T extends ShaderPad> = T & {
10
- save(filename: string): Promise<void>;
10
+ save(filename: string, text?: string): Promise<void>;
11
11
  };
12
12
 
13
13
  export { type WithSave, save as default };
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var p=(a,e)=>{for(var t in e)s(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of g(e))!h.call(a,n)&&n!==t&&s(a,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return a};var w=a=>u(s({},"__esModule",{value:!0}),a);var f={};p(f,{default:()=>P});module.exports=w(f);function v(){return function(a,e){let{gl:t,canvas:r}=e,n=document.createElement("a");a.save=async function(o){if(t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLES,0,6),o&&!`${o}`.toLowerCase().endsWith(".png")&&(o=`${o}.png`),o=o||"export.png","ongesturechange"in window)try{let i=await new Promise(c=>r.toBlob(c,"image/png")),d=new File([i],o,{type:i.type});if(navigator.canShare?.({files:[d]})){await navigator.share({files:[d]});return}}catch(i){console.warn("Web Share API failed:",i)}else n.download=o,n.href=r.toDataURL(),n.click()}}}var P=v;
1
+ "use strict";var d=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(a,e)=>{for(var t in e)d(a,t,{get:e[t],enumerable:!0})},w=(a,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!p.call(a,n)&&n!==t&&d(a,n,{get:()=>e[n],enumerable:!(o=g(e,n))||o.enumerable});return a};var f=a=>w(d({},"__esModule",{value:!0}),a);var x={};u(x,{default:()=>P});module.exports=f(x);function v(){return function(a,e){let{gl:t,canvas:o}=e,n=document.createElement("a");a.save=async function(r,c){if(t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLES,0,6),r&&!`${r}`.toLowerCase().endsWith(".png")&&(r=`${r}.png`),r=r||"export.png","ongesturechange"in window)try{let i=await new Promise(l=>o.toBlob(l,"image/png")),s={files:[new File([i],r,{type:i.type})]};if(c&&(s.text=c),navigator.canShare?.(s)){await navigator.share(s);return}}catch(i){console.warn("Web Share API failed:",i)}else n.download=r,n.href=o.toDataURL(),n.click()}}}var P=v;
2
2
  //# sourceMappingURL=save.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tif (navigator.canShare?.({ files: [file] })) {\n\t\t\t\t\t\tawait navigator.share({ files: [file] });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAQA,SAASI,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkB,CAQ3D,GAPAH,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAMC,EAAa,MAAM,IAAI,QAAQC,GACpCJ,EAAO,OAAOI,EAAyB,WAAW,CACnD,EACMC,EAAO,IAAI,KAAK,CAACF,CAAI,EAAGD,EAAU,CAAE,KAAMC,EAAK,IAAK,CAAC,EAE3D,GAAI,UAAU,WAAW,CAAE,MAAO,CAACE,CAAI,CAAE,CAAC,EAAG,CAC5C,MAAM,UAAU,MAAM,CAAE,MAAO,CAACA,CAAI,CAAE,CAAC,EACvC,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAL,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOP,EAAQE","names":["save_exports","__export","save_default","__toCommonJS","save","shaderPad","context","gl","canvas","downloadLink","filename","blob","resolve","file","error"]}
1
+ {"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string, text?: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string, text?: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tconst shareData: ShareData = { files: [file] };\n\t\t\t\t\tif (text) shareData.text = text;\n\n\t\t\t\t\tif (navigator.canShare?.(shareData)) {\n\t\t\t\t\t\tawait navigator.share(shareData);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string, text?: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAQA,SAASI,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkBC,EAAe,CAQ1E,GAPAJ,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAME,EAAa,MAAM,IAAI,QAAQC,GACpCL,EAAO,OAAOK,EAAyB,WAAW,CACnD,EAGMC,EAAuB,CAAE,MAAO,CAFzB,IAAI,KAAK,CAACF,CAAI,EAAGF,EAAU,CAAE,KAAME,EAAK,IAAK,CAAC,CAEhB,CAAE,EAG7C,GAFID,IAAMG,EAAU,KAAOH,GAEvB,UAAU,WAAWG,CAAS,EAAG,CACpC,MAAM,UAAU,MAAMA,CAAS,EAC/B,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAN,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOP,EAAQE","names":["save_exports","__export","save_default","__toCommonJS","save","shaderPad","context","gl","canvas","downloadLink","filename","text","blob","resolve","shareData","error"]}
@@ -1,2 +1,2 @@
1
- function c(){return function(i,s){let{gl:a,canvas:o}=s,n=document.createElement("a");i.save=async function(e){if(a.clear(a.COLOR_BUFFER_BIT),a.drawArrays(a.TRIANGLES,0,6),e&&!`${e}`.toLowerCase().endsWith(".png")&&(e=`${e}.png`),e=e||"export.png","ongesturechange"in window)try{let t=await new Promise(d=>o.toBlob(d,"image/png")),r=new File([t],e,{type:t.type});if(navigator.canShare?.({files:[r]})){await navigator.share({files:[r]});return}}catch(t){console.warn("Web Share API failed:",t)}else n.download=e,n.href=o.toDataURL(),n.click()}}}var l=c;export{l as default};
1
+ function l(){return function(s,d){let{gl:a,canvas:o}=d,n=document.createElement("a");s.save=async function(e,i){if(a.clear(a.COLOR_BUFFER_BIT),a.drawArrays(a.TRIANGLES,0,6),e&&!`${e}`.toLowerCase().endsWith(".png")&&(e=`${e}.png`),e=e||"export.png","ongesturechange"in window)try{let t=await new Promise(c=>o.toBlob(c,"image/png")),r={files:[new File([t],e,{type:t.type})]};if(i&&(r.text=i),navigator.canShare?.(r)){await navigator.share(r);return}}catch(t){console.warn("Web Share API failed:",t)}else n.download=e,n.href=o.toDataURL(),n.click()}}}var h=l;export{h as default};
2
2
  //# sourceMappingURL=save.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tif (navigator.canShare?.({ files: [file] })) {\n\t\t\t\t\t\tawait navigator.share({ files: [file] });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"AAQA,SAASA,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkB,CAQ3D,GAPAH,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAMC,EAAa,MAAM,IAAI,QAAQC,GACpCJ,EAAO,OAAOI,EAAyB,WAAW,CACnD,EACMC,EAAO,IAAI,KAAK,CAACF,CAAI,EAAGD,EAAU,CAAE,KAAMC,EAAK,IAAK,CAAC,EAE3D,GAAI,UAAU,WAAW,CAAE,MAAO,CAACE,CAAI,CAAE,CAAC,EAAG,CAC5C,MAAM,UAAU,MAAM,CAAE,MAAO,CAACA,CAAI,CAAE,CAAC,EACvC,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAL,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOM,EAAQX","names":["save","shaderPad","context","gl","canvas","downloadLink","filename","blob","resolve","file","error","save_default"]}
1
+ {"version":3,"sources":["../../src/plugins/save.ts"],"sourcesContent":["import ShaderPad, { PluginContext } from '../index';\n\ndeclare module '../index' {\n\tinterface ShaderPad {\n\t\tsave(filename: string, text?: string): Promise<void>;\n\t}\n}\n\nfunction save() {\n\treturn function (shaderPad: ShaderPad, context: PluginContext) {\n\t\tconst { gl, canvas } = context;\n\t\tconst downloadLink = document.createElement('a');\n\n\t\t(shaderPad as any).save = async function (filename: string, text?: string) {\n\t\t\tgl.clear(gl.COLOR_BUFFER_BIT);\n\t\t\tgl.drawArrays(gl.TRIANGLES, 0, 6);\n\n\t\t\tif (filename && !`${filename}`.toLowerCase().endsWith('.png')) {\n\t\t\t\tfilename = `${filename}.png`;\n\t\t\t}\n\t\t\tfilename = filename || 'export.png';\n\t\t\tif ('ongesturechange' in window) {\n\t\t\t\t// Mobile.\n\t\t\t\ttry {\n\t\t\t\t\tconst blob: Blob = await new Promise(resolve =>\n\t\t\t\t\t\tcanvas.toBlob(resolve as BlobCallback, 'image/png')\n\t\t\t\t\t);\n\t\t\t\t\tconst file = new File([blob], filename, { type: blob.type });\n\n\t\t\t\t\tconst shareData: ShareData = { files: [file] };\n\t\t\t\t\tif (text) shareData.text = text;\n\n\t\t\t\t\tif (navigator.canShare?.(shareData)) {\n\t\t\t\t\t\tawait navigator.share(shareData);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn('Web Share API failed:', error);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Desktop.\n\t\t\t\tdownloadLink.download = filename;\n\t\t\t\tdownloadLink.href = canvas.toDataURL();\n\t\t\t\tdownloadLink.click();\n\t\t\t}\n\t\t};\n\t};\n}\n\n// Type helper.\nexport type WithSave<T extends ShaderPad> = T & {\n\tsave(filename: string, text?: string): Promise<void>;\n};\n\nexport default save;\n"],"mappings":"AAQA,SAASA,GAAO,CACf,OAAO,SAAUC,EAAsBC,EAAwB,CAC9D,GAAM,CAAE,GAAAC,EAAI,OAAAC,CAAO,EAAIF,EACjBG,EAAe,SAAS,cAAc,GAAG,EAE9CJ,EAAkB,KAAO,eAAgBK,EAAkBC,EAAe,CAQ1E,GAPAJ,EAAG,MAAMA,EAAG,gBAAgB,EAC5BA,EAAG,WAAWA,EAAG,UAAW,EAAG,CAAC,EAE5BG,GAAY,CAAC,GAAGA,CAAQ,GAAG,YAAY,EAAE,SAAS,MAAM,IAC3DA,EAAW,GAAGA,CAAQ,QAEvBA,EAAWA,GAAY,aACnB,oBAAqB,OAExB,GAAI,CACH,IAAME,EAAa,MAAM,IAAI,QAAQC,GACpCL,EAAO,OAAOK,EAAyB,WAAW,CACnD,EAGMC,EAAuB,CAAE,MAAO,CAFzB,IAAI,KAAK,CAACF,CAAI,EAAGF,EAAU,CAAE,KAAME,EAAK,IAAK,CAAC,CAEhB,CAAE,EAG7C,GAFID,IAAMG,EAAU,KAAOH,GAEvB,UAAU,WAAWG,CAAS,EAAG,CACpC,MAAM,UAAU,MAAMA,CAAS,EAC/B,MACD,CACD,OAASC,EAAO,CACf,QAAQ,KAAK,wBAAyBA,CAAK,CAC5C,MAGAN,EAAa,SAAWC,EACxBD,EAAa,KAAOD,EAAO,UAAU,EACrCC,EAAa,MAAM,CAErB,CACD,CACD,CAOA,IAAOO,EAAQZ","names":["save","shaderPad","context","gl","canvas","downloadLink","filename","text","blob","resolve","shareData","error","save_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaderpad",
3
- "version": "1.0.0-beta.27",
3
+ "version": "1.0.0-beta.28",
4
4
  "description": "A lightweight, dependency-free library to reduce boilerplate when writing fragment shaders.",
5
5
  "keywords": [
6
6
  "shaders",