From 90da73a4685a5f28e15d7932b931cb0a5c6f6af2 Mon Sep 17 00:00:00 2001 From: Matthew Cobbs Date: Thu, 26 Jan 2012 23:59:36 -0500 Subject: [PATCH] Build 0.5.17 - Using blob builder and object urls to help with large files --- README.md | 6 +- build.properties | 4 +- ...0.5.16-min.css => stitches-0.5.17-min.css} | 0 ...titches-0.5.16.css => stitches-0.5.17.css} | 0 build/js/stitches-0.5.16-min.js | 1 - build/js/stitches-0.5.17-min.js | 1 + ...{stitches-0.5.16.js => stitches-0.5.17.js} | 85 +++++++++++++++++- dist/stitches-0.5.17.zip | Bin 0 -> 96108 bytes docs/page.html | 38 +++++--- docs/stitches.html | 74 ++++++++++++++- src/page.js | 12 +++ src/stitches.js | 73 ++++++++++++++- 12 files changed, 269 insertions(+), 25 deletions(-) rename build/css/{stitches-0.5.16-min.css => stitches-0.5.17-min.css} (100%) rename build/css/{stitches-0.5.16.css => stitches-0.5.17.css} (100%) delete mode 100644 build/js/stitches-0.5.16-min.js create mode 100644 build/js/stitches-0.5.17-min.js rename build/js/{stitches-0.5.16.js => stitches-0.5.17.js} (91%) create mode 100644 dist/stitches-0.5.17.zip diff --git a/README.md b/README.md index c4ae0ab3..8b4e8853 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ ## Stitches [Stitches](http://draeton.github.com/stitches/) is an HTML5 sprite sheet generator. -The current version is `0.5.16`. Documentation is available +The current version is `0.5.17`. Documentation is available [here](http://draeton.github.com/stitches/stitches/docs/stitches.html). ## Implementation Stitches requires a stylesheet, a script, and an HTML element to get the job done: - + - + Once that's in place, the sprite sheet generator is created by the `init` method: diff --git a/build.properties b/build.properties index db1085f0..b1d61c65 100644 --- a/build.properties +++ b/build.properties @@ -1,4 +1,4 @@ -#Thu, 26 Jan 2012 20:56:00 -0500 +#Thu, 26 Jan 2012 23:59:17 -0500 build.major=0 build.minor=5 -build.number=16 +build.number=17 diff --git a/build/css/stitches-0.5.16-min.css b/build/css/stitches-0.5.17-min.css similarity index 100% rename from build/css/stitches-0.5.16-min.css rename to build/css/stitches-0.5.17-min.css diff --git a/build/css/stitches-0.5.16.css b/build/css/stitches-0.5.17.css similarity index 100% rename from build/css/stitches-0.5.16.css rename to build/css/stitches-0.5.17.css diff --git a/build/js/stitches-0.5.16-min.js b/build/js/stitches-0.5.16-min.js deleted file mode 100644 index 783d22be..00000000 --- a/build/js/stitches-0.5.16-min.js +++ /dev/null @@ -1 +0,0 @@ -(function(window,$,Modernizr){var S=window.Stitches=(function(){var defaults={jsdir:"js",prefix:"sprite",padding:10,dataURI:false};var _topics={};return{init:function($elem,config){S.settings=$.extend({},defaults,config);S.iconQueue=[];S.Page.$elem=$elem;S.sub("page.error",S.Page.errorHandler);S.sub("page.init.done",S.Page.fetchTemplates);S.sub("page.templates.done",S.Page.render);S.sub("page.render.done",S.checkAPIs);S.sub("page.apis.done",S.Page.bindDragAndDrop);S.sub("page.apis.done",S.Page.bindButtons);S.sub("page.apis.done",S.Page.bindCabinet);S.sub("page.apis.done",S.Page.bindOptions);S.sub("page.apis.done",S.Page.subscribe);S.sub("page.drop.done",S.File.queueFiles);S.sub("file.queue.done",S.File.queueIcons);S.sub("file.icon.done",S.Page.addIcon);S.sub("file.remove.done",S.Page.removeIcon);S.sub("file.unqueue",S.File.unqueueIcon);S.sub("file.unqueue.all",S.File.unqueueAllIcons);S.sub("sprite.generate",S.generateStitches);S.pub("page.init.done");},sub:function(topic,fn){var callbacks=_topics[topic]||$.Callbacks("stopOnFalse");if(fn){callbacks.add(fn);}_topics[topic]=callbacks;},unsub:function(topic,fn){var callbacks=_topics[topic];if(callbacks){callbacks.remove(fn);}},pub:function(topic){var callbacks=_topics[topic],args=Array.prototype.slice.call(arguments,1);if(callbacks){callbacks.fire.apply(callbacks,args);}},checkAPIs:function(){Modernizr.load([{test:typeof FileReader!=="undefined"&&Modernizr.draganddrop,nope:S.settings.jsdir+"/dropfile/dropfile.js"},{test:Modernizr.canvas,nope:S.settings.jsdir+"/flashcanvas/flashcanvas.js",complete:function(){if(typeof FileReader!=="undefined"&&Modernizr.draganddrop&&Modernizr.canvas){S.pub("page.apis.done");}else{S.pub("page.error",new Error("Required APIs are not present."));}}}]);},generateStitches:function(looseIcons){var placedIcons=S.positionImages(looseIcons);var sprite=S.makeStitches(placedIcons);var stylesheet=S.makeStylesheet(placedIcons,sprite);S.pub("sprite.generate.done",sprite,stylesheet);},positionImages:function(looseIcons){var placedIcons=[];$(looseIcons).each(function(idx,icon){icon.x=icon.y=0;icon.isPlaced=false;});looseIcons=looseIcons.sort(function(a,b){if(b.area===a.area){return b.name>a.name?1:-1;}else{return b.area-a.area;}});S.canvas=S.Icons.idealCanvas(looseIcons);S.Icons.placeIcons(looseIcons,placedIcons,S.canvas);S.Icons.cropCanvas(placedIcons,S.canvas);S.pub("sprite.position.done",placedIcons);return placedIcons;},makeStitches:function(placedIcons){var context,data;try{context=S.canvas.getContext("2d");$(placedIcons).each(function(idx,icon){context.drawImage(icon.image,icon.x,icon.y);});data=S.canvas.toDataURL();}catch(e){S.pub("page.error",e);}S.pub("sprite.image.done",data);return data;},makeStylesheet:function(placedIcons,sprite){placedIcons=placedIcons.sort(function(a,b){return a.namemaxW?icon.width:maxW;maxH=icon.height>maxH?icon.height:maxH;area+=icon.area;});var ideal=Math.ceil(Math.sqrt(area));var idealW=maxW>ideal?maxW:ideal;var idealH=maxH>ideal?maxH:ideal;var canvas=document.createElement("canvas");canvas.width=idealW;canvas.height=idealH;return canvas;},placeIcons:function(loose,placed,canvas){var i=0;while(loose.length&&i<10){$(loose).each(function(idx,icon){if(!icon.isPlaced){icon.isPlaced=S.Icons.placeIcon(icon,placed,canvas);}});i++;}for(i=0;iicon.x);y1=(p.yicon.y);if(x1&&x2&&y1&&y2){intersect.push(p);}});if(intersect.length){overlap=intersect.pop();}else{placed.push(icon);}return overlap;},cropCanvas:function(placed,canvas){var w=0,h=0;$(placed).each(function(idx,icon){w=w>icon.x+icon.width?w:icon.x+icon.width;h=h>icon.y+icon.height?h:icon.y+icon.height;});canvas.width=w;canvas.height=h;}};})();})(window,Stitches,jQuery);(function(window,Stitches){Stitches.Icon=(function(){var S=window.Stitches;var guid=0;var nameCache={};var Icon=function(name,src,cb){var self=this;this.guid=guid++;this.name=S.Icon.getName(name);this.image=new Image();this.image.onload=function(){self.x=0;self.y=0;self.width=self.image.width+S.settings.padding;self.height=self.image.height+S.settings.padding;self.area=self.width*self.height;if(cb){cb(self);}};this.image.src=src;};Icon.getName=function(name){var i=1,fix;name=name.replace(/[\s.]+/gi,"-").replace(/[^a-z0-9\-]/gi,"_");if(nameCache[name]){do{fix=name+"-"+i++;}while(nameCache[fix]);name=fix;}nameCache[name]=true;return name;};Icon.clearNameCache=function(name){if(name){delete nameCache[name];}else{nameCache={};}};return Icon;})();})(window,Stitches);(function(){var cache={};Stitches.tmpl=function tmpl(str,data){var fn=!/\W/.test(str)?cache[str]=cache[str]||tmpl(document.getElementById(str).innerHTML):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+str.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return data?fn(data):fn;};})();(function(window,Stitches,$){Stitches.Page=(function(){var S=window.Stitches;var rendered=false;return{fetchTemplates:function(){return $.get(S.settings.jsdir+"/stitches.html",function(html){$("body").append(html);S.Page.templates={stitches:S.tmpl("stitches_tmpl"),icon:S.tmpl("stitches_icon_tmpl")};S.pub("page.templates.done");});},render:function(){var $div=$(S.Page.templates.stitches({}));$div.appendTo(S.Page.$elem);S.Page.$stitches=$(".stitches",S.Page.$elem);S.Page.$drawer=$(".drawer",S.Page.$elem);S.Page.$dropbox=$(".dropbox",S.Page.$elem);S.Page.$droplabel=$(".droplabel",S.Page.$elem);S.Page.$filelist=$(".filelist",S.Page.$elem);S.Page.$buttons=$(".buttons",S.Page.$elem);S.Page.buttons={$generate:$("a.generate",S.Page.$buttons),$clear:$("a.clear",S.Page.$buttons),$sprite:$("a.dlsprite",S.Page.$buttons),$stylesheet:$("a.dlstylesheet",S.Page.$buttons)};S.Page.$options=$(".options",S.Page.$elem);S.Page.inputs={$prefix:$("input[name=prefix]",S.Page.$options),$padding:$("input[name=padding]",S.Page.$options),$dataURI:$("input[name=dataURI]",S.Page.$options)};S.Page.inputs.$prefix.val(S.settings.prefix);S.Page.inputs.$padding.val(S.settings.padding);S.Page.inputs.$dataURI.filter("[value="+S.settings.dataURI+"]").attr("checked",true);rendered=true;S.pub("page.render.done");},errorHandler:function(e){if(rendered){S.Page.$droplabel.html("× "+e.message).addClass("error");}throw e;},subscribe:function(){var buttons=S.Page.buttons;var $droplabel=S.Page.$droplabel;S.sub("file.icon.done",function(icon){if(S.iconQueue.length===1){$droplabel.fadeOut("fast");buttons.$generate.removeClass("disabled");buttons.$clear.removeClass("disabled");}buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});S.sub("file.remove.done",function(icon){if(S.iconQueue.length<1){$droplabel.fadeIn("fast");buttons.$generate.addClass("disabled");buttons.$clear.addClass("disabled");}buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});S.sub("sprite.generate.done",function(sprite,stylesheet){buttons.$sprite.attr("href",sprite).removeClass("disabled");buttons.$stylesheet.attr("href",stylesheet).removeClass("disabled");});},_noop:function(e){e.preventDefault();e.stopPropagation();},bindDragAndDrop:function(){var dropbox=S.Page.$dropbox.get(0);dropbox.addEventListener("dragenter",S.Page._dragStart,false);dropbox.addEventListener("dragleave",S.Page._dragStop,false);dropbox.addEventListener("dragexit",S.Page._dragStop,false);dropbox.addEventListener("dragover",S.Page._noop,false);dropbox.addEventListener("drop",S.Page._drop,false);},_dragStart:function(e){S.Page.$dropbox.addClass("dropping");},_dragStop:function(e){if($(e.target).parents(".dropbox").length===0){S.Page.$dropbox.removeClass("dropping");}},_drop:function(e){e.stopPropagation();e.preventDefault();S.Page.$dropbox.removeClass("dropping");var evt=e||window.event;var files=(evt.files||evt.dataTransfer.files);if(files.length>0){S.pub("page.drop.done",files);}},bindButtons:function(){var $elem=S.Page.$elem;$elem.delegate("a.disabled","click",S.Page._noop);$elem.delegate("a.generate","click",S.Page._generate);$elem.delegate("a.remove","click",S.Page._removeFile);$elem.delegate("a.clear","click",S.Page._removeAllFiles);},bindCabinet:function(){var $elem=S.Page.$elem;var $stitches=S.Page.$stitches;var $options=S.Page.$options;var $drawer=S.Page.$drawer;var $cabinet=$("form.cabinet",$drawer);var $input=$("input.files",$drawer);$stitches.hover(function(){$drawer.stop().animate({left:"-5px"},250);},function(){$drawer.stop().animate({left:"-125px"},250);});$input.bind("change",function(){if(this.files.length){S.pub("page.drop.done",this.files);}$cabinet.trigger("reset");});$drawer.delegate("a.open-options","click",function(){$options.fadeIn();});},bindOptions:function(){var $options=S.Page.$options;var buttons=S.Page.buttons;$options.delegate("a.close-options","click",function(){$options.fadeOut();});$options.delegate("input","change",function(){buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});$options.delegate("input[name=prefix]","change",function(){S.settings.prefix=S.Page.inputs.$prefix.val();});$options.delegate("input[name=padding]","change",function(){var padding=S.Page.inputs.$padding.val();S.settings.padding=+padding;S.Page.updateIconDimensions();});$options.delegate("input[name=dataURI]","change",function(){var dataURI=S.Page.inputs.$dataURI.filter(":checked").val();S.settings.dataURI=dataURI==="true"?true:false;});},_generate:function(e){S.pub("sprite.generate",[].concat(S.iconQueue));},_removeFile:function(e){var icon=$(this).parent("li").data("icon");S.pub("file.unqueue",icon);},_removeAllFiles:function(e){S.pub("file.unqueue.all");},addIcon:function(icon){$(S.Page.templates.icon(icon)).data("icon",icon).appendTo(S.Page.$filelist).fadeIn("fast");},removeIcon:function(icon){S.Page.$filelist.find("li").filter(function(){return $(this).data("icon")===icon;}).fadeOut("fast").remove();},updateIconDimensions:function(){var padding=S.settings.padding;$.each(S.iconQueue,function(i,icon){icon.width=icon.image.width+padding;icon.height=icon.image.height+padding;});}};})();})(window,Stitches,jQuery);(function(window,Stitches,$){Stitches.File=(function(){var S=window.Stitches;var readQueue=[];return{queueFiles:function(files){$.each(files,function(i,file){if(/jpeg|png|gif/.test(file.type)){readQueue.push(file);S.pub("file.queue.done",file);}});},queueIcons:function(){var file,reader;file=readQueue.shift();if(file){try{reader=new FileReader();reader.onloadend=function(e){var icon=new S.Icon(file.name,e.target.result);S.iconQueue.push(icon);S.pub("file.icon.done",icon);};reader.readAsDataURL(file);}catch(e){S.pub("page.error",e);}}},unqueueIcon:function(icon){S.iconQueue=$.grep(S.iconQueue,function(item){return item!==icon;});S.Icon.clearNameCache(icon.name);S.pub("file.remove.done",icon);},unqueueAllIcons:function(){$.each(S.iconQueue,function(i,icon){S.File.unqueueIcon(icon);});S.Icon.clearNameCache();}};})();})(window,Stitches,jQuery); \ No newline at end of file diff --git a/build/js/stitches-0.5.17-min.js b/build/js/stitches-0.5.17-min.js new file mode 100644 index 00000000..b0fad202 --- /dev/null +++ b/build/js/stitches-0.5.17-min.js @@ -0,0 +1 @@ +(function(window,$,Modernizr){var S=window.Stitches=(function(){var defaults={jsdir:"js",prefix:"sprite",padding:10,dataURI:false};var _topics={};return{init:function($elem,config){S.settings=$.extend({},defaults,config);S.iconQueue=[];S.Page.$elem=$elem;S.sub("page.error",S.Page.errorHandler);S.sub("page.init.done",S.Page.fetchTemplates);S.sub("page.templates.done",S.Page.render);S.sub("page.render.done",S.checkAPIs);S.sub("page.apis.done",S.Page.bindDragAndDrop);S.sub("page.apis.done",S.Page.bindButtons);S.sub("page.apis.done",S.Page.bindCabinet);S.sub("page.apis.done",S.Page.bindOptions);S.sub("page.apis.done",S.Page.subscribe);S.sub("page.drop.done",S.File.queueFiles);S.sub("file.queue.done",S.File.queueIcons);S.sub("file.icon.done",S.Page.addIcon);S.sub("file.remove.done",S.Page.removeIcon);S.sub("file.unqueue",S.File.unqueueIcon);S.sub("file.unqueue.all",S.File.unqueueAllIcons);S.sub("sprite.generate",S.generateStitches);S.pub("page.init.done");},sub:function(topic,fn){var callbacks=_topics[topic]||$.Callbacks("stopOnFalse");if(fn){callbacks.add(fn);}_topics[topic]=callbacks;},unsub:function(topic,fn){var callbacks=_topics[topic];if(callbacks){callbacks.remove(fn);}},pub:function(topic){var callbacks=_topics[topic],args=Array.prototype.slice.call(arguments,1);if(callbacks){callbacks.fire.apply(callbacks,args);}},checkAPIs:function(){Modernizr.load([{test:typeof FileReader!=="undefined"&&Modernizr.draganddrop,nope:S.settings.jsdir+"/dropfile/dropfile.js"},{test:Modernizr.canvas,nope:S.settings.jsdir+"/flashcanvas/flashcanvas.js",complete:function(){if(typeof FileReader!=="undefined"&&Modernizr.draganddrop&&Modernizr.canvas){S.pub("page.apis.done");}else{S.pub("page.error",new Error("Required APIs are not present."));}}}]);},generateStitches:function(looseIcons){var placedIcons=S.positionImages(looseIcons);var sprite=S.makeStitches(placedIcons);var stylesheet=S.makeStylesheet(placedIcons,sprite);S.pub("sprite.generate.done",sprite,stylesheet);},positionImages:function(looseIcons){var placedIcons=[];$(looseIcons).each(function(idx,icon){icon.x=icon.y=0;icon.isPlaced=false;});looseIcons=looseIcons.sort(function(a,b){if(b.area===a.area){return b.name>a.name?1:-1;}else{return b.area-a.area;}});S.canvas=S.Icons.idealCanvas(looseIcons);S.Icons.placeIcons(looseIcons,placedIcons,S.canvas);S.Icons.cropCanvas(placedIcons,S.canvas);S.pub("sprite.position.done",placedIcons);return placedIcons;},makeStitches:function(placedIcons){var context,data;try{context=S.canvas.getContext("2d");$(placedIcons).each(function(idx,icon){context.drawImage(icon.image,icon.x,icon.y);});data=S.canvas.toDataURL("image/png");}catch(e){S.pub("page.error",e);}S.pub("sprite.image.done",data);return data;},makeStylesheet:function(placedIcons,sprite){placedIcons=placedIcons.sort(function(a,b){return a.name=0){byteString=atob(dataParts[1]);}else{byteString=unescape(dataParts[1]);}var mimeString=dataParts[0].split(":")[1].split(";")[0];var bl=byteString.length;var ab=new ArrayBuffer(bl);var ia=new Uint8Array(ab);var i;for(i=0;imaxW?icon.width:maxW;maxH=icon.height>maxH?icon.height:maxH;area+=icon.area;});var ideal=Math.ceil(Math.sqrt(area));var idealW=maxW>ideal?maxW:ideal;var idealH=maxH>ideal?maxH:ideal;var canvas=document.createElement("canvas");canvas.width=idealW;canvas.height=idealH;return canvas;},placeIcons:function(loose,placed,canvas){var i=0;while(loose.length&&i<10){$(loose).each(function(idx,icon){if(!icon.isPlaced){icon.isPlaced=S.Icons.placeIcon(icon,placed,canvas);}});i++;}for(i=0;iicon.x);y1=(p.yicon.y);if(x1&&x2&&y1&&y2){intersect.push(p);}});if(intersect.length){overlap=intersect.pop();}else{placed.push(icon);}return overlap;},cropCanvas:function(placed,canvas){var w=0,h=0;$(placed).each(function(idx,icon){w=w>icon.x+icon.width?w:icon.x+icon.width;h=h>icon.y+icon.height?h:icon.y+icon.height;});canvas.width=w;canvas.height=h;}};})();})(window,Stitches,jQuery);(function(window,Stitches){Stitches.Icon=(function(){var S=window.Stitches;var guid=0;var nameCache={};var Icon=function(name,src,cb){var self=this;this.guid=guid++;this.name=S.Icon.getName(name);this.image=new Image();this.image.onload=function(){self.x=0;self.y=0;self.width=self.image.width+S.settings.padding;self.height=self.image.height+S.settings.padding;self.area=self.width*self.height;if(cb){cb(self);}};this.image.src=src;};Icon.getName=function(name){var i=1,fix;name=name.replace(/[\s.]+/gi,"-").replace(/[^a-z0-9\-]/gi,"_");if(nameCache[name]){do{fix=name+"-"+i++;}while(nameCache[fix]);name=fix;}nameCache[name]=true;return name;};Icon.clearNameCache=function(name){if(name){delete nameCache[name];}else{nameCache={};}};return Icon;})();})(window,Stitches);(function(){var cache={};Stitches.tmpl=function tmpl(str,data){var fn=!/\W/.test(str)?cache[str]=cache[str]||tmpl(document.getElementById(str).innerHTML):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+str.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return data?fn(data):fn;};})();(function(window,Stitches,$){Stitches.Page=(function(){var S=window.Stitches;var rendered=false;return{fetchTemplates:function(){return $.get(S.settings.jsdir+"/stitches.html",function(html){$("body").append(html);S.Page.templates={stitches:S.tmpl("stitches_tmpl"),icon:S.tmpl("stitches_icon_tmpl")};S.pub("page.templates.done");});},render:function(){var $div=$(S.Page.templates.stitches({}));$div.appendTo(S.Page.$elem);S.Page.$stitches=$(".stitches",S.Page.$elem);S.Page.$drawer=$(".drawer",S.Page.$elem);S.Page.$dropbox=$(".dropbox",S.Page.$elem);S.Page.$droplabel=$(".droplabel",S.Page.$elem);S.Page.$filelist=$(".filelist",S.Page.$elem);S.Page.$buttons=$(".buttons",S.Page.$elem);S.Page.buttons={$generate:$("a.generate",S.Page.$buttons),$clear:$("a.clear",S.Page.$buttons),$sprite:$("a.dlsprite",S.Page.$buttons),$stylesheet:$("a.dlstylesheet",S.Page.$buttons)};S.Page.$options=$(".options",S.Page.$elem);S.Page.inputs={$prefix:$("input[name=prefix]",S.Page.$options),$padding:$("input[name=padding]",S.Page.$options),$dataURI:$("input[name=dataURI]",S.Page.$options)};S.Page.inputs.$prefix.val(S.settings.prefix);S.Page.inputs.$padding.val(S.settings.padding);S.Page.inputs.$dataURI.filter("[value="+S.settings.dataURI+"]").attr("checked",true);rendered=true;S.pub("page.render.done");},errorHandler:function(e){if(rendered){S.Page.$droplabel.html("× "+e.message).addClass("error");}throw e;},subscribe:function(){var buttons=S.Page.buttons;var $droplabel=S.Page.$droplabel;S.sub("file.icon.done",function(icon){if(S.iconQueue.length===1){$droplabel.fadeOut("fast");buttons.$generate.removeClass("disabled");buttons.$clear.removeClass("disabled");}buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});S.sub("file.remove.done",function(icon){if(S.iconQueue.length<1){$droplabel.fadeIn("fast");buttons.$generate.addClass("disabled");buttons.$clear.addClass("disabled");}buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});S.sub("sprite.generate.done",function(sprite,stylesheet){var spriteURL;var stylesheetURL;try{spriteURL=S.dataToObjectURL(sprite);stylesheetURL=S.dataToObjectURL(stylesheet);sprite=spriteURL;stylesheet=stylesheetURL;}catch(e){}buttons.$sprite.attr("href",sprite).removeClass("disabled");buttons.$stylesheet.attr("href",stylesheet).removeClass("disabled");});},_noop:function(e){e.preventDefault();e.stopPropagation();},bindDragAndDrop:function(){var dropbox=S.Page.$dropbox.get(0);dropbox.addEventListener("dragenter",S.Page._dragStart,false);dropbox.addEventListener("dragleave",S.Page._dragStop,false);dropbox.addEventListener("dragexit",S.Page._dragStop,false);dropbox.addEventListener("dragover",S.Page._noop,false);dropbox.addEventListener("drop",S.Page._drop,false);},_dragStart:function(e){S.Page.$dropbox.addClass("dropping");},_dragStop:function(e){if($(e.target).parents(".dropbox").length===0){S.Page.$dropbox.removeClass("dropping");}},_drop:function(e){e.stopPropagation();e.preventDefault();S.Page.$dropbox.removeClass("dropping");var evt=e||window.event;var files=(evt.files||evt.dataTransfer.files);if(files.length>0){S.pub("page.drop.done",files);}},bindButtons:function(){var $elem=S.Page.$elem;$elem.delegate("a.disabled","click",S.Page._noop);$elem.delegate("a.generate","click",S.Page._generate);$elem.delegate("a.remove","click",S.Page._removeFile);$elem.delegate("a.clear","click",S.Page._removeAllFiles);},bindCabinet:function(){var $elem=S.Page.$elem;var $stitches=S.Page.$stitches;var $options=S.Page.$options;var $drawer=S.Page.$drawer;var $cabinet=$("form.cabinet",$drawer);var $input=$("input.files",$drawer);$stitches.hover(function(){$drawer.stop().animate({left:"-5px"},250);},function(){$drawer.stop().animate({left:"-125px"},250);});$input.bind("change",function(){if(this.files.length){S.pub("page.drop.done",this.files);}$cabinet.trigger("reset");});$drawer.delegate("a.open-options","click",function(){$options.fadeIn();});},bindOptions:function(){var $options=S.Page.$options;var buttons=S.Page.buttons;$options.delegate("a.close-options","click",function(){$options.fadeOut();});$options.delegate("input","change",function(){buttons.$sprite.addClass("disabled");buttons.$stylesheet.addClass("disabled");});$options.delegate("input[name=prefix]","change",function(){S.settings.prefix=S.Page.inputs.$prefix.val();});$options.delegate("input[name=padding]","change",function(){var padding=S.Page.inputs.$padding.val();S.settings.padding=+padding;S.Page.updateIconDimensions();});$options.delegate("input[name=dataURI]","change",function(){var dataURI=S.Page.inputs.$dataURI.filter(":checked").val();S.settings.dataURI=dataURI==="true"?true:false;});},_generate:function(e){S.pub("sprite.generate",[].concat(S.iconQueue));},_removeFile:function(e){var icon=$(this).parent("li").data("icon");S.pub("file.unqueue",icon);},_removeAllFiles:function(e){S.pub("file.unqueue.all");},addIcon:function(icon){$(S.Page.templates.icon(icon)).data("icon",icon).appendTo(S.Page.$filelist).fadeIn("fast");},removeIcon:function(icon){S.Page.$filelist.find("li").filter(function(){return $(this).data("icon")===icon;}).fadeOut("fast").remove();},updateIconDimensions:function(){var padding=S.settings.padding;$.each(S.iconQueue,function(i,icon){icon.width=icon.image.width+padding;icon.height=icon.image.height+padding;});}};})();})(window,Stitches,jQuery);(function(window,Stitches,$){Stitches.File=(function(){var S=window.Stitches;var readQueue=[];return{queueFiles:function(files){$.each(files,function(i,file){if(/jpeg|png|gif/.test(file.type)){readQueue.push(file);S.pub("file.queue.done",file);}});},queueIcons:function(){var file,reader;file=readQueue.shift();if(file){try{reader=new FileReader();reader.onloadend=function(e){var icon=new S.Icon(file.name,e.target.result);S.iconQueue.push(icon);S.pub("file.icon.done",icon);};reader.readAsDataURL(file);}catch(e){S.pub("page.error",e);}}},unqueueIcon:function(icon){S.iconQueue=$.grep(S.iconQueue,function(item){return item!==icon;});S.Icon.clearNameCache(icon.name);S.pub("file.remove.done",icon);},unqueueAllIcons:function(){$.each(S.iconQueue,function(i,icon){S.File.unqueueIcon(icon);});S.Icon.clearNameCache();}};})();})(window,Stitches,jQuery); \ No newline at end of file diff --git a/build/js/stitches-0.5.16.js b/build/js/stitches-0.5.17.js similarity index 91% rename from build/js/stitches-0.5.16.js rename to build/js/stitches-0.5.17.js index 1b33bdd6..84dd70c1 100644 --- a/build/js/stitches-0.5.16.js +++ b/build/js/stitches-0.5.17.js @@ -198,7 +198,7 @@ }); /* create image link */ - data = S.canvas.toDataURL(); + data = S.canvas.toDataURL("image/png"); } catch (e) { S.pub("page.error", e); } @@ -247,11 +247,80 @@ }); /* create stylesheet link */ - var data = "data:," + encodeURIComponent(css.join("\n")); + var data = "data:text/plain," + encodeURIComponent(css.join("\n")); /* notify and return */ S.pub("sprite.stylesheet.done", data); return data; + }, + + // ### dataToObjectURL + // + // Convert base64 data or raw binary data to an object URL + // See: http://stackoverflow.com/a/5100158/230483 + // + // @param {String} dataURI + // @return {String} The object URL + dataToObjectURL: function (dataURI) { + var dataParts = dataURI.split(','); + var byteString; + + // convert base64 to raw binary data held in a string + if (dataParts[0].indexOf('base64') >= 0) { + byteString = atob(dataParts[1]); + } else { + byteString = unescape(dataParts[1]); + } + + // separate out the mime component + var mimeString = dataParts[0].split(':')[1].split(';')[0]; + + // write the bytes of the string to an ArrayBuffer + var bl = byteString.length; + var ab = new ArrayBuffer(bl); + var ia = new Uint8Array(ab); + var i; + for (i = 0; i < bl; i++) { + ia[i] = byteString.charCodeAt(i); + } + + // get the blob and create an object URL + var blob = S.createBlob(ab, mimeString); + var url = S.createObjectURL(blob); + + return url; + }, + + // ### createBlob + // + // Polyfill + createBlob: function (arrayBuffer, mimeString) { + var BlobBuilder = BlobBuilder || WebKitBlobBuilder; + + if (!BlobBuilder) { + throw new Error("BlobBuilder is unsupported.") + } + + var bb = new BlobBuilder(); + bb.append(arrayBuffer); + + return bb.getBlob(mimeString); + }, + + // ### createObjectURL + // + // Polyfill + createObjectURL: function (file) { + if (window.URL && window.URL.createObjectURL) { + return window.URL.createObjectURL(file); + } + + if (window.webkitURL && window.webkitURL.createObjectURL) { + return window.webkitURL.createObjectURL(file); + } + + /* if we reached here, it's unsupported */ + throw new Error("createObjectURL is unsupported.") } }; })(); @@ -685,6 +754,18 @@ /* handle sprite and stylesheet generation */ S.sub("sprite.generate.done", function (sprite, stylesheet) { + var spriteURL; + var stylesheetURL; + + try { + spriteURL = S.dataToObjectURL(sprite); + stylesheetURL = S.dataToObjectURL(stylesheet); + sprite = spriteURL; + stylesheet = stylesheetURL; + } catch (e) { + // do nothing; unsupported + } + buttons.$sprite.attr("href", sprite).removeClass("disabled"); buttons.$stylesheet.attr("href", stylesheet).removeClass("disabled"); }); diff --git a/dist/stitches-0.5.17.zip b/dist/stitches-0.5.17.zip new file mode 100644 index 0000000000000000000000000000000000000000..50af597899059249d29aefabeb01634d6549ac60 GIT binary patch literal 96108 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%0D9l&Z_p)yVmfybU*n?I zuqWI#i9{L#m{{e1gAJTYkJ&Q{^@~Y&e%Yb?I9WfgAUeFPs(2HWRly6sDZ%oxbjAY2 zabbLQ%W{YoV{b1H^Rz+(F0+jpC(6W=cF>6x5OwqnvLa60t1Y-bpWy7pe1InKk;MS< zB#N9BxceM@D{+pF3|a!73}FYo!Ox45O-!^4D87!I=QxNarW-Kg?0hkoAvKHhySUy< zWuC?LQoz`4qy-@q!WQGq77euY_vEm<#T*#J%bpMcdSzgNjZqnwb9O)Y37f9-k^Q-X zl}QGu{6So?L0<3y>^LO>G^@3HVN7WdWb>p0-{Mru{y%AK0-)V?3=Kz@LIt5&WbPj zPb|Jj&PepHUv#po&!R9XOc`E24!)Bykn6U~1r0u*smMGRKQ)l)FtT$8*1zp64fU5w zLywnq`YL6v3oMa^9a?pZqT~&dei`c&W`Snd`6K@={5(eny?+O-3=Y=1#UxmK+G3fy(<9m$EJ=ZR4cV@vRuk#&leRtfkC?=BNEu$ zF`1hkiUdI&@eUTy>)wt;9G{D}0$Dk}b0nHcdQC-3dcjZ8AZh2X-bND0UyAyClRHe>+c!Z@FqAV3OV^3yyCtBO*w_YK^cb?RBl}7XEM7S21N#i~k)w?)Z z5bvMQ5i<_^@j zByK0Y5B2n!M7!_zb!=wp`1@u1w2ETYcE zhl&b{e`L?7=k%!1dWZYOP8EVZeTk;*BYp1Ss9bIbU`E@T1sLiB*vT|clD)4rhOQ9O z@*~Vrt)9epq|EgfXu{BP(?`7qaIM$)!yT{dbo2WGSaNoy=z1}uP9PA1Wa#Sl3#W>e9>+BmTAkGY3A~_pOye z30AtP78R74s~9(}+jKU?XHM&Tg0@|T-VVaA@MJHm@OOx`16$~Cw9<|Z>!#qv-tKwb z#nv@4J@F2@Twg&E(&{ia-~$LeVGVq#nVD2rv1pUlB`F?d@Cd3;{sEp%L2jN+A)5qs zs1rOT=J&HqrDRh^9HfZLYxJKPQ;IybZYUrzHGkGOSyK_811m=zba0R;x)YRNsHEm! z^)b3Xk!<99rFaL49N&eH$)3~{R^9HGtbOilLTkG)5OY{*3_R|VJF`eQGp_DB?X7mG zm&a(^H05#ygE#YyN+6Py*61_qsj+@@q=#K(%$5nrTqJvgjY59|?0!X-{6ZX)ImU7& zCn?CLmwJ63HPo8f=!0tH0_>B#2Xuk?df9pUA;Wp!# zL&3)4_k=VWFJpdCzcKp^sEpnUZbfiH;=Hc_oh}czr(i~ifR{f`i*Fq2EP1(d_;M3MS+U_Po9N0cmP@4{|Y58Ekh7TkVAfQ5%%yO!2IQZ|rZm$t26q z+_jB@-X3###5{tEGd!Y?b;=Qs8Nq*iN7<*{i^9I73g_|@HhOxJBq%|?)adpM0fOA~ z`6x0bxZ_T;Ob+YbRNX?Ie*U<)qieEa8+S@}+Ylkn%k$F-HoVOy>9mRBCN$CE{>hcF zz7^?ld5jk?d>d);o>{242f1%!Z2Od-cN{cPDOQOnurw_qZiv;Vz;+Y+a|P=0(Gc_3 zFH2-=QpD}LCL)#~WW>Oo7G;vKQNu1jEZh7%g|`S>2oy%xMCRcOUwlOEj=CxtVTo;-8ztcUt8*am|lGBPJ z`vfG_zPW3rd88%@fAexE$#B`uf6!^MIlcf_jT`upQv! z&WA-CeMi}m6iuFc>-WZIvoM;TmSF_3(rY0Z);@`1?Rl3oLr?=Td1~MYIE8{`%|0YP z8&RYQo!|;6HFWNTTo2Z@`cCqgUz8Peqhd^xR9k+_W*qFpn;;|Ze*)_*V2-{?JnCd? zO~S1!`-RbjD(S)!;qN^?@TE%#w}Uz%#FDKwhU2>j{h1dKiiXH`W&=zI24pJmWvG1; zYpYs!FSdPnl;RM&A8_bf5~A~k(Jf%zk_~z^L-JG2`Ow1}xToo}U#Oc!{UtrUFL3h) z8eX}^V_?nzHWb2U0Ni#Su(yqMErq?*d>Yjl6bRWr0M*=j>oSaJwWAb+BE>tSyliH< zNflhoNpAN|hP1&ts>l`*Z2^`m0plSEYHdOgy7pdtM6#eu*;rcPI;koCE1rU*tb22p zsQ?lUN@`rqQ}WEZeQhM0x02sl^s$K_V0Bsj-_%wMGVou%!$R<`+Uqhq$Zt>yK6 zw`1{~@nNeuix}pUL+(+>NqkGl0*uYZ)To0wN3|E(dd|jrrk9pdbVM92m5?AX#yDprZ6FOPZ(NpJj)6r&-&szGhy>RZjj)?%Kb z-pps5N)_GreAgDAx`Z8ah#1jiv$$G{dz`bUf!*lml+ZvFg0s8$=K7c$R?8OU$IZdP zV(8GAN+HNv+Ve+5c;h;ZgT;zFTamp$-I#y`{Q#wt%WG=SO{h+l3%^XEL)1hERT zAvL+833&5r{lpSs4MI>9Je2Yx_~|m7uKGhaBE?IJ9t{)Qv=32rs`LsQ$phv5K|VRrd`;&*tg#WMA^QMUcdK3{nN@q zu(>+`Fd=ge`-1Wqr-FZ7@G?EBsmQE3z~|5a?s+I?D6|*gb|HGh>Imk3dC-F zP|0jSBBKlMi+1eAZp*DW-u2$vkz7^O5#OxbLiooVbp_XHp$#<|a^sHW-eSu8@pd66 z0=z}^U9w|wW{0WAtofX3M%`)69N6y)LieM%c*h(w-bd^g(|ngC(Wj&i71jFVL27iD zxoZg}m_(K$NVS8uO& zKR<9jMzna1?Vd!2Djnm?;L=AoziIz4{wa}D{d|ab0_{uU0rNN?4EEQ15@4^Z_B12_ zz)=bSfc38g)xX`7_()DY7Yg=S<4y|p*<8B>Rys2cvJ=^S|LyOc>$v00yrPh8nA7>| zQ~dWrNm+C8L`J!lMe3&u9*#d^Um#^iy?^^Z$JfS5q2nT2Lvw`o0R(wXO#%leqw6x5 zeJ3AQ8hJ#z|D@%X>gl?Aw`_HqzV}(=JxV3LUZcRk{1Fi_!Ibj%bVaokW=UGkjvO@S zx-J{JAx$q}j@Yo0#^16_s%doXrdDR06*2@9y zvXU^hStl#_Kw0wXmNxSb+VhnOLtgc8y9IzP#NO>sLhME;sDFh%58DjAaa#))W@I7b z9M?+vY>wppYFLD|6}l>?vGeB-J2qZz6qHKMm{+PPjo{G*1EUi?bSS>t;wUD+dRdTR zXWJcz_mFai?b;krIU^(^1X8SHcruB~W{xs1{1%H9QUNO9ptgwot8qmUtZ@&o80&Z| zG|3I=IJC?k3)Y%01rA|^+G{Ii@@d8`7%|+B4!+XKUZAi9 zTe3yzI_#$>qXg(XQf9C0W>85Ip`PU6K$&JVhK*|WnfioW==+yn*F$nt&cW7ls6Yss z2@v-%`w}9GI1TB0d)`|ZoTD0xtLP9`=9}oobb<%@gAi#zgjjEO=-gl9{iHSsTbZTUu&7Jun@~z5aj`Ud>GpZ6z{oIDNUO z94(%V)q<8m3VR*zttf$_h;Yz-XQPz}k_W*X#x$dd<=YF}o80Ug(651BGH9dbz$yINXj?~X~?2T zSN@z#o>NU^PuW}!78)Hky2Z6cc=z@^tehsm;rLRO06oIAWb1O>j0 z_g3aqg7>QUUb6>9=ZS^R`i65{1)V8vmuCMk141#8a!<%`eN&d_4b1F{ey)3V`lf}L zZ8dW9d&IpEyt26>*k{li#>6X}_za8pVYe>X&JHCl1Oq?(aVLMIVqW~1K-JIjYhivO z%f~qBOLMxlTq5QvrXz`Rl3*Bj7n7zf1UGDL@Un(>T z#*{&T6qPwj2^H+J(B$!{>0%k4pd>1tt&v04DSB*EWFVQ8?}!#uLf3>}F_J|YEJTDV znJH^R?q#S(TLSTqj6$~l6^N;V9yb8zXO>rL)s2EH*ogLIO6kLKh$pz=r=u9)6D>jrf{K%8nxh!f?djenIX#`#m7`@ z7NHQ|K2HMQz%HS^WeH>uas%mSun1f6${K%8;eZ1l*BmClOgLl#*QOADjfmX-AoKQ+ z)--`-6v!SJyYrQ&S>cwSaOmgFICa{t`m8rzyKHj(+x05zy&c>LjWxwb6_v1yBh6Y6 z#%T{pIyb7-M8H^&*yPUp>O|Q3JCodv>bO4JGDPPf0PE?x?F#zJ8zvHX=wG5TBj5x8OwqeO$WNMqAf4MD`n$GNUG<+;`d0{B{Ps=a-zB;-S3!Cv zXBkTV>-o&F%PzQv2^HoLnJnD}N4;F8q9Th|yKnW)iWxoVcf4rV%l;K{8lD`nk>=|J zos`^q#oZ6pAV=5hf!6D~q8Xy#acX6TaA>z3H4GY4sKBQc`#H)}8e;zCGcwIWl7wY4 z0rTfbWQ|#;F-}8qYm=fKaGPtFTu7)Y<`f@X*VsMy*Dz?4zsg-_ewh;6C4Zh^Ar+7{$$z^IDK{oUqpT8*aDg> zlFDr@OMY7l9ltattn!0{%RA{sULpz*m_lVtT zu4?SuGB)Nz5)b2?=&$`7Fnu*+3co5)n|s*mo8pt>7}yge%p|YAmS4!R{#p%>lmOd- zddUK@FR)86SI3F^qA?+{V~(ISHT^N?Em(!I6Z}4D#4YNN%FDes*}Y0lzo->5VMLE9 zZeWLTW*mc`$ZpbCY7|T>Qm=uN1CNcX%zX3mU5Bi>JhM=&4sbJBuojq8JWk6}b_XcAk!qB%& z#n)8qJ3H3n)=1xjZy>c!zqD^Vz&oIjye%+!>}~RGehZ8lbh3E8c2LX(h6LK9AIivx z#4o%grAA0j#&B`5-9lQ?_YH`Jc4E86(wqu^IsevQh35NXOvoUEyQyhTU%fJ+E-fX< zBkbt~FhCwV93_U~^{UX@Y9BC#1T+!38~$bnc4V zX^8o=89oC1`qX33tKJtlPhS3+WY&j1G!5ZwlChkuGMpHOwj2_+%!xD{QhqpKuG9z? zRpTSfCh@PH;6LX+Feq=H?^Bzvb_^Dkh*_G2uhsbo8~AaG9ZO|pskmJ?9P)U{R$YQ| z;;ur&+EdAngZRY(QRznU$kVl)ZNQi>T+ocZm<5~X27!Ri=`Gv4$x9Po*4%?77Mp$} zFfX40;=Hg!2m==FmMD#F;C4+W_O8)%ABX!vGnth_?Z~)f>XD?`E=n?AS#bSbdva zLOzaCla{JRjewo0xh>5Ki4Mea|E!rH>(P`KuBI8N2F{9=Y7#A3`jvSw{67EN57?y{ zWqO}{k;eSTJ(2z&zP9HA^cgI1;>z{3*m~|(%#N88;e1pY(>v@aoqe_l!Jb9XVPLMd z78jNvgo}(yyXlJ5VpRyqFP6hhJVc5YE?#TAPR$Cf^wy<3>{8aU5?F?hjF%_w8(f+0 zOPJ@si6)_ybpmeK7%MZ5ZFmNz^nwK#`vM^(Yk5T@`M}1faRmEGmFo=>RX+hMnYXzV z+e_A?Vq7S@vu9LcXeEC#2^hUZfQ#2 zI3|_H-)Vu;{~Uhn=P}Q-wBmlkF&`M9T9kR$zM@kmAjcr}V{kP@{Cd}KPxo;pvFn#` z4cW06hYy;eFKwO>dp^+&hYY2`Y;5$Hum~m!i54;X7aL?!$qXU5!TOY=cyL)VquzP& z3WUaD6CL47H~bO4PHak?pq7V~3e>SANU7QA^n*->0#bcpvDDV9GQrr0JBD{IhKMHK z)1k~SKPi7?^?_TNz#>idQQaR{>Z>+C)rWLpIh>(g2}ygT+)7Wqf@F)*xuC9Lb70c3 z_7=!nm5|7ejPN?3hQ^fT?ZX3{^3ZZ|O*;(Y0>+_kCT(DWFoQkb< z0wbr8D7PAvD@ht%uqZVx4JJ!P#r2~%HPT3QUl!iCp9;0HF6KnXT9%Deq3-* zZV1y>yCd8?mQ=~=Bb|b?w|~C*c-r9u?ziec3q>zgSo=kAi<+l2xmwxQ67`s&Vxt2B z?y7KK*hN*6D0hN7&8A)y5@AVya&8+knTk}3(;ol&nXZPgYq6O0S@y>-Yg2%xyz`-b zw`~b^EZ!fh3`$Z8H1ZHIW0vfkW)yeY@DQxk$@JTbPcC@n5V$8rHthZ(HA2z|$Q$)k znZq9aS~^+2+6`Xq7$5RgLUB2W4cSPGO_aLr?6ezIZQH+$H``=|uFR9ZQ$TVgkMp9i zJSEEX4t-flS+n4bzi78s!yRZDjV4rR*(~`w$d+E3vNltrUqZ-xT{3e!v0jdKE|;5Ej@! z7V(?t>S~rQZi&cli+|tkTvO>p9Mi3k`bLApfjO8iuT-$Su9g8T7qdBRiDCO!HQ7nJ z)?)^ax-_?vL-NV@0@o^IpB_U3(IseAIvC{zyI?Vdh@)bbVMdh5bIDNszpg+i6Yao`IoiQ#oUvZC)e>BlGqjew;GaGYQIszj!D^a`wHCl z9prw=@L2IAm@9g)E%syjuL}#nByk-*=(I%i6EEy`p-yrETQ9>6{);D6i}3QOZk9%> z(V3Ik;w2Q#W}&o`@>sxDWn-FBwU&m%LJID|q(6$LkfTDR%jmk)_a3+|h;))K;lWFH zpU$~!H09iu6?7iWZH4T>YO7}ly>Ou<_;}O$@(m6ccN)c=#%ZZyC`}m|7z6lHZ=1R6 z+)1AGildz9`)a$_AKkdc?+ry5XdjF|c3&vw{{+74*%P^h}J`&tcL zoh|2GLtL8H9o~xdwu5^EX1~{?(6T$auXb3GJvFSqWI1REd6i^v3nz8Vrg8nC%R9qL z=Mp!j>wePJymG5dB(>M$e`Za^!~DZX!IHF37T#lrIkM*#5L?wx9%tg>Jdvzr&F^=l z0gmAwzYYsh%`-~{fp+vlFpLUK@6#kA>^j?YLarhn)PL?W^p0Q&P!-$8(Re2Iw-;FC z;pWmcR_?_w_=o8To!0mZhZd{mDdk#?CUcizJgDc+m9jc(XVb$eHPCmI2&U~smB-aP zO|MQUx~-Ov7UOA(9rhFsTouwl!M}4J2x$TbWR>FBr1ofhMVWXO$hBat7P%Ts9MLM) zE*mn^RgJw%HMCEGuU9ohr^$D-ErV)3n(|rBm5&3~Lmj-$lTeaXZV=Ivv==DSH6{4I z8ywpL90`ns+Do47lCXiwbFS{-C9w6QWzeW!|yh@2i zn^xy&RmTl!L5cY(0#0TV0JHSWKg!GY#TCr~Yr7kLy*2wYX;9-qJko_;S7wYTXQfU! z;e=X}X|c)uoPxZ;>7Q^u!Q8sWX5Lcl4sO1_2Cr|v|Mq#t**RwkJ=l`Ko1qjOHo?&j zfkU^!{n7#~R}4&Caz=?LuQOjEo^LK|9F2#^*EC(0HQ$QYufoGhUhhNi+VjMB6M2>s z^Nt>-!)CDZhz^%C3}iB`$S>xCGn+(_cbF(^h&HK92zbp#Fm9&UxcOSr#|%!0LRq2F zIZ1j*SiQ}yS;@EJu2OrH23@n0^mA$X<7AH2x9|6|UQ}dNUC(3s8(wbJz{gWiMn~V7 z^acvzZd@lHwETtN0VrLR*(ALjo|?_?`nQr?*8?ZM{c5v$=3q`)f_=|qcWM`ote;_J zMFx}gq{w-~QGB+onZLmhb5JFGCbWPLgJl`YdC7n;9C0ohsJv;#BD&jyoO593S5Y=) zOtN(?u3B;h*c_<@_+4EbLZG0GilxY~@)boNx>Cf8&++7o#N-{n0DAS6h4a7V!)R_G zSh)7My7QaMaJ`LjfcUHezqtp4e`BzVkT|A~y@H)X)XDV-#Z9f5T2SkEj1t0z!`Jj6 zA7)k*W(brrk!&;T7h`{91yIQoY${K(4ACLB?nsic69&rDJ&-1RlOKK({5ErafZJqV ztuwVtt^i6kj4hmi2YyNcMn*~^*JtznDWdN|#$VQ~Bbe6cm2VbYcWNnmsL<3!_N8Hz z@+P3@g+wA`J6Cw9@x=*63i-vs%1VA7eD%6?W#Ifkr`W+k`1X3cgd%eo9IRuwPH?W? zmD}%=sdr%H#(sApgdh0&#rQJb2YI-I$`PE_^fEqv?9fDHe#$Fis;!`YJYIj?0ukSDi-oQ@(9$x4b{)-o zHjtGjDZ{0ldq49+^@SK)IpqIf#$f1!9Q>yb{q?KP%R>Ttj*7+a`fJ}`&%B(JRRvpaZ+!hCT;B>!}ts&wHgcc^umAhcEz`E!#ER zH7#WvpOWw;5R+WwWz+h61E5qZDSmF_9AbE;ta zFy;|XoAHY^SQ@sn01pu(yacNg6vceORDJLh32ncPCU<%zGsF5iLZ6HLc-pb9T9xCM ztMT$`Uuy{3Q}MMFEqG=!J(@d)g!Srxf^^%;AusAYHR<_wF-ve#!bw;>9p*xeZ1i!_ zKJH`N?nUW>3N5q@4wS9srw4;fe9{&V#vK~LgpUZa46&F2bJ}4M#+xR;Yyj@1be>LC zuqx}cs3;u0ef9w7j4KyZl2RGSMkr=lX;0Q>Kk~K=q59^+-zDUG9% z+cJ8ZsdKxNrm+)RIF$~(ZiN9fha2o6A;KJDS_fa(X4NHXxbhGvVVMO8X zik#hh3%3>c&-)V!MZTMM%y zs7>s6|CD`*U|H}FgFd0>qUAXS;XnEb6Gku5L`KZlNH8EUj6{#7v*MRT|%{NM)7^h(dT>I9DcggLix zS`qr#b$NgP;yAj5rFBrRNsZ}~;B6o2_fq;%WdBvo(cSq{RVcD>YfupDPj+Xx-b95O zv(Zp-dA`dqU2P^5oMXMNZQ9-aH_f4Q-ltdZmjL3;s9Xco8gS7o_n6fl5$TpVkGAH> zw45;u56T5YI@br3IL^{OchcIJnf>E_7n2^>=|cbUI$9f+6?a`y<90Ij*yduBi2dt< z$tP-bZ`?_WsBGUOkFIs0TJC5pd&@elBeyaVs_-a7RyaJz!%WeB)ka25IJR=kmU4JdM6l~ zh^d?qmaOAVnF2RDKgFgv#zbRIew>#Y;Ej9+v^jP0j7>$#zEYgqYonjxCl% zP)=g3uuO@OYw%e~)jMJx;_RSYPn|@g--F@@C;NulZ{lJ89WAW=AGueTGr2*lWeSN= z>O!9C?~}_iLOqgWgKi_5HDapC@hb@JnV#*?nzsW;ngaw4&6y;J92w7(h9+snwdUIj zgB6k00rJ%(4Ibi`&r-y@0zjXlC>m~EX^PjP(VPAx>*-N!@u5RvYH8q}D|`!GF~4=F z9j3AfK0NwD0vGBA(0qWHKy|(&=t~%6ma9Ax^)Df>oVU5K(xOc0a{O<@YL>6@W(>Fc zIE0sBk2_(G2!h3h9hd-md&xhiV!=A8?6Ud@u(Tq}>e87^W z*3z-F0Omdh*YQ_X(uL@Ut1I$0^1xn5SkfzSr8=pW(FGw!Q-wS`O|-b=8sd0C5#)5* zw0zgyQ8a?H;A~?QZi|O4gDRIMJRi0$6@o|*P3HDZZR^uH4I zvkC60)Zz5sf4Cs+G^_)K(EZe97M)JA&{JVH=Byt#_=W@84Ery$Zi&_{4smX5{Sz@$ zYxZS+JOyha`4)s^s69)!e73UJfBLoYbG8OhA7c}F)|%yv0;2}IF1{1mDhgLM^yTML zcem3T`RRbh<9*-`YTVF~z(&`3$qTCA*SG*eNYAV+K^VXUSzDeh6+!s5Ju#&!6E#7N z%i{Nk*(4{-%DF`8cuMAErKFd5P+SgWD$8!=bo;?vQg3PZ$}hRIB~8sagUj&_qCo{n zf3z-TBp2y;R%9?7qcH2!M<}h-WZK9KzDn8J@O|Xar)Im|*!uPpS}GBRjcgBYi@A~h z@0xO~(}K01TjZ0}#6EpJ%bUN}qHXd1~RhPSJE#4~|AY&1kJ z8Dmnh)y*Wcjv_m&w+m5FjkjZIk15(9-;+&fX0|joV<#TzYI~MkH z*E8XnxYJZ?H&VQfGH~2yI?nB}pD{nv03g%WnBMa$hZ+jQ82PMkyr7 z2@V}+I1ri2!%DIG99AVD*$0x^)D{}_tR!ZaJ5Un68xNIi9 z4iefO{hCjbUV23mJnn^lF4nKIxRv~dA%iQkdim`IYas;mf4cFT%cMayIQCDsa4DD@ zYy7Iz&DlTw!(ecfjczF^g2Tck?|S~2?T2LbsQ{jCMBuUa9T8q|THNB!ZP~*dvt@8c z&z7?s`5BK*?I@(;#&afAeRh{%bDI*geVu^U!}Eu|dRqwpUin@VtN1_XkJlmI+SfAEJX`5Ke zgztHTnN!l}#U#Z}xz8KCnT)y8Kn}xJ6kg&R5b*or7&AC)N~(919`JU^H3_R1bjf4a z+@C#l;mUa|RYC>z<%dJi>{)YfGfF$K5%7|XeR5K<6XO@*luG9PxKMZvdpv?zntc(c zT1EYX=4^E0hE--m(Si*4GR^)J)q&!NvWX1L<6=paSO{2}hBTD)sbH|H|d2=}Q6sZ!O*j@Q7I0C6O+O!Qsh zvK?f^>svl?B6Ria-_yFY753XWnE~?RaA|_nd2MRj^YZj?yw*me{#Cn8f92&iOqNRRu6`Oo)F-k^%lHN%qf$|Mvy??*b~|TfP?^6&!Vvx$wSNcUzZO0+ZT?=9*CW)`Ycv3W1RVgt z{Yy>sDE@ySzGkj}r>sAgd)$Ko0A?S-A^Zyk_%RjfqXGYCRR0xRc2{Sc|4<*C(_`+e zkA_jB2LL{T^Y2$lNG;F*BK;5Qe?X!76zILG0|2)lAL4(5{?S@t9})XorT!<%!^isX z4!Yb!89#kER|xm_Fm-)2{oh!w?k>K5%&xZoD@@-v2tAlTD5D>H?7ueqdH(;Rc$j%x z{U?ZCR8mkv2mnyy3/* handle sprite and stylesheet generation */ S.sub("sprite.generate.done", function (sprite, stylesheet) { + var spriteURL; + var stylesheetURL; + + try { + spriteURL = S.dataToObjectURL(sprite); + stylesheetURL = S.dataToObjectURL(stylesheet); + sprite = spriteURL; + stylesheet = stylesheetURL; + } catch (e) { +

