174 lines
3.6 KiB
TypeScript
174 lines
3.6 KiB
TypeScript
import type React from "react";
|
|
import type { ChangeEventHandler, ComponentProps } from "react";
|
|
|
|
|
|
export interface TextInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
inputClassName?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
maxLength?: number;
|
|
spellCheck?: boolean;
|
|
placeholder?: string;
|
|
value?: string;
|
|
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
disabled?: boolean;
|
|
}
|
|
|
|
export interface TextAreaProps {
|
|
id?: string;
|
|
className?: string;
|
|
inputClassName?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
maxLength?: number;
|
|
spellCheck?: boolean;
|
|
placeholder?: string;
|
|
value?: string;
|
|
disabled?: boolean;
|
|
rows?: number;
|
|
cols?: number;
|
|
onChange?: ChangeEventHandler<HTMLTextAreaElement>;
|
|
}
|
|
|
|
export interface SelectInputProps {
|
|
placeholder: React.ReactNode;
|
|
value?: string;
|
|
onChange?: (newValue: string) => void;
|
|
disabled?: boolean;
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export interface OptionInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
value: string;
|
|
disabled?: boolean;
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export type MattrixwvSwitchSize = "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
|
|
export interface MattrixwvSwitchProps {
|
|
id?: string;
|
|
className?: string;
|
|
knobClassName?: string;
|
|
size?: MattrixwvSwitchSize;
|
|
wide?: boolean;
|
|
name?: string;
|
|
value?: string;
|
|
defaultChecked?: boolean;
|
|
checked?: boolean;
|
|
onChange?: (newChecked: boolean) => void;
|
|
disabled?: boolean;
|
|
children?: React.ReactNode;
|
|
offText?: React.ReactNode;
|
|
onText?: React.ReactNode;
|
|
}
|
|
|
|
export interface MattrixwvButtonSwitchProps {
|
|
id?: string;
|
|
className?: string;
|
|
name?: string;
|
|
value?: string;
|
|
defaultChecked?: boolean;
|
|
checked?: boolean;
|
|
onChange?: (newChecked: boolean) => void;
|
|
disabled?: boolean;
|
|
onNode: React.ReactNode;
|
|
offNode: React.ReactNode;
|
|
}
|
|
|
|
export interface NumberInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
inputClassName?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
min?: number;
|
|
max?: number;
|
|
step?: number;
|
|
prefix?: string;
|
|
suffix?: string;
|
|
value: number;
|
|
onChange: (newValue: number) => void;
|
|
disabled?: boolean;
|
|
children?: React.ReactNode;
|
|
}
|
|
|
|
export interface NumberSliderProps {
|
|
id?: string;
|
|
className?: string;
|
|
name?: string;
|
|
min?: number;
|
|
max?: number;
|
|
step?: number;
|
|
value: number;
|
|
onChange: (newValue: number) => void;
|
|
disabled?: boolean;
|
|
ariaLabel?: string;
|
|
}
|
|
|
|
export interface FileInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
name?: string;
|
|
ariaLabel?: string;
|
|
minSize?: number;
|
|
maxSize?: number;
|
|
showFileName: boolean;
|
|
showSize: boolean;
|
|
onChange?: (newFile: File | undefined) => void;
|
|
disabled?: boolean;
|
|
children?: React.ReactNode;
|
|
}
|
|
|
|
|
|
export type CheckboxSize = "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
|
|
export interface CheckboxProps {
|
|
className?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
size?: CheckboxSize;
|
|
showBox?: boolean;
|
|
onChange?: (newChecked: boolean) => void;
|
|
checked?: boolean;
|
|
defaultChecked?: boolean;
|
|
strokeWidth?: number;
|
|
value?: string;
|
|
disabled?: boolean;
|
|
children?: React.ReactNode;
|
|
}
|
|
|
|
export type RadioButtonSize = "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
|
|
export interface RadioButtonProps {
|
|
id?: string;
|
|
className?: string;
|
|
labelClassName?: string;
|
|
size?: RadioButtonSize;
|
|
value: string;
|
|
disabled?: boolean;
|
|
children?: React.ReactNode;
|
|
}
|
|
|
|
export interface RadioListProps {
|
|
id?: string;
|
|
className?: string;
|
|
name?: string;
|
|
value?: string;
|
|
onChange?: (value: string) => void;
|
|
defaultValue?: string;
|
|
direction?: "vertical" | "horizontal";
|
|
children?: React.ReactNode;
|
|
}
|
|
|
|
|
|
export interface DateInputProps extends Omit<ComponentProps<"input">, "value" | "onChange" | "step">{
|
|
step?: number;
|
|
value: Date | undefined;
|
|
onChange: (newValue: Date | undefined) => void;
|
|
}
|