JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1303
  • Score
    100M100P100Q82429F

Package Exports

  • @openelement/element
  • @openelement/element/open-element-hydration
  • @openelement/element/open-element-render

Readme

@openelement/element

First-class Elements authoring surface for openElement.

This package exposes OpenElement, the product-facing base class for native Web Components built on openElement's existing shadow/DSD implementation. Shadow/DSD is the default render mode; light DOM remains explicit opt-in.

Also includes:

  • ErrorBoundary — catch child render errors with fallback UI
  • defineElement / defineLayout — functional component-style authoring
  • Prop system: PropDecl, PropsFrom, PropType
  • Full re-export of JSX, VNode, context, signals, StyleSheet, and island utilities

Install

npm install @openelement/element

Usage

import { OpenElement } from '@openelement/element';
import type { VNode } from '@openelement/element';

class MyCard extends OpenElement {
  render(): VNode {
    return (
      <article>
        <slot />
      </article>
    );
  }
}

Functional Component Style

import { defineElement } from '@openelement/element';

defineElement('my-card', ({ title }) => (
  <article>
    <h2>{title}</h2>
    <slot />
  </article>
));

Boundary

@openelement/element does not own routing, Vite, Nitro, UI components, database, auth, cache, or the default signal engine. Those remain Framework, UI, Protocols, or adapter concerns.

License

MIT