{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "jsonforms-renderers",
  "description": "Complete set of JSONForms renderers and cells built on ShadCN. Covers all controls from @jsonforms/material-renderers: text, number, integer, boolean (checkbox + toggle), enum (select + radio + oneOf), anyOf, textarea, slider, date, time, datetime, array layout, and categorization tabs. Plus a full set of table cells for use inside array layouts.",
  "dependencies": [
    "@jsonforms/core",
    "@jsonforms/react"
  ],
  "registryDependencies": [
    "https://mksingh.dev/r/jsonforms-control.json",
    "https://mksingh.dev/r/jsonforms-number-control.json",
    "https://mksingh.dev/r/jsonforms-date-control.json",
    "https://mksingh.dev/r/jsonforms-time-control.json",
    "https://mksingh.dev/r/jsonforms-datetime-control.json",
    "https://mksingh.dev/r/jsonforms-boolean-control.json",
    "https://mksingh.dev/r/jsonforms-boolean-toggle-control.json",
    "https://mksingh.dev/r/jsonforms-enum-control.json",
    "https://mksingh.dev/r/jsonforms-oneof-enum-control.json",
    "https://mksingh.dev/r/jsonforms-oneof-radio-group-control.json",
    "https://mksingh.dev/r/jsonforms-anyof-string-or-enum-control.json",
    "https://mksingh.dev/r/jsonforms-textarea-control.json",
    "https://mksingh.dev/r/jsonforms-slider-control.json",
    "https://mksingh.dev/r/jsonforms-radio-group-control.json",
    "https://mksingh.dev/r/jsonforms-label.json",
    "https://mksingh.dev/r/jsonforms-group.json",
    "https://mksingh.dev/r/jsonforms-vertical-layout.json",
    "https://mksingh.dev/r/jsonforms-horizontal-layout.json",
    "https://mksingh.dev/r/jsonforms-categorization.json",
    "https://mksingh.dev/r/jsonforms-array-layout.json",
    "https://mksingh.dev/r/jsonforms-text-cell.json",
    "https://mksingh.dev/r/jsonforms-number-cell.json",
    "https://mksingh.dev/r/jsonforms-integer-cell.json",
    "https://mksingh.dev/r/jsonforms-boolean-cell.json",
    "https://mksingh.dev/r/jsonforms-boolean-toggle-cell.json",
    "https://mksingh.dev/r/jsonforms-date-cell.json",
    "https://mksingh.dev/r/jsonforms-time-cell.json",
    "https://mksingh.dev/r/jsonforms-enum-cell.json",
    "https://mksingh.dev/r/jsonforms-oneof-enum-cell.json",
    "https://mksingh.dev/r/jsonforms-number-format-cell.json",
    "https://mksingh.dev/r/jsonforms-utils.json"
  ],
  "files": [
    {
      "path": "registry/forms/renderers/index.ts",
      "content": "import { JsonFormsCellRendererRegistryEntry, JsonFormsRendererRegistryEntry } from '@jsonforms/core';\nimport AnyOfStringOrEnumControlRenderer, { anyOfStringOrEnumControlTester } from './anyof-string-or-enum-control';\nimport ArrayLayoutRenderer, { arrayLayoutTester } from './array-layout';\nimport BooleanControlRenderer, { booleanControlTester } from './boolean-control';\nimport BooleanToggleControlRenderer, { booleanToggleControlTester } from './boolean-toggle-control';\nimport CategorizationRenderer, { categorizationTester } from './categorization';\nimport ControlRenderer, { controlTester } from './control';\nimport DateControlRenderer, { dateControlTester } from './date-control';\nimport DateTimeControlRenderer, { dateTimeControlTester } from './datetime-control';\nimport EnumControlRenderer, { enumControlTester } from './enum-control';\nimport GroupRenderer, { groupTester } from './group';\nimport HorizontalLayoutRenderer, { horizontalLayoutTester } from './horizontal-layout';\nimport LabelRenderer, { labelTester } from './label';\nimport NumberControlRenderer, { numberControlTester } from './number-control';\nimport OneOfEnumControlRenderer, { oneOfEnumControlTester } from './oneof-enum-control';\nimport OneOfRadioGroupControlRenderer, { oneOfRadioGroupControlTester } from './oneof-radio-group-control';\nimport RadioGroupControlRenderer, { radioGroupControlTester } from './radio-group-control';\nimport SliderControlRenderer, { sliderControlTester } from './slider-control';\nimport TextareaControlRenderer, { textareaControlTester } from './textarea-control';\nimport TimeControlRenderer, { timeControlTester } from './time-control';\nimport VerticalLayoutRenderer, { verticalLayoutTester } from './vertical-layout';\n\nimport BooleanCell, { booleanCellTester } from './cells/boolean-cell';\nimport BooleanToggleCell, { booleanToggleCellTester } from './cells/boolean-toggle-cell';\nimport DateCell, { dateCellTester } from './cells/date-cell';\nimport EnumCell, { enumCellTester } from './cells/enum-cell';\nimport IntegerCell, { integerCellTester } from './cells/integer-cell';\nimport NumberCell, { numberCellTester } from './cells/number-cell';\nimport NumberFormatCell, { numberFormatCellTester } from './cells/number-format-cell';\nimport OneOfEnumCell, { oneOfEnumCellTester } from './cells/oneof-enum-cell';\nimport TextCell, { textCellTester } from './cells/text-cell';\nimport TimeCell, { timeCellTester } from './cells/time-cell';\n\n/**\n * All JSONForms renderers. Pass to the `renderers` prop of `<JsonForms />`.\n *\n * @example\n * import { jsonFormsRenderers, jsonFormsCells } from '~/components/forms/renderers';\n *\n * <JsonForms\n *   schema={schema}\n *   uischema={uischema}\n *   data={data}\n *   renderers={jsonFormsRenderers}\n *   cells={jsonFormsCells}\n *   onChange={({ data }) => setData(data)}\n * />\n */\nexport const jsonFormsRenderers: JsonFormsRendererRegistryEntry[] = [\n    // Layouts\n    { tester: verticalLayoutTester, renderer: VerticalLayoutRenderer },\n    { tester: horizontalLayoutTester, renderer: HorizontalLayoutRenderer },\n    { tester: categorizationTester, renderer: CategorizationRenderer },\n    { tester: groupTester, renderer: GroupRenderer },\n    { tester: arrayLayoutTester, renderer: ArrayLayoutRenderer },\n    // Display\n    { tester: labelTester, renderer: LabelRenderer },\n    // Controls — most specific first (higher rank wins)\n    { tester: oneOfRadioGroupControlTester, renderer: OneOfRadioGroupControlRenderer },\n    { tester: radioGroupControlTester, renderer: RadioGroupControlRenderer },\n    { tester: textareaControlTester, renderer: TextareaControlRenderer },\n    { tester: sliderControlTester, renderer: SliderControlRenderer },\n    { tester: anyOfStringOrEnumControlTester, renderer: AnyOfStringOrEnumControlRenderer },\n    { tester: oneOfEnumControlTester, renderer: OneOfEnumControlRenderer },\n    { tester: enumControlTester, renderer: EnumControlRenderer },\n    { tester: booleanToggleControlTester, renderer: BooleanToggleControlRenderer },\n    { tester: booleanControlTester, renderer: BooleanControlRenderer },\n    { tester: dateTimeControlTester, renderer: DateTimeControlRenderer },\n    { tester: dateControlTester, renderer: DateControlRenderer },\n    { tester: timeControlTester, renderer: TimeControlRenderer },\n    { tester: numberControlTester, renderer: NumberControlRenderer },\n    { tester: controlTester, renderer: ControlRenderer },\n];\n\n/**\n * All JSONForms cells. Pass to the `cells` prop of `<JsonForms />` alongside jsonFormsRenderers.\n * Cells are used inside array table layouts.\n */\nexport const jsonFormsCells: JsonFormsCellRendererRegistryEntry[] = [\n    { tester: oneOfEnumCellTester, cell: OneOfEnumCell },\n    { tester: enumCellTester, cell: EnumCell },\n    { tester: booleanToggleCellTester, cell: BooleanToggleCell },\n    { tester: booleanCellTester, cell: BooleanCell },\n    { tester: numberFormatCellTester, cell: NumberFormatCell },\n    { tester: numberCellTester, cell: NumberCell },\n    { tester: integerCellTester, cell: IntegerCell },\n    { tester: dateCellTester, cell: DateCell },\n    { tester: timeCellTester, cell: TimeCell },\n    { tester: textCellTester, cell: TextCell },\n];",
      "type": "registry:component",
      "target": "components/forms/renderers/index.ts"
    }
  ],
  "type": "registry:component"
}