{"_id":"@adnathanail/zxcc","_rev":"8-bfa11cd48f6fc90c4db2f8865ad55847","name":"@adnathanail/zxcc","dist-tags":{"latest":"0.3.4"},"versions":{"0.1.0":{"name":"@adnathanail/zxcc","version":"0.1.0","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","d3","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.1.0","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"e3fd0e2fee2d9702bad4991b88ae8c4da4706837","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.1.0.tgz","fileCount":11,"integrity":"sha512-nf0MZsc59q1ItK3lVhsdIBY7h+raa7BAFCsiQCkeEPCm7R0hBo0ohcotUYFzxVf7cFCWhqJlCsrWJO5JG1e6AA==","signatures":[{"sig":"MEUCIQC7YdJ0Wxst6l+KFjT5Acncuz3qTkVW7tjWtcT5PrjicAIgdtCmcj16IXt4Ta4uOhQMjDL6nGEHx7TxxHlxBEla92c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322103},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"}},"gitHead":"5babe5bfd51fd8ea13d3160002997f8e800bbe3d","scripts":{"fix":"biome check --write","lint":"biome check","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"_npmUser":{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"11.12.1","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.15.0","dependencies":{"d3":"^5.16.0","lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","jsdom":"^28.1.0","rollup":"^4.17.2","vitest":"^4.0.18","@types/d3":"^5.16.7","chromatic":"^18.2.0","storybook":"^10.5.8","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.1.0_1786655627354_0.8582284472098414","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adnathanail/zxcc","version":"0.2.0","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.2.0","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"b5b8daf97d9c6b007d258c48229634c8f9acf901","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.2.0.tgz","fileCount":12,"integrity":"sha512-W0q5pdAdJaozlGlVh2YDVRp6JUeJE12jTLcUn4WSE9M/1ctIIhqfwFX9kqPIOa18PEJDcM8ocAJM0dmVMrewXQ==","signatures":[{"sig":"MEYCIQD7lgnOmO21I0202V1utZ95S9NM6p5qlA5U6x4UmsO8/AIhAMqlEvJ7AogTbxdxY3F9XHOE8WaHGRXyueA/x/tuiXjp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86365},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"}},"gitHead":"975cd335aa166e892a25ad510fc33213bfad599c","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.2.0_1786669895406_0.5306939155349322","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adnathanail/zxcc","version":"0.2.1","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.2.1","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"077e23a9e1e84571ed306fd8357fd8523357664d","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.2.1.tgz","fileCount":12,"integrity":"sha512-pJcznD+gdI2o/7HC41pIZ5D4x2EnHVkLZffjnmJCn+d+0PTJ62CLW3fVz/7bZJ4KbtqS/EVyCcVgcLqjh3Wv3A==","signatures":[{"sig":"MEUCIQCMPZ1eH0WxINZr2ZaV+UXCZr+eEjejSrOir+8LADpg+QIgVdHDcNlH392FY2nKVz9SmcSghgF1roDoRQiEc2RnHUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92817},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"}},"gitHead":"ce942c9ddb119d90ad0ac04c4e491e234db80c53","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","coverage":"vitest run --coverage","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.2.1_1786805765387_0.2898351334648266","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@adnathanail/zxcc","version":"0.3.0","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.3.0","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"7e488f45f41b641ba1e4e29c5cd8b42476a54220","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.3.0.tgz","fileCount":36,"integrity":"sha512-ra1Nur/FYFLr5QiL8vGk1C/mOybXiv7I4UwBxZP2rKeuCm0T55JrJRmarertIufLZhKy+9M3Ve9RZE4AZNxSkA==","signatures":[{"sig":"MEUCIEpCdP+SDa9VePPuIYWuuL6Iu7HbORLhG6a6MtYIcGhMAiEAiWD+echi9HWz6ZSA6hlBGhAZ3UI9CJow6ewLMGidIN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":229307},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"}},"gitHead":"15d8c5985370b8612257c1de1ec453fc2ecdc901","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","coverage":"vitest run --coverage","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.3.0_1787004639619_0.6366730547296899","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@adnathanail/zxcc","version":"0.3.1","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.3.1","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"dadd4400356a11f9e982f6cc546a5810d77d2cb1","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.3.1.tgz","fileCount":38,"integrity":"sha512-nQqxUXEcReUlpms6aC4w60pkV/sz0MQ85gsen8M8sDPzHcfo38uNAzn5rGsKnqu77Sdyu1NBf2tR6b5hMPNjZg==","signatures":[{"sig":"MEUCIC/j9+e2ohdan6FaAxUYR6kfmRzthY5RAMt4S7T0JjKSAiEAwOfmTKCypZz91qGgs/mBI0h2eiUTlZ+LetOUSgaABaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228763},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js"}},"gitHead":"d2b84ef089c7787e334febfcb90ad962f37ee75b","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","coverage":"vitest run --coverage","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","test-node-entry":"node scripts/check-node-entry.mjs","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.3.1_1787245067138_0.19779504963250605","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@adnathanail/zxcc","version":"0.3.2","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.3.2","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"8f584f5d409ac402716ed70c44be1f2bb1f4b37d","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.3.2.tgz","fileCount":38,"integrity":"sha512-0qcGflRypSoNo82BCtP74c6Be+lp0GYpAIVK2vPRZYN6IGiP3UkA7/mesSx7jWAabtHx2LeUp7SnMs1H3/ehdQ==","signatures":[{"sig":"MEQCIFnd3EhJpSkS+wL4i5a4jkUGpOMOu5nd51wQC78lEhZiAiAaA/TAnKiy3MIlDYUzwG2TyopaWPNfaaaawnw3M9fFgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228253},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js"}},"gitHead":"35173c5ad9c1d604b0e954f69676e2cae0cb7c6f","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","coverage":"vitest run --coverage","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","test-node-entry":"node scripts/check-node-entry.mjs","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.3.2_1787269925252_0.48695599855834426","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@adnathanail/zxcc","version":"0.3.3","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","_id":"@adnathanail/zxcc@0.3.3","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"dist":{"shasum":"a30522cf4b842e961035a14b995ca93021f8f914","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.3.3.tgz","fileCount":38,"integrity":"sha512-2KUSvGHcExiLMjcMdXRY8X3+nyoNcR7UAxYfZ3QsWHQbexDBOCGyEtomxkNXwnRz06mL1Sv3Eagnq6PbnKAFPg==","signatures":[{"sig":"MEUCIQDjBVI+VvTQHu1DKfROx94jqRFw48iPjj65ioOHegUE3AIgDjjZphf6gNMCfD4MVt8H+acQ1tpEXt5mG1/2Q7dgdBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":229068},"main":"./dist/index.bundle.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.bundle.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js"}},"gitHead":"1cfa5cdab08d587294105cd2e2f2019d08f1d580","scripts":{"fix":"biome check --write","lint":"biome check && npm run typecheck-stories","test":"vitest run","build":"tsc && rollup -c --environment NODE_ENV:production","watch":"rollup -c --environment NODE_ENV:development --watch","format":"biome format --write","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","coverage":"vitest run --coverage","build-dev":"tsc && rollup -c --environment NODE_ENV:development","storybook":"storybook dev -p 6006","build-storybook":"storybook build","test-node-entry":"node scripts/check-node-entry.mjs","typecheck-stories":"tsc -p tsconfig.stories.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"repository":{"url":"git+https://github.com/adnathanail/zxcc.git","type":"git"},"_npmVersion":"12.0.2","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","directories":{},"_nodeVersion":"24.19.0","dependencies":{"lit":"^3.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.6","rollup":"^4.17.2","vitest":"latest","chromatic":"^18.2.0","storybook":"^10.5.8","playwright":"latest","typescript":"^5.0.3","@types/node":"^26.2.0","@biomejs/biome":"2.4.14","@vitest/coverage-v8":"latest","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-commonjs":"^28.0.1","@storybook/addon-vitest":"^10.5.8","rollup-plugin-visualizer":"^7.0.1","@vitest/browser-playwright":"latest","@rollup/plugin-node-resolve":"^15.3.0","@storybook/web-components-vite":"^10.5.8"},"_npmOperationalInternal":{"tmp":"tmp/zxcc_0.3.3_1787272274024_0.7347212314916776","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@adnathanail/zxcc","version":"0.3.4","description":"Framework-agnostic web component for rendering ZX-calculus diagrams","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/adnathanail/zxcc.git"},"homepage":"https://github.com/adnathanail/zxcc#readme","bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"engines":{"node":">=20"},"type":"module","main":"./dist/index.bundle.js","module":"./dist/index.bundle.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.bundle.js"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js"}},"scripts":{"build":"tsc && rollup -c --environment NODE_ENV:production","analyze":"tsc && rollup -c --environment NODE_ENV:production,ANALYZE:true","build-dev":"tsc && rollup -c --environment NODE_ENV:development","watch":"rollup -c --environment NODE_ENV:development --watch","storybook":"storybook dev -p 6006","build-storybook":"storybook build","test":"vitest run","test-node-entry":"node scripts/check-node-entry.mjs","coverage":"vitest run --coverage","typecheck-stories":"tsc -p tsconfig.stories.json","lint":"biome check && npm run typecheck-stories","format":"biome format --write","fix":"biome check --write"},"dependencies":{"lit":"^3.2.0"},"devDependencies":{"@biomejs/biome":"2.4.14","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-replace":"^6.0.1","@rollup/plugin-terser":"^0.4.4","@storybook/addon-vitest":"^10.5.8","@storybook/web-components-vite":"^10.5.8","@types/node":"^26.2.0","chromatic":"^18.2.0","rollup":"^4.17.2","rollup-plugin-visualizer":"^7.0.1","storybook":"^10.5.8","typescript":"^5.0.3","vite":"^7.3.6","vitest":"latest","playwright":"latest","@vitest/browser-playwright":"latest","@vitest/coverage-v8":"latest"},"gitHead":"0d7aeb41c099e3d5fae973857a18cb7934241b34","_id":"@adnathanail/zxcc@0.3.4","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-UHqHVFV1sR2EB+eIBlPGXIgn9VXnImJkOzuceZ79WmvS1tzhf56WDI6g5dnrgBsEzuvigpz3nqzh2s4knZXxYQ==","shasum":"a0e1bc52f91ec0d033da721691c35e892e2fc455","tarball":"https://registry.npmjs.org/@adnathanail/zxcc/-/zxcc-0.3.4.tgz","fileCount":38,"unpackedSize":236300,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adnathanail%2fzxcc@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID7yamoHgQeBJBMbOfkUvjNdAaEcdXa0u7u4Dk/Ni1whAiEAwCdSBDs5GmUwCbmE08qF7YJidzQxiDc7PZ7m92nFZLI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eec8acc0-361a-4549-bb7e-300b4494d3a4"}},"directories":{},"maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zxcc_0.3.4_1787664626374_0.7278689603599979"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T21:13:47.184Z","modified":"2026-08-25T13:30:27.036Z","0.1.0":"2026-08-13T21:13:47.595Z","0.2.0":"2026-08-14T01:11:35.602Z","0.2.1":"2026-08-15T14:56:05.521Z","0.3.0":"2026-08-17T22:10:39.765Z","0.3.1":"2026-08-20T16:57:47.287Z","0.3.2":"2026-08-20T23:52:05.412Z","0.3.3":"2026-08-21T00:31:14.181Z","0.3.4":"2026-08-25T13:30:26.524Z"},"bugs":{"url":"https://github.com/adnathanail/zxcc/issues"},"author":{"name":"Alex Nathanail"},"license":"Apache-2.0","homepage":"https://github.com/adnathanail/zxcc#readme","keywords":["zx-calculus","quantum","quantum-computing","web-component","custom-element","lit","pyzx"],"repository":{"type":"git","url":"git+https://github.com/adnathanail/zxcc.git"},"description":"Framework-agnostic web component for rendering ZX-calculus diagrams","maintainers":[{"name":"adnathanail","email":"adnathanail@hotmail.co.uk"}],"readme":"# zxcc - ZX Calculus Components\n\n[![CI](https://github.com/adnathanail/zxcc/actions/workflows/ci.yml/badge.svg)](https://github.com/adnathanail/zxcc/actions/workflows/ci.yml)\n[![Lit](https://img.shields.io/badge/lit-%23324FFF.svg?style=flat&logo=lit&logoColor=white)](https://lit.dev)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=fff)](https://www.typescriptlang.org)\n[![prek](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json)](https://github.com/j178/prek)\n[![Storybook](https://img.shields.io/badge/Storybook-%23FF4785.svg?style=flat&logo=storybook&logoColor=white)](https://storybook.js.org)\n\nFramework-agnostic web component for rendering [ZX-calculus](https://zxcalculus.com) diagrams.\n\n| Example basic layout | Example algebraic layout |\n| ----------------------- | ------------------ |\n| ![Basic layout demo](img/basic_layout_demo.png) | ![Algebraic layout demo](img/algebraic_layout_demo.png) |\n\n[Checkout the demo](https://main--6a7e12985acc92e6ec37bdaa.chromatic.com)\n\n## Usage\n\n```sh\nnpm install @adnathanail/zxcc\n```\n\n```html\n<script type=\"module\" src=\"./node_modules/@adnathanail/zxcc/dist/index.bundle.js\"></script>\n\n<zx-diagram id=\"d\"></zx-diagram>\n\n<script type=\"module\">\n  document.getElementById('d').diagram = {\n    nodes: [\n      { id: 0, type: 'input',  ioId: 0 },\n      { id: 1, type: 'spider', color: 'Z', phase: 'π/2' },\n      { id: 2, type: 'output', ioId: 0 },\n    ],\n    edges: [\n      { src: 0, tgt: 1 },\n      { src: 1, tgt: 2 },\n    ],\n  }\n</script>\n```\n\n`diagram` is a JS property, not an attribute — set it via a DOM reference so the object round-trips without JSON coercion.\n\nAssign a new object to change the diagram; layout runs when the property's identity changes, so mutating the object already assigned paints nothing new. If you must mutate in place, call `el.refresh()` afterwards. Note that either way the re-layout resets the drawing: dragged nodes return to their laid-out positions and the selection is cleared.\n\nThe drawing responds to mouse, pen and touch alike: press a node or a dot to select it and drag to move it. A drawing wider than its box scrolls, and on a touch screen dragging the empty canvas is what scrolls it — so the rubber-band selection over blank canvas is a mouse and pen gesture only.\n\n## Diagram shape\n\n```ts\ninterface DiagramData {\n  nodes: DiagramNode[]\n  edges: DiagramEdge[]\n  boxes?: { kind: 'stack' | 'compose'; nodeIds: number[] }[]\n  labels?: [number, string][]  // node-id → phase-label override\n  pauliWeb?: { src: number; tgt: number; kind: 'X' | 'Y' | 'Z' | 'I' }[]\n  scalar?: string        // global scalar, drawn below the diagram\n}\n\ninterface DiagramNode {\n  id: number\n  type: 'spider' | 'input' | 'output' | 'hadamard' | 'wire'\n      | 'w-input' | 'w-output' | 'z-box'\n  color?: 'Z' | 'X'      // spider only\n  phase?: string         // pre-formatted (e.g. \"π/2\", \"-π/4\")\n  ioId?: number          // input/output index\n  col?: number           // optional pre-computed column\n  qubit?: number         // optional pre-computed qubit row\n  ground?: boolean       // draws a ground symbol below the node\n  vdata?: [string, unknown][]  // annotations drawn above the node\n}\n\ninterface DiagramEdge {\n  src: number\n  tgt: number\n  kind?: 'simple' | 'hadamard' | 'w-io' | string   // default 'simple'; see edgeColors\n}\n```\n\nIf any node carries `col`, auto-layout is skipped and every node is expected to carry both `col` and `qubit`.\nOtherwise a BFS from the inputs assigns rows and qubits.\n\nAn edge with `src === tgt` renders as a self-loop arc.\n\n## Element attributes\n\nThese mirror the keyword arguments of pyzx's `draw_d3()` and control presentation\nonly — graph structure always lives in `diagram`.\n\n_Some can be set as attributes in HTML, some must be set with JS on the element, similarly to `diagram` above_\n\n| Attribute | Property | Default | Meaning |\n| --- | --- | --- | --- |\n| `show-labels` | `showLabels` | `false` | Draw node/wire IDs |\n| `color-scheme` | `colorScheme` | `original` | `original` / `rgb` / `grayscale` |\n| `scale` | `scale` | derived | Pixels per row/qubit |\n| `view-mode` | `viewMode` | `graph` | `graph` / `hypergraph` / `both-vertical` / `both-horizontal` - see [Hypergraph view](#hypergraph-view). |\n| `disable-io-blobs-in-hypergraph` | `disableIOBlobsInHypergraph` | `false` | Leave out the single-dot blob around each input/output in the hypergraph view. |\n| — | `colors` | `null` | Full palette override (`Record<string, string>`), overrides `color-scheme`. |\n| — | `edgeColors` | `null` | Define custom wire 'kinds', to display wires in custom colours, overrides both of the above for the kinds named. |\n\n```html\n<zx-diagram show-labels color-scheme=\"grayscale\" scale=\"40\"></zx-diagram>\n```\n\nThe palettes are exported too, if you want to build a variant:\n\n```js\nimport { ORIGINAL_COLORS, RGB_COLORS, GRAYSCALE_COLORS, COLOR_SCHEMES } from '@adnathanail/zxcc'\n```\n\n### Wire colours and custom wire kinds\n\n`edgeColors` maps edge kinds to colours — the kinds the diagram is written in, rather than pyzx's\n`edge` / `Hedge` / `Xedge` palette entries. Only the kinds you name move; the rest stay on whatever\n`color-scheme` or `colors` decided.\n\nAn edge's `kind` is **only** a colour: nothing in the layout or the geometry reads it. So it isn't\nlimited to the three built-in kinds — use any string you like and give it a colour here:\n\n```js\nconst d = document.getElementById('d')\nd.diagram = {\n  nodes: [/* … */],\n  edges: [\n    { src: 0, tgt: 1, kind: 'control' },     // a kind of your own\n    { src: 1, tgt: 2, kind: 'hadamard' },    // a built-in, recoloured\n    { src: 2, tgt: 3 },                      // 'simple', left alone\n  ],\n}\nd.edgeColors = { control: '#00aa55', hadamard: '#ff00aa' }\n```\n\nA kind you don't give a colour draws like a plain wire. Both views read a wire's colour from the same\nlookup, so the hypergraph view's dot for a wire always comes out the colour of the wire itself.\n\n## Hypergraph view\n\nSet `view-mode=\"hypergraph\"` (or the `viewMode` property) to draw the diagram's hypergraph dual\ninstead of the diagram — the roles of wires and spiders swap. Every ZX wire becomes a node/dot;\nevery ZX spider becomes a *hyperedge*, drawn as a blob enclosing the dots of the wires incident\nto it. An input/output is incident to one wire, so its blob is a circle around that one dot.\n\n```html\n<zx-diagram id=\"d\" view-mode=\"hypergraph\"></zx-diagram>\n```\n\nOnly Z/X spiders, I/O, and Hadamards are supported in this view, other node types will be rejected.\n\n### Input/output blobs\n\nEach input/output gets a blob of its own, a circle around the single dot for its leg. That circle is\nwhat tells a boundary leg apart from a self-loop: both are one dot hanging off one spider, and the\nrule that every dot sits in two blobs — one per end of its wire — only reads off the drawing while\nthe boundaries have blobs too. On a diagram with many boundaries it is also a lot of outline, so it\ncan be turned off:\n\n```html\n<zx-diagram id=\"d\" view-mode=\"hypergraph\" disable-io-blobs-in-hypergraph></zx-diagram>\n```\n\n```js\ndocument.getElementById('d').disableIOBlobsInHypergraph = true\n```\n\nThe dots stay either way — a boundary leg is still a wire. Only the circle round it goes, and with it\ngoes anything that circle could be pressed or counted for: an input/output can no longer be selected\nin this view, and a dot near one no longer counts as trespassing into it.\n\n### Both views\n\nYou can also have both the graph & hypergraph views, by setting the `view-mode` to `both-vertical` or `both-horizontal`.\nSelections will be synced across the two viewers.\n\n## Exported constants\n\nThe main entry defines a custom element as it loads, so it needs a DOM and won't import in Node.\nTo allow build-time usage of constants by Node, we have a second entry point, `@adnathanail/zxcc/constants`:\n\n```js\nimport { VIEW_MODES, COLOR_SCHEMES } from '@adnathanail/zxcc/constants'\n\nif (!VIEW_MODES.includes(mode)) throw new Error(`unknown view-mode: ${mode}`)\n```\n\n## Development\n\nInstall npm dependencies:\n\n```sh\nnpm install\n```\n\nSet up pre-commit hooks ([install prek](https://github.com/j178/prek) first):\n\n```\nprek --install\n```\n\n### Demo\n\nTo view the Storybook example usages, and an interactive Playground story with controls:\n\n```sh\nnpm install\nnpm run storybook\n```\n\n### Testing\n\nYou can run tests from inside the Storybook web interface.\nIf you want to run them via the terminal:\n\n```sh\nnpm run test\n```\n\nAnd to run with coverage:\n\n```sh\nnpm run coverage\n```\n\nThen open `coverage/index.html` in a browser.\n\n### Building from source\n\n```sh\nnpm run build       # tsc → dist/, then rollup bundles to dist/index.bundle.js\nnpm run watch       # rollup --watch (rerun tsc manually on .ts changes)\n```\n\nThe bundle is self-contained with no runtime dependencies.\n\n### Analyzing bundle composition\n\n```sh\nnpm run analyze\n```","readmeFilename":"README.md"}