{
  "name": "form",
  "type": "registry:ui",
  "title": "Form",
  "description": "Form coordinates related fields, submission, validation, and server errors in one accessible workflow.",
  "registryDependencies": [
    "@siteplane/base",
    "@siteplane/field"
  ],
  "dependencies": [
    "@base-ui/react@1.5.0"
  ],
  "files": [
    {
      "path": "src/components/ui/form.tsx",
      "type": "registry:ui",
      "content": "\"use client\";\n\nimport { Form as FormPrimitive } from \"@base-ui/react/form\";\nimport type React from \"react\";\n\nexport function Form({\n  className,\n  ...props\n}: FormPrimitive.Props): React.ReactElement {\n  return <FormPrimitive className={className} data-slot=\"form\" {...props} />;\n}\n\nexport { FormPrimitive };\n"
    }
  ],
  "categories": [
    "form-controls"
  ],
  "docs": "# Form\n\n> Siteplane UI release `0.1.1`.\n\n## Public Purpose\n\nForm coordinates related fields, submission, validation, and server errors in\none accessible workflow.\n\n## Import\n\n`import { Form } from \"@/components/ui/form\";`\n\n`import { Field, FieldDescription, FieldError, FieldLabel } from \"@/components/ui/field\";`\n\n## Public API\n\n- Give every Field a stable `name`.\n- `errors` accepts `Record<string, string | string[]>`; each key matches a\n  Field name and renders through its FieldError.\n- Use the native `onSubmit` flow and real submit and reset Button controls.\n- Group related sections with Fieldset and FieldsetLegend.\n\n## Public Motion\n\n- Form has no animation of its own.\n- Controls and Buttons retain their native focus, loading, validation, and\n  reduced-motion behavior.\n- Reserve stable space or use concise feedback so validation does not move the\n  entire workflow unexpectedly.\n\n## Public Accessibility\n\n- Every control requires a connected FieldLabel or accessible name.\n- Keep Field name, invalid state, Form errors, and FieldError synchronized.\n- Submit and reset Buttons need explicit visible action labels.\n- Move focus or provide an error summary when submission fails across several\n  fields.\n\n## Public Agent Guidance\n\n- Use Form for workflows with several related fields and shared submission or\n  errors.\n- Do not use raw form controls without Field connections in visible app flows.\n- Keep server and client errors in the same Field error contract.\n\n## Public Links\n\n- [Documentation and preview](https://ui.siteplane.io/docs/components/form-controls/form)\n\n- [Registry source](https://ui.siteplane.io/r/form.json)\n",
  "meta": {
    "siteplane:agentContractVersion": 1,
    "siteplane:docs": "https://ui.siteplane.io/docs/components/form-controls/form",
    "siteplane:releaseVersion": "0.1.1",
    "siteplane:sourceOwned": true
  },
  "devDependencies": []
}
