{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "mksingh",
  "homepage": "https://registry.mksingh.dev",
  "items": [
    {
      "name": "typography",
      "type": "registry:component",
      "description": "A polymorphic Typography component with 14 variants (hero, h1–h4, p, lead, large, small, muted, tiny, blockquote, code, error) built with cva. Renders the semantically correct HTML element by default with full support for the `as` prop.",
      "dependencies": [
        "class-variance-authority"
      ],
      "files": [
        {
          "path": "registry/components/typography.tsx",
          "type": "registry:component",
          "target": "components/ui/typography.tsx"
        }
      ]
    },
    {
      "name": "use-isomorphic-layout-effect",
      "type": "registry:hook",
      "description": "A React hook that provides cross-platform compatibility for useLayoutEffect, automatically falling back to useEffect on the server-side to prevent hydration mismatches while maintaining synchronous DOM updates on the client.",
      "dependencies": [
        "react"
      ],
      "files": [
        {
          "path": "registry/hooks/use-isomorphic-layout-effect.ts",
          "type": "registry:hook",
          "target": "hooks/use-isomorphic-layout-effect.ts"
        }
      ]
    },
    {
      "name": "use-media-query-hook",
      "type": "registry:hook",
      "description": "A React hook for responsive design that listens to CSS media queries and returns boolean values, enabling components to conditionally render content based on screen size, device orientation, or other media features.",
      "dependencies": [
        "react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/use-isomorphic-layout-effect.json"
      ],
      "files": [
        {
          "path": "registry/hooks/use-media-query.ts",
          "type": "registry:hook",
          "target": "hooks/use-media-query.ts"
        }
      ]
    },
    {
      "name": "jsonforms-anyof-string-or-enum-control",
      "type": "registry:component",
      "description": "JSONForms combobox renderer for anyOf schemas that combine enum values with a plain string type. Renders a text input with a datalist dropdown — user can pick a suggestion or type freely.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/anyof-string-or-enum-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/anyof-string-or-enum-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-array-layout",
      "type": "registry:component",
      "description": "JSONForms accordion-based renderer for arrays of objects. Each item renders in a collapsible panel with add, remove, and reorder controls.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "accordion",
        "button"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/array-layout.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/array-layout.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-boolean-control",
      "type": "registry:component",
      "description": "JSONForms checkbox renderer for boolean type fields.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "checkbox",
        "label"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/boolean-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/boolean-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-boolean-toggle-control",
      "type": "registry:component",
      "description": "JSONForms switch/toggle renderer for boolean fields. Activated by setting options.toggle to true in the UISchema.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "switch",
        "label"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/boolean-toggle-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/boolean-toggle-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-categorization",
      "type": "registry:component",
      "description": "JSONForms tabs/categorization layout renderer for UISchema Categorization elements.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "tabs"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/categorization.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/categorization.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-boolean-cell",
      "type": "registry:component",
      "description": "JSONForms checkbox cell for boolean fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "checkbox"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/boolean-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/boolean-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-boolean-toggle-cell",
      "type": "registry:component",
      "description": "JSONForms switch cell for boolean fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "switch"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/boolean-toggle-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/boolean-toggle-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-date-cell",
      "type": "registry:component",
      "description": "JSONForms date cell for date fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/date-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/date-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-enum-cell",
      "type": "registry:component",
      "description": "JSONForms select cell for enum fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "select"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/enum-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/enum-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-integer-cell",
      "type": "registry:component",
      "description": "JSONForms integer cell for integer fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/integer-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/integer-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-number-cell",
      "type": "registry:component",
      "description": "JSONForms number cell for number fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/number-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/number-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-number-format-cell",
      "type": "registry:component",
      "description": "JSONForms formatted number cell for fields inside array table layouts. Displays the current value formatted; on focus switches to a raw number input.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/number-format-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/number-format-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-oneof-enum-cell",
      "type": "registry:component",
      "description": "JSONForms select cell for oneOf enum fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "select"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/oneof-enum-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/oneof-enum-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-text-cell",
      "type": "registry:component",
      "description": "JSONForms text cell for string fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/text-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/text-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-time-cell",
      "type": "registry:component",
      "description": "JSONForms time cell for time fields inside array table layouts.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/cells/time-cell.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/cells/time-cell.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-control",
      "type": "registry:component",
      "description": "JSONForms text input renderer for string type fields.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-date-control",
      "type": "registry:component",
      "description": "JSONForms date input renderer.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/date-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/date-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-datetime-control",
      "type": "registry:component",
      "description": "JSONForms datetime-local input renderer.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/datetime-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/datetime-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-enum-control",
      "type": "registry:component",
      "description": "JSONForms select/dropdown renderer for enum type fields.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "select"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/enum-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/enum-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-group",
      "type": "registry:component",
      "description": "JSONForms collapsible accordion renderer for UISchema Group elements.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "accordion"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/group.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/group.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-horizontal-layout",
      "type": "registry:component",
      "description": "JSONForms horizontal row layout renderer. Children are distributed equally.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/horizontal-layout.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/horizontal-layout.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-label",
      "type": "registry:component",
      "description": "JSONForms static label/heading renderer for UISchema Label elements.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/label.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/label.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-number-control",
      "type": "registry:component",
      "description": "JSONForms number/integer input renderer.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/number-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/number-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-oneof-enum-control",
      "type": "registry:component",
      "description": "JSONForms select renderer for oneOf enum fields. Uses withJsonFormsOneOfEnumProps so options include title/const pairs.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "select"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/oneof-enum-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/oneof-enum-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-oneof-radio-group-control",
      "type": "registry:component",
      "description": "JSONForms radio group renderer for oneOf enum fields. Activated by setting options.format to 'radio' in the UISchema.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "radio-group",
        "label"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/oneof-radio-group-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/oneof-radio-group-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-radio-group-control",
      "type": "registry:component",
      "description": "JSONForms radio group renderer for enum fields. Activated by setting options.format to 'radio' in the UISchema.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "radio-group",
        "label"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/radio-group-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/radio-group-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-slider-control",
      "type": "registry:component",
      "description": "JSONForms slider renderer for numeric fields with minimum/maximum defined in schema.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "slider"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/slider-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/slider-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-textarea-control",
      "type": "registry:component",
      "description": "JSONForms multi-line textarea renderer. Activated by setting options.multi to true in the UISchema.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "textarea"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/textarea-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/textarea-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-time-control",
      "type": "registry:component",
      "description": "JSONForms time input renderer.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/typography.json",
        "input"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/time-control.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/time-control.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-vertical-layout",
      "type": "registry:component",
      "description": "JSONForms vertical stack layout renderer.",
      "dependencies": [
        "@jsonforms/core",
        "@jsonforms/react"
      ],
      "files": [
        {
          "path": "registry/forms/renderers/vertical-layout.tsx",
          "type": "registry:component",
          "target": "components/forms/renderers/vertical-layout.tsx"
        }
      ]
    },
    {
      "name": "jsonforms-renderers",
      "type": "registry:component",
      "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",
          "type": "registry:component",
          "target": "components/forms/renderers/index.ts"
        }
      ]
    },
    {
      "name": "jsonforms-utils",
      "type": "registry:lib",
      "description": "Utility functions for JSONForms — includes translateError for rendering custom error messages from JSON Schema errorMessage annotations.",
      "files": [
        {
          "path": "registry/forms/utils.ts",
          "type": "registry:lib",
          "target": "components/forms/utils.ts"
        }
      ]
    },
    {
      "name": "tanstack-start-react-themes",
      "type": "registry:lib",
      "description": "A comprehensive theme management library for TanStack React Start applications with server-side rendering support, automatic system preference detection, and seamless user preference persistence.",
      "dependencies": [
        "@tanstack/react-start",
        "@tanstack/react-router",
        "zod"
      ],
      "registryDependencies": [
        "https://mksingh.dev/r/use-media-query-hook.json"
      ],
      "files": [
        {
          "path": "registry/lib/theme/action.ts",
          "type": "registry:lib",
          "target": "lib/theme/action.ts"
        },
        {
          "path": "registry/lib/theme/schema.ts",
          "type": "registry:lib",
          "target": "lib/theme/schema.ts"
        },
        {
          "path": "registry/lib/theme/provider.tsx",
          "type": "registry:lib",
          "target": "lib/theme/provider.tsx"
        },
        {
          "path": "registry/lib/theme/index.ts",
          "type": "registry:lib",
          "target": "lib/theme/index.ts"
        }
      ]
    }
  ]
}