Most simple components created

This commit is contained in:
2025-07-18 23:30:48 -04:00
commit 5421c2346a
134 changed files with 13805 additions and 0 deletions

16
lib/types/Button.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
import type { ButtonHTMLAttributes, Ref } from "react";
export type ButtonRounding = "none" | "sm" | "md" | "lg" | "full";
export type ButtonShape = "rectangle" | "square";
export type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
export type ButtonVariant = "standard" | "outline" | "ghost" | "outline-ghost" | "icon";
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>{
rounding?: ButtonRounding;
shape?: ButtonShape;
size?: ButtonSize;
variant?: ButtonVariant;
ref?: Ref<HTMLButtonElement>;
}

28
lib/types/Input.d.ts vendored Normal file
View File

@@ -0,0 +1,28 @@
import type { ChangeEventHandler } from "react";
export interface TextInputProps {
id: string;
className?: string;
inputClassName?: string;
labelClassName?: string;
placeholder?: string;
defaultValue?: string;
value?: string;
onChange?: ChangeEventHandler<HTMLInputElement>;
disabled?: boolean;
}
export interface SelectInputProps {
label: React.ReactNode;
value?: string;
onChange?: (newVlaue: string) => void;
children: React.ReactNode;
}
export interface OptionInputProps {
id?: string;
className?: string;
value: string;
children: React.ReactNode;
}

65
lib/types/Loading.d.ts vendored Normal file
View File

@@ -0,0 +1,65 @@
interface LoadingDefaultProps {
width?: string | number;
height?: string | number;
className?: string;
animationDuration?: number;
stroke?: string;
fill?: string;
}
//Spinners
export interface LoadingSpinnerProps extends LoadingDefaultProps {
trackClassName?: string;
trackStroke?: string;
trackFill?: string;
}
export interface RubberLoadingSpinnerProps extends LoadingSpinnerProps {
stretchDuration?: number;
}
//Dots
export interface LoadingDotsProps extends LoadingDefaultProps {
}
export interface CirclePulsingDotsProps {
width?: string | number;
height?: string | number;
className?: string;
rotationAnimationDuration?: number;
growingAnimationDuration?: number;
stroke?: string;
fill?: string;
}
export interface CircleSpinningDotProps extends LoadingDefaultProps {
trackClassName?: string;
trackStroke?: string;
trackFill?: string;
}
//Bars
export interface LoadingBarsProps extends LoadingDefaultProps {
}
//Blocks
export interface LoadingBlocksProps extends LoadingDefaultProps {
}
//Pulses
export interface LoadingPulseProps extends LoadingDefaultProps {
}
//Various
export interface LoadingVariousProps extends LoadingDefaultProps {
}
export interface LoadingWifiProps extends LoadingVariousProps {
fadeDuration?: number;
}

7
lib/types/Message.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
import type { HTMLProps } from "react";
export interface MessageBlockProps extends HTMLProps<HTMLDivElement> {
outline?: "none" | "sm" | "md" | "lg";
rounded?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
}

32
lib/types/Modal.d.ts vendored Normal file
View File

@@ -0,0 +1,32 @@
export type ModalBackgroundType = "darken" | "lighten" | "blur" | "darken-blur" | "lighten-blur" | "darken-blur-radial" | "lighten-blur-radial" | "transparent" | "none";
export interface ModalHeaderProps {
onClose?: () => void;
className?: string;
children: React.ReactNode;
}
export interface ModalFooterProps {
className?: string;
children: React.ReactNode;
}
export interface ModalBodyProps {
className?: string;
children: React.ReactNode;
}
export interface ModalProps {
display: boolean;
onClose: () => void;
className?: string;
backgroundType?: ModalBackgroundType;
top?: boolean;
children: React.ReactNode;
}
export interface ModalBackgroundProps {
backgroundType?: ModalBackgroundType;
close: () => void;
}

15
lib/types/Nav.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
export type Align = "start" | "end";
export type Placement = "top" | "bottom" | "left" | "right";
export type AnchorTo = `${Placement}` | `${Placement} ${Align}`;
export interface PopoverMenuProps {
buttonContent: React.ReactNode;
anchor?: AnchorTo;
children: React.ReactNode;
}
export interface NavBarProps {
className?: string;
children: React.ReactNode;
}

25
lib/types/Tab.d.ts vendored Normal file
View File

@@ -0,0 +1,25 @@
export interface TabGroupContent {
tab: React.ReactNode;
content: React.ReactNode;
}
export interface MattrixwvTabGroupProps {
tabs: TabGroupContent[];
className?: string;
}
export interface MattrixwvTabListProps {
children: React.ReactNode;
}
export interface MattrixwvTabProps {
children: React.ReactNode;
}
export interface MattrixwvTabPanelsProps {
children: React.ReactNode;
}
export interface MattrixwvTabPanelProps {
children: React.ReactNode;
}

18
lib/types/Theme.d.ts vendored Normal file
View File

@@ -0,0 +1,18 @@
export type Theme = "dark" | "light" | "system";
export interface ThemeProviderProps {
defaultTheme?: Theme;
storageKey?: string;
children: React.ReactNode;
}
export interface ThemeProviderState {
theme: Theme;
setTheme: (theme: Theme) => void;
}
export interface ThemeProviderProps {
children: React.ReactNode;
defaultTheme?: Theme;
storageKey?: string;
}