UI32
47 Accordion48 Alerts49 Avatar50 Badge51 Breadcrumb52 Button53 Button Group54 Calendar55 Card56 Checkbox57 Collapsible58 Combobox59 Data Table60 Date Picker61 Dialog62 Dropdown Menu63 Form64 Input65 Input Mask66 Input OTP67 Pagination68 Popover69 Radio Group70 Select71 Sheet72 Slider73 Sonner74 Switch75 Table76 Tabs77 Textarea78 Tooltip
Charts2
01 Animated radial chart99 Live line
Interactive6
02 Message dock03 Voice powered orb07 Draggable rope93 Timer113 Elastic frame117 Scene states
AI2
13 AI voice input103 Agent trace
Galleries4
04 Ruler carousel10 Portfolio gallery32 Hover image gallery115 Project index
Heroes2
05 Video scroll hero116 Aperture dive
Shaders6
80 Aurora veil88 Kinetic dots90 Silt91 Intaglio92 Phosphor114 Sumi
Tables20
06 Financial table43 Contacts table44 Leads table45 Resizable table46 Server management89 Periodic table100 Flap ledger120 Sortable table121 Pricing table122 Invoice table123 Leaderboard124 Changelog table125 API reference table126 File tree table127 Timetable128 Shortcuts table129 Spec sheet130 Transactions table131 Spreadsheet grid132 Permissions matrix
Cards15
11 Video upload card16 Animated card options17 Animated card status list18 Audio upload card19 Bonuses incentives card20 Coach scheduling21 Dashboard card modal22 Event countdown card23 Hover detail card24 News cards25 Onboarding stages26 Prediction market card27 Product reveal card28 Profile hover card29 Project cards
Badges1
14 Animated status badge
Controls3
31 Gradient selector95 Adaptive precision slider96 Click wheel
Navigation2
94 Radial command ring108 Minimap scrollbar
Utilities3
98 Spring tuner110 Stroke-morph icon119 Glow rules
HUD8
09 HUD frame15 Animated download34 Glitchy 40435 Overlay 236 HUD button37 HUD graph38 HUD status40 Warning graphic
Text10
33 Reveal text133 Glyph morph134 Weight wave135 Decode text136 Magnetic letters137 Slice shift138 Stroke draw type139 Ink bleed text140 Liquid text141 Chromatic text
Components•Sortable table
Components•Sortable table

Sortable table

A typed data table for dashboards. Search across visible columns, sort by one column or shift-click for several, hide columns, select rows and page through results, all from the keyboard.

Dependencies

Motionclsx

Copy below cli

npx shadcn add @bjork-ui/sortable-table

How to use

import { SortableTable, type SortableColumn } from "@/components/bjork-ui/tables/sortable-table";type Sku = { id: string; name: string; stock: number; price: number; restocked: string };const columns: SortableColumn<Sku>[] = [  { key: "name", header: "Item", width: 220, hideable: false },  { key: "stock", header: "On hand", format: "number", width: 110 },  { key: "price", header: "Price", format: "currency", width: 110 },  { key: "restocked", header: "Restocked", format: "date", width: 140 },];<SortableTable<Sku>  columns={columns}  rows={skus}  title="Inventory"  itemLabel="items"  defaultSort={[{ key: "stock", direction: "asc" }]}  onSelectionChange={(ids) => console.log(ids)}  loading={isLoading}/>
PreviousGlow rulesNextPricing table
Deployments48
Deployments, sorted by Created descending. Shift-click a column header to add it to the sort.
media-resizerdpl_fd7baf · ana.kBuildingStagingchore/bump-deps1m 25s$3.11Oct 8, 4:53 PM
atlas-dashboarddpl_c9a3e8 · tsukiReadyPreviewfeat/bulk-export3m 19s$3.28Oct 8, 3:27 PM
checkout-apidpl_111032 · devrajFailedPreviewfix/retry-backoff2m 04s$0.17Oct 8, 2:33 PM
atlas-dashboarddpl_342ca2 · pbravoReadyPreviewmain2m 54s$1.55Oct 8, 1:11 PM
checkout-apidpl_558ecd · tsukiReadyPreviewfix/retry-backoff5m 31s$0.82Oct 8, 12:47 PM
search-indexerdpl_075b53 · pbravoReadyPreviewfeat/pricing-v24m 56s$2.18Oct 8, 12:02 PM
atlas-dashboarddpl_e6b07c · devrajCanceledProductionfeat/pricing-v26m 03s$1.66Oct 8, 11:06 AM
billing-webdpl_728b6a · m.oyelReadyPreviewfix/retry-backoff5m 11s$1.86Oct 8, 9:44 AM
notify-workerdpl_2a946b · linneaReadyPreviewfeat/pricing-v23m 37s$0.49Oct 8, 9:20 AM
atlas-dashboarddpl_7a157b · linneaReadyStagingfix/retry-backoff5m 05s$1.16Oct 8, 8:27 AM

1–10 of 48 deployments