@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 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
+ **![amine el harrak](amelharrak.png "amine el harrak")**
4
+ # @amelharrak/eldo-ui
5
+ [![NPM Version](https://img.shields.io/npm/v/@amelharrak/eldo-ui?style=flat-square&color=blue)](https://www.npmjs.com/package/@amelharrak/eldo-ui)
6
+ [![License](https://img.shields.io/npm/l/@amelharrak/eldo-ui?style=flat-square)](LICENSE)
7
+ [![Bundle Size](https://img.shields.io/bundlephobia/minzip/@amelharrak/eldo-ui?style=flat-square&color=green)](https://bundlephobia.com/package/@amelharrak/eldo-ui)
8
+ [![Accessibility](https://img.shields.io/badge/Accessibility-100%25-success?style=flat-square&logo=w3c)](README.md#accessibility)
9
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Included-blue?style=flat-square&logo=typescript)](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.