{"_id":"@alexgyver/vector-canvas","_rev":"4-c5b5bf0fd8dad7506216267dd1b797f5","name":"@alexgyver/vector-canvas","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@alexgyver/vector-canvas","version":"1.0.0","author":{"name":"AlexGyver","email":"alex@alexgyver.ru"},"_id":"@alexgyver/vector-canvas@1.0.0","maintainers":[{"name":"gyver","email":"alex@alexgyver.ru"}],"homepage":"https://github.com/GyverLibs/VectorCanvas.js#readme","bugs":{"url":"https://github.com/GyverLibs/VectorCanvas.js/issues"},"dist":{"shasum":"fdb33f7f5bb658148251a28bd658fd9308b42f28","tarball":"https://registry.npmjs.org/@alexgyver/vector-canvas/-/vector-canvas-1.0.0.tgz","fileCount":4,"integrity":"sha512-XH5h/0LleVeb1yxf4WaYczwLkw1Bc9O4IuQJiEy3ayT+Cm2QvWTllORZPEg4b1dGAnCNcByMPEScwC3g8gLu/g==","signatures":[{"sig":"MEYCIQCW8a2y3yq/GBcxNdqpo1bySEnOF9fELHH0q6J0vUmoEAIhAPcXJSywNoC3u8jC0xlPb0pNtJVX6m6n2o2rFoCjY1n7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31074},"main":"./VectorCanvas.js","type":"module","module":"./VectorCanvas.js","gitHead":"cacc3cc788fb1bc90b8c306bcc0318df2b657d3b","scripts":{"dev":"webpack serve --config ./webpack.dev.config.cjs","build":"webpack --config ./webpack.config.cjs"},"_npmUser":{"name":"gyver","email":"alex@alexgyver.ru"},"repository":{"url":"git+https://github.com/GyverLibs/VectorCanvas.js.git","type":"git"},"_npmVersion":"11.7.0","description":"Vector drawing canvas for export to Canvas, SVG and DXF","directories":{},"_nodeVersion":"22.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.107.2","css-loader":"^7.1.4","webpack-cli":"^7.0.3","style-loader":"^4.0.0","webpack-dev-server":"^5.2.5"},"_npmOperationalInternal":{"tmp":"tmp/vector-canvas_1.0.0_1781605360943_0.19372584822002992","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alexgyver/vector-canvas","version":"1.0.1","author":{"name":"AlexGyver","email":"alex@alexgyver.ru"},"_id":"@alexgyver/vector-canvas@1.0.1","maintainers":[{"name":"gyver","email":"alex@alexgyver.ru"}],"homepage":"https://github.com/GyverLibs/VectorCanvas.js#readme","bugs":{"url":"https://github.com/GyverLibs/VectorCanvas.js/issues"},"dist":{"shasum":"bd007db5799ea7d58fd15cf8e5d3f8f79f38b242","tarball":"https://registry.npmjs.org/@alexgyver/vector-canvas/-/vector-canvas-1.0.1.tgz","fileCount":6,"integrity":"sha512-5CrW3n9sbQOSDUtXSZEBe39Pn4EfTkIjVrHDbP9fwD9Oud2D3c4aFeqWMN4BTG3kPJJ9hAUX/3mqsSQH2jLMIQ==","signatures":[{"sig":"MEQCIGBvzuJYSqTgIJX7lvfmY8fByasq2sjUl4ivHvYDkXsCAiAUGl38iyJngZ+6GazTE8N9IuMMgncKRWZIPCoP+lHy5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32226},"main":"./VectorCanvas.js","type":"module","module":"./VectorCanvas.js","gitHead":"129ef033853eb803a77b5f974ddbbe4bf0ce7d3c","scripts":{"dev":"webpack serve --config ./webpack.dev.config.cjs","build":"webpack --config ./webpack.config.cjs"},"_npmUser":{"name":"gyver","email":"alex@alexgyver.ru"},"repository":{"url":"git+https://github.com/GyverLibs/VectorCanvas.js.git","type":"git"},"_npmVersion":"11.7.0","description":"Vector drawing canvas for export to Canvas, SVG and DXF","directories":{},"_nodeVersion":"22.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.107.2","css-loader":"^7.1.4","webpack-cli":"^7.0.3","style-loader":"^4.0.0","webpack-dev-server":"^5.2.5"},"_npmOperationalInternal":{"tmp":"tmp/vector-canvas_1.0.1_1781605516904_0.6170398898060607","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alexgyver/vector-canvas","version":"1.0.2","author":{"name":"AlexGyver","email":"alex@alexgyver.ru"},"_id":"@alexgyver/vector-canvas@1.0.2","maintainers":[{"name":"gyver","email":"alex@alexgyver.ru"}],"homepage":"https://github.com/GyverLibs/VectorCanvas.js#readme","bugs":{"url":"https://github.com/GyverLibs/VectorCanvas.js/issues"},"dist":{"shasum":"4fe878cebc98429a9fd407e4f905b53fbffdd843","tarball":"https://registry.npmjs.org/@alexgyver/vector-canvas/-/vector-canvas-1.0.2.tgz","fileCount":6,"integrity":"sha512-QE2ifQjiTLEgney29dcl1nwCmJX2eOHuqzgOzoptJkhlxV41GhlPG2UAwjVUu5DPXb503Mi+CPJJEMiRGHN/Lg==","signatures":[{"sig":"MEQCIDYfWUcufx3FhPX1RskyWrD+TaMQslwf4AXr/AesLxnpAiBdP+/ssgACymHOPUq9jo3Pwq2p3p2syhEPfcvCXe5NwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31687},"main":"./VectorCanvas.js","type":"module","module":"./VectorCanvas.js","gitHead":"129ef033853eb803a77b5f974ddbbe4bf0ce7d3c","scripts":{"dev":"webpack serve --config ./webpack.dev.config.cjs","build":"webpack --config ./webpack.config.cjs"},"_npmUser":{"name":"gyver","email":"alex@alexgyver.ru"},"repository":{"url":"git+https://github.com/GyverLibs/VectorCanvas.js.git","type":"git"},"_npmVersion":"11.7.0","description":"Vector drawing canvas for export to Canvas, SVG and DXF","directories":{},"_nodeVersion":"22.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.107.2","css-loader":"^7.1.4","webpack-cli":"^7.0.3","style-loader":"^4.0.0","webpack-dev-server":"^5.2.5"},"_npmOperationalInternal":{"tmp":"tmp/vector-canvas_1.0.2_1781634503279_0.48241130661797493","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alexgyver/vector-canvas","version":"1.0.3","description":"Vector drawing canvas for export to Canvas, SVG and DXF","type":"module","main":"./VectorCanvas.js","module":"./VectorCanvas.js","repository":{"type":"git","url":"git+https://github.com/GyverLibs/VectorCanvas.js.git"},"author":{"name":"AlexGyver","email":"alex@alexgyver.ru"},"scripts":{"build":"webpack --config ./webpack.config.cjs","dev":"webpack serve --config ./webpack.dev.config.cjs"},"devDependencies":{"webpack":"^5.107.2","webpack-cli":"^7.0.3","webpack-dev-server":"^5.2.5","style-loader":"^4.0.0","css-loader":"^7.1.4"},"dependencies":{},"gitHead":"129ef033853eb803a77b5f974ddbbe4bf0ce7d3c","_id":"@alexgyver/vector-canvas@1.0.3","bugs":{"url":"https://github.com/GyverLibs/VectorCanvas.js/issues"},"homepage":"https://github.com/GyverLibs/VectorCanvas.js#readme","_nodeVersion":"22.19.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-6gozDzrtuwNgIbNIB5K0WhCFXtIzLeBqzRfC5WSW3WREtLdtFSfcy7FR7lIrOgZZVn93UK34nCNj6TLmJ4BBSA==","shasum":"f2ca1d97b9a4b2ee179a7646492bf558b5bc4c65","tarball":"https://registry.npmjs.org/@alexgyver/vector-canvas/-/vector-canvas-1.0.3.tgz","fileCount":6,"unpackedSize":33695,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCFVrnYHtKiHmEKIK/kh0OoG05F6tICLiF44jgDkazhxQIgYeWIBhDz9sVh3r/AKGMvzQFO2/5GDgKy5GwNny0yjmQ="}]},"_npmUser":{"name":"gyver","email":"alex@alexgyver.ru"},"directories":{},"maintainers":[{"name":"gyver","email":"alex@alexgyver.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vector-canvas_1.0.3_1781637069422_0.19508673887481565"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T10:22:40.706Z","modified":"2026-06-16T19:11:09.744Z","1.0.0":"2026-06-16T10:22:41.087Z","1.0.1":"2026-06-16T10:25:17.024Z","1.0.2":"2026-06-16T18:28:23.446Z","1.0.3":"2026-06-16T19:11:09.609Z"},"bugs":{"url":"https://github.com/GyverLibs/VectorCanvas.js/issues"},"author":{"name":"AlexGyver","email":"alex@alexgyver.ru"},"homepage":"https://github.com/GyverLibs/VectorCanvas.js#readme","repository":{"type":"git","url":"git+https://github.com/GyverLibs/VectorCanvas.js.git"},"description":"Vector drawing canvas for export to Canvas, SVG and DXF","maintainers":[{"name":"gyver","email":"alex@alexgyver.ru"}],"readme":"# VectorCanvas\nВиртуальный векторный канвас:\n- Вывод на `Canvas`\n- Экспорт в `SVG`\n- Экспорт в `DXF`\n\n[demo](https://gyverlibs.github.io/VectorCanvas.js/test/)\n\n> **Browser**: `import VectorCanvas from 'https://gyverlibs.github.io/VectorCanvas.js/VectorCanvas.min.js'`\n\n> **Node**: npm i @alexgyver/vector-canvas\n\n```js\nimport VectorCanvas from '@alexgyver/vector-canvas';\n\nconst vc = new VectorCanvas(300, 200);\n\nvc.setStyle({\n    stroke: '#000',\n    fill: '#ddd',\n    lineWidth: 2,\n    font: '16px Arial',\n    textAlign: 'center',\n    textBaseline: 'middle',\n});\n\nvc.rect(20, 20, 120, 80);\nvc.fillCircle(80, 60, 16);\nvc.arc(180, 60, 24, 0, Math.PI * 1.5);\nvc.polyline([[20, 140], [80, 100], [140, 140]]);\nvc.fillText('VectorCanvas', 220, 140);\n\nvc.renderTo(canvas);\n\nconst pxPerMm = 1;\nconst svg = vc.toSVG(pxPerMm);\nconst dxf = vc.toDXF(pxPerMm);\n```\n\n```js\n// создать сцену width x height\nnew VectorCanvas(width, height);\n\n// изменить размер сцены\nsetSize(width, height);\n\n// полностью сбросить состояние и примитивы\nreset();\n\n// очистить только примитивы\nclear();\n\n// сохранить/восстановить стиль и слой\nsave();\nrestore();\n\n// задать стиль рисования\nsetStyle({\n    stroke, fill, lineWidth,\n    font, textAlign, textBaseline,\n    layer\n});\n\n// переключить слой, color - ACI цвет для DXF\nlayer(name, color = null);\n```\n\n```js\n// линия\nline(x1, y1, x2, y2);\n\n// окружность / залитый круг\ncircle(x, y, r, fill = false);\nfillCircle(x, y, r);\n\n// ломаная / замкнутый полигон\npolyline(points, closed = false);\npolygon(points);\n\n// прямоугольник по позиции и размеру\nrect(x, y, w, h, fill = false);\nfillRect(x, y, w, h);\n\n// дуга, углы в радианах\narc(x, y, r, a0, a1, ccw = false);\n\n// текст\ntext(text, x, y, fill = false);\nfillText(text, x, y);\n// \\n внутри text переносит строку\n```\n\n```js\n// нарисовать на canvas\nrenderTo(canvas);\n\n// экспортировать в SVG\ntoSVG(pxPerMm);\n\n// экспортировать в DXF R12\ntoDXF(pxPerMm);\n```\n\n`pxPerMm` - сколько пикселей сцены приходится на 1 мм в экспорте.\n\nПо умолчанию все примитивы идут в слой `0`.\n\nТекст в DXF может немного отличаться в разных viewer.\n","readmeFilename":"README.md"}