{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "z-data-table",
  "title": "Z Data Table",
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [
    "https://ui.orchid.ai/r/orchid-foundation.json",
    "https://ui.orchid.ai/r/orchid-theme.json",
    "https://ui.orchid.ai/r/z-button.json"
  ],
  "files": [
    {
      "path": "registry/ui/orchid/spectrum/organisms/z-data-table/z-data-table.tsx",
      "content": "\"use client\";\nimport ZButton from \"../../atoms/z-button/z-button\";\nimport type { HeroIcon } from \"../../../lib/types\";\nimport { cn } from \"../../../lib/ui-utils\";\nexport type DataTableColumn = {\n    key: string;\n    label: string;\n    width?: string;\n};\nexport type DataTableAction = {\n    label: string;\n    icon?: HeroIcon;\n    onClick: () => void;\n    variant?: 'primary' | 'secondary' | 'transparent';\n};\nconst EMPTY_ACTIONS: DataTableAction[] = [];\ntype ZDataTableProps = {\n    title?: string;\n    columns: DataTableColumn[];\n    data: Record<string, any>[];\n    actions?: DataTableAction[];\n    className?: string;\n};\nexport default function ZDataTable({ title, columns, data, actions = EMPTY_ACTIONS, className, }: ZDataTableProps) {\n    const gridStyle = {\n        gridTemplateColumns: `repeat(${columns.length}, 1fr)`,\n    };\n    return (<div className={cn('flex flex-col gap-4', className)}>\n      \n      {title && <div className=\"text-copy text-blue-600\">{title}</div>}\n\n      \n      <div className=\"bg-surface-subtle overflow-hidden rounded-xl\">\n        <div className=\"bg-surface-weak border-neutral-subtle border-b\">\n          <div className=\"text-copy-sm text-neutral-subtle grid gap-4 px-4 py-3 font-medium\" style={gridStyle}>\n            {columns.map((column) => (<div key={column.key}>{column.label}</div>))}\n          </div>\n        </div>\n\n        <div className=\"divide-neutral-subtle divide-y\">\n          {data.map((row, index) => (<div key={`row-${index}-${JSON.stringify(row)}`} className={cn('text-copy-sm grid gap-4 px-4 py-3', index % 2 === 0 ? 'bg-surface' : 'bg-surface-subtle')} style={gridStyle}>\n              {columns.map((column) => (<div key={`${column.key}-${index}`} className=\"text-neutral\">\n                  {row[column.key] || '-'}\n                </div>))}\n            </div>))}\n        </div>\n      </div>\n\n      \n      {actions.length > 0 && (<div className=\"flex items-center justify-between\">\n          <div className=\"flex items-center gap-3\">\n            {actions.slice(0, -1).map((action, index) => (<ZButton key={`action-${index}-${action.label}`} variant={action.variant || 'secondary'} size=\"sm\" onClick={action.onClick} leadingIcon={action.icon}>\n                {action.label}\n              </ZButton>))}\n          </div>\n\n          {actions.length > 0 && (<ZButton variant={actions[actions.length - 1].variant || 'secondary'} size=\"sm\" onClick={actions[actions.length - 1].onClick} leadingIcon={actions[actions.length - 1].icon}>\n              {actions[actions.length - 1].label}\n            </ZButton>)}\n        </div>)}\n    </div>);\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/spectrum/organisms/z-data-table/z-data-table.tsx"
    }
  ],
  "type": "registry:ui"
}