12 lines
3.7 KiB
JavaScript
12 lines
3.7 KiB
JavaScript
import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{E as c}from"./empty-state-DRUGJ9ip.js";import{F as u}from"./ChevronRightIcon-CMQWsJeW.js";function p({data:i,columns:t,onRowClick:a}){const n=t.find(r=>r.primary),d=t.filter(r=>!r.hideOnMobile&&!r.primary);return e.jsx("div",{className:"md:hidden space-y-3",children:i.map((r,l)=>{var m;return e.jsxs("div",{className:`
|
|
bg-card border border-border rounded-xl p-4
|
|
shadow-[var(--cp-shadow-1)]
|
|
transition-all duration-[var(--cp-duration-fast)]
|
|
active:scale-[0.98] active:shadow-none
|
|
${a?"cursor-pointer active:bg-muted/50":""}
|
|
`,onClick:()=>a==null?void 0:a(r),role:a?"button":void 0,tabIndex:a?0:void 0,onKeyDown:s=>{a&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),a(r))},style:{animationDelay:`${l*50}ms`},children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 mb-3",children:[e.jsx("div",{className:"min-w-0 flex-1",children:e.jsx("div",{className:"font-semibold text-foreground",children:(m=n??t[0])==null?void 0:m.render(r)})}),a&&e.jsx(u,{className:"h-5 w-5 text-muted-foreground/50 flex-shrink-0"})]}),e.jsx("div",{className:"space-y-2",children:d.map((s,o)=>!n&&o===0&&s===t[0]?null:e.jsxs("div",{className:"flex items-center justify-between gap-4 text-sm",children:[e.jsx("span",{className:"text-muted-foreground font-medium flex-shrink-0",children:s.header}),e.jsx("span",{className:"text-foreground text-right min-w-0 truncate",children:s.render(r)})]},s.key))})]},r.id)})})}function f({data:i,columns:t,onRowClick:a,className:n="",forceTableView:d=!1}){return e.jsx("div",{className:`${d?"":"hidden md:block"} overflow-x-auto`,children:e.jsxs("table",{className:`min-w-full divide-y divide-border ${n}`,children:[e.jsx("thead",{className:"bg-muted/50",children:e.jsx("tr",{children:t.map(r=>e.jsx("th",{className:`px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider ${r.className||""}`,children:r.header},r.key))})}),e.jsx("tbody",{className:"bg-card divide-y divide-border",children:i.map(r=>e.jsx("tr",{className:`hover:bg-muted/30 transition-colors duration-[var(--cp-transition-fast)] ${a?"cursor-pointer":""}`,onClick:()=>a==null?void 0:a(r),children:t.map(l=>e.jsx("td",{className:`px-6 py-4 whitespace-nowrap ${l.className||""}`,children:l.render(r)},l.key))},r.id))})]})})}function x({data:i,columns:t,emptyState:a,onRowClick:n,className:d="",forceTableView:r=!1}){return i.length===0&&a?e.jsx(c,{icon:a.icon,title:a.title,description:a.description,variant:"compact"}):e.jsxs(e.Fragment,{children:[!r&&e.jsx(p,{data:i,columns:t,onRowClick:n}),e.jsx(f,{data:i,columns:t,onRowClick:n,className:d,forceTableView:r})]})}x.__docgenInfo={description:"",methods:[],displayName:"DataTable",props:{data:{required:!0,tsType:{name:"Array",elements:[{name:"T"}],raw:"T[]"},description:""},columns:{required:!0,tsType:{name:"Array",elements:[{name:"Column",elements:[{name:"T"}],raw:"Column<T>"}],raw:"Column<T>[]"},description:""},emptyState:{required:!1,tsType:{name:"signature",type:"object",raw:`{
|
|
icon: ReactNode;
|
|
title: string;
|
|
description: string;
|
|
}`,signature:{properties:[{key:"icon",value:{name:"ReactNode",required:!0}},{key:"title",value:{name:"string",required:!0}},{key:"description",value:{name:"string",required:!0}}]}},description:""},onRowClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(item: T) => void",signature:{arguments:[{type:{name:"T"},name:"item"}],return:{name:"void"}}},description:""},className:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:'""',computed:!1}},forceTableView:{required:!1,tsType:{name:"boolean"},description:"Force table view even on mobile (not recommended for UX)",defaultValue:{value:"false",computed:!1}}}};export{x as D};
|