Develop
Helper functions and utility classes that simplify common development tasks when building with the design system.
The Thrive Design System exports a set of utility functions and helpers that streamline common development patterns. These utilities handle class merging, data transformation, and other recurring tasks.
The cn utility combines clsx and tailwind-merge to intelligently merge Tailwind CSS classes, resolving conflicts and removing duplicates.
import { cn } from '@thrivecart/ui';
// Basic usage
cn('px-4 py-2', 'px-6')
// Result: 'px-6 py-2' (px-6 overrides px-4)
// Conditional classes
cn('base-class', isActive && 'active-class', isDisabled && 'disabled-class')
// With arrays and objects
cn(['flex', 'items-center'], { 'bg-primary': isPrimary })When to use:
className with internal stylesUtilities for working with the DataTable component's server-side integration:
import {
convertColumnsToFormData,
convertOrderToFormData,
createServerParams,
type DataTableParams
} from '@thrivecart/ui';| Function | Description |
|---|---|
createServerParams | Converts DataTable state (pagination, sorting, filters) into server-friendly query parameters |
convertColumnsToFormData | Transforms column configuration into form-compatible data |
convertOrderToFormData | Converts sort order state into form-compatible data |
A utility hook for composing multiple refs into a single callback ref:
import { useComposedRefs } from '@thrivecart/ui';
function MyComponent({ forwardedRef }) {
const internalRef = useRef(null);
const composedRef = useComposedRefs(internalRef, forwardedRef);
return <div ref={composedRef} />;
}cn() instead of string concatenation for Tailwind classes.@thrivecart/ui to benefit from tree-shaking.All utilities are included in the main package:
pnpm add @thrivecart/uiimport { cn } from '@thrivecart/ui';