eleva 1.0.0-alpha → 1.2.0-alpha
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 +108 -105
- package/dist/eleva.d.ts +106 -89
- package/dist/eleva.esm.js +125 -68
- package/dist/eleva.esm.js.map +1 -1
- package/dist/eleva.min.js +1 -1
- package/dist/eleva.min.js.map +1 -1
- package/dist/eleva.umd.js +125 -68
- package/dist/eleva.umd.js.map +1 -1
- package/package.json +2 -1
- package/src/core/Eleva.js +93 -40
- package/src/modules/Emitter.js +8 -8
- package/src/modules/Renderer.js +8 -8
- package/src/modules/Signal.js +7 -5
- package/src/modules/TemplateEngine.js +10 -11
- package/types/core/Eleva.d.ts +109 -30
- package/types/core/Eleva.d.ts.map +1 -1
- package/types/modules/Emitter.d.ts +10 -10
- package/types/modules/Emitter.d.ts.map +1 -1
- package/types/modules/Renderer.d.ts +2 -2
- package/types/modules/Signal.d.ts +10 -8
- package/types/modules/Signal.d.ts.map +1 -1
- package/types/modules/TemplateEngine.d.ts +15 -12
- package/types/modules/TemplateEngine.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
# Eleva
|
|
1
|
+
# Eleva 🚀
|
|
2
|
+
|
|
3
|
+
Pure JavaScript, Pure Performance, Simply Elegant.
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://www.npmjs.com/package/eleva)
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
[](https://bundlephobia.com/package/eleva@latest)
|
|
10
|
+
[](https://bundlephobia.com/package/eleva@latest)
|
|
2
11
|
|
|
3
12
|
**A minimalist, lightweight, pure vanilla JavaScript frontend runtime framework.**
|
|
4
13
|
_Built with love for native JavaScript—because sometimes, less really is more!_ 😊
|
|
5
14
|
|
|
6
|
-
[](LICENSE)
|
|
8
|
-
[](https://travis-ci.org/TarekRaafat/eleva)
|
|
15
|
+
<!-- [](https://www.jsdelivr.com/package/npm/eleva) -->
|
|
9
16
|
|
|
10
|
-
> **Stability Notice**: This is `v1.
|
|
11
|
-
> Not recommended for production use yet. Follow the [versioning guide](#
|
|
17
|
+
> **Stability Notice**: This is `v1.2.0-alpha` - APIs may change significantly until the stable release.
|
|
18
|
+
> Not recommended for production use yet. Follow the [versioning guide](#version-guide) for updates.
|
|
12
19
|
|
|
13
|
-
**Version:** `1.
|
|
20
|
+
**Version:** `1.2.0-alpha`
|
|
14
21
|
|
|
15
22
|
Welcome to Eleva! This is my humble, experimental playground for a fresh approach to frontend development. Eleva was born out of my genuine passion for pure vanilla JavaScript—no frameworks, no bloat, just the power of native code. I hope you'll have fun exploring, testing, and contributing to make Eleva even better. 🚀
|
|
16
23
|
|
|
@@ -18,7 +25,7 @@ Welcome to Eleva! This is my humble, experimental playground for a fresh approac
|
|
|
18
25
|
|
|
19
26
|
## Table of Contents
|
|
20
27
|
|
|
21
|
-
- [Eleva](#eleva)
|
|
28
|
+
- [Eleva 🚀](#eleva-)
|
|
22
29
|
- [Table of Contents](#table-of-contents)
|
|
23
30
|
- [Introduction](#introduction)
|
|
24
31
|
- [Design Philosophy](#design-philosophy)
|
|
@@ -50,14 +57,14 @@ Welcome to Eleva! This is my humble, experimental playground for a fresh approac
|
|
|
50
57
|
|
|
51
58
|
## Introduction
|
|
52
59
|
|
|
53
|
-
Eleva is a lightweight, no-nonsense runtime framework for frontend applications. Built with love for **pure vanilla JavaScript**, Eleva lets you create highly modular and scalable applications without the overhead of large frameworks. I built Eleva to prove that you don't need
|
|
60
|
+
Eleva is a lightweight, no-nonsense runtime framework for frontend applications. Built with love for **pure vanilla JavaScript**, Eleva lets you create highly modular and scalable applications without the overhead of large frameworks. I built Eleva to prove that you don't need heavy libraries to build amazing user interfaces—sometimes, the simplest approach is the most powerful.
|
|
54
61
|
|
|
55
62
|
**My Inspiration:**
|
|
56
|
-
The idea
|
|
63
|
+
The idea behind Eleva comes from a deep appreciation for native JavaScript. I wanted to create a tool that stays true to the language without introducing new syntax or complexity, making it easy to integrate into your projects.
|
|
57
64
|
|
|
58
65
|
**Core Principles:**
|
|
59
66
|
|
|
60
|
-
- **🌱 Minimalism:** Only the essentials, so you can build without
|
|
67
|
+
- **🌱 Minimalism:** Only the essentials, so you can build without clutter.
|
|
61
68
|
- **🔌 Extensibility:** Plug in your own ideas—custom state management, routing, and more.
|
|
62
69
|
- **🚀 Performance:** Fast, efficient, and designed with modern browsers in mind.
|
|
63
70
|
- **🍦 Pure Vanilla:** No dependencies, no magic—just plain JavaScript.
|
|
@@ -70,30 +77,23 @@ The idea and concept behind Eleva came from my deep appreciation for native Java
|
|
|
70
77
|
|
|
71
78
|
Unlike many frameworks that enforce a specific project structure or coding paradigm, Eleva provides a minimal core with a flexible plugin system. This means:
|
|
72
79
|
|
|
73
|
-
- **🔄 Flexibility:**
|
|
74
|
-
- **🎯 Native JavaScript:**
|
|
75
|
-
- **⚙️ Configurability:**
|
|
76
|
-
- **🆓 Freedom:**
|
|
80
|
+
- **🔄 Flexibility:** Architect your application your way—no rigid structure required.
|
|
81
|
+
- **🎯 Native JavaScript:** Built using pure vanilla JavaScript, Eleva integrates seamlessly with your existing code without unfamiliar syntax.
|
|
82
|
+
- **⚙️ Configurability:** Extend Eleva's functionality with a simple API and optional plugins.
|
|
83
|
+
- **🆓 Freedom:** Decide the best way to implement features without unnecessary constraints.
|
|
77
84
|
|
|
78
|
-
This unopinionated approach makes Eleva versatile and ideal for developers who
|
|
85
|
+
This unopinionated approach makes Eleva versatile and ideal for developers who want full control over their application's design.
|
|
79
86
|
|
|
80
87
|
---
|
|
81
88
|
|
|
82
89
|
## Handcrafted & Developer-Centric Design
|
|
83
90
|
|
|
84
|
-
Eleva is built with
|
|
85
|
-
|
|
86
|
-
- **🎨 Craftsmanship:**
|
|
87
|
-
Every line of code in Eleva is written with care, ensuring that the library remains lightweight, efficient, and easy to understand.
|
|
88
|
-
|
|
89
|
-
- **🛠️ Developer-Centric:**
|
|
90
|
-
Eleva is designed for you—the developer. Its intuitive API and minimalistic core mean you spend less time wrestling with the framework and more time building your application.
|
|
91
|
-
|
|
92
|
-
- **🌟 Innovative & Fresh:**
|
|
93
|
-
By sticking to pure vanilla JavaScript and avoiding unnecessary abstractions, Eleva offers a refreshing alternative to the complex and opinionated frameworks out there.
|
|
91
|
+
Eleva is built with meticulous attention to detail and a deep passion for pure vanilla JavaScript. Every aspect of its design and architecture is handcrafted with the developer in mind. This makes Eleva not only innovative but also a solid foundation for your projects.
|
|
94
92
|
|
|
95
|
-
-
|
|
96
|
-
|
|
93
|
+
- **🎨 Craftsmanship:** Every line of code is written with care, keeping the library lightweight, efficient, and easy to understand.
|
|
94
|
+
- **🛠️ Developer-Centric:** Its intuitive API and minimal core mean you spend less time wrestling with the framework and more time building your application.
|
|
95
|
+
- **🌟 Innovative & Fresh:** Stick to pure vanilla JavaScript and avoid unnecessary abstractions.
|
|
96
|
+
- **🏗️ Solid & Reliable:** Focused on performance and modularity, Eleva scales with your project’s needs.
|
|
97
97
|
|
|
98
98
|
This unique, developer-first approach makes Eleva a standout choice for building high-performance frontend applications without compromising on simplicity or control.
|
|
99
99
|
|
|
@@ -106,35 +106,22 @@ This unique, developer-first approach makes Eleva a standout choice for building
|
|
|
106
106
|
- **🔔 Event Handling:** Built-in event emitter for robust inter-component communication.
|
|
107
107
|
- **📝 Template Parsing:** Secure and dynamic interpolation with a custom TemplateEngine.
|
|
108
108
|
- **🔄 DOM Diffing & Patching:** High-performance updates without a virtual DOM.
|
|
109
|
-
- **📦 UMD & ES Module Builds:**
|
|
109
|
+
- **📦 UMD & ES Module Builds:** Supports modern build tools and browser environments.
|
|
110
110
|
- **🤝 Friendly API:** A gentle learning curve for both beginners and seasoned developers.
|
|
111
|
-
- **💎 Tiny Footprint & TypeScript Support:**
|
|
111
|
+
- **💎 Tiny Footprint & TypeScript Support:** Approximately ~4 KB minified with built-in TypeScript declarations, to keep your bundle lean and your codebase strongly typed.
|
|
112
112
|
|
|
113
113
|
---
|
|
114
114
|
|
|
115
115
|
## When to Use Eleva
|
|
116
116
|
|
|
117
|
-
Eleva is
|
|
118
|
-
|
|
119
|
-
- **🚀 Small to Medium Projects:**
|
|
120
|
-
If you're building a web app or website that doesn't require the overhead of a full-fledged framework, Eleva’s minimal footprint (~4 KB minified) keeps your project fast and efficient.
|
|
121
|
-
|
|
122
|
-
- **⚡ Performance-Critical Applications:**
|
|
123
|
-
For projects where speed and low bundle size are paramount, Eleva's optimized reactivity and DOM diffing ensure your app runs smoothly without unnecessary bloat.
|
|
124
|
-
|
|
125
|
-
- **🔄 Unopinionated and Flexible Design:**
|
|
126
|
-
Eleva is unopinionated, meaning it doesn't force you into a rigid structure. You can architect your application your way while enjoying a straightforward API and a flexible plugin system.
|
|
127
|
-
|
|
128
|
-
- **🎯 Developer-Friendly & Native JavaScript:**
|
|
129
|
-
If you prefer working with pure vanilla JavaScript without the need to learn new syntax or complex abstractions, Eleva is built with you in mind. Plus, it comes with built-in TypeScript declarations for strong type support.
|
|
130
|
-
|
|
131
|
-
- **🧪 Rapid Prototyping & Experimentation:**
|
|
132
|
-
Eleva's simplicity and ease of integration make it a great choice for prototyping ideas quickly. Its modular architecture means you can start small and extend the functionality as your project evolves.
|
|
133
|
-
|
|
134
|
-
- **🔌 Extensibility through Plugins:**
|
|
135
|
-
With a robust plugin system, Eleva can be easily extended to include features like routing, state management, or custom behaviors, making it suitable for both simple and complex applications.
|
|
117
|
+
Eleva is ideal for developers seeking a lightweight, flexible, and high-performance solution for building frontend applications. Here are some scenarios where Eleva shines:
|
|
136
118
|
|
|
137
|
-
|
|
119
|
+
- **🚀 Small to Medium Projects:** Perfect for web apps or websites that don’t require the overhead of a full-fledged framework.
|
|
120
|
+
- **⚡ Performance-Critical Applications:** Optimized reactivity and DOM diffing ensure smooth performance without bloat.
|
|
121
|
+
- **🔄 Unopinionated & Flexible:** Architect your application your way with a straightforward API and plugin system.
|
|
122
|
+
- **🎯 Developer-Friendly:** Stick to pure vanilla JavaScript with familiar syntax and built-in TypeScript support.
|
|
123
|
+
- **🧪 Rapid Prototyping:** Quickly prototype ideas with a minimal and extendable framework.
|
|
124
|
+
- **🔌 Extensible:** Easily add features like routing or state management through plugins.
|
|
138
125
|
|
|
139
126
|
---
|
|
140
127
|
|
|
@@ -142,82 +129,82 @@ In short, if you're looking for a solid, developer-centric framework that provid
|
|
|
142
129
|
|
|
143
130
|
I believe in clear versioning that reflects the maturity of the project:
|
|
144
131
|
|
|
145
|
-
- **Pre-release Versions (Alpha/Beta):** Early versions like `1.
|
|
146
|
-
- **Semantic Versioning:** Once
|
|
147
|
-
- **Fresh Start:**
|
|
132
|
+
- **Pre-release Versions (Alpha/Beta):** Early versions like `1.2.0-alpha` indicate the API is still evolving. Expect frequent updates and share your feedback!
|
|
133
|
+
- **Semantic Versioning:** Once stable, I’ll follow semantic versioning strictly to clearly communicate any breaking changes.
|
|
134
|
+
- **Fresh Start:** This release (`1.2.0-alpha`) marks a significant update with enhanced inline documentation, improved JSDoc annotations, and a refined mounting context that now includes an `emitter` property.
|
|
148
135
|
|
|
149
136
|
---
|
|
150
137
|
|
|
151
138
|
## Version Guide
|
|
152
139
|
|
|
153
|
-
I follow [Semantic Versioning (SemVer)](https://semver.org/)
|
|
140
|
+
I follow [Semantic Versioning (SemVer)](https://semver.org/):
|
|
154
141
|
|
|
155
|
-
- **🔢 Major Version:**
|
|
156
|
-
|
|
157
|
-
- **🔢
|
|
158
|
-
|
|
159
|
-
- **🔢 Patch Version:**
|
|
160
|
-
A change in the third digit (e.g., from `1.0.0` to `1.0.1`) reflects backward-compatible bug fixes and minor improvements.
|
|
161
|
-
- **📌 Pre-release Identifiers:**
|
|
162
|
-
Suffixes like `-alpha`, `-beta`, or `-rc` indicate that the release is not yet stable. For example, `1.0.0-alpha` means this is an experimental version of the upcoming stable `1.0.0` release.
|
|
163
|
-
|
|
164
|
-
This guide is intended to help you understand what to expect with each release and how Eleva is evolving over time.
|
|
142
|
+
- **🔢 Major Version:** Breaking changes or major overhauls (e.g., from `1.0.0` to `2.0.0`).
|
|
143
|
+
- **🔢 Minor Version:** New features in a backward-compatible manner (e.g., from `1.1.0` to `1.2.0`).
|
|
144
|
+
- **🔢 Patch Version:** Backward-compatible bug fixes and minor improvements (e.g., `1.0.1`).
|
|
145
|
+
- **📌 Pre-release Identifiers:** Suffixes like `-alpha`, `-beta`, or `-rc` denote unstable releases (e.g., `1.2.0-alpha`).
|
|
165
146
|
|
|
166
147
|
---
|
|
167
148
|
|
|
168
149
|
## Performance
|
|
169
150
|
|
|
170
|
-
Eleva is crafted
|
|
151
|
+
Eleva is crafted for performance:
|
|
171
152
|
|
|
172
|
-
- **Lightweight:**
|
|
173
|
-
- **Efficient Reactivity:** Signal-based updates ensure only
|
|
174
|
-
- **Optimized Diffing:**
|
|
175
|
-
- **No Bloat:** Pure vanilla JavaScript
|
|
153
|
+
- **Lightweight:** Approximately ~4 KB minified and ~1.8 KB gzipped.
|
|
154
|
+
- **Efficient Reactivity:** Signal-based updates ensure only necessary DOM parts are updated.
|
|
155
|
+
- **Optimized Diffing:** Renderer efficiently patches changes without the overhead of a virtual DOM.
|
|
156
|
+
- **No Bloat:** Pure vanilla JavaScript with zero dependencies keeps your project nimble.
|
|
176
157
|
|
|
177
158
|
---
|
|
178
159
|
|
|
179
160
|
## Performance Benchmarks
|
|
180
161
|
|
|
181
|
-
|
|
162
|
+
Preliminary benchmarks illustrate Eleva’s efficiency compared to popular frameworks:
|
|
182
163
|
|
|
183
164
|
| Framework | Bundle Size (minified) | Initial Load Time | DOM Update Speed |
|
|
184
165
|
| --------- | ---------------------- | ----------------- | ---------------- |
|
|
185
|
-
| **Eleva** |
|
|
166
|
+
| **Eleva** | **~4 KB** | **~35 ms** | **~2 ms** |
|
|
186
167
|
| React | ~110 KB | ~100 ms | ~4 ms |
|
|
187
168
|
| Vue | ~80 KB | ~80 ms | ~3 ms |
|
|
188
169
|
| Angular | ~500 KB | ~250 ms | ~6 ms |
|
|
189
170
|
|
|
190
|
-
> ⚠️ **Disclaimer:**
|
|
171
|
+
> ⚠️ **Disclaimer:** Benchmarks are based on internal tests with a minimal counter component and may vary by project and environment.
|
|
191
172
|
|
|
192
173
|
---
|
|
193
174
|
|
|
194
175
|
## Eleva vs. Popular Frameworks
|
|
195
176
|
|
|
196
|
-
|
|
177
|
+
Eleva offers a refreshing alternative to frameworks like React, Vue, and Angular:
|
|
197
178
|
|
|
198
|
-
- **Simplicity:** No virtual DOM,
|
|
199
|
-
- **Modularity:** Easily extend
|
|
200
|
-
- **Size:**
|
|
201
|
-
- **Learning Curve:**
|
|
179
|
+
- **Simplicity:** No virtual DOM, JSX, or complex state management—just plain JavaScript.
|
|
180
|
+
- **Modularity:** Easily extend via plugins to suit your project’s needs.
|
|
181
|
+
- **Size:** A fraction of the size of mainstream frameworks.
|
|
182
|
+
- **Learning Curve:** Familiar syntax and a clear API make it accessible to all developers.
|
|
202
183
|
|
|
203
|
-
|
|
184
|
+
_Note:_ Eleva isn’t trying to replace these giants but provides a lightweight option when you want simplicity and speed. 🌟
|
|
204
185
|
|
|
205
186
|
---
|
|
206
187
|
|
|
207
188
|
## Installation
|
|
208
189
|
|
|
209
|
-
Eleva is available on npm.
|
|
190
|
+
Eleva is available on npm. Try it out and share your thoughts!
|
|
210
191
|
|
|
211
192
|
```bash
|
|
212
193
|
npm install eleva
|
|
213
194
|
```
|
|
214
195
|
|
|
215
|
-
Or include it directly
|
|
196
|
+
Or include it directly via CDN:
|
|
216
197
|
|
|
217
198
|
```html
|
|
199
|
+
<!-- unpkg -->
|
|
218
200
|
<script src="https://unpkg.com/eleva/dist/eleva.min.js"></script>
|
|
219
201
|
```
|
|
220
202
|
|
|
203
|
+
```html
|
|
204
|
+
<!-- jsDelivr -->
|
|
205
|
+
<script src="https://cdn.jsdelivr.net/npm/eleva/dist/eleva.min.js"></script>
|
|
206
|
+
```
|
|
207
|
+
|
|
221
208
|
---
|
|
222
209
|
|
|
223
210
|
## Usage
|
|
@@ -226,13 +213,14 @@ Or include it directly in your HTML via CDN:
|
|
|
226
213
|
|
|
227
214
|
```js
|
|
228
215
|
// Import Eleva (using ES modules)
|
|
229
|
-
import
|
|
216
|
+
import Eleva from "eleva";
|
|
230
217
|
|
|
231
218
|
// Create a new Eleva instance
|
|
232
219
|
const app = new Eleva("MyApp");
|
|
233
220
|
|
|
234
221
|
// Define a component
|
|
235
222
|
app.component("HelloWorld", {
|
|
223
|
+
// The setup method is optional; if omitted, an empty state is used.
|
|
236
224
|
setup({ signal }) {
|
|
237
225
|
const count = signal(0);
|
|
238
226
|
return { count };
|
|
@@ -240,19 +228,21 @@ app.component("HelloWorld", {
|
|
|
240
228
|
template: ({ count }) => `
|
|
241
229
|
<div>
|
|
242
230
|
<h1>Hello, Eleva! 👋</h1>
|
|
243
|
-
<p>Count: ${count}</p>
|
|
244
|
-
<button @click="() => count++">Increment</button>
|
|
231
|
+
<p>Count: ${count.value}</p>
|
|
232
|
+
<button @click="() => count.value++">Increment</button>
|
|
245
233
|
</div>
|
|
246
234
|
`,
|
|
247
235
|
});
|
|
248
236
|
|
|
249
|
-
// Mount the component to a DOM element
|
|
250
|
-
app.mount("
|
|
237
|
+
// Mount the component to a DOM element (not a selector).
|
|
238
|
+
app.mount(document.getElementById("app"), "HelloWorld");
|
|
251
239
|
```
|
|
252
240
|
|
|
241
|
+
Interactive Demo: [CodePen](https://codepen.io/tarekraafat/pen/GgRrxdY?editors=1010)
|
|
242
|
+
|
|
253
243
|
### UMD Example
|
|
254
244
|
|
|
255
|
-
Include Eleva via a script tag
|
|
245
|
+
Include Eleva via a script tag and use the global variable:
|
|
256
246
|
|
|
257
247
|
```html
|
|
258
248
|
<!DOCTYPE html>
|
|
@@ -272,19 +262,21 @@ Include Eleva via a script tag, and it will be available as a global variable:
|
|
|
272
262
|
return { count };
|
|
273
263
|
},
|
|
274
264
|
template: ({ count }) => `
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
265
|
+
<div>
|
|
266
|
+
<h1>Hello, Eleva! 👋</h1>
|
|
267
|
+
<p>Count: ${count.value}</p>
|
|
268
|
+
<button @click="() => count.value++">Increment</button>
|
|
269
|
+
</div>
|
|
270
|
+
`,
|
|
281
271
|
});
|
|
282
|
-
app.mount("
|
|
272
|
+
app.mount(document.getElementById("app"), "HelloWorld");
|
|
283
273
|
</script>
|
|
284
274
|
</body>
|
|
285
275
|
</html>
|
|
286
276
|
```
|
|
287
277
|
|
|
278
|
+
Interactive Demo: [CodePen](https://codepen.io/tarekraafat/pen/jEOyzYN?editors=1010)
|
|
279
|
+
|
|
288
280
|
---
|
|
289
281
|
|
|
290
282
|
## API Reference
|
|
@@ -317,11 +309,11 @@ Include Eleva via a script tag, and it will be available as a global variable:
|
|
|
317
309
|
### Renderer
|
|
318
310
|
|
|
319
311
|
- **`patchDOM(container, newHtml)`**
|
|
320
|
-
Efficiently
|
|
312
|
+
Efficiently updates the DOM.
|
|
321
313
|
- **`diff(oldParent, newParent)`**
|
|
322
|
-
|
|
314
|
+
Compares and updates DOM trees.
|
|
323
315
|
- **`updateAttributes(oldEl, newEl)`**
|
|
324
|
-
|
|
316
|
+
Synchronizes element attributes.
|
|
325
317
|
|
|
326
318
|
### Eleva (Core)
|
|
327
319
|
|
|
@@ -331,16 +323,17 @@ Include Eleva via a script tag, and it will be available as a global variable:
|
|
|
331
323
|
Install plugins.
|
|
332
324
|
- **`.component(name, definition)`**
|
|
333
325
|
Register a component.
|
|
334
|
-
- **`.mount(
|
|
335
|
-
Mount a component to the DOM.
|
|
326
|
+
- **`.mount(container, compName, props)`**
|
|
327
|
+
Mount a component to the DOM.
|
|
328
|
+
_Note:_ The mounting context now includes an `emitter` property (the full event emitter instance) for simplified event handling. Use `context.emitter.on(...)` and `context.emitter.emit(...)` for event management.
|
|
336
329
|
|
|
337
|
-
For detailed API documentation, please check the [docs](docs/) folder.
|
|
330
|
+
For detailed API documentation, please check the [docs](docs/index.md) folder.
|
|
338
331
|
|
|
339
332
|
---
|
|
340
333
|
|
|
341
334
|
## Development
|
|
342
335
|
|
|
343
|
-
I welcome developers to dive in and
|
|
336
|
+
I welcome developers to dive in and experiment with Eleva! Here’s how to get started locally:
|
|
344
337
|
|
|
345
338
|
1. **Clone the Repository:**
|
|
346
339
|
|
|
@@ -361,7 +354,7 @@ I welcome developers to dive in and play around with Eleva! Here's how you can g
|
|
|
361
354
|
npm run dev
|
|
362
355
|
```
|
|
363
356
|
|
|
364
|
-
4. **Build for Production:**
|
|
357
|
+
4. **Build for Production without TypeScript Declarations:**
|
|
365
358
|
|
|
366
359
|
```bash
|
|
367
360
|
npm run build
|
|
@@ -374,23 +367,29 @@ I welcome developers to dive in and play around with Eleva! Here's how you can g
|
|
|
374
367
|
npm run build:types:bundle
|
|
375
368
|
```
|
|
376
369
|
|
|
370
|
+
6. **Build for Production with TypeScript Declarations:**
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
npm run build:all
|
|
374
|
+
```
|
|
375
|
+
|
|
377
376
|
---
|
|
378
377
|
|
|
379
378
|
## Testing
|
|
380
379
|
|
|
381
|
-
I use Jest for
|
|
380
|
+
I use Jest for testing. Run the test suite with:
|
|
382
381
|
|
|
383
382
|
```bash
|
|
384
383
|
npm test
|
|
385
384
|
```
|
|
386
385
|
|
|
387
|
-
|
|
386
|
+
Contributions to tests are very welcome! 🧪
|
|
388
387
|
|
|
389
388
|
---
|
|
390
389
|
|
|
391
390
|
## Contributing
|
|
392
391
|
|
|
393
|
-
I’d love to have you onboard as a contributor! Whether you
|
|
392
|
+
I’d love to have you onboard as a contributor! Whether you're adding new features, squashing bugs, or sharing ideas, your input is invaluable. Please check out [CONTRIBUTING](CONTRIBUTING.md) for guidelines on getting started.
|
|
394
393
|
|
|
395
394
|
---
|
|
396
395
|
|
|
@@ -412,7 +411,11 @@ Eleva is open-source and available under the [MIT License](LICENSE).
|
|
|
412
411
|
|
|
413
412
|
---
|
|
414
413
|
|
|
414
|
+
[](https://nodei.co/npm/eleva/)
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
415
418
|
[Documentation](/docs/index.md) |
|
|
416
419
|
[Examples](/examples) |
|
|
417
|
-
[Changelog](
|
|
420
|
+
[Changelog](/changelog.md) |
|
|
418
421
|
[GitHub Discussions](https://github.com/TarekRaafat/eleva/discussions)
|