{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jsonforms-categorization",
  "description": "JSONForms tabs/categorization layout renderer for UISchema Categorization elements.",
  "dependencies": [
    "@jsonforms/core",
    "@jsonforms/react"
  ],
  "registryDependencies": [
    "tabs"
  ],
  "files": [
    {
      "path": "registry/forms/renderers/categorization.tsx",
      "content": "import { Categorization, Category, LayoutProps, rankWith, uiTypeIs } from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsLayoutProps } from '@jsonforms/react';\n\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '~/components/ui/tabs';\n\nconst CategorizationRenderer = (props: LayoutProps) => {\n    const { uischema, schema, path, visible, renderers, cells } = props;\n    const categorization = uischema as Categorization;\n    const categories = categorization.elements as Category[];\n\n    if (!visible || !categories?.length) return null;\n\n    return (\n        <Tabs defaultValue={categories[0].label}>\n            <TabsList>\n                {categories.map(category => (\n                    <TabsTrigger key={category.label} value={category.label}>\n                        {category.label}\n                    </TabsTrigger>\n                ))}\n            </TabsList>\n            {categories.map(category => (\n                <TabsContent key={category.label} value={category.label}>\n                    <div className=\"flex flex-col gap-2 pt-2\">\n                        {category.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                </TabsContent>\n            ))}\n        </Tabs>\n    );\n};\n\nexport const categorizationTester = rankWith(10, uiTypeIs('Categorization'));\nexport default withJsonFormsLayoutProps(CategorizationRenderer);",
      "type": "registry:component",
      "target": "components/forms/renderers/categorization.tsx"
    }
  ],
  "type": "registry:component"
}