@lume/element
Version:
Create Custom Elements with reactivity and automatic re-rendering.
13 lines • 1.53 kB
TypeScript
import type { HTMLAttributes as ReactHTMLAttributes, DetailedHTMLProps as ReactDetailedHTMLProps } from 'react';
import type { BooleanProps, EventListenersOnly, EventProps, NonBooleanProps, NonEventProps, NonNumberProps, NumberProps, RemoveAccessors, RemoveSetterPrefixes, WithBooleanStringValues, WithNumberStringValues, WithStringValues } from '../LumeElement.js';
/**
* Similar to ElementAttributes, but for defining element attribute types for
* React JSX. See LUME Element's [TypeScript
* docs](https://docs.lume.io/#/guide/making-elements?id=typescript) for
* details.
*/
export type ReactElementAttributes<El, SelectedProperties extends keyof RemoveSetterPrefixes<RemoveAccessors<El>>, AdditionalProperties extends object = {}> = Omit<ReactDetailedHTMLProps<ReactHTMLAttributes<El>, El>, SelectedProperties | keyof AdditionalProperties> & {
/** The 'has' attribute from the 'element-behaviors' package. If element-behaviors is installed and imported (it is if you're using `lume` 3D elements) then this specifies which behaviors to instantiate on the given element. */
has?: string;
} & Partial<WithStringValues<NonNumberProps<NonBooleanProps<NonEventProps<El, SelectedProperties>>>>> & Partial<WithStringValues<EventListenersOnly<EventProps<El, SelectedProperties>>>> & Partial<WithBooleanStringValues<BooleanProps<NonEventProps<El, SelectedProperties>>>> & Partial<WithNumberStringValues<NumberProps<NonEventProps<El, SelectedProperties>>>> & AdditionalProperties;
//# sourceMappingURL=react.d.ts.map