buildgrid-ui 1.17.0 โ 1.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +373 -98
- package/dist/buildgrid-ui.css +1 -1
- package/dist/buildgrid-ui.es.js +7694 -8217
- package/dist/buildgrid-ui.umd.js +78 -79
- package/dist/components/card/card.d.ts +3 -1
- package/dist/components/skeleton/skeleton.d.ts +1 -1
- package/dist/lib/hooks/use-sanitized-html.d.ts +18 -6
- package/package.json +162 -149
package/README.md
CHANGED
|
@@ -1,167 +1,442 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>BuildGrid UI</h1>
|
|
3
|
+
<p><strong>A modern React component library built for real-world projects</strong></p>
|
|
4
|
+
|
|
5
|
+
<img src="https://adrianomaringolo.github.io/buildgrid-ui/assets/images/buildgrid-ui-launch-0df921f6559272569468298e74d3d7b8.png" alt="BuildGrid UI - Modern React Component Library" width="100%" style="max-width: 800px; border-radius: 12px; margin: 20px 0;" />
|
|
6
|
+
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://www.npmjs.com/package/buildgrid-ui"><img src="https://img.shields.io/npm/v/buildgrid-ui.svg" alt="npm version"></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/buildgrid-ui"><img src="https://img.shields.io/npm/dm/buildgrid-ui.svg" alt="npm downloads"></a>
|
|
10
|
+
<a href="https://github.com/adrianomaringolo/buildgrid-ui/actions/workflows/test.yml"><img src="https://github.com/adrianomaringolo/buildgrid-ui/actions/workflows/test.yml/badge.svg" alt="Tests"></a>
|
|
11
|
+
<a href="https://codecov.io/gh/adrianomaringolo/buildgrid-ui"><img src="https://codecov.io/gh/adrianomaringolo/buildgrid-ui/branch/main/graph/badge.svg" alt="Coverage"></a>
|
|
12
|
+
<a href="https://github.com/adrianomaringolo/buildgrid-ui/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/buildgrid-ui.svg" alt="license"></a>
|
|
13
|
+
<a href="https://github.com/adrianomaringolo/buildgrid-ui"><img src="https://img.shields.io/github/stars/adrianomaringolo/buildgrid-ui.svg" alt="github stars"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p>
|
|
17
|
+
<a href="https://adrianomaringolo.github.io/buildgrid-ui/">๐ Documentation</a> โข
|
|
18
|
+
<a href="https://adrianomaringolo.github.io/buildgrid-ui/">๐จ Storybook</a> โข
|
|
19
|
+
<a href="https://adrianomaringolo.github.io/buildgrid-ui/changelog">๐ Changelog</a> โข
|
|
20
|
+
<a href="https://github.com/adrianomaringolo/buildgrid-ui/discussions">๐ฌ Discussions</a>
|
|
21
|
+
</p>
|
|
22
|
+
</div>
|
|
2
23
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
A React component library built using [Vite](https://vitejs.dev) and [shadcn](https://ui.shadcn.com/) as the foundation. This library is designed to integrate seamlessly with React and Next.js applications and includes support for [TailwindCSS](https://tailwindcss.com). It also provides a Storybook setup to display and document the components.
|
|
24
|
+
---
|
|
6
25
|
|
|
7
|
-
## Features
|
|
26
|
+
## โจ Features
|
|
8
27
|
|
|
9
|
-
|
|
10
|
-
- **TailwindCSS Integration** for utility-first styling.
|
|
11
|
-
- **shadcn Components** as a robust base.
|
|
12
|
-
- **Storybook** for component documentation and testing.
|
|
13
|
-
- **Semantic Versioning** with automated releases using [semantic-release](https://semantic-release.gitbook.io/semantic-release/).
|
|
28
|
+
BuildGrid UI is a comprehensive React component library featuring **44+ components** and **12 specialized blocks**, all built with production use in mind.
|
|
14
29
|
|
|
15
|
-
|
|
30
|
+
- ๐ฏ **Battle-Tested** - Components refined through real-world usage
|
|
31
|
+
- ๐จ **Modern Stack** - Built with React 19, TypeScript, and Tailwind CSS
|
|
32
|
+
- โฟ **Accessible** - WCAG compliant with full keyboard navigation
|
|
33
|
+
- ๐ฑ **Responsive** - Mobile-first design approach
|
|
34
|
+
- ๐ญ **Customizable** - Flexible theming and styling options
|
|
35
|
+
- ๐ **Well Documented** - Comprehensive docs with interactive examples
|
|
36
|
+
- ๐ง **Developer Friendly** - Full TypeScript support with IntelliSense
|
|
37
|
+
- ๐ **Production Ready** - Used in real applications
|
|
16
38
|
|
|
17
|
-
##
|
|
39
|
+
## ๐ Quick Start
|
|
18
40
|
|
|
19
41
|
### Installation
|
|
20
42
|
|
|
21
|
-
To install the library, run:
|
|
22
|
-
|
|
23
43
|
```bash
|
|
24
44
|
npm install buildgrid-ui
|
|
25
45
|
# or
|
|
26
46
|
yarn add buildgrid-ui
|
|
47
|
+
# or
|
|
48
|
+
pnpm add buildgrid-ui
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Setup
|
|
52
|
+
|
|
53
|
+
1. **Import the theme styles** in your app's entry point:
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
// src/main.tsx or src/index.tsx
|
|
57
|
+
import 'buildgrid-ui/theme'
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
2. **Configure Tailwind CSS** (v3):
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
// tailwind.config.js
|
|
64
|
+
module.exports = {
|
|
65
|
+
content: [
|
|
66
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
67
|
+
'./node_modules/buildgrid-ui/**/*.{js,ts,jsx,tsx}',
|
|
68
|
+
],
|
|
69
|
+
theme: {
|
|
70
|
+
extend: {},
|
|
71
|
+
},
|
|
72
|
+
plugins: [],
|
|
73
|
+
}
|
|
27
74
|
```
|
|
28
75
|
|
|
29
76
|
### Usage
|
|
30
77
|
|
|
31
|
-
|
|
78
|
+
```tsx
|
|
79
|
+
import { Button, Card, Input } from 'buildgrid-ui'
|
|
80
|
+
|
|
81
|
+
function App() {
|
|
82
|
+
return (
|
|
83
|
+
<Card>
|
|
84
|
+
<Card.Header>
|
|
85
|
+
<Card.Title>Welcome to BuildGrid UI</Card.Title>
|
|
86
|
+
</Card.Header>
|
|
87
|
+
<Card.Content>
|
|
88
|
+
<Input placeholder="Enter your name" />
|
|
89
|
+
</Card.Content>
|
|
90
|
+
<Card.Footer>
|
|
91
|
+
<Button>Get Started</Button>
|
|
92
|
+
</Card.Footer>
|
|
93
|
+
</Card>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
```
|
|
32
97
|
|
|
33
|
-
|
|
34
|
-
import { Button } from "buildgrid-ui";
|
|
98
|
+
## ๐ฆ What's Included
|
|
35
99
|
|
|
36
|
-
|
|
100
|
+
### Components (44)
|
|
37
101
|
|
|
38
|
-
|
|
39
|
-
|
|
102
|
+
**Form Elements**
|
|
103
|
+
- Input, Textarea, Select, Checkbox, Radio Group
|
|
104
|
+
- Autocomplete, Multi-Select, Tag Input
|
|
105
|
+
- Currency Input, Password Input, Adaptive Input
|
|
106
|
+
- Number Stepper, Slider, Switch
|
|
40
107
|
|
|
41
|
-
|
|
108
|
+
**Navigation**
|
|
109
|
+
- Button, Navigation Menu, Tabs
|
|
110
|
+
- Pagination, Dropdown Menu, Command
|
|
42
111
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
```
|
|
112
|
+
**Feedback**
|
|
113
|
+
- Alert, Alert Dialog, Toast/Toaster
|
|
114
|
+
- Progress, Spinner, Skeleton
|
|
47
115
|
|
|
48
|
-
|
|
116
|
+
**Layout**
|
|
117
|
+
- Card, Separator, Sheet, Dialog
|
|
118
|
+
- Popover, Tooltip, Collapsible, Accordion
|
|
49
119
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```
|
|
120
|
+
**Display**
|
|
121
|
+
- Avatar, Badge, Calendar, Carousel
|
|
122
|
+
- Table, Toggle, Toggle Group
|
|
54
123
|
|
|
55
|
-
|
|
124
|
+
### Blocks (12)
|
|
56
125
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
126
|
+
**Complex Components**
|
|
127
|
+
- Data Table - Feature-rich table with sorting, filtering, and pagination
|
|
128
|
+
- HTML Text Editor - Rich text editor with formatting toolbar
|
|
129
|
+
- File Upload Dropzone - Drag-and-drop file upload with progress
|
|
130
|
+
- Lazy Image Gallery - Performance-optimized image gallery
|
|
131
|
+
- Month Navigator - Calendar navigation component
|
|
132
|
+
- Bento Grid - Flexible grid layout system
|
|
133
|
+
- Help Carousel - Interactive help/tutorial carousel
|
|
134
|
+
- Empty Message - Elegant empty state component
|
|
135
|
+
- Navigable List - Keyboard-navigable list component
|
|
136
|
+
- Paginated Items - Pagination wrapper for any content
|
|
137
|
+
- Pagination Controls - Customizable pagination UI
|
|
138
|
+
- Sidebar - Flexible sidebar with multiple directions
|
|
69
139
|
|
|
70
|
-
|
|
140
|
+
### Utilities
|
|
141
|
+
|
|
142
|
+
**Hooks**
|
|
143
|
+
- `useLocalStorage` - Persistent state management
|
|
144
|
+
- `useDebounce` - Debounced values
|
|
145
|
+
- `useCopyToClipboard` - Copy to clipboard functionality
|
|
146
|
+
- `useSanitizedHtml` - Safe HTML rendering with DOMPurify
|
|
147
|
+
|
|
148
|
+
**Formatters**
|
|
149
|
+
- Currency formatting utilities
|
|
150
|
+
- Date formatting utilities
|
|
151
|
+
|
|
152
|
+
**Types**
|
|
153
|
+
- TypeScript utility types for better DX
|
|
154
|
+
|
|
155
|
+
## ๐ Documentation
|
|
71
156
|
|
|
72
|
-
|
|
157
|
+
Visit our [comprehensive documentation](https://adrianomaringolo.github.io/buildgrid-ui/) for:
|
|
73
158
|
|
|
74
|
-
|
|
159
|
+
- ๐ **Component API** - Detailed props and usage examples
|
|
160
|
+
- ๐จ **Interactive Examples** - Live component demos
|
|
161
|
+
- โฟ **Accessibility Guidelines** - WCAG compliance information
|
|
162
|
+
- ๐ก **Best Practices** - Recommended usage patterns
|
|
163
|
+
- ๐ญ **Storybook Integration** - Visual component explorer
|
|
75
164
|
|
|
76
|
-
|
|
165
|
+
## ๐ Development
|
|
166
|
+
|
|
167
|
+
### Prerequisites
|
|
168
|
+
|
|
169
|
+
- Node.js 18+
|
|
170
|
+
- npm, yarn, or pnpm
|
|
171
|
+
|
|
172
|
+
### Setup
|
|
77
173
|
|
|
78
174
|
```bash
|
|
175
|
+
# Clone the repository
|
|
79
176
|
git clone https://github.com/adrianomaringolo/buildgrid-ui.git
|
|
80
177
|
cd buildgrid-ui
|
|
178
|
+
|
|
179
|
+
# Install dependencies
|
|
81
180
|
npm install
|
|
82
|
-
```
|
|
83
181
|
|
|
84
|
-
|
|
182
|
+
# Start Storybook
|
|
183
|
+
npm run storybook
|
|
85
184
|
|
|
86
|
-
|
|
185
|
+
# Build the library
|
|
186
|
+
npm run build
|
|
87
187
|
|
|
88
|
-
|
|
89
|
-
npm
|
|
188
|
+
# Run tests
|
|
189
|
+
npm test
|
|
190
|
+
|
|
191
|
+
# Run tests with coverage
|
|
192
|
+
npm run test:coverage
|
|
193
|
+
|
|
194
|
+
# Run tests in watch mode
|
|
195
|
+
npm run test:watch
|
|
90
196
|
```
|
|
91
197
|
|
|
92
|
-
|
|
198
|
+
### Testing
|
|
199
|
+
|
|
200
|
+
BuildGrid UI uses **Vitest** for comprehensive testing with exceptional coverage and quality standards:
|
|
201
|
+
|
|
202
|
+
#### Testing Framework & Architecture
|
|
203
|
+
- **Framework**: [Vitest](https://vitest.dev/) - Fast, modern testing framework built on Vite
|
|
204
|
+
- **Environment**: jsdom - Browser-like environment for realistic component testing
|
|
205
|
+
- **Utilities**: @testing-library/react + @testing-library/user-event for user-centric testing
|
|
206
|
+
- **Coverage**: v8 provider with detailed HTML, JSON, and LCOV reporting
|
|
207
|
+
- **CI/CD**: Automated testing pipeline with multi-version Node.js support
|
|
208
|
+
|
|
209
|
+
#### Test Categories & Coverage
|
|
210
|
+
|
|
211
|
+
**๐ง Unit Tests**
|
|
212
|
+
- Component rendering and props validation
|
|
213
|
+
- State management and lifecycle testing
|
|
214
|
+
- Event handling and user interactions
|
|
215
|
+
- Custom hooks and utility functions
|
|
216
|
+
|
|
217
|
+
**โฟ Accessibility Tests**
|
|
218
|
+
- WCAG 2.1 compliance verification
|
|
219
|
+
- Keyboard navigation testing (Tab, Enter, Space, Arrow keys)
|
|
220
|
+
- Screen reader compatibility and ARIA attributes
|
|
221
|
+
- Focus management and visual indicators
|
|
93
222
|
|
|
94
|
-
|
|
223
|
+
**๐ Integration Tests**
|
|
224
|
+
- Component composition and interaction patterns
|
|
225
|
+
- Form validation and submission workflows
|
|
226
|
+
- Complex user scenarios and edge cases
|
|
227
|
+
- Cross-component communication
|
|
95
228
|
|
|
96
|
-
|
|
229
|
+
**๐ Coverage Metrics**
|
|
230
|
+
```
|
|
231
|
+
Target Coverage: 80%+
|
|
232
|
+
โโโ Statements: 80%
|
|
233
|
+
โโโ Branches: 80%
|
|
234
|
+
โโโ Functions: 80%
|
|
235
|
+
โโโ Lines: 80%
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Available Test Commands
|
|
97
239
|
|
|
98
240
|
```bash
|
|
99
|
-
|
|
241
|
+
# Development - Watch mode with instant feedback
|
|
242
|
+
npm test
|
|
243
|
+
|
|
244
|
+
# CI/Production - Single run with exit codes
|
|
245
|
+
npm run test:run
|
|
246
|
+
|
|
247
|
+
# Coverage Analysis - Generate detailed coverage reports
|
|
248
|
+
npm run test:coverage
|
|
249
|
+
|
|
250
|
+
# Visual Interface - Interactive test runner with GUI
|
|
251
|
+
npm run test:ui
|
|
252
|
+
|
|
253
|
+
# Coverage + Browser - Generate and automatically open coverage report
|
|
254
|
+
npm run test:coverage:open
|
|
100
255
|
```
|
|
101
256
|
|
|
102
|
-
|
|
257
|
+
#### Test Examples
|
|
258
|
+
|
|
259
|
+
**Component Behavior Testing**
|
|
260
|
+
```typescript
|
|
261
|
+
describe('Accordion', () => {
|
|
262
|
+
it('opens and closes items correctly', async () => {
|
|
263
|
+
const user = userEvent.setup()
|
|
264
|
+
render(<Accordion type="single" collapsible>
|
|
265
|
+
<AccordionItem value="item-1">
|
|
266
|
+
<AccordionTrigger>Item 1</AccordionTrigger>
|
|
267
|
+
<AccordionContent>Content 1</AccordionContent>
|
|
268
|
+
</AccordionItem>
|
|
269
|
+
</Accordion>)
|
|
270
|
+
|
|
271
|
+
const trigger = screen.getByText('Item 1')
|
|
272
|
+
expect(trigger).toHaveAttribute('aria-expanded', 'false')
|
|
273
|
+
|
|
274
|
+
await user.click(trigger)
|
|
275
|
+
expect(trigger).toHaveAttribute('aria-expanded', 'true')
|
|
276
|
+
expect(screen.getByText('Content 1')).toBeInTheDocument()
|
|
277
|
+
})
|
|
278
|
+
})
|
|
279
|
+
```
|
|
103
280
|
|
|
104
|
-
|
|
281
|
+
**Accessibility Testing**
|
|
282
|
+
```typescript
|
|
283
|
+
describe('Keyboard Navigation', () => {
|
|
284
|
+
it('supports full keyboard interaction', async () => {
|
|
285
|
+
const user = userEvent.setup()
|
|
286
|
+
render(<AccordionExample />)
|
|
287
|
+
|
|
288
|
+
// Tab navigation
|
|
289
|
+
await user.tab()
|
|
290
|
+
expect(screen.getAllByRole('button')[0]).toHaveFocus()
|
|
291
|
+
|
|
292
|
+
// Enter/Space activation
|
|
293
|
+
await user.keyboard('{Enter}')
|
|
294
|
+
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true')
|
|
295
|
+
})
|
|
296
|
+
})
|
|
297
|
+
```
|
|
105
298
|
|
|
106
|
-
|
|
299
|
+
#### Quality Assurance Pipeline
|
|
107
300
|
|
|
108
|
-
|
|
301
|
+
**GitHub Actions Workflow**
|
|
302
|
+
- โ
Multi-version Node.js testing (18.x, 20.x)
|
|
303
|
+
- โ
Automated linting with ESLint + Prettier
|
|
304
|
+
- โ
TypeScript strict mode compilation
|
|
305
|
+
- โ
Coverage reporting to Codecov with badges
|
|
306
|
+
- โ
Build verification for library and Storybook
|
|
307
|
+
- โ
Parallel execution for optimal performance
|
|
109
308
|
|
|
110
|
-
|
|
309
|
+
**Quality Gates**
|
|
310
|
+
- All tests must pass before merge approval
|
|
311
|
+
- Coverage thresholds enforced automatically
|
|
312
|
+
- Zero TypeScript compilation errors
|
|
313
|
+
- ESLint rules compliance required
|
|
314
|
+
- Accessibility standards validation
|
|
111
315
|
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
git checkout -b alpha
|
|
115
|
-
git push origin alpha
|
|
116
|
-
```
|
|
117
|
-
2. Pre-release versions (e.g., `1.0.0-alpha.1`) will be automatically created.
|
|
316
|
+
For comprehensive testing guidelines, patterns, and best practices, see **[TESTING.md](TESTING.md)**.
|
|
118
317
|
|
|
119
|
-
|
|
318
|
+
#### Current Test Statistics
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
๐ Test Coverage Status
|
|
322
|
+
โโโ Total Tests: 30+ (and growing)
|
|
323
|
+
โโโ Components Tested: Accordion, Number Stepper, Input, Button
|
|
324
|
+
โโโ Test Categories: Unit, Integration, Accessibility, Edge Cases
|
|
325
|
+
โโโ Coverage Target: 80%+ across all metrics
|
|
326
|
+
โโโ CI Status: โ
All tests passing
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Test Distribution:**
|
|
330
|
+
- ๐งช **Unit Tests**: Component behavior, props, state management
|
|
331
|
+
- โฟ **Accessibility**: WCAG compliance, keyboard navigation, ARIA
|
|
332
|
+
- ๐ **Integration**: Component interactions, user workflows
|
|
333
|
+
- ๐ฏ **Edge Cases**: Error handling, boundary conditions
|
|
334
|
+
|
|
335
|
+
### Project Structure
|
|
120
336
|
|
|
121
|
-
|
|
337
|
+
```
|
|
338
|
+
buildgrid-ui/
|
|
339
|
+
โโโ src/
|
|
340
|
+
โ โโโ components/ # Basic UI components
|
|
341
|
+
โ โโโ blocks/ # Complex composed components
|
|
342
|
+
โ โโโ lib/
|
|
343
|
+
โ โ โโโ hooks/ # Custom React hooks
|
|
344
|
+
โ โ โโโ utils/ # Utility functions
|
|
345
|
+
โ โ โโโ types/ # TypeScript types
|
|
346
|
+
โ โโโ styles/ # Global styles
|
|
347
|
+
โโโ website/ # Documentation site
|
|
348
|
+
โโโ .storybook/ # Storybook configuration
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## ๐ค Contributing
|
|
122
352
|
|
|
123
|
-
We welcome contributions from the community!
|
|
353
|
+
We welcome contributions from the community! This is my first open-source project, and I'm excited to see what we can build together.
|
|
354
|
+
|
|
355
|
+
### Ways to Contribute
|
|
356
|
+
|
|
357
|
+
- ๐ **Report bugs** - [Create an issue](https://github.com/adrianomaringolo/buildgrid-ui/issues/new?template=bug_report.yml)
|
|
358
|
+
- โจ **Request features** - [Create a feature request](https://github.com/adrianomaringolo/buildgrid-ui/issues/new?template=feature_request.yml)
|
|
359
|
+
- ๐ **Improve docs** - [Create a documentation issue](https://github.com/adrianomaringolo/buildgrid-ui/issues/new?template=documentation.yml)
|
|
360
|
+
- ๐ง **Submit PRs** - Fix bugs or add features
|
|
361
|
+
- ๐งช **Write tests** - Help us reach 100% coverage by adding tests for components
|
|
362
|
+
- ๐ฌ **Join discussions** - [GitHub Discussions](https://github.com/adrianomaringolo/buildgrid-ui/discussions)
|
|
124
363
|
|
|
125
364
|
### Quick Start for Contributors
|
|
126
365
|
|
|
127
|
-
1.
|
|
128
|
-
2.
|
|
129
|
-
3.
|
|
130
|
-
4.
|
|
131
|
-
5.
|
|
132
|
-
6.
|
|
366
|
+
1. Fork the repository
|
|
367
|
+
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
368
|
+
3. Make your changes and test them: `npm test`
|
|
369
|
+
4. Ensure tests pass and coverage is maintained: `npm run test:coverage`
|
|
370
|
+
5. Commit using conventional commits: `git commit -m 'feat: add amazing feature'`
|
|
371
|
+
6. Push to your fork: `git push origin feature/amazing-feature`
|
|
372
|
+
7. Open a Pull Request
|
|
133
373
|
|
|
134
|
-
|
|
374
|
+
#### Contributing Tests
|
|
135
375
|
|
|
136
|
-
|
|
376
|
+
When adding new components or features, please include comprehensive tests:
|
|
137
377
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
378
|
+
```bash
|
|
379
|
+
# Create test file alongside your component
|
|
380
|
+
src/components/my-component/
|
|
381
|
+
โโโ my-component.tsx
|
|
382
|
+
โโโ my-component.test.tsx # โ Add this
|
|
383
|
+
โโโ my-component.stories.tsx
|
|
384
|
+
โโโ index.ts
|
|
385
|
+
```
|
|
143
386
|
|
|
144
|
-
|
|
387
|
+
**Test Requirements:**
|
|
388
|
+
- โ
Component rendering and props
|
|
389
|
+
- โ
User interactions (click, keyboard, etc.)
|
|
390
|
+
- โ
Accessibility (ARIA, keyboard navigation)
|
|
391
|
+
- โ
Edge cases and error handling
|
|
392
|
+
- โ
Maintain 80%+ coverage
|
|
145
393
|
|
|
146
|
-
|
|
394
|
+
Please read our [Contributing Guide](CONTRIBUTING.md), [Testing Guide](TESTING.md), and [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
147
395
|
|
|
148
|
-
|
|
396
|
+
## ๐ Roadmap
|
|
149
397
|
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
398
|
+
- [ ] Additional form components
|
|
399
|
+
- [ ] Enhanced theming system
|
|
400
|
+
- [ ] Dark mode improvements
|
|
401
|
+
- [ ] More specialized blocks
|
|
402
|
+
- [ ] Performance optimizations
|
|
403
|
+
- [ ] Accessibility improvements
|
|
404
|
+
- [ ] Additional utility hooks
|
|
155
405
|
|
|
156
|
-
|
|
406
|
+
## ๐ Acknowledgments
|
|
157
407
|
|
|
158
|
-
|
|
159
|
-
|
|
408
|
+
BuildGrid UI is built on the shoulders of giants:
|
|
409
|
+
|
|
410
|
+
- [React](https://react.dev/) - The foundation
|
|
411
|
+
- [Radix UI](https://www.radix-ui.com/) - Accessible primitives
|
|
412
|
+
- [Tailwind CSS](https://tailwindcss.com/) - Utility-first styling
|
|
413
|
+
- [shadcn/ui](https://ui.shadcn.com/) - Design inspiration
|
|
414
|
+
- [Vite](https://vitejs.dev/) - Build tool
|
|
415
|
+
- [Storybook](https://storybook.js.org/) - Component development
|
|
416
|
+
- [Docusaurus](https://docusaurus.io/) - Documentation platform
|
|
417
|
+
|
|
418
|
+
## ๐ License
|
|
419
|
+
|
|
420
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
421
|
+
|
|
422
|
+
## ๐ Links
|
|
423
|
+
|
|
424
|
+
- **Documentation**: https://adrianomaringolo.github.io/buildgrid-ui/
|
|
425
|
+
- **NPM Package**: https://www.npmjs.com/package/buildgrid-ui
|
|
426
|
+
- **GitHub**: https://github.com/adrianomaringolo/buildgrid-ui
|
|
427
|
+
- **Storybook**: https://adrianomaringolo.github.io/buildgrid-ui/
|
|
428
|
+
- **Changelog**: https://adrianomaringolo.github.io/buildgrid-ui/changelog
|
|
429
|
+
|
|
430
|
+
## ๐ฌ Community & Support
|
|
431
|
+
|
|
432
|
+
- ๐ [Report Issues](https://github.com/adrianomaringolo/buildgrid-ui/issues)
|
|
433
|
+
- ๐ก [Feature Requests](https://github.com/adrianomaringolo/buildgrid-ui/issues/new?template=feature_request.yml)
|
|
160
434
|
- ๐ฌ [Discussions](https://github.com/adrianomaringolo/buildgrid-ui/discussions)
|
|
161
|
-
-
|
|
435
|
+
- ๐ง Contact: [adrianomaringolo](https://github.com/adrianomaringolo)
|
|
162
436
|
|
|
163
437
|
---
|
|
164
438
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
439
|
+
<div align="center">
|
|
440
|
+
<p>Built with โค๏ธ by <a href="https://adrianomaringolo.dev">Adriano Maringolo</a></p>
|
|
441
|
+
<p>If you find this project useful, please consider giving it a โญ๏ธ</p>
|
|
442
|
+
</div>
|