{"_id":"@figit/dom-to-figma","_rev":"8-9f842448c9984215ac62ca71097f7fd3","name":"@figit/dom-to-figma","dist-tags":{"latest":"0.2.4"},"versions":{"0.0.1":{"name":"@figit/dom-to-figma","version":"0.0.1","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.0.1","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"ee4239e0075f96bbc34b6ef69714fa3adeb501c8","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.0.1.tgz","fileCount":7,"integrity":"sha512-2HhH1YRVet8fqbikF4UgeZqFBJt9wqk8WDbkaOgfERiYu8eWNQvZIRxG6I0prHDGWNB4HU5o9o6JWicrXHgASQ==","signatures":[{"sig":"MEQCIHPXPKjgMkpl8PJ0kbOolVtHCtDx9criQi6AeiLnVfr+AiAPVDBSLEYvl7pwtxw+kzoXs4l+vnG9mN107RmZDEMvtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513327},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.0.1.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit"},"_npmUser":{"name":"stefanofa","email":"stefanofaieta@outlook.it"},"_resolved":"/private/var/folders/wl/slrp507s2q94c80b_g3tdzqw0000gn/T/34a4bc4a4158741822eeaa7290ce8ce1/figit-dom-to-figma-0.0.1.tgz","_integrity":"sha512-2HhH1YRVet8fqbikF4UgeZqFBJt9wqk8WDbkaOgfERiYu8eWNQvZIRxG6I0prHDGWNB4HU5o9o6JWicrXHgASQ==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.6.2","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser":"^4.1.5","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.0.1_1779191201540_0.03844260933380017","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@figit/dom-to-figma","version":"0.0.2","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.0.2","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"81bfafc4b6b282f90e6faf2c2fd92ad83e611d5b","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.0.2.tgz","fileCount":7,"integrity":"sha512-73zoqjUY/kcdIR54i4n+vY6Zk9UFrjJUFLROcMRIf7IZ4XGJu8mgq3pEgdpP23q7bxJ2iE7PRYyFBewRVxrC/Q==","signatures":[{"sig":"MEUCIFxSfebgobwQiuGOr5LVk1WlPOwfSPLzTnYFO0tyy9G1AiEAkCFAEpYkBl++Q5FZb5uoRuaMcHPNDgYdVZtUMqv136M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":513011},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.0.2.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/02c0c3b13bd27b82d5a8da8ebeebebb5/figit-dom-to-figma-0.0.2.tgz","_integrity":"sha512-73zoqjUY/kcdIR54i4n+vY6Zk9UFrjJUFLROcMRIf7IZ4XGJu8mgq3pEgdpP23q7bxJ2iE7PRYyFBewRVxrC/Q==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.12.1","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.0.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.0.2_1779352563124_0.33394930180233207","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@figit/dom-to-figma","version":"0.1.0","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.1.0","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"96b21488b8259774cd65886b1e7ecff76dc98a69","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.1.0.tgz","fileCount":7,"integrity":"sha512-HRK7Kh3QXl/l5sXdNynUnXGhvmJnYVaqkq6pU03gX8abevul/fFo+7vfvlwz+6l5tWd5bLI1CrwiUVcsWIWbpg==","signatures":[{"sig":"MEQCIDOyTFCFFHZO2LEMfrdILR+TqVwHIOeHmc+w9Dk+PXb+AiAT4KaVduapIm4OIzRI+fwToGnQwa2Ko1nFp9ktouGfBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":602201},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.1.0.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/520ce928459ef7ea455cf9d8f9a42593/figit-dom-to-figma-0.1.0.tgz","_integrity":"sha512-HRK7Kh3QXl/l5sXdNynUnXGhvmJnYVaqkq6pU03gX8abevul/fFo+7vfvlwz+6l5tWd5bLI1CrwiUVcsWIWbpg==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.16.0","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.1.0_1783748850880_0.669175914204684","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@figit/dom-to-figma","version":"0.2.0","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.2.0","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"83d166b9034ebd7d0b6369d1eb319db5554013e1","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.2.0.tgz","fileCount":7,"integrity":"sha512-AMyT3H0h3g8e3GJJh3jKbzOEzzlfGm/nZibWV4A9/jukk9fYunkG9SQCdLNrLwTMjVPhH7UdKSQWJLRN+11rPQ==","signatures":[{"sig":"MEUCIEKQkhkEC/LRjwhXX9GCfJ7T5NYNanfZzqnuMYuYcP/SAiEAttEUheOrMtoG29XK1CZU6e40ByDN2DbH8aJOTH5cCp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":629788},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.2.0.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/038cf20b12eadbbd295a09731e9c8234/figit-dom-to-figma-0.2.0.tgz","_integrity":"sha512-AMyT3H0h3g8e3GJJh3jKbzOEzzlfGm/nZibWV4A9/jukk9fYunkG9SQCdLNrLwTMjVPhH7UdKSQWJLRN+11rPQ==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.16.0","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.2.0_1784712446861_0.29822505158518253","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@figit/dom-to-figma","version":"0.2.1","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.2.1","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"364d5db28555c22fb8b0e12f9320f967a2053aaf","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.2.1.tgz","fileCount":7,"integrity":"sha512-DyUXpD7OFGplyH0rU3aCxn8QddvlDiURGX045y5MTLfISJqwalryWuM3VLDC53pxSDGsfNpV2FevGeRu4bkoOw==","signatures":[{"sig":"MEYCIQDNBp4e+Rg8ukVmzrBDPL1NWjIyPEPkiYwWT7On2KZY8gIhAKaYJAxDRgCqkY3sA21cTS7DFAtEycbE90CL3N3dL3eL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":673858},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.2.1.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/9aaa25cf861884c77bae661f7d4f8b9c/figit-dom-to-figma-0.2.1.tgz","_integrity":"sha512-DyUXpD7OFGplyH0rU3aCxn8QddvlDiURGX045y5MTLfISJqwalryWuM3VLDC53pxSDGsfNpV2FevGeRu4bkoOw==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.16.0","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.2.1_1784798982200_0.009838311412940559","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@figit/dom-to-figma","version":"0.2.2","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.2.2","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"d55ffa6b396efed3aa3ad7b133ee99fccdbf91a9","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.2.2.tgz","fileCount":7,"integrity":"sha512-q76+3k2FmhT5Bo9+b8gkdP49X01UuQPongDX1sXrCUzrgHBzAfx3s76CgERnGC8fi0i2X2lj10ADl588RT3mtg==","signatures":[{"sig":"MEYCIQCN0ZMoTsHVgxjt1Q6InctQ5Yi8Ay+Ofj9HOYN8bupQGAIhAPNInmwk8jq7yezTWhKK9W2u9lYwBMNV8ep2ZtyFxIoZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697385},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.2.2.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/51d44f2a6d3cd91d03e9aafe63da412a/figit-dom-to-figma-0.2.2.tgz","_integrity":"sha512-q76+3k2FmhT5Bo9+b8gkdP49X01UuQPongDX1sXrCUzrgHBzAfx3s76CgERnGC8fi0i2X2lj10ADl588RT3mtg==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.16.0","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.2.2_1785949424723_0.44835565667301336","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@figit/dom-to-figma","version":"0.2.3","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","_id":"@figit/dom-to-figma@0.2.3","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"homepage":"https://github.com/figitdesign/web-to-figma#readme","bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"dist":{"shasum":"cfc7006f66b5bcdb14dc84bab86af3ff22fddfe4","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.2.3.tgz","fileCount":7,"integrity":"sha512-BmLLdE7dHkdE8J+QINCNYctw/pKF2T2MSxFrhlAjKzD++RFT7Vkq4HOopfyibex2SFvjF3N/qE3cRqtTbp6TNQ==","signatures":[{"sig":"MEQCIDiEGBM/TDZITLTZAg3A0lNbiFzU/ULU16GybH3+5RcoAiB+0d3eI9P8MssLuDwqhX46TzVrbFWzacQ8ey58P+gqjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":791805},"main":"./dist/figma.mjs","type":"module","_from":"file:figit-dom-to-figma-0.2.3.tgz","types":"./dist/figma.d.mts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"biome check","test":"vitest run --passWithNoTests","build":"tsdown","test:watch":"vitest","check-types":"tsc --noEmit","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"_resolved":"/tmp/d4e0094debc97ac4c8b57bc4c4dd9db9/figit-dom-to-figma-0.2.3.tgz","_integrity":"sha512-BmLLdE7dHkdE8J+QINCNYctw/pKF2T2MSxFrhlAjKzD++RFT7Vkq4HOopfyibex2SFvjF3N/qE3cRqtTbp6TNQ==","repository":{"url":"git+https://github.com/figitdesign/web-to-figma.git","type":"git","directory":"packages/dom-to-figma"},"_npmVersion":"11.17.0","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"fontkit":"^2.0.4","colorjs.io":"^0.6.1","@figit/fig-kiwi":"0.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsdown":"^0.21.0","vitest":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","typescript":"6.0.3","@types/node":"^25.6.0","@types/fontkit":"^2.0.9","@vitest/browser-playwright":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dom-to-figma_0.2.3_1787388761424_0.8651097757173949","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@figit/dom-to-figma","version":"0.2.4","description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","license":"MIT","author":{"name":"Figit","email":"https://figit.design"},"homepage":"https://github.com/figitdesign/web-to-figma#readme","repository":{"type":"git","url":"git+https://github.com/figitdesign/web-to-figma.git","directory":"packages/dom-to-figma"},"bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"type":"module","sideEffects":false,"engines":{"node":">=20"},"publishConfig":{"access":"public","provenance":true},"exports":{".":{"types":"./dist/figma.d.mts","import":"./dist/figma.mjs"}},"main":"./dist/figma.mjs","types":"./dist/figma.d.mts","dependencies":{"colorjs.io":"^0.6.1","fontkit":"^2.0.4","@figit/fig-kiwi":"0.2.0"},"devDependencies":{"@types/fontkit":"^2.0.9","@types/node":"^25.6.0","@vitest/browser-playwright":"^4.1.5","happy-dom":"^20.9.0","playwright":"^1.50.0","tsdown":"^0.21.0","tsx":"^4.19.2","typescript":"6.0.3","vitest":"^4.1.5"},"scripts":{"build":"tsdown","dev":"tsdown --watch","test":"vitest run --passWithNoTests","test:watch":"vitest","check-types":"tsc --noEmit","lint":"biome check","oracle:outbox":"tsx ./scripts/oracle-outbox.ts"},"_id":"@figit/dom-to-figma@0.2.4","_integrity":"sha512-GAc82UfGueG1xY8m7S7cCrptQWo9m1kx543TpmYbRKD/0VwqCzHFpfvYW1UqLwYfVNidR7793aaCOJgjZi0+sA==","_resolved":"/tmp/14ae9a144a937f95b149b9c924c36adf/figit-dom-to-figma-0.2.4.tgz","_from":"file:figit-dom-to-figma-0.2.4.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-GAc82UfGueG1xY8m7S7cCrptQWo9m1kx543TpmYbRKD/0VwqCzHFpfvYW1UqLwYfVNidR7793aaCOJgjZi0+sA==","shasum":"f4040360f4bf4f2adf8e364388d915cfaab24eed","tarball":"https://registry.npmjs.org/@figit/dom-to-figma/-/dom-to-figma-0.2.4.tgz","fileCount":7,"unpackedSize":790984,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@figit%2fdom-to-figma@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBlnudAWFxOxDLPfbCCzigD7u7AavhUNm8/+WdkCzZFnAiB5Ylq9PkpO+J/1wMOZZ28sHjSBjIR/dcreutxHiyxnsQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6356e2c5-4262-440d-baba-f708e8e6b10b"}},"directories":{},"maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dom-to-figma_0.2.4_1787404096787_0.664197085221202"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T11:46:41.441Z","modified":"2026-08-22T13:08:17.243Z","0.0.1":"2026-05-19T11:46:41.725Z","0.0.2":"2026-05-21T08:36:03.268Z","0.1.0":"2026-07-11T05:47:31.033Z","0.2.0":"2026-07-22T09:27:27.033Z","0.2.1":"2026-07-23T09:29:42.371Z","0.2.2":"2026-08-05T17:03:44.907Z","0.2.3":"2026-08-22T08:52:41.580Z","0.2.4":"2026-08-22T13:08:16.942Z"},"bugs":{"url":"https://github.com/figitdesign/web-to-figma/issues"},"author":{"name":"Figit","email":"https://figit.design"},"license":"MIT","homepage":"https://github.com/figitdesign/web-to-figma#readme","keywords":["figma","dom","html-to-figma","dom-to-figma","design-tools","clipboard","converter","browser"],"repository":{"type":"git","url":"git+https://github.com/figitdesign/web-to-figma.git","directory":"packages/dom-to-figma"},"description":"Convert any DOM tree to a Figma clipboard payload, in the browser.","maintainers":[{"name":"stefanofa","email":"stefanofaieta@outlook.it"}],"readme":"# @figit/dom-to-figma\n\nConvert any DOM tree to a Figma clipboard payload, in the browser.\n\n```ts\nimport { createFigmaConverter } from \"@figit/dom-to-figma\";\n\nconst figma = createFigmaConverter();\n\nconst result = await figma.convert({\n  element: document.getElementById(\"design\"),\n  width: 1280,\n  height: 800,\n  name: \"Hero\",\n});\n\nawait navigator.clipboard.write([result.toClipboardItem()]);\n```\n\nPaste in Figma. Done.\n\n## Install\n\n```sh\npnpm add @figit/dom-to-figma\n```\n\n## What it does\n\nWalks a real DOM tree, reads computed styles, and produces what Figma reads on paste. Text becomes editable text; images, vectors, gradients, shadows, borders, and form placeholders all carry over.\n\nUsed in production by Sleek to copy designs straight from the browser into Figma.\n\n## Layout\n\nBy default the converter infers **native Figma auto-layout**: flex containers, plain block flow, wrapping rows, and grids become real stacks (`stackMode`, spacing, padding, hug/fill/stretch sizing), and absolutely positioned children ride along as absolute-positioned layers. Inference is per-container and verified against the browser's measured geometry — any container it can't reproduce exactly falls back to absolute positioning, so the result is never worse than a fixed-position paste.\n\n```ts\nconst figma = createFigmaConverter(); // layout: \"auto\" (default)\n```\n\nPass `layout: \"absolute\"` to disable inference and position every frame absolutely (the pre-1.0 behavior):\n\n```ts\nconst figma = createFigmaConverter({ layout: \"absolute\" });\n```\n\n## Multi-frame canvas\n\nPass `frames` instead of a single `element` to copy several DOM trees onto one Figma canvas:\n\n```ts\nconst result = await figma.convert({\n  frames: [\n    { element: a, width: 800, height: 600, x: 0,   y: 0, name: \"Hero\" },\n    { element: b, width: 800, height: 600, x: 900, y: 0, name: \"Pricing\" },\n  ],\n  canvasName: \"Landing\",\n});\n\nawait navigator.clipboard.write([result.toClipboardItem()]);\n```\n\n## Result shape\n\n```ts\ntype ConvertResult = {\n  document: FigmaClipboard;          // raw node-change document\n  bytes: Uint8Array;                 // encoded .fig-style binary\n  base64: string;                    // base64 of bytes\n  toClipboardItem(): ClipboardItem;  // ready for navigator.clipboard.write\n  toClipboardHtml(): string;         // raw HTML envelope Figma reads on paste\n};\n```\n\n## Trace mode\n\nPass `trace: true` to also get a map from every emitted Figma node back to the DOM element it came from. It is off by default, adds no cost when disabled, and never changes the payload bytes — it exists for tooling (visual diffing, debugging) rather than production copies.\n\n```ts\nconst figma = createFigmaConverter({ trace: true });\nconst result = await figma.convert({ element, width: 1280, height: 800 });\n\nfor (const entry of result.trace.entries) {\n  // entry.guid    → the emitted node's Figma GUID\n  // entry.domPath → \":scope > div:nth-child(2) > p:nth-child(1)\"\n  // entry.rect    → source rect (getBoundingClientRect) at convert time\n  // entry.kind / entry.tag / entry.text\n}\n```\n\n`domPath` resolves the source element with `root.querySelector(domPath)` (the root element is `:scope`). Text nodes carry their owner element's path plus a `::text[i]` suffix, and each wrapped line segment of one text node shares that path. `result.trace` is `undefined` unless the converter was created with `{ trace: true }`.\n\n## Customizing loaders\n\nThe converter takes three optional hooks:\n\n```ts\nconst figma = createFigmaConverter({\n  fontLoader,   // (props) => Promise<FontFile>\n  imageLoader,  // (req) => Promise<ImageFile>\n  classify,     // (element, defaultKind) => ElementKind\n});\n```\n\nRepeated `convert()` calls on the same converter reuse cached fonts and images. Call `figma.clearCache()` to drop them.\n\n### Fonts\n\nDefault: `createFontsourceLoader()` pulls fonts from fontsource via jsDelivr's CDN. Covers all Google Fonts plus other open-source families. No API key required.\n\n```ts\nimport { createFontsourceLoader } from \"@figit/dom-to-figma\";\n\nconst figma = createFigmaConverter({\n  fontLoader: createFontsourceLoader({ subset: \"latin-ext\" }),\n});\n```\n\nFor non-fontsource fonts, write your own loader:\n\n```ts\nimport type { FontLoader } from \"@figit/dom-to-figma\";\n\nconst myFontLoader: FontLoader = async ({ family, weight, italic }) => {\n  const url = await myFontCDN(family, weight, italic);\n  const response = await fetch(url);\n  return { bytes: await response.arrayBuffer() };\n};\n```\n\n### Images\n\nDefault: `createDirectImageLoader()` does a direct `fetch(src)`. Cross-origin images without CORS need a custom loader, typically a proxy chain:\n\n```ts\nimport type { ImageLoader } from \"@figit/dom-to-figma\";\n\nconst myImageLoader: ImageLoader = async ({ src }) => {\n  const url = `https://my-proxy.example/?url=${encodeURIComponent(src)}`;\n  const response = await fetch(url);\n  const blob = await response.blob();\n  return {\n    bytes: await blob.arrayBuffer(),\n    mimeType: blob.type,\n  };\n};\n```\n\nThe package re-encodes WebP/AVIF/etc. to PNG internally, so the loader only needs to return raw bytes and a mime type.\n\n### Classification\n\n`classify` lets you override how DOM elements map to Figma node kinds. The default classifier returns `text`, `image`, `vector`, `frame`, `group`, `form-with-placeholder`, or `skip`:\n\n```ts\nimport type { Classify } from \"@figit/dom-to-figma\";\n\nconst classify: Classify = (element, defaultKind) => {\n  if (element.dataset.role === \"text-wrapper\") {\n    return \"text\";\n  }\n  return defaultKind;\n};\n```\n\n## Runtime requirements\n\nRuns in any modern browser. Depends on `window.getComputedStyle`, `Blob`, `ClipboardItem`, `document.createElement`, `crypto.subtle.digest`, `Image`, and `<canvas>`.\n\n## Disclaimer\n\nNot affiliated with or endorsed by Figma.\n","readmeFilename":"README.md"}