igniteui-webcomponents
Version:
Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.
25 lines (24 loc) • 1.29 kB
TypeScript
import { nothing, type TemplateResult } from 'lit';
import type { IgcFormControl } from '../mixins/forms/types.js';
/** Returns a unique id for native input elements rendered by input components. */
export declare function nextInputId(): string;
export interface InputShellOptions {
/** Active theme name. The `material` theme uses the notch layout. */
theme: string;
/** The label text. Empty string skips label rendering. */
label: string;
/** The id of the input element used by the label `for` attribute. */
labelId: string;
/** Resolved part-name map for the container element. */
containerParts: Record<string, boolean>;
/** Renders the native `<input>` element. */
renderInput: () => TemplateResult;
/** Optional renderer for components that need extra parts inside the container (e.g. file-input). */
renderFileParts?: () => TemplateResult | typeof nothing;
}
/**
* Renders the shared input chrome (label, prefix, suffix, validator container)
* around a leaf-provided input template, switching layouts between the
* material notch and the standard flow.
*/
export declare function renderInputShell(host: IgcFormControl, { containerParts, renderFileParts, renderInput, theme, label, labelId, }: InputShellOptions): TemplateResult;