mirror of
https://bitbucket.org/Mattrixwv/mattrixwvreactcomponents.git
synced 2025-12-06 13:43:59 -05:00
152 lines
3.1 KiB
TypeScript
152 lines
3.1 KiB
TypeScript
import type React from "react";
|
|
import type { ChangeEventHandler } from "react";
|
|
|
|
|
|
export interface TextInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
inputClassName?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
maxLength?: number;
|
|
spellCheck?: boolean;
|
|
placeholder?: string;
|
|
defaultValue?: string;
|
|
value?: string;
|
|
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
disabled?: boolean;
|
|
}
|
|
|
|
export interface TextAreaProps extends TextInputProps{
|
|
rows?: number;
|
|
cols?: number;
|
|
onChange?: ChangeEventHandler<HTMLTextAreaElement>;
|
|
}
|
|
|
|
export interface SelectInputProps {
|
|
label: React.ReactNode;
|
|
value?: string;
|
|
onChange?: (newValue: string) => void;
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export interface OptionInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
value: string;
|
|
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;
|
|
defaultValue?: number;
|
|
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;
|
|
defaultValue?: number;
|
|
value?: number;
|
|
onChange?: (newValue: number) => void;
|
|
disabled?: boolean;
|
|
}
|
|
|
|
export interface FileInputProps {
|
|
id?: string;
|
|
className?: string;
|
|
name?: 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 {
|
|
id?: string;
|
|
className?: string;
|
|
labelClassName?: string;
|
|
name?: string;
|
|
size?: CheckboxSize;
|
|
box?: boolean;
|
|
onChange?: (newChecked: boolean) => void;
|
|
checked?: boolean;
|
|
defaultChecked?: boolean;
|
|
strokeWidth?: number;
|
|
value?: string;
|
|
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;
|
|
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;
|
|
}
|