{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "tablecn",
  "homepage": "https://tablecn.com",
  "items": [
    {
      "name": "data-table",
      "type": "registry:component",
      "title": "Data Table",
      "description": "A feature-rich data table component with server-side filtering, sorting, and pagination",
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "command",
        "dropdown-menu",
        "input",
        "popover",
        "select",
        "separator",
        "slider",
        "table"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react", "nuqs"],
      "files": [
        {
          "path": "src/components/data-table/data-table.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table.tsx"
        },
        {
          "path": "src/components/data-table/data-table-column-header.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-column-header.tsx"
        },
        {
          "path": "src/components/data-table/data-table-pagination.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-pagination.tsx"
        },
        {
          "path": "src/components/data-table/data-table-view-options.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-view-options.tsx"
        },
        {
          "path": "src/components/data-table/data-table-faceted-filter.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-faceted-filter.tsx"
        },
        {
          "path": "src/components/data-table/data-table-toolbar.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-toolbar.tsx"
        },
        {
          "path": "src/components/data-table/data-table-slider-filter.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-slider-filter.tsx"
        },
        {
          "path": "src/components/data-table/data-table-date-filter.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-date-filter.tsx"
        },
        {
          "path": "src/components/data-table/data-table-skeleton.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-skeleton.tsx"
        },
        {
          "path": "src/hooks/use-callback-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-data-table.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-debounced-callback.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/lib/data-table.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/format.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/parsers.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/config/data-table.ts",
          "type": "registry:file",
          "target": "src/config/data-table.ts"
        },
        {
          "path": "src/types/data-table.ts",
          "type": "registry:file",
          "target": "src/types/data-table.ts"
        }
      ]
    },
    {
      "name": "data-table-sort-list",
      "type": "registry:component",
      "title": "Data Table Sort List",
      "description": "A sort list component for the data table",
      "registryDependencies": [
        "badge",
        "button",
        "command",
        "popover",
        "select"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "files": [
        {
          "path": "src/components/data-table/data-table-sort-list.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-sort-list.tsx"
        },
        {
          "path": "src/components/ui/sortable.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/sortable.tsx"
        },
        {
          "path": "src/lib/compose-refs.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/config/data-table.ts",
          "type": "registry:file",
          "target": "src/config/data-table.ts"
        },
        {
          "path": "src/types/data-table.ts",
          "type": "registry:file",
          "target": "src/types/data-table.ts"
        }
      ]
    },
    {
      "name": "data-table-filter-list",
      "type": "registry:component",
      "title": "Data Table Filter List",
      "description": "A filter list component for the data table",
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "command",
        "input",
        "popover",
        "select"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react", "nuqs"],
      "files": [
        {
          "path": "src/components/data-table/data-table-filter-list.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-filter-list.tsx"
        },
        {
          "path": "src/components/data-table/data-table-range-filter.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-range-filter.tsx"
        },
        {
          "path": "src/components/data-table/data-table-advanced-toolbar.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-advanced-toolbar.tsx"
        },
        {
          "path": "src/components/ui/sortable.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/sortable.tsx"
        },
        {
          "path": "src/components/ui/faceted.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/faceted.tsx"
        },
        {
          "path": "src/hooks/use-callback-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-debounced-callback.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/lib/compose-refs.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/data-table.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/format.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/id.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/parsers.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/config/data-table.ts",
          "type": "registry:file",
          "target": "src/config/data-table.ts"
        },
        {
          "path": "src/types/data-table.ts",
          "type": "registry:file",
          "target": "src/types/data-table.ts"
        }
      ]
    },
    {
      "name": "data-table-filter-menu",
      "type": "registry:component",
      "title": "Data Table Filter Menu",
      "description": "A filter menu component for the data table",
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "command",
        "input",
        "popover",
        "select"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react", "nuqs"],
      "files": [
        {
          "path": "src/components/data-table/data-table-filter-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-filter-menu.tsx"
        },
        {
          "path": "src/components/data-table/data-table-range-filter.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-range-filter.tsx"
        },
        {
          "path": "src/components/data-table/data-table-advanced-toolbar.tsx",
          "type": "registry:component",
          "target": "src/components/data-table/data-table-advanced-toolbar.tsx"
        },
        {
          "path": "src/hooks/use-callback-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-debounced-callback.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/lib/data-table.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/format.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/id.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/parsers.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/config/data-table.ts",
          "type": "registry:file",
          "target": "src/config/data-table.ts"
        },
        {
          "path": "src/types/data-table.ts",
          "type": "registry:file",
          "target": "src/types/data-table.ts"
        }
      ]
    },
    {
      "name": "data-grid",
      "type": "registry:component",
      "title": "Data Grid",
      "description": "A high-performance editable data grid component with virtualization, keyboard navigation, and cell editing",
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "checkbox",
        "command",
        "dialog",
        "dropdown-menu",
        "input",
        "popover",
        "select",
        "separator",
        "skeleton",
        "textarea",
        "tooltip"
      ],
      "dependencies": [
        "@tanstack/react-table",
        "@tanstack/react-virtual",
        "lucide-react",
        "sonner"
      ],
      "files": [
        {
          "path": "src/components/data-grid/data-grid.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-presence.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-presence.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-cell.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-cell.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-cell-wrapper.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-cell-wrapper.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-cell-variants.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-cell-variants.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-column-header.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-column-header.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-context-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-context-menu.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-paste-dialog.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-paste-dialog.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-row.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-row.tsx"
        },
        {
          "path": "src/components/data-grid/data-grid-search.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-search.tsx"
        },
        {
          "path": "src/components/ui/direction.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/direction.tsx"
        },
        {
          "path": "src/hooks/use-as-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-badge-overflow.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-callback-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-data-grid.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-debounced-callback.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-isomorphic-layout-effect.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-lazy-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/lib/compose-refs.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/data-grid.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/types/data-grid.ts",
          "type": "registry:file",
          "target": "src/types/data-grid.ts"
        }
      ]
    },
    {
      "name": "data-grid-select-column",
      "type": "registry:component",
      "title": "Data Grid Select Column",
      "description": "A reusable select column definition for the data grid with checkbox selection and shift-click support",
      "registryDependencies": ["checkbox"],
      "dependencies": ["@tanstack/react-table"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-select-column.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-select-column.tsx"
        }
      ]
    },
    {
      "name": "data-grid-sort-menu",
      "type": "registry:component",
      "title": "Data Grid Sort Menu",
      "description": "A sort menu component for the data grid with drag-and-drop reordering",
      "registryDependencies": [
        "badge",
        "button",
        "command",
        "popover",
        "select"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-sort-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-sort-menu.tsx"
        },
        {
          "path": "src/components/ui/direction.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/direction.tsx"
        },
        {
          "path": "src/components/ui/sortable.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/sortable.tsx"
        },
        {
          "path": "src/lib/compose-refs.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "data-grid-row-height-menu",
      "type": "registry:component",
      "title": "Data Grid Row Height Menu",
      "description": "A row height menu component for the data grid to adjust row sizes",
      "registryDependencies": ["select"],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-row-height-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-row-height-menu.tsx"
        }
      ]
    },
    {
      "name": "data-grid-view-menu",
      "type": "registry:component",
      "title": "Data Grid View Menu",
      "description": "A view menu component for the data grid to toggle column visibility",
      "registryDependencies": ["button", "command", "popover"],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-view-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-view-menu.tsx"
        },
        {
          "path": "src/components/ui/direction.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/direction.tsx"
        }
      ]
    },
    {
      "name": "data-grid-keyboard-shortcuts",
      "type": "registry:component",
      "title": "Data Grid Keyboard Shortcuts",
      "description": "A keyboard shortcuts dialog component for the data grid showing all available shortcuts",
      "registryDependencies": ["button", "dialog", "input", "kbd", "separator"],
      "dependencies": ["lucide-react"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-keyboard-shortcuts.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-keyboard-shortcuts.tsx"
        },
        {
          "path": "src/components/ui/direction.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/direction.tsx"
        }
      ]
    },
    {
      "name": "data-grid-filter-menu",
      "type": "registry:component",
      "title": "Data Grid Filter Menu",
      "description": "A filter menu component for the data grid with drag-and-drop reordering and advanced filtering",
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "command",
        "input",
        "popover",
        "select"
      ],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-filter-menu.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-filter-menu.tsx"
        },
        {
          "path": "src/components/ui/direction.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/direction.tsx"
        },
        {
          "path": "src/components/ui/sortable.tsx",
          "type": "registry:ui",
          "target": "src/components/ui/sortable.tsx"
        },
        {
          "path": "src/hooks/use-debounced-callback.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/lib/compose-refs.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/lib/data-grid-filters.ts",
          "type": "registry:lib",
          "target": "src/lib/data-grid-filters.ts"
        },
        {
          "path": "src/lib/format.ts",
          "type": "registry:lib"
        },
        {
          "path": "src/types/data-grid.ts",
          "type": "registry:file",
          "target": "src/types/data-grid.ts"
        }
      ]
    },
    {
      "name": "data-grid-skeleton",
      "type": "registry:component",
      "title": "Data Grid Skeleton",
      "description": "A composable skeleton component for the data grid with toolbar and grid parts",
      "registryDependencies": ["skeleton"],
      "dependencies": [],
      "files": [
        {
          "path": "src/components/data-grid/data-grid-skeleton.tsx",
          "type": "registry:component",
          "target": "src/components/data-grid/data-grid-skeleton.tsx"
        }
      ]
    },
    {
      "name": "use-data-grid-undo-redo",
      "type": "registry:hook",
      "title": "Use Data Grid Undo Redo",
      "description": "An undo/redo hook for the data grid with keyboard shortcuts and history management",
      "registryDependencies": [],
      "dependencies": ["sonner"],
      "files": [
        {
          "path": "src/hooks/use-data-grid-undo-redo.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-as-ref.ts",
          "type": "registry:hook"
        },
        {
          "path": "src/hooks/use-lazy-ref.ts",
          "type": "registry:hook"
        }
      ]
    }
  ]
}