do nothing; unsupported

+                    }
+
                     buttons.$sprite.attr("href", sprite).removeClass("disabled");
                     buttons.$stylesheet.attr("href", stylesheet).removeClass("disabled");
                 });
             },
 
-

Private no operation method

+

Private no operation method

             _noop: function (e) {
                 e.preventDefault();
                 e.stopPropagation();
             },
 
-

bindDragAndDrop

+

bindDragAndDrop

Bind all of the event listeners for drag and drop

             bindDragAndDrop: function () {
@@ -139,7 +151,7 @@
                 dropbox.addEventListener("drop",      S.Page._drop, false);
             },
 
-

Private drag and drop methods

+

Private drag and drop methods

             _dragStart: function (e) {
                 S.Page.$dropbox.addClass("dropping");
             },
@@ -162,7 +174,7 @@
                 }
             },
 
-

bindButtons

+

bindButtons

Bind all of the event listeners for buttons

             bindButtons: function () {
@@ -173,7 +185,7 @@
                 $elem.delegate("a.clear", "click",    S.Page._removeAllFiles);
             },
 
-

bindCabinet

+

bindCabinet

Bind all of the event listeners for the cabinet

             bindCabinet: function () {
@@ -184,14 +196,14 @@
                 var $cabinet = $("form.cabinet", $drawer);
                 var $input = $("input.files", $drawer);
 
-

show file input on hover

+

show file input on hover

                 $stitches.hover(function () {
                     $drawer.stop().animate({left: "-5px"}, 250);
                 }, function () {
                     $drawer.stop().animate({left: "-125px"}, 250);
                 });
 
-

on change event, use the drop event to handle files

+

on change event, use the drop event to handle files

                 $input.bind("change", function () {
                     if (this.files.length) {
                         S.pub("page.drop.done", this.files);
@@ -199,13 +211,13 @@
                     $cabinet.trigger("reset");
                 });
 
-

open options

+

open options

                 $drawer.delegate("a.open-options", "click", function () {
                     $options.fadeIn();
                 });
             },
 
-

bindOptions

+

bindOptions

Bind all of the event listeners for the options panel

             bindOptions: function () {
@@ -237,7 +249,7 @@
                 });
             },
 
