Skip to Content
Packages@sumx/ui

@sumx/ui

shadcn-style primitives for kit packages and host apps: Button, Dialog, form controls, cn, and permission-aware wrappers.

Version: 0.1.2+ adds Input, Label, Slider, DropdownMenu (used by @sumx/sumx-editor).

Install & peers

pnpm add @sumx/ui

Peers: react, react-dom, @radix-ui/react-dialog, @radix-ui/react-dropdown-menu, @radix-ui/react-label, @radix-ui/react-slider, @radix-ui/react-slot, class-variance-authority, clsx, tailwind-merge, lucide-react.

Component docs

ComponentPage
Overview & TailwindComponents
ButtonButton
DialogDialog
InputInput
LabelLabel
SliderSlider
DropdownMenuDropdown menu
PermissionsPermissions
cn()cn

Permission-aware components

import { Button, Dialog, DialogTrigger, DialogContent } from '@sumx/ui'; <Button permission={['po-create']} permissionMode="hide" variant="primary"> Create PO </Button>

See Permissions.

Host app provider (portal)

import { PermissionProvider } from '@sumx/ui'; <PermissionProvider checkPermission={(keys) => yourStore.has(keys)}> {children} </PermissionProvider>

Tailwind

Scan kit output in host tailwind.css:

@source "../../node_modules/@sumx/ui/dist"; @source "../../node_modules/@sumx/ui/src";

Host tailwind.config.js owns theme tokens (gray.gray, primary, …). Kit components use those class names.

Used by

  • @sumx/ssr-auth-react — session dialogs, Button
  • @sumx/sumx-editor — variable picker, image crop dialog