Releases: getelena/elena
Releases · getelena/elena
@elenajs/prettier-config@1.0.2
Immutable
release. Only release title and notes can be modified.
✨ New features
- Double quotes, trailing commas (es5), semicolons, 100 char print width, no parens on single-arg arrows.
🧹 Testing and tooling
- Added
repositoryfield to package.json.
@elenajs/plugin-rollup-css@1.0.0
Immutable
release. Only release title and notes can be modified.
Rollup plugin suite for CSS handling in Elena builds.
✨ New features
cssPlugin()for minifying individual CSS files via Lightning CSS.cssBundlePlugin()for concatenating CSS into a single bundle (excludes Shadow DOM CSS).cssModuleScriptPlugin()for handlingimport css from "file.css" with { type: "css" }in Shadow DOM components.cssStaticStylesPlugin()for minifying CSS instatic stylestemplate literals.minifyCss()utility export.- Watch mode support with
addWatchFileintegration.
🐞 Bug fixes
- Added guard around
addWatchFilefor environments where it is unavailable.
🧹 Testing and tooling
- Tests covering all five plugin exports and the minification utility.
@elenajs/plugin-cem-typescript@1.0.0
Immutable
release. Only release title and notes can be modified.
Custom Elements Manifest plugin that generates TypeScript declarations for Elena components.
✨ New features
- Generates a
.d.tsfile per component with typed props and event handler fields. - TypeScript source file support: correctly handles
.tscomponents alongside.js.
🧹 Testing and tooling
- Tests covering declaration generation for all prop types and event handlers.
@elenajs/plugin-cem-tag@1.0.0
Immutable
release. Only release title and notes can be modified.
Custom Elements Manifest plugin that copies custom JSDoc tags into the manifest.
✨ New features
- Extracts
@statusand@displayNameJSDoc tags from component classes and adds them to the CEM class declaration.
🧹 Testing and tooling
- Tests covering tag extraction for all supported JSDoc tags.
@elenajs/plugin-cem-prop@1.0.0
Immutable
release. Only release title and notes can be modified.
Custom Elements Manifest plugin that creates prop entries from JSDoc annotations.
✨ New features
- Reads
@propertyand@propJSDoc tags from component class fields and creates correspondingattributesentries in the Custom Elements Manifest.
🧹 Testing and tooling
- Tests covering prop extraction and attribute entry generation.
@elenajs/plugin-cem-define@1.0.0
Immutable
release. Only release title and notes can be modified.
Custom Elements Manifest plugin that extracts tagName from static tagName class fields.
✨ New features
- Reads the
static tagNamefield on Elena component classes and registers the element in the Custom Elements Manifest.
🧹 Testing and tooling
- Tests covering tag name extraction from static class fields.
@elenajs/eslint-config@1.0.3
Immutable
release. Only release title and notes can be modified.
✨ New features
- Lenient ESLint config with
curly: ["error", "all"]. - Ignores
test/,dist/, andcoverage/directories.
🧹 Testing and tooling
- Added
repositoryfield to package.json.
@elenajs/core@1.0.0
Immutable
release. Only release title and notes can be modified.
The first stable release of @elenajs/core. 🎉 The API has been validated across 13 release candidates with no breaking changes since rc.1. Everything below is new compared to 0.15.0.
✨ New features
- Two rendering strategies: Patch() updates only the text and attributes that changed. Morph() rebuilds the affected part of the DOM when the template structure changes.
- Shadow DOM support via
static shadow = "open" | "closed"andstatic stylesfor full style isolation. - Declarative Shadow DOM support.
- Scoped Custom Element Registries via
static registry. - Composable mixins that work with the
Elena()factory function. - Reactive update cycle with
willUpdate(),firstUpdated(),updated()andrequestUpdate(). Prop changes are batched via microtasks so multiple synchronous updates result in a single render. adoptedCallback()lifecycle hook for responding todocument.adoptNode().nothinghelper for conditional rendering. Renders as an empty string.updateCompletepromise for waiting until DOM updates finish after prop changes.
🔋Performance
- Patch rendering skips DOM rebuilds entirely when only values change.
- Morph rendering diffs against existing DOM nodes instead of replacing them.
- Lighter
HtmlResulttemplate objects reduce memory allocations. - Changed attributes are updated in place without touching the rest of the DOM.
- Direct prop writes bypass the setter chain during internal updates.
updateCompletepromise is only created when accessed.- 12% smaller library size through internal refactoring.
- Faster initial render path.
🐞 Bug fixes
- String props recover correctly after being set to an empty string.
- Boolean prop coercion always returns a strict boolean.
- Closed shadow roots are handled correctly.
- Event listeners are re-bound when the inner element is replaced during a morph.
- Whitespace processing matches browser behavior.
- Rendering flag (
_isRendering) is more resilient during error recovery.
🧹 Testing and tooling
- 25 test files covering primitives, composites, lifecycle, rendering, render-morph, props, events, shadow DOM, hydration, inheritance, mixins, focus preservation, array rendering, async timing, error recovery, security and SVG/MathML.
- 30+ test fixtures covering all component patterns.
- Visual regression tests via Playwright.
- Performance benchmarks for initial render and re-render.
- Updated TypeScript declarations.
@elenajs/components@1.0.0
Immutable
release. Only release title and notes can be modified.
Reference component library demonstrating Elena patterns. Ships four production-ready components.
✨ New features
- Button component: supports
variant,disabled,expand,href(renders as link),aria-label, and loading state with integrated spinner. - Stack component: flexbox layout with
directionprop for column/row flow. - Spinner component: animated loading indicator.
- Visually Hidden component: accessible content hidden from visual display but available to assistive technologies.
- Public theming API via CSS custom properties on all components.
- Logical CSS properties for better internationalization support.
- CSS
@scopeencapsulation on all components.
🐞 Bug fixes
- Double-tap-to-zoom disabled on buttons for better mobile interaction.
- Button focus outline styling corrected.
- Style cascade improvements for button component.
🧹 Testing and tooling
- 4 test files covering button, stack, spinner, and visually-hidden components.
@elenajs/cli@1.0.0
Immutable
release. Only release title and notes can be modified.
Interactive scaffolding tool for creating Elena components.
✨ New features
npx elena-createcommand with interactive prompts for component name, language, output directory, and feature toggles.- Supports JavaScript, TypeScript, and HTML output.
- Accepts an optional kebab-case component name as an argument to skip the name prompt.
- Feature toggles for props, events, methods, CSS variables, CSS encapsulation, CSS SSR pattern, and code comments.
- Generates both source and CSS files following all Elena patterns including JSDoc annotations and
@scopeCSS. - Themed CLI output using Elena brand colors.
🐞 Bug fixes
- Improved generation output formatting.
🧹 Testing and tooling
- 4 test files covering prompts, generation for all language targets, and feature toggle combinations.