* esm * wip * wip * wip * wip * wip * wip * subscription notice * wip * wip * wip * fix envs * fix: update docker build * fix * esm/types * delete dashboard :D * add patches to dockerfiles * update packages + catalogs + ts * wip * remove native libs * ts * improvements * fix redirects and fetching session * try fix favicon * fixes * fix * order and resize reportds within a dashboard * improvements * wip * added userjot to dashboard * fix * add op * wip * different cache key * improve date picker * fix table * event details loading * redo onboarding completely * fix login * fix * fix * extend session, billing and improve bars * fix * reduce price on 10M
88 lines
1.9 KiB
TypeScript
88 lines
1.9 KiB
TypeScript
import { cn } from '@/utils/cn';
|
|
|
|
export const Grid: React.FC<
|
|
React.HTMLAttributes<HTMLDivElement> & { columns: number }
|
|
> = ({ className, columns, children, ...props }) => (
|
|
<div className={cn('card', className)}>
|
|
<div className="relative w-full overflow-auto rounded-md">
|
|
<div
|
|
className={cn('grid w-full')}
|
|
style={{
|
|
gridTemplateColumns: `repeat(${columns}, auto)`,
|
|
width: 'max-content',
|
|
minWidth: '100%',
|
|
}}
|
|
{...props}
|
|
>
|
|
{children}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
|
|
export const GridHeader: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({
|
|
className,
|
|
children,
|
|
...props
|
|
}) => (
|
|
<div className={cn('contents', className)} {...props}>
|
|
{children}
|
|
</div>
|
|
);
|
|
|
|
export const GridBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({
|
|
className,
|
|
children,
|
|
...props
|
|
}) => (
|
|
<div
|
|
className={cn('contents [&>*:last-child]:border-0', className)}
|
|
{...props}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|
|
|
|
export const GridCell: React.FC<
|
|
React.HTMLAttributes<HTMLDivElement> & {
|
|
as?: React.ElementType;
|
|
colSpan?: number;
|
|
isHeader?: boolean;
|
|
}
|
|
> = ({
|
|
className,
|
|
children,
|
|
as: Component = 'div',
|
|
colSpan,
|
|
isHeader,
|
|
...props
|
|
}) => (
|
|
<Component
|
|
className={cn(
|
|
'flex min-h-12 items-center whitespace-nowrap px-4 align-middle shadow-[0_0_0_0.5px] shadow-border',
|
|
isHeader && 'h-10 bg-def-100 font-semibold text-muted-foreground',
|
|
colSpan && `col-span-${colSpan}`,
|
|
className,
|
|
)}
|
|
{...props}
|
|
>
|
|
<div className="truncate w-full">{children}</div>
|
|
</Component>
|
|
);
|
|
|
|
export const GridRow: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({
|
|
className,
|
|
children,
|
|
...props
|
|
}) => (
|
|
<div
|
|
className={cn(
|
|
'contents transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',
|
|
className,
|
|
)}
|
|
{...props}
|
|
>
|
|
{children}
|
|
</div>
|
|
);
|