@amelharrak/eldo-ui 1.1.4 → 1.1.5
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/LICENSE +21 -0
- package/README.md +230 -0
- package/dist/index.cjs +2 -60
- package/dist/index.mjs +74 -2721
- package/package.json +9 -3
- package/setup.js +260 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Eldo UI Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
****
|
|
4
|
+
# @amelharrak/eldo-ui
|
|
5
|
+
[](https://www.npmjs.com/package/@amelharrak/eldo-ui)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://bundlephobia.com/package/@amelharrak/eldo-ui)
|
|
8
|
+
[](README.md#accessibility)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
|
|
11
|
+
**A modern, lightweight, and accessible React component library.**
|
|
12
|
+
Built for speed, styled for elegance, and engineered for everyone.
|
|
13
|
+
|
|
14
|
+
[Live Demo](https://eldo-ui.com) · [Documentation](https://eldo-ui.com/docs) · [Report Bug](https://github.com/aelharrak/eldo-ui/issues)
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🚀 Why Eldo UI?
|
|
21
|
+
|
|
22
|
+
Eldo UI is designed to be the foundational layer for your next React application. It combines the utility of modern component libraries with the flexibility of custom design systems, backed by professional-grade tooling and quality assurance.
|
|
23
|
+
|
|
24
|
+
### 🎯 Key Features
|
|
25
|
+
|
|
26
|
+
- **🧩 70+ Components**: Ready-to-use, fully typed, and tree-shakeable components covering all common UI patterns.
|
|
27
|
+
- **♿ 100% Accessible**: Built with WAI-ARIA standards (WCAG 2.1) for inclusion and keyboard navigation.
|
|
28
|
+
- **⚡ Lightweight**: <15kB gzipped (minimized bundle) with **Zero Dependencies** (only React peer deps).
|
|
29
|
+
- **🎨 Themeable**: Built on Sass & CSS Variables for effortless customization and runtime theming.
|
|
30
|
+
- **💡 IDE Autocomplete**: Full TypeScript definitions with IntelliSense support for all components and props.
|
|
31
|
+
- **📚 Complete Documentation**: Professional JSDoc documentation for every component, prop, and method.
|
|
32
|
+
- **✅ Fully Tested**: Comprehensive unit test suite ensuring reliability and stability in production.
|
|
33
|
+
- **🛠️ Developer First**: Consistent APIs, meaningful prop names, and excellent developer experience.
|
|
34
|
+
- **🔧 Framework Agnostic**: Works seamlessly with Next.js (App Router ready), Vite, Remix, and CRA.
|
|
35
|
+
|
|
36
|
+
### 📊 Quality Metrics
|
|
37
|
+
|
|
38
|
+
| Metric | Status | Details |
|
|
39
|
+
|--------|--------|---------|
|
|
40
|
+
| **Components** | ✅ 70+ | All major UI patterns covered |
|
|
41
|
+
| **Documentation** | ✅ 100% | Complete JSDoc for all components |
|
|
42
|
+
| **TypeScript** | ✅ Full Support | IDE autocomplete & type safety |
|
|
43
|
+
| **Unit Tests** | ✅ Comprehensive | Production-ready test coverage |
|
|
44
|
+
| **Accessibility** | ✅ WCAG 2.1 | Keyboard navigation & screen readers |
|
|
45
|
+
| **Bundle Size** | ✅ <15kB | Tree-shakeable & optimized |
|
|
46
|
+
|
|
47
|
+
### 🚀 Developer Experience
|
|
48
|
+
|
|
49
|
+
- **IntelliSense Support**: Get instant prop suggestions and documentation in your IDE
|
|
50
|
+
- **Type Safety**: Catch errors at compile-time with full TypeScript definitions
|
|
51
|
+
- **Consistent APIs**: Learn once, use everywhere with predictable component patterns
|
|
52
|
+
- **Professional Standards**: Built with the same quality standards as enterprise libraries
|
|
53
|
+
|
|
54
|
+
## 📦 Installation
|
|
55
|
+
|
|
56
|
+
Install the package via your preferred package manager:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install @amelharrak/eldo-ui
|
|
60
|
+
# or
|
|
61
|
+
yarn add @amelharrak/eldo-ui
|
|
62
|
+
# or
|
|
63
|
+
pnpm add @amelharrak/eldo-ui
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 🛠️ Setup
|
|
67
|
+
|
|
68
|
+
### 1. Import Styles
|
|
69
|
+
|
|
70
|
+
Add the core styles to your application's entry point (`App.js`, `main.tsx`, or `layout.tsx`):
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
import '@amelharrak/eldo-ui/css/eldora.css';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 2. Usage Example
|
|
77
|
+
|
|
78
|
+
Everything is exported as named exports. Import what you need:
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
import { useState } from 'react';
|
|
82
|
+
import { Button, Modal, Card, Input } from '@amelharrak/eldo-ui';
|
|
83
|
+
|
|
84
|
+
function App() {
|
|
85
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
86
|
+
|
|
87
|
+
return (
|
|
88
|
+
<div className="p-4">
|
|
89
|
+
<Card>
|
|
90
|
+
<Card.Header>Welcome to Eldo UI</Card.Header>
|
|
91
|
+
<Card.Body>
|
|
92
|
+
<p>Build beautiful apps with ease.</p>
|
|
93
|
+
<div className="d-flex gap-2">
|
|
94
|
+
<Input placeholder="Enter your email..." />
|
|
95
|
+
<Button variant="primary" onClick={() => setIsOpen(true)}>
|
|
96
|
+
Get Started
|
|
97
|
+
</Button>
|
|
98
|
+
</div>
|
|
99
|
+
</Card.Body>
|
|
100
|
+
</Card>
|
|
101
|
+
|
|
102
|
+
<Modal isOpen={isOpen} onClose={() => setIsOpen(false)} title="Success!">
|
|
103
|
+
<p>You have successfully integrated Eldo UI components.</p>
|
|
104
|
+
<Modal.Footer>
|
|
105
|
+
<Button variant="secondary" onClick={() => setIsOpen(false)}>Close</Button>
|
|
106
|
+
<Button variant="primary">Confirm</Button>
|
|
107
|
+
</Modal.Footer>
|
|
108
|
+
</Modal>
|
|
109
|
+
</div>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 3. Usage with Next.js (App Router)
|
|
115
|
+
|
|
116
|
+
Eldo UI components are compatible with Next.js App Router. For interactive components (using `useState`, `useEffect`), they include the `"use client"` directive, so they just work.
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
// app/page.tsx
|
|
120
|
+
import { Button } from '@amelharrak/eldo-ui';
|
|
121
|
+
|
|
122
|
+
export default function Page() {
|
|
123
|
+
return <Button>Click Me</Button>;
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## ♿ Accessibility (WAI-ARIA)
|
|
128
|
+
|
|
129
|
+
We take accessibility seriously. Every component in Eldo UI has been audited against **WCAG 2.1** success criteria.
|
|
130
|
+
|
|
131
|
+
- **Keyboard Navigation**: Full support for `Tab`, `Arrow` keys, `Escape`, `Enter`/`Space`.
|
|
132
|
+
- **Focus Management**: Modals and Offcanvas panels utilize focus trapping and restoration.
|
|
133
|
+
- **Semantic HTML**: We use native elements (`<button>`, `<input>`) wherever possible.
|
|
134
|
+
- **ARIA Roles**: Explicit roles (`combobox`, `listbox`, `dialog`, `tablist`) for screen readers.
|
|
135
|
+
|
|
136
|
+
> **Status**: ✅ 100% Compliant (Latest Audit: Jan 2026)
|
|
137
|
+
|
|
138
|
+
## 🧩 Component Library
|
|
139
|
+
|
|
140
|
+
### Layout & Core
|
|
141
|
+
|
|
142
|
+
- `Container`, `Row`, `Col` (Grid System)
|
|
143
|
+
- `Box`, `Stack`, `Spacer`
|
|
144
|
+
- `Button`, `ButtonGroup`
|
|
145
|
+
- `Card` (`Header`, `Body`, `Footer`)
|
|
146
|
+
- `Badge`, `Tag`
|
|
147
|
+
|
|
148
|
+
### Forms
|
|
149
|
+
|
|
150
|
+
- `Input`, `Textarea`
|
|
151
|
+
- `Select`, `Combobox` (Autocomplete)
|
|
152
|
+
- `Checkbox`, `Radio`, `Switch`
|
|
153
|
+
- `Slider`, `RangeSlider`
|
|
154
|
+
- `NumberInput`, `InputOTP`
|
|
155
|
+
- `FileUpload`
|
|
156
|
+
|
|
157
|
+
### Navigation
|
|
158
|
+
|
|
159
|
+
- `Navbar`, `Nav`
|
|
160
|
+
- `Sidebar` (Responsive)
|
|
161
|
+
- `Tabs`, `Breadcrumb`
|
|
162
|
+
- `Pagination`, `Steps`
|
|
163
|
+
- `Offcanvas` (Drawer)
|
|
164
|
+
|
|
165
|
+
### Feedback & Overlays
|
|
166
|
+
|
|
167
|
+
- `Modal` (Dialog)
|
|
168
|
+
- `Alert`, `Toast`, `Toaster`
|
|
169
|
+
- `Tooltip`, `Popover`
|
|
170
|
+
- `Progress`, `Spinner`
|
|
171
|
+
- `Accordion`, `Collapse`
|
|
172
|
+
|
|
173
|
+
### Data Display
|
|
174
|
+
|
|
175
|
+
- `Table`
|
|
176
|
+
- `Avatar`, `User`
|
|
177
|
+
- `Timeline`
|
|
178
|
+
- `Stat`
|
|
179
|
+
- `Carousel`
|
|
180
|
+
|
|
181
|
+
## 🎨 Customization
|
|
182
|
+
|
|
183
|
+
Eldo UI uses **CSS Variables** for runtime theming and **Sass** for build-time customization.
|
|
184
|
+
|
|
185
|
+
### CSS Variables (Quick Fix)
|
|
186
|
+
|
|
187
|
+
Override variables in your global CSS:
|
|
188
|
+
|
|
189
|
+
```css
|
|
190
|
+
:root {
|
|
191
|
+
--eldo-primary: #6366f1;
|
|
192
|
+
--eldo-secondary: #ec4899;
|
|
193
|
+
--eldo-border-radius: 0.5rem;
|
|
194
|
+
--eldo-font-family: 'Inter', system-ui, sans-serif;
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Sass (Advanced)
|
|
199
|
+
|
|
200
|
+
Import the abstract files to override defaults before compiling:
|
|
201
|
+
|
|
202
|
+
```scss
|
|
203
|
+
// custom.scss
|
|
204
|
+
$primary: #8b5cf6;
|
|
205
|
+
$enable-rounded: true;
|
|
206
|
+
|
|
207
|
+
@import "@amelharrak/eldo-ui/scss/eldora";
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 🤝 Contributing
|
|
211
|
+
|
|
212
|
+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
213
|
+
|
|
214
|
+
1. Fork the repository
|
|
215
|
+
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
|
|
216
|
+
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
|
217
|
+
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
|
218
|
+
5. Open a Pull Request
|
|
219
|
+
|
|
220
|
+
## 👤 Author
|
|
221
|
+
|
|
222
|
+
**Amine El Harrak**
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
- GitHub: [@aelharrak](https://github.com/aelharrak)
|
|
226
|
+
- Website: [eldo-ui.com](https://eldo-ui.com)
|
|
227
|
+
|
|
228
|
+
## 📄 License
|
|
229
|
+
|
|
230
|
+
Distributed under the MIT License. See `LICENSE` for more information.
|