{"_id":"@composy/signature-core","name":"@composy/signature-core","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@composy/signature-core","version":"0.0.1","description":"Core engine for signature pad - canvas drawing, touch support, pressure sensitivity","keywords":["ldesign","signature","canvas","drawing","handwriting","signature-pad","touch","pressure-sensitive","catmull-rom"],"author":{"name":"LDesign Team"},"license":"MIT","type":"module","sideEffects":false,"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js","require":"./lib/index.cjs","default":"./es/index.js"},"./core/*":{"types":"./es/core/*.d.ts","import":"./es/core/*.js","require":"./lib/core/*.cjs","default":"./es/core/*.js"},"./features/*":{"types":"./es/features/*.d.ts","import":"./es/features/*.js","require":"./lib/features/*.cjs","default":"./es/features/*.js"},"./renderers/*":{"types":"./es/renderers/*.d.ts","import":"./es/renderers/*.js","require":"./lib/renderers/*.cjs","default":"./es/renderers/*.js"},"./types":{"types":"./es/types/index.d.ts","import":"./es/types/index.js","require":"./lib/types/index.cjs","default":"./es/types/index.js"},"./types/*":{"types":"./es/types/*.d.ts","import":"./es/types/*.js","require":"./lib/types/*.cjs","default":"./es/types/*.js"},"./utils/*":{"types":"./es/utils/*.d.ts","import":"./es/utils/*.js","require":"./lib/utils/*.cjs","default":"./es/utils/*.js"},"./styles/*":{"import":"./es/styles/*.js","require":"./lib/styles/*.cjs","default":"./es/styles/*.js"},"./package.json":"./package.json"},"main":"./lib/index.cjs","module":"./es/index.js","types":"./es/index.d.ts","typings":"./es/index.d.ts","browser":"./dist/index.js","unpkg":"./dist/index.min.js","jsdelivr":"./dist/index.min.js","scripts":{"build":"ldesign-builder build","build:esm":"ldesign-builder build --format esm","build:cjs":"ldesign-builder build --format cjs","build:umd":"ldesign-builder build --format umd","clean":"rimraf es esm lib dist","type-check":"tsc --noEmit","lint":"eslint . --cache","lint:check":"eslint . --cache --max-warnings 0","lint:fix":"eslint . --cache --fix","test":"ltesting run:unit","test:run":"ltesting run:unit","test:watch":"ltesting run:unit --watch","test:coverage":"ltesting run:unit --coverage","test:changed":"ltesting run:unit --changed","test:failed":"ltesting run:unit --failed","test:ui":"ltesting dashboard"},"devDependencies":{"@antfu/eslint-config":"9.1.0","@composy/builder":"^0.0.1","@composy/testing":"^0.0.1","eslint":"10.7.0","rimraf":"^6.1.3","typescript":"5.9.3"},"_id":"@composy/signature-core@0.0.1","_nodeVersion":"23.11.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-2lgR8XOP0lIbZr+B7hDGTthUEbLf75zwKPjgI0os4XO/LLjfAAJ8cuiz/BP1S8ZON2KpCug18YOeuvxOVBNhCg==","shasum":"2366aaa24545463a0e340432f96e366f308f71af","tarball":"https://registry.npmjs.org/@composy/signature-core/-/signature-core-0.0.1.tgz","fileCount":220,"unpackedSize":1221216,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDICxscQTKcxUUCpSnJolPXjm7gLaRbHuOMQdWALy//4wIgEpfl7pKNwiWHBXSnuJt0qaEWhkDoyyig6RfX5JpO2Sk="}]},"_npmUser":{"name":"swimly","email":"979741120@qq.com"},"directories":{},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signature-core_0.0.1_1786948608078_0.08555484462952223"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T06:36:47.925Z","0.0.1":"2026-08-17T06:36:48.242Z","modified":"2026-08-17T06:36:49.009Z"},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"description":"Core engine for signature pad - canvas drawing, touch support, pressure sensitivity","keywords":["ldesign","signature","canvas","drawing","handwriting","signature-pad","touch","pressure-sensitive","catmull-rom"],"author":{"name":"LDesign Team"},"license":"MIT","readme":"# @composy/signature-core\n\nLDesign Signature Core - 手写签名核心引擎\n\n## 特性\n\n- 🖊️ Canvas 绘图引擎，支持高 DPI 屏幕\n- 👆 触摸和笔触支持，包括压力感应\n- 🎨 多种笔刷样式（默认、钢笔、毛笔、铅笔、标记笔、霓虹）\n- 📐 Catmull-Rom 样条平滑算法\n- 📤 多格式导出（PNG、JPEG、SVG、JSON）\n- 🔧 签名验证和相似度比较\n- 📦 支持 ESM、CJS、UMD 三种模块格式\n\n## 安装\n\n```bash\nnpm install @composy/signature-core\n# 或\npnpm add @composy/signature-core\n```\n\n## 快速开始\n\n```typescript\nimport { createSignaturePad } from '@composy/signature-core'\n\nconst canvas = document.getElementById('signature-canvas') as HTMLCanvasElement\nconst signaturePad = createSignaturePad(canvas, {\n  penColor: '#000000',\n  minWidth: 1,\n  maxWidth: 4\n})\n\n// 清空\nsignaturePad.clear()\n\n// 撤销\nsignaturePad.undo()\n\n// 重做\nsignaturePad.redo()\n\n// 导出为 PNG\nconst dataUrl = signaturePad.toDataURL('image/png')\n\n// 导出为 SVG\nconst svgString = signaturePad.toSVG()\n\n// 导出为 JSON\nconst jsonData = signaturePad.toJSON()\n```\n\n## CSS 变量\n\n所有样式都支持通过 CSS 变量自定义：\n\n```css\n:root {\n  /* 颜色 */\n  --ld-signature-bg: #ffffff;\n  --ld-signature-border: #d0d7de;\n  --ld-signature-text: #1f2937;\n  --ld-signature-pen-color: #111827;\n  \n  /* 尺寸 */\n  --ld-signature-width: 600px;\n  --ld-signature-height: 200px;\n  --ld-signature-padding: 16px;\n  --ld-signature-radius: 8px;\n}\n```\n\n## API\n\n### createSignaturePad(canvas, config)\n\n创建签名板实例。\n\n**参数**:\n- `canvas`: HTMLCanvasElement - 画布元素\n- `config`: SignatureConfig - 配置项\n\n**返回值**: SignatureInstance\n\n### SignatureInstance\n\n| 方法 | 描述 |\n|------|------|\n| `clear()` | 清空画布 |\n| `undo()` | 撤销上一步 |\n| `redo()` | 重做上一步 |\n| `isEmpty()` | 检查画布是否为空 |\n| `toDataURL(type?, quality?)` | 导出为 Data URL |\n| `toSVG()` | 导出为 SVG 字符串 |\n| `toJSON()` | 导出为 JSON 对象 |\n| `fromJSON(data)` | 从 JSON 恢复 |\n| `fromDataURL(dataUrl, options?)` | 从 Data URL 导入 |\n| `download(filename?, type?)` | 下载签名图片 |\n| `resize(width, height)` | 调整画布尺寸 |\n| `updateConfig(config)` | 更新配置 |\n| `destroy()` | 销毁实例 |\n\n### SignatureConfig\n\n| 属性 | 类型 | 默认值 | 描述 |\n|------|------|--------|------|\n| `width` | `number` | `600` | 画布宽度（px） |\n| `height` | `number` | `200` | 画布高度（px） |\n| `penColor` | `string` | `'#000000'` | 画笔颜色 |\n| `minWidth` | `number` | `0.5` | 最小笔画宽度 |\n| `maxWidth` | `number` | `2.5` | 最大笔画宽度 |\n| `backgroundColor` | `string` | `'rgba(0,0,0,0)'` | 背景颜色 |\n| `smoothAlgorithm` | `SmoothAlgorithm` | `CATMULL_ROM` | 平滑算法 |\n| `smoothTension` | `number` | `0.5` | 平滑张力 |\n| `velocityFilterWeight` | `number` | `0.7` | 速度滤波权重 |\n| `onBegin` | `() => void` | - | 开始绘制回调 |\n| `onChange` | `() => void` | - | 绘制中回调 |\n| `onEnd` | `() => void` | - | 结束绘制回调 |\n\n## 产物说明\n\n| 目录 | 格式 | 用途 |\n|------|------|------|\n| `es/` | ESM | bundler 消费 (import) |\n| `esm/` | ESM | 同 es/，保留模块结构 |\n| `lib/` | CJS | Node.js require() 消费 |\n| `dist/` | UMD | CDN / script 标签 |\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-8b3c8d3b0cf5174bc745441e63d5a827"}