{"$schema":"https:\/\/ui.particle.academy\/schema\/registry-item.json","name":"commit-composer","type":"registry:ui","title":"CommitComposer","description":"Controlled commit proposal form.","package":"fancy-git-ui","dependencies":[],"registryDependencies":[],"files":[{"path":"components\/fancy\/commit-composer\/commit-composer.tsx","content":"export interface CommitDraft { message: string; description?: string }\nexport interface CommitComposerProps {\n  value: CommitDraft;\n  onChange: (value: CommitDraft) => void;\n  onSubmit?: (value: CommitDraft) => void;\n  pending?: boolean;\n  className?: string;\n}\nexport function CommitComposer({ value, onChange, onSubmit, pending, className }: CommitComposerProps) {\n  return <form className={className} data-git-commit-composer=\"\" onSubmit={(event) => { event.preventDefault(); onSubmit?.(value); }}>\n    <label>Summary<input value={value.message} onChange={(event) => onChange({ ...value, message: event.target.value })} required \/><\/label>\n    <label>Description<textarea value={value.description ?? \"\"} onChange={(event) => onChange({ ...value, description: event.target.value })} \/><\/label>\n    <button type=\"submit\" disabled={pending || !value.message.trim()}>Review commit proposal<\/button>\n  <\/form>;\n}\n","type":"registry:ui","target":"components\/fancy\/commit-composer\/commit-composer.tsx"}]}