A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.
at master 2.9 kB view raw
1import * as React from "react" 2 3import { cn } from "@/lib/utils" 4 5const Table = React.forwardRef< 6 HTMLTableElement, 7 React.HTMLAttributes<HTMLTableElement> 8>(({ className, ...props }, ref) => ( 9 <div className="relative w-full overflow-auto"> 10 <table 11 ref={ref} 12 className={cn("w-full caption-bottom text-sm", className)} 13 {...props} 14 /> 15 </div> 16)) 17Table.displayName = "Table" 18 19const TableHeader = React.forwardRef< 20 HTMLTableSectionElement, 21 React.HTMLAttributes<HTMLTableSectionElement> 22>(({ className, ...props }, ref) => ( 23 <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} /> 24)) 25TableHeader.displayName = "TableHeader" 26 27const TableBody = React.forwardRef< 28 HTMLTableSectionElement, 29 React.HTMLAttributes<HTMLTableSectionElement> 30>(({ className, ...props }, ref) => ( 31 <tbody 32 ref={ref} 33 className={cn("[&_tr:last-child]:border-0", className)} 34 {...props} 35 /> 36)) 37TableBody.displayName = "TableBody" 38 39const TableFooter = React.forwardRef< 40 HTMLTableSectionElement, 41 React.HTMLAttributes<HTMLTableSectionElement> 42>(({ className, ...props }, ref) => ( 43 <tfoot 44 ref={ref} 45 className={cn( 46 "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0", 47 className 48 )} 49 {...props} 50 /> 51)) 52TableFooter.displayName = "TableFooter" 53 54const TableRow = React.forwardRef< 55 HTMLTableRowElement, 56 React.HTMLAttributes<HTMLTableRowElement> 57>(({ className, ...props }, ref) => ( 58 <tr 59 ref={ref} 60 className={cn( 61 "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", 62 className 63 )} 64 {...props} 65 /> 66)) 67TableRow.displayName = "TableRow" 68 69const TableHead = React.forwardRef< 70 HTMLTableCellElement, 71 React.ThHTMLAttributes<HTMLTableCellElement> 72>(({ className, ...props }, ref) => ( 73 <th 74 ref={ref} 75 className={cn( 76 "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", 77 className 78 )} 79 {...props} 80 /> 81)) 82TableHead.displayName = "TableHead" 83 84const TableCell = React.forwardRef< 85 HTMLTableCellElement, 86 React.TdHTMLAttributes<HTMLTableCellElement> 87>(({ className, ...props }, ref) => ( 88 <td 89 ref={ref} 90 className={cn( 91 "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", 92 className 93 )} 94 {...props} 95 /> 96)) 97TableCell.displayName = "TableCell" 98 99const TableCaption = React.forwardRef< 100 HTMLTableCaptionElement, 101 React.HTMLAttributes<HTMLTableCaptionElement> 102>(({ className, ...props }, ref) => ( 103 <caption 104 ref={ref} 105 className={cn("mt-4 text-sm text-muted-foreground", className)} 106 {...props} 107 /> 108)) 109TableCaption.displayName = "TableCaption" 110 111export { 112 Table, 113 TableHeader, 114 TableBody, 115 TableFooter, 116 TableHead, 117 TableRow, 118 TableCell, 119 TableCaption, 120}