{"_id":"@congresswiki/handwritten-signature","_rev":"6-cbe7f4346ec91911087ff8e7158f133b","name":"@congresswiki/handwritten-signature","dist-tags":{"latest":"0.12.15"},"versions":{"0.12.10":{"name":"@congresswiki/handwritten-signature","version":"0.12.10","keywords":["react","signature","svg","animation","handwriting","cursive"],"license":"MIT","_id":"@congresswiki/handwritten-signature@0.12.10","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"dist":{"shasum":"147ce02a95785df5a8d9c2b771576cafad9abf2c","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.10.tgz","fileCount":19,"integrity":"sha512-jeSUx33rZgDaz2kAqB1vAI4KqF0MPl/mBo8cOB7uQmW7JChaZwOdsoEXDpF1hIppa8eTtZTB+NfYlvTjDnJZlA==","signatures":[{"sig":"MEUCIQC7DY5s/9x0CNvOHGOCjZKGSIGZ/pYGdYKi5HsrmrpK3AIgVncEVz8jUruvYCRMXqtIm3VlAyDZMCG9t2JUBekgAEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87009},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./glyphs":{"types":"./dist/glyphs.d.ts","import":"./dist/glyphs.js"},"./layout":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"a6f3831dd966f96229f501d45d35bab56cbfaa12","scripts":{"dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","test":"vitest","build":"tsup","test:run":"vitest run --coverage","typecheck":"tsc --noEmit","site:build":"yarn --cwd site build","prepublishOnly":"yarn build","site:typecheck":"yarn --cwd site typecheck"},"_npmUser":{"name":"ryparker","email":"ryparker33@gmail.com"},"repository":{"url":"git+https://github.com/CongressWiki/handwritten-signature.git","type":"git"},"_npmVersion":"11.11.0","description":"Animated handwriting component for React using SVG stroke paths","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"tsup":"^8.4.0","jsdom":"^29.0.2","react":"^19.2.5","eslint":"^9","vitest":"^4.1.4","globals":"^17.4.0","react-dom":"^19.2.5","@eslint/js":"^9","typescript":"^5.8.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/handwritten-signature_0.12.10_1775784491355_0.4527566949059625","host":"s3://npm-registry-packages-npm-production"}},"0.12.11":{"name":"@congresswiki/handwritten-signature","version":"0.12.11","keywords":["react","signature","svg","animation","handwriting","cursive"],"license":"MIT","_id":"@congresswiki/handwritten-signature@0.12.11","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"dist":{"shasum":"0407addbbd64c716055cb0d50e77f38c48aa397c","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.11.tgz","fileCount":19,"integrity":"sha512-emHlj2h1neqxYsBTfG5S8Vm3E+h1TxOM/EzV6znmGj3SnPBgjYcH6wp+r7EQri7nobSIGR6faS79GXiuMzVmSA==","signatures":[{"sig":"MEUCICLWoUx+z7j0U5+PKisj8WO2epzmd6lShbJ5lFLvnWQ8AiEAxs9Wnw1IMJbRO1bvgdurlpws16FNGoK58zNL0lp5Enw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@congresswiki%2fhandwritten-signature@0.12.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86462},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./glyphs":{"types":"./dist/glyphs.d.ts","import":"./dist/glyphs.js"},"./layout":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"b7616323d87a0c05e6f122b7394d136727e99685","scripts":{"dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","test":"vitest","build":"tsup","test:run":"vitest run --coverage","typecheck":"tsc --noEmit","site:build":"yarn --cwd site build","prepublishOnly":"yarn build","site:typecheck":"yarn --cwd site typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64871613-5c74-4e31-9195-771965f7d85a"}},"repository":{"url":"git+https://github.com/CongressWiki/handwritten-signature.git","type":"git"},"_npmVersion":"11.10.0","description":"Animated handwriting component for React using SVG stroke paths","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"tsup":"^8.4.0","jsdom":"^29.0.2","react":"^19.2.5","eslint":"^9","vitest":"^4.1.4","globals":"^17.4.0","react-dom":"^19.2.5","@eslint/js":"^9","typescript":"^5.8.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/handwritten-signature_0.12.11_1775784980867_0.5864018729358342","host":"s3://npm-registry-packages-npm-production"}},"0.12.12":{"name":"@congresswiki/handwritten-signature","version":"0.12.12","keywords":["react","signature","svg","animation","handwriting","cursive"],"license":"MIT","_id":"@congresswiki/handwritten-signature@0.12.12","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"dist":{"shasum":"6ec3a704e9aeeaff4b384a66920bfe9734d3e09f","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.12.tgz","fileCount":19,"integrity":"sha512-hCrZXMSrtqh8pYijKjnnxlrQagNDaZjzfIwnY0ScFTq5KtjtXYX3llVE2lfsif4tpsDL8u3c2klSfpiQpCrVaw==","signatures":[{"sig":"MEUCIQDXkkH8udjylRHtw9ewgHkmeCmTTNEWhcJIuqu1MsXrcwIgP+30+dJFY8YhB5HpAGvVccU+gK21ntoVypRyKde1X28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@congresswiki%2fhandwritten-signature@0.12.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86931},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./glyphs":{"types":"./dist/glyphs.d.ts","import":"./dist/glyphs.js"},"./layout":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"3a834797c2fba09fd771820c7cdd50029bb3b0be","scripts":{"dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","test":"vitest","build":"tsup","test:run":"vitest run --coverage","changeset":"changeset","typecheck":"tsc --noEmit","site:build":"yarn --cwd site build","prepublishOnly":"yarn build","site:typecheck":"yarn --cwd site typecheck","release:publish":"yarn build && npx --yes npm@11.10.0 publish --access public --provenance","version-packages":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64871613-5c74-4e31-9195-771965f7d85a"}},"repository":{"url":"git+https://github.com/CongressWiki/handwritten-signature.git","type":"git"},"_npmVersion":"11.10.0","description":"Animated handwriting component for React using SVG stroke paths","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"tsup":"^8.4.0","jsdom":"^29.0.2","react":"^19.2.5","eslint":"^9","vitest":"^4.1.4","globals":"^17.4.0","react-dom":"^19.2.5","@eslint/js":"^9","typescript":"^5.8.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@changesets/cli":"^2.30.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","@changesets/changelog-github":"^0.6.0"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/handwritten-signature_0.12.12_1775785891653_0.3186377176839943","host":"s3://npm-registry-packages-npm-production"}},"0.12.13":{"name":"@congresswiki/handwritten-signature","version":"0.12.13","keywords":["react","signature","svg","animation","handwriting","cursive"],"license":"MIT","_id":"@congresswiki/handwritten-signature@0.12.13","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"dist":{"shasum":"06aa38783b4c61b2331e814bf910f8208943825a","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.13.tgz","fileCount":19,"integrity":"sha512-h6LXrD8zUD+bYXu77TY4eB8F4vouKd9HbIqFE2X/DvHZyXPfGCiPoTLldNNwfCTSwj8iuc2YOLPF/Eld7lh9Gg==","signatures":[{"sig":"MEUCIAve8O/A4RI6zPrlMm7dnGHdJw0ZF6+A/Woxgf77o/QFAiEA82gSBGkYhAIfAUVidUdETUuOq6kBuOJMKW7CWuHeIUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@congresswiki%2fhandwritten-signature@0.12.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":82498},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./glyphs":{"types":"./dist/glyphs.d.ts","import":"./dist/glyphs.js"},"./layout":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"470b6e90ce4085a2c3dd18e70afc9ebc255bba61","scripts":{"dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","test":"vitest","build":"tsup","test:run":"vitest run --coverage","typecheck":"tsc --noEmit","site:build":"yarn --cwd site build","prepublishOnly":"yarn build","site:typecheck":"yarn --cwd site typecheck","release:publish":"yarn build && npx --yes npm@11.10.0 publish --access public --provenance"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64871613-5c74-4e31-9195-771965f7d85a"}},"repository":{"url":"git+https://github.com/CongressWiki/handwritten-signature.git","type":"git"},"_npmVersion":"11.10.0","description":"Animated handwriting component for React using SVG stroke paths","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"tsup":"^8.4.0","jsdom":"^29.0.2","react":"^19.2.5","eslint":"^9","vitest":"^4.1.4","globals":"^17.4.0","react-dom":"^19.2.5","@eslint/js":"^9","typescript":"^5.8.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/handwritten-signature_0.12.13_1775805144426_0.9625031803126496","host":"s3://npm-registry-packages-npm-production"}},"0.12.14":{"name":"@congresswiki/handwritten-signature","version":"0.12.14","keywords":["react","signature","svg","animation","handwriting","cursive"],"license":"MIT","_id":"@congresswiki/handwritten-signature@0.12.14","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"dist":{"shasum":"842180dd40f200aa1b30cd39a0d0b0298acaaddb","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.14.tgz","fileCount":19,"integrity":"sha512-4VV2TTib09CENQi6YnSW2wO80ZkolvB1kriCJ015+zsaVsMYpTCPtg8u305RkgQ62525DWUahD3CzBt9nCaSVQ==","signatures":[{"sig":"MEUCIQCndFZp/mWsuUhkA5UWy5LI2xfgzzMqMsJSh6KtqftE6gIgQ4l9+hBP0DXxLo0bUUOdRcyQZa8csP5Fp1piVEZ8Nn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@congresswiki%2fhandwritten-signature@0.12.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":82498},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"},"./glyphs":{"types":"./dist/glyphs.d.ts","import":"./dist/glyphs.js"},"./layout":{"types":"./dist/layout.d.ts","import":"./dist/layout.js"}},"gitHead":"572400c11db8f514d4422a2149156dbc8ad38ae6","scripts":{"dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","test":"vitest","build":"tsup","test:run":"vitest run --coverage","typecheck":"tsc --noEmit","site:build":"yarn --cwd site build","prepublishOnly":"yarn build","site:typecheck":"yarn --cwd site typecheck","release:publish":"yarn build && npx --yes npm@11.10.0 publish --access public --provenance"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64871613-5c74-4e31-9195-771965f7d85a"}},"repository":{"url":"git+https://github.com/CongressWiki/handwritten-signature.git","type":"git"},"_npmVersion":"11.10.0","description":"Animated handwriting component for React using SVG stroke paths","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"tsup":"^8.4.0","jsdom":"^29.0.2","react":"^19.2.5","eslint":"^9","vitest":"^4.1.4","globals":"^17.4.0","react-dom":"^19.2.5","@eslint/js":"^9","typescript":"^5.8.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","eslint-plugin-react":"^7.37.5","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/handwritten-signature_0.12.14_1775805558966_0.2976227072536264","host":"s3://npm-registry-packages-npm-production"}},"0.12.15":{"name":"@congresswiki/handwritten-signature","version":"0.12.15","description":"Animated handwriting component for React using SVG stroke paths","keywords":["react","signature","svg","animation","handwriting","cursive"],"homepage":"https://github.com/CongressWiki/handwritten-signature#readme","bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"packageManager":"yarn@4.12.0","type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./glyphs":{"import":"./dist/glyphs.js","types":"./dist/glyphs.d.ts"},"./layout":{"import":"./dist/layout.js","types":"./dist/layout.d.ts"},"./types":{"import":"./dist/types.js","types":"./dist/types.d.ts"}},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint src scripts tsup.config.ts vitest.config.ts vitest.setup.ts eslint.config.mjs","release:publish":"yarn build && npx --yes npm@11.10.0 publish --access public --provenance","site:build":"yarn --cwd site build","site:typecheck":"yarn --cwd site typecheck","test":"vitest","test:run":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"yarn build"},"peerDependencies":{"react":">=18"},"devDependencies":{"@eslint/js":"^9","@testing-library/dom":"^10.4.1","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.1.4","eslint":"^9","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.0.1","globals":"^17.4.0","jsdom":"^29.0.2","react":"^19.2.5","react-dom":"^19.2.5","tsup":"^8.4.0","typescript":"^5.8.0","typescript-eslint":"^8.58.1","vitest":"^4.1.4"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/CongressWiki/handwritten-signature.git"},"license":"MIT","gitHead":"93db95aa0a24643c831c21b52304cea898f70b8f","_id":"@congresswiki/handwritten-signature@0.12.15","_nodeVersion":"22.22.2","_npmVersion":"11.10.0","dist":{"integrity":"sha512-XzEuBzhEa9vrZ2jxBL+WJov059Q4yQQycoaMcZ13VIam6Qa3clv97x/g5V2FYmvwlWXdLG8z6JthTTmr/voNiA==","shasum":"f4d5bdeb48b1a6b4050dc57499a1bef74e1ee5ad","tarball":"https://registry.npmjs.org/@congresswiki/handwritten-signature/-/handwritten-signature-0.12.15.tgz","fileCount":19,"unpackedSize":82498,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@congresswiki%2fhandwritten-signature@0.12.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAiqtp3e4IKJjjNWIjxJ+ZhS8Qs4Tf0KiAk1GHwrQR60AiA76orkx+1oLN90RNsrTHqaPFhRRWnvZJWaPqdj/ad+0g=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:64871613-5c74-4e31-9195-771965f7d85a"}},"directories":{},"maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/handwritten-signature_0.12.15_1775847944390_0.19822524863340418"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T01:28:11.260Z","modified":"2026-04-10T19:05:44.897Z","0.12.10":"2026-04-10T01:28:11.513Z","0.12.11":"2026-04-10T01:36:21.035Z","0.12.12":"2026-04-10T01:51:31.824Z","0.12.13":"2026-04-10T07:12:24.582Z","0.12.14":"2026-04-10T07:19:19.117Z","0.12.15":"2026-04-10T19:05:44.534Z"},"bugs":{"url":"https://github.com/CongressWiki/handwritten-signature/issues"},"license":"MIT","homepage":"https://github.com/CongressWiki/handwritten-signature#readme","keywords":["react","signature","svg","animation","handwriting","cursive"],"repository":{"type":"git","url":"git+https://github.com/CongressWiki/handwritten-signature.git"},"description":"Animated handwriting component for React using SVG stroke paths","maintainers":[{"name":"ryparker","email":"ryparker33@gmail.com"}],"readme":"# @congresswiki/handwritten-signature\n\n![Handwritten Signature Demo](./demo.gif)\n\nAnimated handwriting React component that renders text as cursive SVG stroke paths. Each letter draws on sequentially with configurable timing, spacing, and overlap.\n\n## Install\n\nInstall from npm:\n\n```bash\nnpm install @congresswiki/handwritten-signature\n```\n\nDemo: [congresswiki.github.io/handwritten-signature](https://congresswiki.github.io/handwritten-signature/)\n\n## Usage\n\n```tsx\nimport { HandwrittenSignature } from '@congresswiki/handwritten-signature';\n\n<HandwrittenSignature text=\"John Hancock\" />\n```\n\n## Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `text` | `string` | `\"Signature\"` | Text to render |\n| `letterHeight` | `number` | `68` | Height of each letter in pixels |\n| `letterSpacing` | `number` | `0` | Extra spacing between letters in pixels |\n| `durationPerLetterMs` | `number` | `320` | Base animation duration per letter |\n| `initialDelayMs` | `number` | `300` | Delay before animation starts |\n| `strokeWidth` | `number` | `2` | SVG stroke width |\n| `overlapRatio` | `number` | `0.58` | How much adjacent letter animations overlap (0-0.9) |\n| `className` | `string` | — | Additional CSS class on the container |\n\nAll standard `div` HTML attributes are also supported.\n\n## Entry Points\n\n| Import | Contents |\n|--------|----------|\n| `@congresswiki/handwritten-signature` | `HandwrittenSignature` component + types |\n| `@congresswiki/handwritten-signature/glyphs` | SVG path definitions for all glyphs |\n| `@congresswiki/handwritten-signature/layout` | Per-character spacing, dash lengths, timing constants |\n| `@congresswiki/handwritten-signature/types` | `GlyphDefinition`, `GlyphLayoutConfig`, `HandwrittenSignatureProps` |\n\n## Supported Characters\n\nFull uppercase (A-Z), lowercase (a-z), and symbols: `.` `-` `'`\n\nMulti-stroke letters (F, I, T, X, f, t, x) animate each stroke sequentially.\n\n## Styling\n\nThe component includes its own keyframes. It inherits `color` from its parent for stroke color. Animation is CSS-based using `stroke-dashoffset`. Pause animation with:\n\n```css\n.hws-signature {\n  --hws-play: paused;\n}\n```\n\n## Development\n\n```bash\nyarn install\nyarn lint\nyarn typecheck\nyarn test:run\nyarn build\nyarn site:typecheck\nyarn site:build\n```\n\n## Community\n\n- [Contributing](./CONTRIBUTING.md)\n- [Code of Conduct](./CODE_OF_CONDUCT.md)\n- [Security Policy](./SECURITY.md)\n","readmeFilename":"README.md"}