Skip to content

Releases: getelena/elena

@elenajs/prettier-config@1.0.2

13 Apr 02:49
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

✨ New features

  • Double quotes, trailing commas (es5), semicolons, 100 char print width, no parens on single-arg arrows.

🧹 Testing and tooling

  • Added repository field to package.json.

@elenajs/plugin-rollup-css@1.0.0

13 Apr 02:55
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 handling import css from "file.css" with { type: "css" } in Shadow DOM components.
  • cssStaticStylesPlugin() for minifying CSS in static styles template literals.
  • minifyCss() utility export.
  • Watch mode support with addWatchFile integration.

🐞 Bug fixes

  • Added guard around addWatchFile for 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

13 Apr 02:51
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Custom Elements Manifest plugin that generates TypeScript declarations for Elena components.

✨ New features

  • Generates a .d.ts file per component with typed props and event handler fields.
  • TypeScript source file support: correctly handles .ts components alongside .js.

🧹 Testing and tooling

  • Tests covering declaration generation for all prop types and event handlers.

@elenajs/plugin-cem-tag@1.0.0

13 Apr 02:52
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Custom Elements Manifest plugin that copies custom JSDoc tags into the manifest.

✨ New features

  • Extracts @status and @displayName JSDoc 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

13 Apr 02:53
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Custom Elements Manifest plugin that creates prop entries from JSDoc annotations.

✨ New features

  • Reads @property and @prop JSDoc tags from component class fields and creates corresponding attributes entries in the Custom Elements Manifest.

🧹 Testing and tooling

  • Tests covering prop extraction and attribute entry generation.

@elenajs/plugin-cem-define@1.0.0

13 Apr 02:54
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Custom Elements Manifest plugin that extracts tagName from static tagName class fields.

✨ New features

  • Reads the static tagName field 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

13 Apr 02:50
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

✨ New features

  • Lenient ESLint config with curly: ["error", "all"].
  • Ignores test/, dist/, and coverage/ directories.

🧹 Testing and tooling

  • Added repository field to package.json.

@elenajs/core@1.0.0

13 Apr 03:04
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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" and static styles for 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() and requestUpdate(). Prop changes are batched via microtasks so multiple synchronous updates result in a single render.
  • adoptedCallback() lifecycle hook for responding to document.adoptNode().
  • nothing helper for conditional rendering. Renders as an empty string.
  • updateComplete promise 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 HtmlResult template 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.
  • updateComplete promise 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

13 Apr 02:58
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 direction prop 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 @scope encapsulation 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

13 Apr 02:56
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Interactive scaffolding tool for creating Elena components.

✨ New features

  • npx elena-create command 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 @scope CSS.
  • 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.