@mkhuda/dom-screenshot 0.0.1 → 1.0.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/.gitattributes +1 -0
- package/EXAMPLES_QUICKSTART.md +240 -0
- package/README.md +542 -25
- package/TESTING.md +269 -0
- package/TESTING_STATUS.md +215 -0
- package/TEST_SETUP_SUMMARY.md +335 -0
- package/dist/dom-screenshot.d.ts +44 -272
- package/dist/dom-screenshot.d.ts.map +1 -0
- package/dist/dom-screenshot.esm.js +753 -0
- package/dist/dom-screenshot.esm.js.map +1 -0
- package/dist/dom-screenshot.min.js +2 -1
- package/dist/dom-screenshot.min.js.map +1 -0
- package/examples/README.md +211 -0
- package/examples/react-app/README.md +161 -0
- package/examples/react-app/index.html +12 -0
- package/examples/react-app/node_modules/.vite/deps/_metadata.json +46 -0
- package/examples/react-app/node_modules/.vite/deps/chunk-FK77NBP6.js +1895 -0
- package/examples/react-app/node_modules/.vite/deps/chunk-FK77NBP6.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/chunk-VSODSHUF.js +21647 -0
- package/examples/react-app/node_modules/.vite/deps/chunk-VSODSHUF.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/package.json +3 -0
- package/examples/react-app/node_modules/.vite/deps/react-dom.js +5 -0
- package/examples/react-app/node_modules/.vite/deps/react-dom.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/react-dom_client.js +38 -0
- package/examples/react-app/node_modules/.vite/deps/react-dom_client.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/react.js +4 -0
- package/examples/react-app/node_modules/.vite/deps/react.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/react_jsx-dev-runtime.js +898 -0
- package/examples/react-app/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
- package/examples/react-app/node_modules/.vite/deps/react_jsx-runtime.js +910 -0
- package/examples/react-app/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
- package/examples/react-app/package.json +21 -0
- package/examples/react-app/tsconfig.json +25 -0
- package/examples/react-app/tsconfig.node.json +10 -0
- package/examples/react-app/vite.config.ts +10 -0
- package/package.json +75 -44
- package/rollup.config.mjs +35 -0
- package/tests/README.md +394 -0
- package/tests/fixtures/html.ts +192 -0
- package/tests/fixtures/images.ts +86 -0
- package/tests/fixtures/styles.ts +288 -0
- package/tests/helpers/dom-helpers.ts +242 -0
- package/tests/mocks/canvas-mock.ts +94 -0
- package/tests/mocks/image-mock.ts +147 -0
- package/tests/mocks/xhr-mock.ts +202 -0
- package/tests/setup.ts +103 -0
- package/tests/unit/basic.test.ts +263 -0
- package/tests/unit/simple.test.ts +172 -0
- package/tsconfig.json +44 -20
- package/vitest.config.mts +35 -0
- package/rollup.config.js +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-screenshot.esm.js","sources":["../src/dom-screenshot.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var domtoimage=function(e){"use strict";const t={imagePlaceholder:void 0,cacheBust:!1},n={toSvg:r,toPng:o,toJpeg:i,toBlob:l,toPixelData:s,impl:{}};function r(e,r){return function(e){void 0===e.imagePlaceholder?n.impl.options.imagePlaceholder=t.imagePlaceholder:n.impl.options.imagePlaceholder=e.imagePlaceholder;void 0===e.cacheBust?n.impl.options.cacheBust=t.cacheBust:n.impl.options.cacheBust=e.cacheBust}(r=r||{}),Promise.resolve(e).then(e=>a(e,r.filter,!0)).then(u).then(h).then(function(e){if(!(e instanceof Element))return e;r.bgcolor&&(e.style.backgroundColor=r.bgcolor);r.width&&(e.style.width=r.width+"px");r.height&&(e.style.height=r.height+"px");if(r.style){const t=r.style;Object.keys(t).forEach(n=>{e.style[n]=t[n]})}return e}).then(e=>{const t=n.impl.util;return function(e,t,r){return n.impl.util,Promise.resolve(e).then(e=>(e.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(e))).then(e=>'<foreignObject x="0" y="0" width="100%" height="100%">'+e+"</foreignObject>").then(e=>'<svg xmlns="http://www.w3.org/2000/svg" width="'+t+'" height="'+r+'">'+e+"</svg>").then(e=>"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e))}(e,r.width||t.width(e),r.height||t.height(e))})}function o(e,t){return c(e,t||{}).then(e=>e.toDataURL())}function i(e,t){return c(e,t=t||{}).then(e=>e.toDataURL("image/jpeg",t.quality||1))}function l(e,t){return c(e,t||{}).then(e=>n.impl.util.canvasToBlob(e))}function s(e,t){return c(e,t||{}).then(t=>{const r=n.impl.util;return t.getContext("2d").getImageData(0,0,r.width(e),r.height(e)).data})}function c(e,t){return r(e,t).then(e=>n.impl.util.makeImage(e)).then(e=>n.impl.util.delay(100)(e)).then(r=>{const o=function(e){const r=n.impl.util,o=document.createElement("canvas");if(o.width=t.width||r.width(e),o.height=t.height||r.height(e),t.bgcolor){const e=o.getContext("2d");e.fillStyle=t.bgcolor,e.fillRect(0,0,o.width,o.height)}return o}(e);return o.getContext("2d").drawImage(r,0,0),o})}function a(e,t,r){if(!r&&t&&!t(e))return Promise.resolve(void 0);const o=n.impl.util;return Promise.resolve(e).then(function(e){return e instanceof HTMLCanvasElement?o.makeImage(e.toDataURL()):e.cloneNode(!1)}).then(n=>function(e,t,n){if(!t)return Promise.resolve(t);const r=e.childNodes;return 0===r.length?Promise.resolve(t):i(t,o.asArray(r),n).then(()=>t);function i(e,t,n){let r=Promise.resolve();return t.forEach(t=>{r=r.then(()=>a(t,n)).then(t=>{t&&e.appendChild(t)})}),r}}(e,n,t)).then(t=>function(e,t){if(!t)return Promise.resolve(t);if(!(t instanceof Element))return Promise.resolve(t);const r=t;return Promise.resolve().then(o).then(i).then(l).then(s).then(c).then(()=>r);function o(){if(!(r instanceof HTMLVideoElement))return;const t=window.getComputedStyle(e),n=document.createElement("canvas");n.width=parseInt(t.width,10),n.height=parseInt(t.height,10);const o=Math.max(e.videoWidth/n.width,e.videoHeight/n.height),i=e.videoWidth/o,l=e.videoHeight/o,s=n.width/2-i/2,c=n.height/2-l/2;n.getContext("2d").drawImage(e,s,c,i,l);const a=new Image;try{a.src=n.toDataURL()}catch(e){a.src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}const u=r.parentNode;u&&u.replaceChild(a,r)}function i(){function t(e,t){function r(e,t){n.impl.util.asArray(e).forEach(n=>{t.setProperty(n,e.getPropertyValue(n),e.getPropertyPriority(n))})}e.cssText?t.cssText=e.cssText:r(e,t)}t(window.getComputedStyle(e),r.style)}function l(){function t(t){const o=window.getComputedStyle(e,t),i=o.getPropertyValue("content");if(""===i||"none"===i)return;const l=n.impl.util.uid();r.className=r.className+" "+l;const s=document.createElement("style");function c(e,t,r){const o="."+e+":"+t,i=r.cssText?l(r):s(r);return document.createTextNode(o+"{"+i+"}");function l(e){const t=e.getPropertyValue("content");return e.cssText+" content: "+t+";"}function s(e){return n.impl.util.asArray(e).map(e=>t(e)).join("; ")+";";function t(t){return t+": "+e.getPropertyValue(t)+(e.getPropertyPriority(t)?" !important":"")}}}s.appendChild(c(l,t,o)),r.appendChild(s)}[":before",":after"].forEach(e=>{t(e)})}function s(){e instanceof HTMLTextAreaElement&&(r.innerHTML=e.value),e instanceof HTMLInputElement&&r.setAttribute("value",e.value)}function c(){r instanceof SVGElement&&(r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r instanceof SVGRectElement&&["width","height"].forEach(e=>{const t=r.getAttribute(e);t&&r.style.setProperty(e,t)}))}}(e,t))}function u(e){return n.impl.fontFaces.resolveAll().then(t=>{const n=document.createElement("style");return e.appendChild(n),n.appendChild(document.createTextNode(t)),e})}function h(e){return n.impl.images.inlineAll(e).then(()=>e)}return Object.assign(n.impl,{fontFaces:function(){return{resolveAll:function(){return e().then(e=>Promise.all(e.map(e=>e.resolve()))).then(e=>e.join("\n"))},impl:{readAll:e}};function e(){const e=n.impl.util;return Promise.resolve(e.asArray(document.styleSheets)).then(function(t){const n=[];return(Array.isArray(t)?t:e.asArray(t)).forEach(t=>{try{e.asArray(t.cssRules||[]).forEach(e=>{n.push(e)})}catch(e){console.log("Error while reading CSS rules from "+t.href,e.toString())}}),n}).then(function(e){const t=n.impl.inliner;return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>t.shouldProcess(e.style.getPropertyValue("src")))}).then(e=>e.map(t));function t(e){return{resolve(){const t=e.parentStyleSheet?.href;return n.impl.inliner.inlineAll(e.cssText,t)},src:()=>e.style.getPropertyValue("src")}}}}(),images:function(){return{inlineAll:function t(r){if(!(r instanceof Element))return Promise.resolve(r);const o=n.impl.util;return i(r).then(()=>r instanceof HTMLImageElement?e(r).inline():Promise.all(o.asArray(r.childNodes).map(e=>t(e))).then(()=>{}));function i(e){const t=e.style?.getPropertyValue("background");if(!t)return Promise.resolve(void 0);return n.impl.inliner.inlineAll(t).then(t=>{e.style.setProperty("background",t,e.style.getPropertyPriority("background"))}).then(()=>{})}},impl:{newImage:e}};function e(e){return{inline:function(t){const r=n.impl.util;return r.isDataUrl(e.src)?Promise.resolve():Promise.resolve(e.src).then(e=>(t||r.getAndEncode)(e)).then(t=>r.dataAsUrl(t,r.mimeType(e.src))).then(t=>new Promise((n,r)=>{e.onload=()=>{n()},e.onerror=()=>{r(new Error(`Failed to load image: ${e.src}`))},e.src=t}))}}}}(),util:function(){const e=3e4;return{escapeMain:function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},parseExtension:t,mimeType:function(e){const n=t(e).toLowerCase();return function(){const e="application/font-woff",t="image/jpeg";return{woff:e,woff2:e,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:t,jpeg:t,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}()[n]||""},dataAsUrl:function(e,t){return"data:"+t+";base64,"+e},isDataUrl:function(e){return-1!==e.search(/^(data:)/)},canvasToBlob:function(e){if(e.toBlob)return new Promise(t=>{e.toBlob(e=>{t(e)})});return function(e){return new Promise(t=>{const n=window.atob(e.toDataURL().split(",")[1]),r=n.length,o=new Uint8Array(r);for(let e=0;e<r;e++)o[e]=n.charCodeAt(e);t(new Blob([o],{type:"image/png"}))})}(e)},resolveUrl:function(e,t){const n=document.implementation.createHTMLDocument(),r=n.createElement("base");n.head.appendChild(r);const o=n.createElement("a");return n.body.appendChild(o),r.href=t,o.href=e,o.href},getAndEncode:function(t){n.impl.options.cacheBust&&(t+=(/\?/.test(t)?"&":"?")+(new Date).getTime());return new Promise(r=>{const o=new XMLHttpRequest;let i;if(o.onreadystatechange=l,o.ontimeout=s,o.responseType="blob",o.timeout=e,o.open("GET",t,!0),o.send(),n.impl.options.imagePlaceholder){const e=n.impl.options.imagePlaceholder.split(/,/);e&&e[1]&&(i=e[1])}function l(){if(4!==o.readyState)return;if(200!==o.status)return void(i?r(i):c("cannot fetch resource: "+t+", status: "+o.status));const e=new FileReader;e.onloadend=()=>{const t=e.result.split(/,/)[1];r(t)},e.readAsDataURL(o.response)}function s(){i?r(i):c("timeout of 30000ms occured while fetching resource: "+t)}function c(e){console.error(e),r("")}})},uid:function(){let e=0;return function(){return"u"+t()+e++;function t(){return("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4)}}}(),delay:function(e){return t=>new Promise(n=>{setTimeout(()=>{n(t)},e)})},asArray:function(e){const t=[],n=e.length;for(let r=0;r<n;r++)t.push(e[r]);return t},escapeXhtml:function(e){return e.replace(/#/g,"%23").replace(/\n/g,"%0A")},makeImage:function(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>{t(r)},r.onerror=()=>{n(new Error(`Failed to load image: ${e}`))},r.src=e})},width:function(e){const t=r(e,"border-left-width"),n=r(e,"border-right-width");return e.scrollWidth+t+n},height:function(e){const t=r(e,"border-top-width"),n=r(e,"border-bottom-width");return e.scrollHeight+t+n}};function t(e){const t=/\.([^\.\\/]*?)$/g.exec(e);return t?t[1]:""}function r(e,t){const n=window.getComputedStyle(e).getPropertyValue(t);return parseFloat(n.replace("px",""))}}(),inliner:function(){const e=/url\(['"]?([^'"]+?)['"]?\)/g,t=n.impl.util;return{inlineAll:function(e,t,n){return l()?Promise.resolve(e):Promise.resolve(e).then(()=>o(e)).then(r=>{let o=Promise.resolve(e);return r.forEach(e=>{o=o.then(r=>i(r,e,t,n))}),o});function l(){return!r(e)}},shouldProcess:r,impl:{readUrls:o,inline:i}};function r(t){return-1!==t.search(e)}function o(n){const r=[];let o;for(;null!==(o=e.exec(n));)r.push(o[1]);return r.filter(e=>!t.isDataUrl(e))}function i(e,n,r,o){return Promise.resolve(n).then(e=>r?t.resolveUrl(e,r):e).then(e=>(o||t.getAndEncode)(e)).then(e=>t.dataAsUrl(e,t.mimeType(n))).then(r=>e.replace(function(e){return new RegExp("(url\\(['\"]?)("+t.escapeMain(e)+")(['\"]?\\))","g")}(n),"$1"+r+"$3"))}}(),options:{}}),e.domtoimage=n,e.toBlob=l,e.toJpeg=i,e.toPixelData=s,e.toPng=o,e.toSvg=r,e}({});
|
|
2
|
+
//# sourceMappingURL=dom-screenshot.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-screenshot.min.js","sources":["../src/dom-screenshot.ts"],"sourcesContent":[null],"names":["defaultOptions","imagePlaceholder","undefined","cacheBust","domtoimage","toSvg","toPng","toJpeg","toBlob","toPixelData","impl","node","options","copyOptions","Promise","resolve","then","cloneNode","filter","embedFonts","inlineImages","clone","Element","bgcolor","style","backgroundColor","width","height","styleObj","Object","keys","forEach","property","util","setAttribute","XMLSerializer","serializeToString","xhtml","foreignObject","svg","encodeURIComponent","makeSvgDataUri","draw","canvas","toDataURL","quality","canvasToBlob","getContext","getImageData","data","domNode","svgUri","makeImage","image","delay","document","createElement","ctx","fillStyle","fillRect","newCanvas","drawImage","root","HTMLCanvasElement","original","children","childNodes","length","cloneChildrenInOrder","asArray","parent","done","child","childClone","appendChild","cloneChildren","originalClone","renderVideo","cloneStyle","clonePseudoElements","copyUserInput","fixSvg","HTMLVideoElement","dimensions","window","getComputedStyle","parseInt","ratio","Math","max","videoWidth","videoHeight","x","y","newImage","Image","src","err","parentClone","parentNode","replaceChild","copyStyle","source","target","copyProperties","name","setProperty","getPropertyValue","getPropertyPriority","cssText","clonePseudoElement","element","content","className","uid","styleElement","formatPseudoElementStyle","selector","formatCssText","formatCssProperties","createTextNode","map","formatProperty","join","HTMLTextAreaElement","innerHTML","value","HTMLInputElement","SVGElement","SVGRectElement","attribute","getAttribute","processClone","fontFaces","resolveAll","styleNode","images","inlineAll","assign","readAll","webFonts","all","webFont","cssStrings","styleSheets","cssRules","Array","isArray","sheet","rule","push","e","console","log","href","toString","inliner","type","CSSRule","FONT_FACE_RULE","shouldProcess","rules","newWebFont","webFontRule","baseUrl","parentStyleSheet","newFontFaces","inlineBackground","HTMLImageElement","inline","background","inlined","get","isDataUrl","getAndEncode","dataAsUrl","mimeType","dataUrl","reject","onload","onerror","Error","newImages","TIMEOUT","escapeMain","string","replace","parseExtension","url","extension","toLowerCase","WOFF","JPEG","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","mimes","search","blob","binaryString","atob","split","binaryArray","Uint8Array","i","charCodeAt","Blob","resolveUrl","doc","implementation","createHTMLDocument","base","head","a","body","test","Date","getTime","request","XMLHttpRequest","placeholder","onreadystatechange","ontimeout","timeout","responseType","open","send","readyState","status","fail","encoder","FileReader","onloadend","result","readAsDataURL","response","message","error","index","fourRandomChars","random","pow","slice","ms","arg","setTimeout","arrayLike","array","escapeXhtml","uri","leftBorder","px","rightBorder","scrollWidth","topBorder","bottomBorder","scrollHeight","match","exec","styleProperty","parseFloat","newUtil","URL_REGEX","nothingToInline","readUrls","urls","str","RegExp","urlAsRegex","newInliner"],"mappings":"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"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# dom-screenshot Examples
|
|
2
|
+
|
|
3
|
+
This directory contains example applications demonstrating how to use the `@mkhuda/dom-screenshot` library in real-world scenarios.
|
|
4
|
+
|
|
5
|
+
## Available Examples
|
|
6
|
+
|
|
7
|
+
### React App Example
|
|
8
|
+
|
|
9
|
+
A modern React application built with **Vite** and **React 18.3.1** that demonstrates:
|
|
10
|
+
|
|
11
|
+
- 📸 Capturing DOM elements as SVG, PNG, and JPEG
|
|
12
|
+
- 🎨 Beautiful, responsive UI with modern styling
|
|
13
|
+
- 💾 Automatic file download after capture
|
|
14
|
+
- 🔄 Live preview of captured screenshots
|
|
15
|
+
- ⚡ Fast development and build times with Vite
|
|
16
|
+
|
|
17
|
+
**Location:** `react-app/`
|
|
18
|
+
|
|
19
|
+
**Quick Start:**
|
|
20
|
+
```bash
|
|
21
|
+
cd react-app
|
|
22
|
+
npm install
|
|
23
|
+
npm run dev
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The app will open at `http://localhost:5173`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Features Demonstrated
|
|
31
|
+
|
|
32
|
+
### 1. SVG Capture
|
|
33
|
+
- Vector-based output
|
|
34
|
+
- Smallest file size
|
|
35
|
+
- Perfect for UI elements and icons
|
|
36
|
+
- Scalable without quality loss
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
const svg = await domtoimage.toSvg(element);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. PNG Capture
|
|
43
|
+
- High-quality raster image
|
|
44
|
+
- Lossless compression
|
|
45
|
+
- Best for complex designs with gradients
|
|
46
|
+
- Larger file size than JPEG
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
const png = await domtoimage.toPng(element);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. JPEG Capture
|
|
53
|
+
- Compressed raster image
|
|
54
|
+
- Smaller file size than PNG
|
|
55
|
+
- Good for photographs
|
|
56
|
+
- Lossy compression
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
const jpeg = await domtoimage.toJpeg(element);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Real-World Use Cases
|
|
65
|
+
|
|
66
|
+
The React example shows how to implement:
|
|
67
|
+
|
|
68
|
+
1. **Export Feature** - Let users download rendered content
|
|
69
|
+
2. **Report Generation** - Create visual reports from UI
|
|
70
|
+
3. **Screenshot Tool** - Build screenshot applications
|
|
71
|
+
4. **Social Media** - Generate shareable images
|
|
72
|
+
5. **Documentation** - Auto-generate visual documentation
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Project Structure
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
examples/
|
|
80
|
+
├── README.md (this file)
|
|
81
|
+
└── react-app/
|
|
82
|
+
├── src/
|
|
83
|
+
│ ├── App.tsx # Main app component
|
|
84
|
+
│ ├── App.css # Styling
|
|
85
|
+
│ ├── main.tsx # React entry
|
|
86
|
+
│ ├── index.css # Global styles
|
|
87
|
+
│ └── components/
|
|
88
|
+
│ ├── Card.tsx # Card component
|
|
89
|
+
│ └── ScreenshotButton.tsx # Button component
|
|
90
|
+
├── index.html # HTML entry point
|
|
91
|
+
├── vite.config.ts # Vite configuration
|
|
92
|
+
├── tsconfig.json # TypeScript config
|
|
93
|
+
├── package.json # Dependencies
|
|
94
|
+
└── README.md # Detailed docs
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Running from Root
|
|
100
|
+
|
|
101
|
+
From the root `dom-screenshot` directory:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Start the React example in development mode
|
|
105
|
+
npm run example:dev
|
|
106
|
+
|
|
107
|
+
# Build the React example
|
|
108
|
+
npm run example:build
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Technologies Used
|
|
114
|
+
|
|
115
|
+
- **React 18.3.1** - Latest React
|
|
116
|
+
- **Vite 7.2.2** - Lightning-fast build tool
|
|
117
|
+
- **TypeScript** - Type safety
|
|
118
|
+
- **CSS Grid & Flexbox** - Modern layouts
|
|
119
|
+
- **@mkhuda/dom-screenshot** - The star! ⭐
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Key Features to Try
|
|
124
|
+
|
|
125
|
+
1. **Multi-format Capture**
|
|
126
|
+
- Try capturing the same element in different formats
|
|
127
|
+
- Compare file sizes and quality
|
|
128
|
+
|
|
129
|
+
2. **Complex Elements**
|
|
130
|
+
- The example includes gradient backgrounds, shadows, and colors
|
|
131
|
+
- Shows that dom-screenshot preserves all CSS styling
|
|
132
|
+
|
|
133
|
+
3. **Batch Processing**
|
|
134
|
+
- Capture multiple times and see the preview gallery
|
|
135
|
+
- Download any captured screenshot
|
|
136
|
+
|
|
137
|
+
4. **Responsive Design**
|
|
138
|
+
- Try on different screen sizes
|
|
139
|
+
- The app is fully responsive
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Tips for Your Own Project
|
|
144
|
+
|
|
145
|
+
### 1. Error Handling
|
|
146
|
+
```tsx
|
|
147
|
+
try {
|
|
148
|
+
const svg = await domtoimage.toSvg(element);
|
|
149
|
+
// Use svg...
|
|
150
|
+
} catch (error) {
|
|
151
|
+
console.error('Capture failed:', error);
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 2. Performance
|
|
156
|
+
- For large elements, use SVG first (faster)
|
|
157
|
+
- Cache the element reference with `useRef`
|
|
158
|
+
- Provide loading feedback during capture
|
|
159
|
+
|
|
160
|
+
### 3. File Downloads
|
|
161
|
+
```tsx
|
|
162
|
+
const link = document.createElement('a');
|
|
163
|
+
link.href = dataUrl;
|
|
164
|
+
link.download = 'screenshot.png';
|
|
165
|
+
link.click();
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 4. Choose the Right Format
|
|
169
|
+
| Format | Best For | Size | Speed |
|
|
170
|
+
|--------|----------|------|-------|
|
|
171
|
+
| SVG | UI/Simple | Smallest | Fastest |
|
|
172
|
+
| PNG | General | Medium | Medium |
|
|
173
|
+
| JPEG | Photos | Smallest | Slow |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Troubleshooting
|
|
178
|
+
|
|
179
|
+
**Issue: Canvas-related errors in tests**
|
|
180
|
+
- SVG capture should work fine in jsdom
|
|
181
|
+
- PNG/JPEG may need browser environment
|
|
182
|
+
- Use try-catch blocks
|
|
183
|
+
|
|
184
|
+
**Issue: Styles not captured**
|
|
185
|
+
- Ensure all styles are inline or in `<style>` tags
|
|
186
|
+
- External stylesheets may not be included
|
|
187
|
+
- Use `window.getComputedStyle()` to debug
|
|
188
|
+
|
|
189
|
+
**Issue: Performance**
|
|
190
|
+
- Break large captures into sections
|
|
191
|
+
- Use SVG for UI elements
|
|
192
|
+
- Use PNG/JPEG for complex content
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Next Steps
|
|
197
|
+
|
|
198
|
+
1. **Customize** - Modify colors, layout, content
|
|
199
|
+
2. **Extend** - Add more capture formats
|
|
200
|
+
3. **Integrate** - Connect to your backend
|
|
201
|
+
4. **Deploy** - Deploy to production
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Questions?
|
|
206
|
+
|
|
207
|
+
Check the main `README.md` at the root for library documentation, or look at the React example's `README.md` for detailed instructions.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
**Happy screenshotting!** 📸
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# dom-screenshot React Example
|
|
2
|
+
|
|
3
|
+
A simple, real-world React application demonstrating how to use the `@mkhuda/dom-screenshot` library to capture DOM elements as SVG, PNG, or JPEG images.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 📸 **Multiple Format Support**: Capture as SVG, PNG, or JPEG
|
|
8
|
+
- 🎨 **Beautiful UI**: Modern, responsive design with Tailwind-inspired styling
|
|
9
|
+
- 💾 **Download Support**: Automatically download captured screenshots
|
|
10
|
+
- 🔄 **Live Preview**: See captured screenshots in real-time
|
|
11
|
+
- ⚡ **Fast**: Built with Vite for quick development and builds
|
|
12
|
+
|
|
13
|
+
## Project Structure
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
src/
|
|
17
|
+
├── App.tsx # Main application component
|
|
18
|
+
├── App.css # Main styles
|
|
19
|
+
├── main.tsx # React entry point
|
|
20
|
+
├── index.css # Global styles
|
|
21
|
+
└── components/
|
|
22
|
+
├── Card.tsx # Reusable card component
|
|
23
|
+
└── ScreenshotButton.tsx # Screenshot button with loading state
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
### Prerequisites
|
|
29
|
+
|
|
30
|
+
- Node.js 22.12.0 (pinned with Volta)
|
|
31
|
+
- npm or yarn
|
|
32
|
+
|
|
33
|
+
### Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# From the root dom-screenshot project
|
|
37
|
+
cd examples/react-app
|
|
38
|
+
|
|
39
|
+
# Install dependencies
|
|
40
|
+
npm install
|
|
41
|
+
|
|
42
|
+
# For development, you may need to link the local library
|
|
43
|
+
npm link ../../
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Development
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Start development server
|
|
50
|
+
npm run dev
|
|
51
|
+
|
|
52
|
+
# The app will open at http://localhost:5173
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Build
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Build for production
|
|
59
|
+
npm run build
|
|
60
|
+
|
|
61
|
+
# Preview production build
|
|
62
|
+
npm run preview
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Usage
|
|
66
|
+
|
|
67
|
+
The application demonstrates three main capturing modes:
|
|
68
|
+
|
|
69
|
+
### SVG Capture
|
|
70
|
+
```tsx
|
|
71
|
+
const svg = await domtoimage.toSvg(element);
|
|
72
|
+
// Creates a vector-based screenshot (scalable, smaller file size)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### PNG Capture
|
|
76
|
+
```tsx
|
|
77
|
+
const png = await domtoimage.toPng(element);
|
|
78
|
+
// Creates a raster PNG image (good quality, larger file size)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### JPEG Capture
|
|
82
|
+
```tsx
|
|
83
|
+
const jpeg = await domtoimage.toJpeg(element);
|
|
84
|
+
// Creates a compressed JPEG image (smaller file size, lossy compression)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Real-World Use Cases
|
|
88
|
+
|
|
89
|
+
This example demonstrates how to use dom-screenshot in:
|
|
90
|
+
|
|
91
|
+
1. **Screenshot Tools**: Capture UI elements for sharing
|
|
92
|
+
2. **Report Generation**: Generate visual reports from React components
|
|
93
|
+
3. **Export Features**: Let users download rendered content as images
|
|
94
|
+
4. **Documentation**: Automatically create screenshots for documentation
|
|
95
|
+
5. **Social Media**: Generate share-ready images from web content
|
|
96
|
+
|
|
97
|
+
## Components
|
|
98
|
+
|
|
99
|
+
### App Component
|
|
100
|
+
- Main container that manages screenshot state
|
|
101
|
+
- Handles all three capture methods
|
|
102
|
+
- Manages preview gallery
|
|
103
|
+
- Download functionality
|
|
104
|
+
|
|
105
|
+
### Card Component
|
|
106
|
+
- Example component to capture
|
|
107
|
+
- Multiple instances to show complex DOM handling
|
|
108
|
+
- Color-coded with styled borders
|
|
109
|
+
|
|
110
|
+
### ScreenshotButton Component
|
|
111
|
+
- Reusable button for capture actions
|
|
112
|
+
- Shows loading state during capture
|
|
113
|
+
- Error handling built-in
|
|
114
|
+
|
|
115
|
+
## Technologies
|
|
116
|
+
|
|
117
|
+
- **React 18.3.1**: Latest React for UI
|
|
118
|
+
- **Vite 7.2.2**: Lightning-fast build tool
|
|
119
|
+
- **TypeScript**: Type-safe development
|
|
120
|
+
- **CSS**: Modern CSS Grid and Flexbox layouts
|
|
121
|
+
- **dom-screenshot**: The star of the show! 🌟
|
|
122
|
+
|
|
123
|
+
## Tips
|
|
124
|
+
|
|
125
|
+
1. **Complex Elements**: The library can capture nested elements, flexbox layouts, gradients, and more
|
|
126
|
+
2. **Performance**: For large DOM elements, SVG is usually faster than PNG/JPEG
|
|
127
|
+
3. **Styling**: All CSS styles (colors, fonts, shadows) are preserved in the output
|
|
128
|
+
4. **Error Handling**: Always wrap capture calls in try-catch blocks
|
|
129
|
+
|
|
130
|
+
## Troubleshooting
|
|
131
|
+
|
|
132
|
+
**Canvas-related Errors**: Some capture modes require canvas support. Use `try-catch` blocks.
|
|
133
|
+
|
|
134
|
+
**File Size**:
|
|
135
|
+
- SVG: Smallest but may have resolution issues on complex designs
|
|
136
|
+
- PNG: Larger but best quality for most use cases
|
|
137
|
+
- JPEG: Compressed, good for photos and complex gradients
|
|
138
|
+
|
|
139
|
+
**Performance**:
|
|
140
|
+
- Use SVG for simple UI elements
|
|
141
|
+
- Use PNG for general purpose screenshots
|
|
142
|
+
- Use JPEG for image-heavy content
|
|
143
|
+
|
|
144
|
+
## Next Steps
|
|
145
|
+
|
|
146
|
+
To extend this example:
|
|
147
|
+
|
|
148
|
+
1. Add different capture regions
|
|
149
|
+
2. Implement screenshot history
|
|
150
|
+
3. Add filters or modifications
|
|
151
|
+
4. Generate multiple formats at once
|
|
152
|
+
5. Integrate with cloud storage
|
|
153
|
+
6. Add annotation tools
|
|
154
|
+
|
|
155
|
+
## License
|
|
156
|
+
|
|
157
|
+
MIT - Same as the main dom-screenshot package
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
Happy screenshotting! 📸
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>dom-screenshot React Example</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="root"></div>
|
|
10
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hash": "4cab1632",
|
|
3
|
+
"configHash": "766bba4a",
|
|
4
|
+
"lockfileHash": "c7df036d",
|
|
5
|
+
"browserHash": "04a26ccd",
|
|
6
|
+
"optimized": {
|
|
7
|
+
"react": {
|
|
8
|
+
"src": "../../../../../node_modules/react/index.js",
|
|
9
|
+
"file": "react.js",
|
|
10
|
+
"fileHash": "f9106c88",
|
|
11
|
+
"needsInterop": true
|
|
12
|
+
},
|
|
13
|
+
"react-dom": {
|
|
14
|
+
"src": "../../../../../node_modules/react-dom/index.js",
|
|
15
|
+
"file": "react-dom.js",
|
|
16
|
+
"fileHash": "7dce797d",
|
|
17
|
+
"needsInterop": true
|
|
18
|
+
},
|
|
19
|
+
"react/jsx-dev-runtime": {
|
|
20
|
+
"src": "../../../../../node_modules/react/jsx-dev-runtime.js",
|
|
21
|
+
"file": "react_jsx-dev-runtime.js",
|
|
22
|
+
"fileHash": "5be0090f",
|
|
23
|
+
"needsInterop": true
|
|
24
|
+
},
|
|
25
|
+
"react/jsx-runtime": {
|
|
26
|
+
"src": "../../../../../node_modules/react/jsx-runtime.js",
|
|
27
|
+
"file": "react_jsx-runtime.js",
|
|
28
|
+
"fileHash": "225e0453",
|
|
29
|
+
"needsInterop": true
|
|
30
|
+
},
|
|
31
|
+
"react-dom/client": {
|
|
32
|
+
"src": "../../../../../node_modules/react-dom/client.js",
|
|
33
|
+
"file": "react-dom_client.js",
|
|
34
|
+
"fileHash": "d81281f2",
|
|
35
|
+
"needsInterop": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"chunks": {
|
|
39
|
+
"chunk-VSODSHUF": {
|
|
40
|
+
"file": "chunk-VSODSHUF.js"
|
|
41
|
+
},
|
|
42
|
+
"chunk-FK77NBP6": {
|
|
43
|
+
"file": "chunk-FK77NBP6.js"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|