pillardash-ui-react
v0.1.129
Published
Pillardash reusable react components
Maintainers
Readme
Pillardash Component Library
A collection of reusable React components for building modern web applications with consistent design and behavior.
Features
- TypeScript Support: Fully typed components with exported prop types
- Accessible: Built with WAI-ARIA standards
- Customizable: Theme support and style overrides
- Responsive: Works across all device sizes
- Form Components: Complete suite of form inputs and controls
Installation
npm install pillardash-ui-react
# or
yarn add pillardash-ui-reactPeer Dependencies
This library requires:
{
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
}Available Components
Form Controls
Button- Interactive button elementCheckBox- Custom checkbox inputFileUpload- File upload component with drag-and-dropInput- Text input fieldSearch- Search input with debounceSelect- Custom select dropdownTextEditor- Rich text editor
Data Display
DataTable- Sortable and paginated tableCard- Flexible content container
Feedback
Alert- Contextual notification messagesLoading- Animated loading indicators
Usage
import { Button, Input } from 'pillardash-ui-react';
function Example() {
return (
<div>
<Input
label="Email"
placeholder="Enter your email"
/>
<Button variant="primary">
Submit
</Button>
</div>
);
}Theming
Customize the look and feel by wrapping your app with the ThemeProvider:
import { ThemeProvider } from 'pillardash-ui-react';
function App() {
return (
<ThemeProvider
theme={{
colors: {
primary: '#0E8A74',
secondary: '#0E8AAA'
}
}}
>
{/* Your app */}
</ThemeProvider>
);
}TypeScript Support
All components include TypeScript definitions. Import prop types for extended customization:
import { Button, type ButtonProps } from 'pillardash-ui-react';
const CustomButton = (props: ButtonProps) => (
<Button {...props} className="custom-class" />
);Contributing
We welcome contributions! Please see our Contributing Guidelines.
License
MIT © Osai Technologies
Component Documentation
Button
<Button
variant="primary" | "secondary" | "outline"
size="sm" | "md" | "lg"
loading={boolean}
disabled={boolean}
onClick={() => void}
>
Click me
</Button>Input
<Input
label="Email"
placeholder="[email protected]"
error="Invalid email"
value={string}
onChange={(e) => void}
/>Select
<Select
options={[
{ value: '1', label: 'Option 1' },
{ value: '2', label: 'Option 2' }
]}
value={string}
onChange={(selected) => void}
/>Development Setup
- Clone the repository
- Install dependencies:
npm install - Run Storybook:
npm run storybook - Build the library:
npm run build
Testing
npm test
# or
npm run test:watch