{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "data-table-card", "title": "Data Table Card", "description": "Table-engine-neutral card shell with toolbar, content, footer, and valid empty-table states.", "registryDependencies": [ "askyourpolicy/ss-registry/stitch-base", "askyourpolicy/ss-registry/card", "askyourpolicy/ss-registry/empty", "askyourpolicy/ss-registry/spinner", "askyourpolicy/ss-registry/table" ], "files": [ { "path": "src/components/ui/data-table-card.tsx", "content": "import * as React from \"react\";\n\nimport { Card } from \"@/components/ui/card\";\nimport { Empty } from \"@/components/ui/empty\";\nimport { Spinner } from \"@/components/ui/spinner\";\nimport { Table, TableCell, TableRow } from \"@/components/ui/table\";\nimport { cn } from \"@/lib/utils\";\n\nfunction DataTableCard({ className, ...props }: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DataTableCardToolbar({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction DataTableCardHeading({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction DataTableCardTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n \n );\n}\n\nfunction DataTableCardDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n \n );\n}\n\nfunction DataTableCardControls({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction DataTableCardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction DataTableCardTable({ className, ...props }: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DataTableCardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\ntype DataTableCardEmptyRowProps = Omit, \"children\"> & {\n cellClassName?: string;\n children: React.ReactNode;\n colSpan: number;\n};\n\nfunction DataTableCardEmptyRow({\n cellClassName,\n children,\n className,\n colSpan,\n ...props\n}: DataTableCardEmptyRowProps) {\n return (\n \n \n {children}\n \n \n );\n}\n\n// A card holding an empty state trades its ring for a dashed border, which reads as \"nothing here\"\n// rather than a surface with content. A card still waiting on data must not read that way, so the two\n// are separate components: naming the state at the call site is what selects the treatment.\nfunction DataTableCardEmptyState({ className, ...props }: React.ComponentProps) {\n return (\n \n );\n}\n\ntype DataTableCardLoadingStateProps = Omit, \"children\"> & {\n label?: string;\n};\n\nfunction DataTableCardLoadingState({\n className,\n label = \"Loading\",\n ...props\n}: DataTableCardLoadingStateProps) {\n return (\n \n \n {label}\n \n );\n}\n\nexport {\n DataTableCard,\n DataTableCardContent,\n DataTableCardControls,\n DataTableCardDescription,\n DataTableCardEmptyRow,\n DataTableCardEmptyState,\n DataTableCardFooter,\n DataTableCardHeading,\n DataTableCardLoadingState,\n DataTableCardTable,\n DataTableCardTitle,\n DataTableCardToolbar,\n type DataTableCardEmptyRowProps,\n type DataTableCardLoadingStateProps,\n};\n", "type": "registry:ui" } ], "type": "registry:ui" }