-

Private button methods

+

Private button methods

             _generate: function (e) {
                 /* [].concat to copy array */
                 S.pub("sprite.generate", [].concat(S.iconQueue));
@@ -252,7 +264,7 @@
                 S.pub("file.unqueue.all");
             },
 
-

addIcon

+

addIcon

Add an icon to the file list @param {Icon} icon

@@ -263,7 +275,7 @@
                     .fadeIn("fast");
             },
 
-

removeIcon

+

removeIcon

Remove an icon from the file list @param {Icon} icon

@@ -276,7 +288,7 @@
                     .remove();
             },
 
-

updateIconDimensions

+

updateIconDimensions

Update icon dimensions after changing padding setting

             updateIconDimensions: function () {
diff --git a/docs/stitches.html b/docs/stitches.html
index 5df91f13..da0492fa 100644
--- a/docs/stitches.html
+++ b/docs/stitches.html
@@ -203,7 +203,7 @@
                     });
 
                     /* create image link */
-                    data = S.canvas.toDataURL();
+                    data = S.canvas.toDataURL("image/png");
                 } catch (e) {
                     S.pub("page.error", e);
                 }
@@ -253,11 +253,81 @@
                 });
 
                 /* create stylesheet link */
-                var data = "data:," + encodeURIComponent(css.join("\n"));
+                var data = "data:text/plain," + encodeURIComponent(css.join("\n"));
 
                 /* notify  and return */
                 S.pub("sprite.stylesheet.done", data);
                 return data;
