type-alias / @typed/ui/Dom/index

TemplateAttributeProps

Web-standard attributes and Typed template prefixes accepted by every host.

Learn this UI primitive →

Package version
1.0.0-beta.13
Category
Host input types
Since
1.0.0

Import

import { TemplateAttributeProps } from "@typed/ui/Dom/index";

This public exposure is a re-export. Its import path is supported; declaration documentation is shared with the other public exposures below.

Signatures

export type TemplateAttributeProps = {
    readonly id?: StringAttributeValue;
    readonly class?: StringAttributeValue;
    readonly className?: StringAttributeValue;
    readonly for?: StringAttributeValue;
    readonly tabindex?: AttributeValue;
    readonly value?: AttributeValue;
    readonly min?: AttributeValue;
    readonly max?: AttributeValue;
    readonly low?: AttributeValue;
    readonly high?: AttributeValue;
    readonly optimum?: AttributeValue;
    readonly step?: AttributeValue;
    readonly role?: StringAttributeValue;
    readonly style?: StyleValue;
    readonly popover?: StringAttributeValue;
    readonly popovertarget?: StringAttributeValue;
    readonly popovertargetaction?: PopoverTargetActionValue;
    readonly command?: CommandValue;
    readonly commandfor?: StringAttributeValue;
    readonly ".data"?: Readonly<Record<string, RenderableInput>>;
} & {
    readonly [K in `aria-${string}`]?: AttributeValue;
} & {
    readonly [K in `data-${string}`]?: DataAttributeValue;
} & {
    readonly [K in `?${string}`]?: BooleanAttributeValue;
};

Why

Attribute, ARIA, data, boolean (?name), dataset (.data), command, and popover fields stay available to component users instead of being filtered through a framework-owned prop vocabulary.

Ownership and lifetime

Scalar parts retain direct references to their targets and update locally. The renderer removes only values installed through the corresponding part.

Other public imports

These import paths expose the same declaration. Each page retains its own public name and signature.

Source