All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- N/A – No additions in this release.
- N/A – No changes in this release.
- README, DOCS, and Examples:
- Fixed the
jsDelivr
CDN URLs.
- Fixed the
- N/A – No additions in this release.
- N/A – No changes in this release.
- Package.json File:
- Fixed the
types
path.
- Fixed the
- Enhanced Inline Documentation and JSDoc Comments
- Added detailed JSDoc annotations for private members (e.g., in
Signal
andEmitter
classes) to clarify internal behavior. - Updated the
ComponentDefinition
typedef with more descriptive explanations for each property. - Improved inline comments in the
Eleva
core class, providing detailed documentation for properties, parameters, and internal methods.
- Added detailed JSDoc annotations for private members (e.g., in
- Context Object Update in Mounting Process
- The component mounting context now includes the entire
emitter
instance instead of exposing separateemit
andon
functions. This change simplifies event handling in component setup.
- The component mounting context now includes the entire
- Minor Code Refactoring & Documentation Enhancements
- Formatting and comment improvements across the codebase for better readability and maintainability.
- N/A – No bug fixes in this release.
Note: These changes are internal improvements and documentation enhancements.
- Local Child Components Registration
- Allow child components to be defined locally within a parent’s
children
map rather than requiring global registration viaapp.component("name", { ... })
. - Updated the
_mountChildren
method to directly mount child components using local definitions.
- Allow child components to be defined locally within a parent’s
- Optional Setup Method Support
- Enhanced the
mount
method to allow components to be registered without asetup()
method by defaulting to an empty object if none is provided.
- Enhanced the
- Flexible Mounting API
- Modified the
mount
method to accept either a global component name (a string) or a direct component definition (an object), thereby improving component registration flexibility. - Added robust error handling for invalid component parameters.
- Modified the
- Enhanced Documentation & Typing
- Added comprehensive JSDoc annotations and updated inline documentation for all classes and methods.
- Introduced a new
@typedef
forComponentDefinition
to improve type safety and developer guidance.
- TemplateEngine
- Modified the
evaluate
method to useObject.values(data)
instead of mapping over keys, streamlining the extraction of data values for expression evaluation.
- Modified the
- Eleva Core
- Updated the
mount
method signature:- Now expects a DOM element container directly instead of a CSS selector string.
- Altered the mounting process to always return a Promise (wrapping synchronous setups with
Promise.resolve
), ensuring consistent asynchronous handling. - Renamed internal parameters for clarity (e.g., using
styleFn
in the_injectStyles
method).
- Updated the
- Component Registration & Mounting Logic
- Revised internal logic to determine the component definition based on the type of the provided parameter (string vs. object).
- Overall Code Quality
- Refined code style by consistently using ES6+ syntax.
- Improved error messages and inline comments to facilitate better understanding and maintainability.
- N/A – No bug fixes in this release.
- Initial Release of Eleva
- A minimalist, lightweight, pure vanilla JavaScript frontend runtime framework.
- TemplateEngine
- Secure template parsing with dynamic expression evaluation using
{{ ... }}
syntax.
- Secure template parsing with dynamic expression evaluation using
- Signal
- Fine-grained reactivity for efficient DOM updates.
- Emitter
- Built-in event emitter for inter-component communication.
- Renderer
- Efficient DOM diffing and patching without using a virtual DOM.
- Core Eleva API
- Component registration, mounting, and plugin integration.
- Lifecycle hooks for managing component initialization, updates, and unmounting.
- Children Components & Passing Props
- Support for nesting components and passing properties from parent to child.
- Scoped CSS & Style Injection
- Component-specific styling that does not leak globally.
- Plugin System
- A flexible plugin architecture that allows easy extension of Eleva's functionality.
- Built-in TypeScript Declarations
- Provides strong typing support for developers using TypeScript.
- Comprehensive Documentation
- Detailed guides covering installation, core concepts, examples, best practices, and more.
- Project Setup
- Introduced a modular architecture and configuration that prioritizes developer-centric design and performance.
- N/A – This is the initial alpha release.
This is a pre-release version of Eleva. Future releases will document further improvements, bug fixes, and new features as the framework evolves.