+            },
+
+

dataToObjectURL

+ +

Convert base64 data or raw binary data to an object URL +See: http://stackoverflow.com/a/5100158/230483

+ +
@param {String} dataURI
+@return {String} The object URL
+
+            dataToObjectURL: function (dataURI) {
+                var dataParts = dataURI.split(',');
+                var byteString;
+
+

convert base64 to raw binary data held in a string

+                if (dataParts[0].indexOf('base64') >= 0) {
+                    byteString = atob(dataParts[1]);
+                } else {
+                    byteString = unescape(dataParts[1]);
+                }
+
+

separate out the mime component

+                var mimeString = dataParts[0].split(':')[1].split(';')[0];
+
+

write the bytes of the string to an ArrayBuffer

+                var bl = byteString.length;
+                var ab = new ArrayBuffer(bl);
+                var ia = new Uint8Array(ab);
+                var i;
+                for (i = 0; i < bl; i++) {
+                    ia[i] = byteString.charCodeAt(i);
+                }
+
+

get the blob and create an object URL

+                var blob = S.createBlob(ab, mimeString);
+                var url = S.createObjectURL(blob);
+
+                return url;
+            },
+
+

createBlob

+ +

Polyfill

+            createBlob: function (arrayBuffer, mimeString) {
+                var BlobBuilder = BlobBuilder || WebKitBlobBuilder;
+
+                if (!BlobBuilder) {
+                    throw new Error("BlobBuilder is unsupported.")
+                }
+
+                var bb = new BlobBuilder();
+                bb.append(arrayBuffer);
+
+                return bb.getBlob(mimeString);
+            },
+
+

