import type { chipSizes, chipTypes, iconSizes, iconWeights, inputSizes, inputTypes, linkTypes, messageTypes, popoverPlacements, popoverSizes, scaleValues, selectSizes, sizes, snackbarDismissReasons, snackbarPriorities, snackbarStatuses, textSizes, variants, } from './ds.constants'; export namespace LmvzDS { export type Variant = (typeof variants)[number]; export type Size = (typeof sizes)[number]; } export namespace Typography { export type Size = (typeof textSizes)[number]; } export namespace Button { export type Scale = (typeof scaleValues)[number]; export type Variant = LmvzDS.Variant; } export namespace Chip { export type Type = (typeof chipTypes)[number]; export type Size = (typeof chipSizes)[number]; } export namespace Link { export type Type = (typeof linkTypes)[number]; } export namespace Icon { export type Size = (typeof iconSizes)[number]; export type IconWeight = (typeof iconWeights)[number]; } export namespace Input { export type Type = (typeof inputTypes)[number]; export type Size = (typeof inputSizes)[number]; export type Autocomplete = HTMLInputElement['autocomplete']; /** * Inputmode attribute for mobile keyboards */ export type Inputmode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'; /** * Autocapitalize attribute for mobile keyboards */ export type Autocapitalize = 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'; } export namespace Select { export type Size = (typeof selectSizes)[number]; } export namespace Message { export type Type = (typeof messageTypes)[number]; } export namespace Snackbar { export type Status = (typeof snackbarStatuses)[number]; export type Priority = (typeof snackbarPriorities)[number]; export type DismissReason = (typeof snackbarDismissReasons)[number]; } export namespace Popover { export type Placement = (typeof popoverPlacements)[number]; export type Size = (typeof popoverSizes)[number]; export type ContainerRole = 'dialog' | 'listbox' | 'menu' | 'tree' | 'grid'; } export namespace Datepicker { /** * A display-format pattern using the tokens `yyyy`, `MM`, `dd` * (any order, arbitrary literal separators), e.g. `'dd.MM.yyyy'`. */ export type DisplayFormat = string; } export type Attributes = { [key: string]: unknown }; export type FormRef = string | HTMLFormElement | undefined;