{
  "name": "fieldset",
  "type": "registry:ui",
  "title": "Fieldset",
  "description": "Fieldset groups related form fields under a shared semantic legend.",
  "registryDependencies": [
    "@siteplane/base"
  ],
  "dependencies": [
    "@base-ui/react@1.5.0"
  ],
  "files": [
    {
      "path": "src/components/ui/fieldset.tsx",
      "type": "registry:ui",
      "content": "\"use client\";\n\nimport { Fieldset as FieldsetPrimitive } from \"@base-ui/react/fieldset\";\nimport type React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport function Fieldset({\n  className,\n  ...props\n}: FieldsetPrimitive.Root.Props): React.ReactElement {\n  return (\n    <FieldsetPrimitive.Root\n      className={cn(\"grid gap-3\", className)}\n      data-slot=\"fieldset\"\n      {...props}\n    />\n  );\n}\nexport function FieldsetLegend({\n  className,\n  ...props\n}: FieldsetPrimitive.Legend.Props): React.ReactElement {\n  return (\n    <FieldsetPrimitive.Legend\n      className={cn(\"font-semibold text-foreground\", className)}\n      data-slot=\"fieldset-legend\"\n      {...props}\n    />\n  );\n}\n\nexport { FieldsetPrimitive };\n"
    }
  ],
  "categories": [
    "form-controls"
  ],
  "docs": "# Fieldset\n\n> Siteplane UI release `0.1.1`.\n\n## Public Purpose\n\nFieldset groups related form fields under one shared semantic legend. A\nstandalone field does not need a Fieldset.\n\n## Import\n\n`import { Fieldset, FieldsetLegend } from \"@/components/ui/fieldset\";`\n\n## Public API\n\n- `Fieldset` renders a native fieldset and `FieldsetLegend` provides its\n  group name.\n- Put `FieldsetLegend` first, then compose each control with `Field`.\n- `disabled` disables all descendant form controls.\n- The default layout is a grid with system spacing; use existing spacing classes\n  only when the composition needs a different density.\n\n## Public Motion\n\n- Fieldset has no animation.\n- Descendant controls retain their own focus, disabled, and reduced-motion\n  behavior.\n- Disabled and nested Fieldsets must not change control dimensions.\n\n## Public Accessibility\n\n- Every Fieldset requires a `FieldsetLegend` that names the group.\n- Connect optional group descriptions with `aria-describedby`.\n- Keep each descendant control connected to its own FieldLabel and FieldError.\n- Do not use Fieldset only for visual layout when the fields are not semantically\n  related.\n\n## Public Agent Guidance\n\n- Group related controls with exactly one legend.\n- Do not place fields in a Fieldset without `FieldsetLegend`.\n- Preserve native fieldset and disabled semantics.\n\n## Public Links\n\n- [Documentation and preview](https://ui.siteplane.io/docs/components/form-controls/fieldset)\n\n- [Registry source](https://ui.siteplane.io/r/fieldset.json)\n",
  "meta": {
    "siteplane:agentContractVersion": 1,
    "siteplane:docs": "https://ui.siteplane.io/docs/components/form-controls/fieldset",
    "siteplane:releaseVersion": "0.1.1",
    "siteplane:sourceOwned": true
  },
  "devDependencies": []
}
