import { html, TemplateResult, nothing, css } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import OmniElement from '../core/OmniElement.js';
import '../icons/Loading.icon.js';
/**
* Element that defers content rendering to a provided function / promise.
*
* @import
* ```js
* import '@capitec/omni-components/render-element';
* ```
*
* @example
* ```html
*
* ```
*
* @element omni-render-element
*
* @cssprop --omni-render-element-loading-indicator-width - Loading Indicator width
*/
@customElement('omni-render-element')
export class RenderElement extends OmniElement {
/**
* Renderer function
* @no_attribute
*/
@property({ type: Object, reflect: false }) renderer?: RenderFunction;
/**
* Data associated with the component.
* @attr
*/
@property({ type: Object, reflect: true }) data?: object | Promise