{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jsonforms-group",
  "description": "JSONForms collapsible accordion renderer for UISchema Group elements.",
  "dependencies": [
    "@jsonforms/core",
    "@jsonforms/react"
  ],
  "registryDependencies": [
    "accordion"
  ],
  "files": [
    {
      "path": "registry/forms/renderers/group.tsx",
      "content": "import { GroupLayout, LayoutProps, rankWith, uiTypeIs } from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsLayoutProps } from '@jsonforms/react';\n\nimport {\n    Accordion,\n    AccordionContent,\n    AccordionItem,\n    AccordionTrigger,\n} from '~/components/ui/accordion';\n\nconst GroupRenderer = (props: LayoutProps) => {\n    const { uischema, schema, path, visible, renderers, cells } = props;\n    const group = uischema as GroupLayout;\n\n    if (!visible) return null;\n\n    return (\n        <Accordion defaultValue={['group']} className=\"my-2\">\n            <AccordionItem value=\"group\">\n                <AccordionTrigger>{group.label}</AccordionTrigger>\n                <AccordionContent>\n                    <div className=\"flex flex-col gap-2\">\n                        {group.elements.map((element, index) => (\n                            <JsonFormsDispatch\n                                key={index}\n                                schema={schema}\n                                uischema={element}\n                                path={path}\n                                renderers={renderers}\n                                cells={cells}\n                            />\n                        ))}\n                    </div>\n                </AccordionContent>\n            </AccordionItem>\n        </Accordion>\n    );\n};\n\nexport const groupTester = rankWith(1, uiTypeIs('Group'));\nexport default withJsonFormsLayoutProps(GroupRenderer);",
      "type": "registry:component",
      "target": "components/forms/renderers/group.tsx"
    }
  ],
  "type": "registry:component"
}