createObjectURL

+ +

Polyfill

+            createObjectURL: function (file) {
+                if (window.URL && window.URL.createObjectURL) {
+                    return window.URL.createObjectURL(file);
+                }
+
+                if (window.webkitURL && window.webkitURL.createObjectURL) {
+                    return window.webkitURL.createObjectURL(file);
+                }
+
+                /* if we reached here, it's unsupported */
+                throw new Error("createObjectURL is unsupported.")
             }
         };
     })();
diff --git a/src/page.js b/src/page.js
index 0c01ba37..5354038c 100644
--- a/src/page.js
+++ b/src/page.js
@@ -117,6 +117,18 @@
 
                 /* handle sprite and stylesheet generation */
                 S.sub("sprite.generate.done", function (sprite, stylesheet) {
+                    var spriteURL;
+                    var stylesheetURL;
+
+                    try {
+                        spriteURL = S.dataToObjectURL(sprite);
+                        stylesheetURL = S.dataToObjectURL(stylesheet);
+                        sprite = spriteURL;
+                        stylesheet = stylesheetURL;
+                    } catch (e) {
+                        // do nothing; unsupported
+                    }
+
                     buttons.$sprite.attr("href", sprite).removeClass("disabled");
                     buttons.$stylesheet.attr("href", stylesheet).removeClass("disabled");
                 });
