/** * Minimal Web Component helper for building custom elements. * * This module provides a declarative API for defining Web Components * without complex build steps. Features include: * - Type-safe props with automatic attribute coercion * - Reactive state management * - Shadow DOM encapsulation with scoped styles * - Lifecycle hooks (connected, disconnected) * - Event emission helpers * * @module bquery/component * * @example * ```ts * import { component, html } from 'bquery/component'; * * component('user-card', { * props: { * username: { type: String, required: true }, * avatar: { type: String, default: '/default-avatar.png' }, * }, * styles: ` * .card { padding: 1rem; border: 1px solid #ccc; } * `, * render({ props }) { * return html` *
* ${props.username} *

${props.username}

*
* `; * }, * }); * ``` */ export { component, defineComponent } from './component'; export { bool, html, safeHtml } from './html'; export { registerDefaultComponents } from './library'; export { useComputed, useEffect, useSignal } from './scope'; export type { DefaultComponentLibraryOptions, RegisteredDefaultComponents } from './library'; export type { AttributeChange, ComponentDefinition, ComponentRenderContext, ComponentStateKey, ComponentSignalLike, ComponentSignals, PropDefinition, ShadowMode, } from './types';