master-components-react-ts 2.5.19 → 2.6.1
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 +267 -5
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,270 @@
|
|
|
1
|
-
# React
|
|
1
|
+
# Master Components React TypeScript
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A comprehensive React TypeScript component library featuring modern, accessible, and customizable UI components for building professional web applications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 🚀 Features
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- **20+ Production-Ready Components** - From basic inputs to complex data tables
|
|
8
|
+
- **TypeScript Support** - Full type safety with comprehensive type definitions
|
|
9
|
+
- **Modern Design System** - Consistent styling with SCSS modules
|
|
10
|
+
- **Accessibility First** - Built with accessibility best practices
|
|
11
|
+
- **Highly Customizable** - Extensive styling and behavior customization options
|
|
12
|
+
- **Tree Shakeable** - Import only what you need
|
|
13
|
+
- **React 18+ Compatible** - Built for modern React applications
|
|
14
|
+
|
|
15
|
+
## 📦 Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install master-components-react-ts
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 🎯 Quick Start
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import React from 'react'
|
|
25
|
+
import { MainButton, FormInput, Table, DatePicker } from 'master-components-react-ts'
|
|
26
|
+
import 'master-components-react-ts/style.css'
|
|
27
|
+
|
|
28
|
+
function App() {
|
|
29
|
+
return (
|
|
30
|
+
<div>
|
|
31
|
+
<FormInput
|
|
32
|
+
label="Email"
|
|
33
|
+
placeholder="Enter your email"
|
|
34
|
+
type="email"
|
|
35
|
+
required
|
|
36
|
+
/>
|
|
37
|
+
<MainButton
|
|
38
|
+
label="Submit"
|
|
39
|
+
buttonType="primary"
|
|
40
|
+
onClick={() => console.log('Clicked!')}
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 🧩 Components
|
|
48
|
+
|
|
49
|
+
### Form Components
|
|
50
|
+
- **FormInput** - Text input with validation states, slots, and multiple types
|
|
51
|
+
- **Textarea** - Multi-line text input with character counting
|
|
52
|
+
- **Checkbox** - Customizable checkbox with different styles
|
|
53
|
+
- **Radio** - Radio button groups with custom styling
|
|
54
|
+
- **Toggle** - Switch/toggle component with multiple sizes
|
|
55
|
+
- **Dropdown** - Advanced dropdown with search, multiselect, and tree support
|
|
56
|
+
- **DatePicker** - Date selection with range and dual picker modes
|
|
57
|
+
- **TimePicker** - Time selection with range support
|
|
58
|
+
- **Slider** - Range slider with single and dual handle support
|
|
59
|
+
- **FileUploader** - Drag & drop file upload component
|
|
60
|
+
|
|
61
|
+
### Layout & Navigation
|
|
62
|
+
- **Table** - Feature-rich data table with sorting, pagination, and row actions
|
|
63
|
+
- **TreeNode** - Hierarchical tree component with checkboxes
|
|
64
|
+
- **Tabs** - Tab navigation component
|
|
65
|
+
- **Popup** - Modal and drawer popup system
|
|
66
|
+
- **ActionDropdown** - Context menu dropdown for actions
|
|
67
|
+
|
|
68
|
+
### Feedback & Status
|
|
69
|
+
- **MainButton** - Primary button component with loading states
|
|
70
|
+
- **InlineLoading** - Loading indicators with success/error states
|
|
71
|
+
- **Skeleton** - Content loading placeholders
|
|
72
|
+
- **NotificationToast** - Toast notification system
|
|
73
|
+
- **Tooltip** - Contextual help tooltips
|
|
74
|
+
|
|
75
|
+
### Advanced Components
|
|
76
|
+
- **FilterWithTags** - Advanced filtering interface with multiple input types
|
|
77
|
+
- **DropdownPill** - Pill-style dropdown selector
|
|
78
|
+
|
|
79
|
+
## 📚 Documentation
|
|
80
|
+
|
|
81
|
+
For detailed documentation, examples, and API references, visit our documentation website:
|
|
82
|
+
|
|
83
|
+
**🌐 [components.nebi.com](https://components.nebi.com)**
|
|
84
|
+
|
|
85
|
+
The documentation includes:
|
|
86
|
+
- Interactive component playground
|
|
87
|
+
- Complete API documentation
|
|
88
|
+
- Usage examples and best practices
|
|
89
|
+
- Customization guides
|
|
90
|
+
- Accessibility guidelines
|
|
91
|
+
|
|
92
|
+
## 🎨 Styling
|
|
93
|
+
|
|
94
|
+
The library uses SCSS modules for styling. Import the main CSS file to get started:
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
import 'master-components-react-ts/style.css'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Customization
|
|
101
|
+
|
|
102
|
+
Components support extensive customization through props:
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
<MainButton
|
|
106
|
+
label="Custom Button"
|
|
107
|
+
size="lg"
|
|
108
|
+
colorType="positive"
|
|
109
|
+
buttonType="secondary"
|
|
110
|
+
leftSlot={<Icon />}
|
|
111
|
+
buttonStyle={{ borderRadius: '8px' }}
|
|
112
|
+
/>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 🔧 TypeScript Support
|
|
116
|
+
|
|
117
|
+
Full TypeScript support with comprehensive type definitions:
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
import {
|
|
121
|
+
FormInputProps,
|
|
122
|
+
TableProps,
|
|
123
|
+
DropdownItemType,
|
|
124
|
+
ColumnType
|
|
125
|
+
} from 'master-components-react-ts'
|
|
126
|
+
|
|
127
|
+
interface MyComponentProps {
|
|
128
|
+
inputProps: FormInputProps
|
|
129
|
+
tableData: ColumnType[]
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## 📋 Component Examples
|
|
134
|
+
|
|
135
|
+
### Advanced Table with Actions
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
import { Table, ColumnType } from 'master-components-react-ts'
|
|
139
|
+
|
|
140
|
+
const columns: ColumnType[] = [
|
|
141
|
+
{ key: 'name', label: 'Name', visible: true },
|
|
142
|
+
{ key: 'email', label: 'Email', visible: true },
|
|
143
|
+
{
|
|
144
|
+
key: 'status',
|
|
145
|
+
label: 'Status',
|
|
146
|
+
visible: true,
|
|
147
|
+
render: (row) => (
|
|
148
|
+
<span className={`status-${row.status}`}>
|
|
149
|
+
{row.status}
|
|
150
|
+
</span>
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
|
|
155
|
+
<Table
|
|
156
|
+
uniqueKey="id"
|
|
157
|
+
columns={columns}
|
|
158
|
+
data={userData}
|
|
159
|
+
withSortIcons
|
|
160
|
+
showPagination
|
|
161
|
+
withSelectAll
|
|
162
|
+
actionButtons={[
|
|
163
|
+
{ text: 'Delete', onClick: handleDelete },
|
|
164
|
+
{ text: 'Edit', onClick: handleEdit }
|
|
165
|
+
]}
|
|
166
|
+
onRowClick={handleRowClick}
|
|
167
|
+
/>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Form with Validation
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
import { FormInput, MainButton, Checkbox } from 'master-components-react-ts'
|
|
174
|
+
|
|
175
|
+
<FormInput
|
|
176
|
+
label="Email Address"
|
|
177
|
+
placeholder="Enter your email"
|
|
178
|
+
type="email"
|
|
179
|
+
required
|
|
180
|
+
helperText="We'll never share your email"
|
|
181
|
+
inputState={{ error: hasError }}
|
|
182
|
+
onChange={setEmail}
|
|
183
|
+
/>
|
|
184
|
+
|
|
185
|
+
<Checkbox
|
|
186
|
+
checked={agreeToTerms}
|
|
187
|
+
change={setAgreeToTerms}
|
|
188
|
+
label="I agree to the terms and conditions"
|
|
189
|
+
/>
|
|
190
|
+
|
|
191
|
+
<MainButton
|
|
192
|
+
label="Submit"
|
|
193
|
+
buttonType="primary"
|
|
194
|
+
loading={isSubmitting}
|
|
195
|
+
disabled={!isFormValid}
|
|
196
|
+
onClick={handleSubmit}
|
|
197
|
+
/>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Advanced Dropdown with Search
|
|
201
|
+
|
|
202
|
+
```tsx
|
|
203
|
+
import { Dropdown, DropdownItemType } from 'master-components-react-ts'
|
|
204
|
+
|
|
205
|
+
const countryData: DropdownItemType[] = [
|
|
206
|
+
{ id: 1, label: 'United States' },
|
|
207
|
+
{ id: 2, label: 'Canada' },
|
|
208
|
+
{ id: 3, label: 'United Kingdom' }
|
|
209
|
+
]
|
|
210
|
+
|
|
211
|
+
<Dropdown
|
|
212
|
+
label="Select Country"
|
|
213
|
+
placeholder="Choose a country"
|
|
214
|
+
data={countryData}
|
|
215
|
+
withInput
|
|
216
|
+
withMultiselect
|
|
217
|
+
withApply
|
|
218
|
+
onSelect={handleCountrySelect}
|
|
219
|
+
onApply={handleApply}
|
|
220
|
+
/>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## 🎯 Key Features
|
|
224
|
+
|
|
225
|
+
### Table Component
|
|
226
|
+
- **Sorting** - Click headers to sort data
|
|
227
|
+
- **Pagination** - Numbered and simple pagination styles
|
|
228
|
+
- **Row Selection** - Single and multi-row selection
|
|
229
|
+
- **Row Actions** - Custom actions per row
|
|
230
|
+
- **Column Configuration** - Show/hide and reorder columns
|
|
231
|
+
- **Custom Rendering** - Render custom content in cells
|
|
232
|
+
- **Tooltips** - Row-level tooltips for additional information
|
|
233
|
+
|
|
234
|
+
### Form Components
|
|
235
|
+
- **Validation States** - Error, success, and loading states
|
|
236
|
+
- **Custom Slots** - Left, right, and helper slots for icons/content
|
|
237
|
+
- **Multiple Input Types** - Text, email, password, number, etc.
|
|
238
|
+
- **Accessibility** - Full keyboard navigation and screen reader support
|
|
239
|
+
|
|
240
|
+
### Styling System
|
|
241
|
+
- **SCSS Modules** - Scoped styling to prevent conflicts
|
|
242
|
+
- **CSS Custom Properties** - Easy theme customization
|
|
243
|
+
- **Responsive Design** - Mobile-first responsive components
|
|
244
|
+
- **Dark Mode Ready** - Components support dark theme variants
|
|
245
|
+
|
|
246
|
+
## 🔄 Migration Guide
|
|
247
|
+
|
|
248
|
+
If you're upgrading from a previous version, check the [migration guide](https://components.nebi.com/migration) on our documentation site.
|
|
249
|
+
|
|
250
|
+
## 🤝 Contributing
|
|
251
|
+
|
|
252
|
+
We welcome contributions! Please see our [contributing guidelines](https://components.nebi.com/contributing) for details.
|
|
253
|
+
|
|
254
|
+
## 📄 License
|
|
255
|
+
|
|
256
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
257
|
+
|
|
258
|
+
## 🆘 Support
|
|
259
|
+
|
|
260
|
+
- **Documentation**: [components.nebi.com](https://components.nebi.com)
|
|
261
|
+
- **Issues**: Report bugs and request features on our documentation site
|
|
262
|
+
- **Community**: Join our community discussions
|
|
263
|
+
|
|
264
|
+
## 🏷️ Version
|
|
265
|
+
|
|
266
|
+
Current version: **2.5.19**
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
Built with ❤️ for the React community. For the latest updates and announcements, visit [components.nebi.com](https://components.nebi.com).
|
package/dist/index.js
CHANGED
|
@@ -3574,7 +3574,7 @@ xt.propKeys = [
|
|
|
3574
3574
|
"dropdownPillTextStyle",
|
|
3575
3575
|
"onClick"
|
|
3576
3576
|
];
|
|
3577
|
-
xt.displayName = "
|
|
3577
|
+
xt.displayName = "Dropdown Pill";
|
|
3578
3578
|
xt.description = "A dropdown pill component with multiple styles and orientations for organizing content sections.";
|
|
3579
3579
|
export {
|
|
3580
3580
|
yt as ActionDropdown,
|