diff --git a/src/stitches.js b/src/stitches.js
index 0d84a269..8650f4ec 100644
--- a/src/stitches.js
+++ b/src/stitches.js
@@ -198,7 +198,7 @@
                     });
 
                     /* create image link */
-                    data = S.canvas.toDataURL();
+                    data = S.canvas.toDataURL("image/png");
                 } catch (e) {
                     S.pub("page.error", e);
                 }
@@ -247,11 +247,80 @@
                 });
 
                 /* create stylesheet link */
-                var data = "data:," + encodeURIComponent(css.join("\n"));
+                var data = "data:text/plain," + encodeURIComponent(css.join("\n"));
 
                 /* notify  and return */
                 S.pub("sprite.stylesheet.done", data);
                 return data;
+            },
+
+            // ### dataToObjectURL
+            //
+            // Convert base64 data or raw binary data to an object URL
+            // See: http://stackoverflow.com/a/5100158/230483
+            //
+            //     @param {String} dataURI
+            //     @return {String} The object URL
+            dataToObjectURL: function (dataURI) {
+                var dataParts = dataURI.split(',');
+                var byteString;
+
+                // convert base64 to raw binary data held in a string
+                if (dataParts[0].indexOf('base64') >= 0) {
+                    byteString = atob(dataParts[1]);
+                } else {
+                    byteString = unescape(dataParts[1]);
+                }
+
+                // separate out the mime component
+                var mimeString = dataParts[0].split(':')[1].split(';')[0];
+
+                // write the bytes of the string to an ArrayBuffer
+                var bl = byteString.length;
+                var ab = new ArrayBuffer(bl);
+                var ia = new Uint8Array(ab);
+                var i;
+                for (i = 0; i < bl; i++) {
+                    ia[i] = byteString.charCodeAt(i);
+                }
+
+                // get the blob and create an object URL
+                var blob = S.createBlob(ab, mimeString);
+                var url = S.createObjectURL(blob);
+
+                return url;
+            },
+
+            // ### createBlob
+            //
+            // Polyfill
+            createBlob: function (arrayBuffer, mimeString) {
+                var BlobBuilder = BlobBuilder || WebKitBlobBuilder;
+
+                if (!BlobBuilder) {
+                    throw new Error("BlobBuilder is unsupported.")
+                }
+
+                var bb = new BlobBuilder();
+                bb.append(arrayBuffer);
+
+                return bb.getBlob(mimeString);
+            },
+
+            // ### createObjectURL
+            //
+            // Polyfill
+            createObjectURL: function (file) {
+                if (window.URL && window.URL.createObjectURL) {
+                    return window.URL.createObjectURL(file);
+                }
+
+                if (window.webkitURL && window.webkitURL.createObjectURL) {
+                    return window.webkitURL.createObjectURL(file);
+                }
+
+                /* if we reached here, it's unsupported */
+                throw new Error("createObjectURL is unsupported.")
             }
         };
     })();