master-components-react-ts 2.5.18 → 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 CHANGED
@@ -1,8 +1,270 @@
1
- # React + Vite
1
+ # Master Components React TypeScript
2
2
 
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
3
+ A comprehensive React TypeScript component library featuring modern, accessible, and customizable UI components for building professional web applications.
4
4
 
5
- Currently, two official plugins are available:
5
+ ## 🚀 Features
6
6
 
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
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).
@@ -1,7 +1,7 @@
1
1
  import { TimePickerProps } from './TimePicker.types';
2
2
  declare const TimePicker: {
3
- ({ value, defaultTimeType, defaultAmPm, withConfirm, mode, closeOnScroll, onChange, onFocus, onBlur, ...rest }: TimePickerProps): import("react/jsx-runtime").JSX.Element;
4
- propKeys: readonly ["value", "defaultTimeType", "defaultAmPm", "withConfirm", "mode", "onChange", "onFocus", "onBlur", "closeOnScroll"];
3
+ ({ value, defaultTimeType, defaultAmPm, withConfirm, closeOnScroll, onChange, onFocus, onBlur, ...rest }: TimePickerProps): import("react/jsx-runtime").JSX.Element;
4
+ propKeys: readonly ["value", "defaultTimeType", "defaultAmPm", "withConfirm", "onChange", "onFocus", "onBlur", "closeOnScroll"];
5
5
  displayName: string;
6
6
  description: string;
7
7
  };
@@ -3,7 +3,6 @@ export interface TimePickerProps extends FormInputProps {
3
3
  withConfirm?: boolean;
4
4
  defaultTimeType?: '12' | '24';
5
5
  defaultAmPm?: 'AM' | 'PM';
6
- mode?: 'single' | 'range';
7
6
  closeOnScroll?: boolean;
8
7
  onChange?: (value: string) => void;
9
8
  onFocus?: () => void;