import { Eraser } from 'lucide-react'; import { useEffect, useRef } from 'react'; import SignatureCanvasImport from 'react-signature-canvas'; import InputError from '@/components/input-error'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; // react-signature-canvas ships as a CommonJS/UMD bundle. Vite's dev-server // pre-bundling wraps its `module.exports` (itself `{ __esModule: true, // default: SignatureCanvas }`) as the ESM default export, so the default // import resolves one layer too shallow. Unwrap it before use. const SignatureCanvas = (( SignatureCanvasImport as unknown as { default?: typeof SignatureCanvasImport; } ).default ?? SignatureCanvasImport) as typeof SignatureCanvasImport; type SignaturePadProps = { name: string; error?: string; /** Renders a small, chrome-free pad sized to sit inline with other * compact signature placeholders (e.g. a document's signature row). */ compact?: boolean; /** Fires with the captured signature file whenever the drawing changes, * for callers that submit it outside a native