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•Permissions matrix
Components•Permissions matrix

Permissions matrix

A roles by permissions matrix for access control. Group rows toggle a whole resource with a tri-state checkbox, owner cells stay locked with a reason, and every edit is counted in a sticky save bar until you save or discard. Arrow keys move across the grid and Space toggles.

Dependencies

Motionclsx

Copy below cli

npx shadcn add @bjork-ui/permissions-matrix

How to use

import {  PermissionsMatrix,  type PermissionGrants,  type PermissionGroup,  type PermissionRole,} from "@/components/bjork-ui/tables/permissions-matrix";const roles: PermissionRole[] = [  { id: "owner", label: "Owner", members: 1, locked: true, lockedReason: "Owners always hold every permission." },  { id: "editor", label: "Editor", members: 12 },];const groups: PermissionGroup[] = [  { id: "projects", label: "Projects", permissions: [{ id: "projects.delete", label: "Delete projects" }] },];<PermissionsMatrix  roles={roles}  groups={groups}  value={savedGrants}  onSave={(grants: PermissionGrants) => api.updateRoles(grants)}/>
PreviousSpreadsheet gridNextGlyph morph
Roles & permissions
Kestrel Studio workspace · 46 members
Roles & permissions. Rows are permissions grouped by resource, columns are roles. Use arrow keys to move between checkboxes and Space to toggle.
Permission
Owner
1 member
Admin
3 members
Editor
12 members
Viewer
28 members
Billing
2 members
Projects5
View projects
Create projects
Edit project settings
Archive projects
Delete projects
Permanently removes files and history
Members4
View member list
Invite members
Change member roles
Remove members
Billing3
View invoices
Update payment method
Change plan
Upgrades take effect immediately
API keys3
View API keys
Create API keys
Revoke API keys
Audit log2
View audit log
Export audit log
All changes saved